- Prop
value- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- —
Docs Components Commerce
QuantityStepper
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import * as React from "react";const quantityStepperFixture = { id: "quantity-stepper", value: 2, min: 1, max: 9, label: "Quantity",} satisfies { id: string; value: number; min: number; max: number; label: string;}; import { QuantityStepper } from "@grassroot/ui-react"; export default function QuantityStepperDemo() { const [qty, setQty] = React.useState(quantityStepperFixture.value); return ( <div> <QuantityStepper value={qty} onChange={setQty} min={quantityStepperFixture.min} max={quantityStepperFixture.max} label={quantityStepperFixture.label} /> </div> );}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">import { ref } from "vue";const quantityStepperFixture = { id: "quantity-stepper", value: 2, min: 1, max: 9, label: "Quantity",} satisfies { id: string; value: number; min: number; max: number; label: string;}; import { QuantityStepper } from "@grassroot/ui-vue"; const qty = ref(quantityStepperFixture.value);</script> <template> <div> <QuantityStepper v-model="qty" :min="quantityStepperFixture.min" :max="quantityStepperFixture.max" :label="quantityStepperFixture.label" /> </div></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Component, signal } from "@angular/core";const quantityStepperFixture = { id: "quantity-stepper", value: 2, min: 1, max: 9, label: "Quantity",} satisfies { id: string; value: number; min: number; max: number; label: string;}; import { GrassrootQuantityStepper } from "@grassroot/ui-angular"; @Component({ selector: "app-quantity-stepper-demo", standalone: true, imports: [GrassrootQuantityStepper], template: ` <div> <grassroot-quantity-stepper [value]="qty()" (valueChange)="qty.set($event)" [min]="fixture.min" [max]="fixture.max" [label]="fixture.label" /> </div> `,})export class QuantityStepperDemoComponent { protected readonly fixture = quantityStepperFixture; readonly qty = signal(quantityStepperFixture.value);} export default QuantityStepperDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> import { QuantityStepper } from "@grassroot/ui-svelte"; const quantityStepperFixture = { id: "quantity-stepper", value: 2, min: 1, max: 9, label: "Quantity", } satisfies { id: string; value: number; min: number; max: number; label: string; }; let qty = $state(quantityStepperFixture.value);</script> <div> <QuantityStepper value={qty} onChange={(next) => (qty = next)} min={quantityStepperFixture.min} max={quantityStepperFixture.max} label={quantityStepperFixture.label} /></div>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */import { createSignal } from "solid-js";const quantityStepperFixture = { id: "quantity-stepper", value: 2, min: 1, max: 9, label: "Quantity",} satisfies { id: string; value: number; min: number; max: number; label: string;}; import { QuantityStepper } from "@grassroot/ui-solid"; export default function QuantityStepperDemo() { const [qty, setQty] = createSignal(quantityStepperFixture.value); return ( <div> <QuantityStepper value={qty()} onChange={setQty} min={quantityStepperFixture.min} max={quantityStepperFixture.max} label={quantityStepperFixture.label} /> </div> );}Installation
API Reference
Import
import * as React from "react";
import { QuantityStepper } from "@grassroot/ui-react";
Props
Prop
Type
Default
Requirement
Description
valuenumber | undefined—
optional
—
defaultValuenumber | undefined—
optional
—
minnumber | undefined1optional
—
maxnumber | undefined99optional
—
stepnumber | undefined1optional
—
onChange((value: number) => void) | undefined—
optional
—
size"sm" | "md" | undefined"md"optional
—
disabledboolean | undefined—
optional
—
labelstring | undefined"Quantity"optional
Accessible name for the group.
classNamestring | undefined—
optional
—
- Prop
defaultValue- Type
number | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
min- Type
number | undefined- Default
1- Requirement
- optional
- Description
- —
- Prop
max- Type
number | undefined- Default
99- Requirement
- optional
- Description
- —
- Prop
step- Type
number | undefined- Default
1- Requirement
- optional
- Description
- —
- Prop
onChange- Type
((value: number) => void) | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
size- Type
"sm" | "md" | undefined- Default
"md"- Requirement
- optional
- Description
- —
- Prop
disabled- Type
boolean | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
label- Type
string | undefined- Default
"Quantity"- Requirement
- optional
- Description
- Accessible name for the group.
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
Events
| Event | Payload |
|---|---|
onChange | ((value: number) => void) | undefined |
Import
import { ref } from "vue";
import { QuantityStepper } from "@grassroot/ui-vue";
Props
Prop
Type
Default
Requirement
modelValuenumber | undefined1optional
minnumber | undefined1optional
maxnumber | undefined99optional
stepnumber | undefined1optional
size"sm" | "md" | undefined"md"optional
disabledboolean | undefinedfalseoptional
labelstring | undefined"Quantity"optional
- Prop
modelValue- Type
number | undefined- Default
1- Requirement
- optional
- Prop
min- Type
number | undefined- Default
1- Requirement
- optional
- Prop
max- Type
number | undefined- Default
99- Requirement
- optional
- Prop
step- Type
number | undefined- Default
1- Requirement
- optional
- Prop
size- Type
"sm" | "md" | undefined- Default
"md"- Requirement
- optional
- Prop
disabled- Type
boolean | undefined- Default
false- Requirement
- optional
- Prop
label- Type
string | undefined- Default
"Quantity"- Requirement
- optional
Events
| Event | Payload |
|---|---|
update:modelValue | [value: number] |
Import
import { Component, signal } from "@angular/core";
import { GrassrootQuantityStepper } from "@grassroot/ui-angular";
Props
Prop
Type
Default
Requirement
valuenumber1optional
minnumber1optional
maxnumber99optional
stepnumber1optional
size"sm" | "md""md"optional
disabledbooleanfalseoptional
labelstring"Quantity"optional
- Prop
value- Type
number- Default
1- Requirement
- optional
- Prop
min- Type
number- Default
1- Requirement
- optional
- Prop
max- Type
number- Default
99- Requirement
- optional
- Prop
step- Type
number- Default
1- Requirement
- optional
- Prop
size- Type
"sm" | "md"- Default
"md"- Requirement
- optional
- Prop
disabled- Type
boolean- Default
false- Requirement
- optional
- Prop
label- Type
string- Default
"Quantity"- Requirement
- optional
Events
| Event | Payload |
|---|---|
valueChange | number |
Import
import { QuantityStepper } from "@grassroot/ui-svelte";
Props
Prop
Type
Default
Requirement
valuenumber—
optional
defaultValuenumber1optional
onChange(value: number) => void—
optional
modelValuenumber—
optional
minnumber1optional
maxnumber99optional
stepnumber1optional
size"sm" | "md""md"optional
disabledbooleanfalseoptional
labelstring"Quantity"optional
classNamestring—
optional
- Prop
value- Type
number- Default
- —
- Requirement
- optional
- Prop
defaultValue- Type
number- Default
1- Requirement
- optional
- Prop
onChange- Type
(value: number) => void- Default
- —
- Requirement
- optional
- Prop
modelValue- Type
number- Default
- —
- Requirement
- optional
- Prop
min- Type
number- Default
1- Requirement
- optional
- Prop
max- Type
number- Default
99- Requirement
- optional
- Prop
step- Type
number- Default
1- Requirement
- optional
- Prop
size- Type
"sm" | "md"- Default
"md"- Requirement
- optional
- Prop
disabled- Type
boolean- Default
false- Requirement
- optional
- Prop
label- Type
string- Default
"Quantity"- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onChange | (value: number) => void |
Import
import { createSignal } from "solid-js";
import { QuantityStepper } from "@grassroot/ui-solid";
Props
Prop
Type
Default
Requirement
valuenumber—
optional
defaultValuenumber—
optional
minnumber1optional
maxnumber99optional
stepnumber1optional
onChange(value: number) => void—
optional
size"sm" | "md""md"optional
disabledboolean—
optional
labelstring"Quantity"optional
classNamestring—
optional
- Prop
value- Type
number- Default
- —
- Requirement
- optional
- Prop
defaultValue- Type
number- Default
- —
- Requirement
- optional
- Prop
min- Type
number- Default
1- Requirement
- optional
- Prop
max- Type
number- Default
99- Requirement
- optional
- Prop
step- Type
number- Default
1- Requirement
- optional
- Prop
onChange- Type
(value: number) => void- Default
- —
- Requirement
- optional
- Prop
size- Type
"sm" | "md"- Default
"md"- Requirement
- optional
- Prop
disabled- Type
boolean- Default
- —
- Requirement
- optional
- Prop
label- Type
string- Default
"Quantity"- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onChange | (value: number) => void |