torch-glare 2.5.6 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/bin/index.js +9 -24
- package/dist/bin/index.js.map +1 -1
- package/dist/src/commands/add.d.ts +2 -2
- package/dist/src/commands/add.d.ts.map +1 -1
- package/dist/src/commands/add.js +4 -70
- package/dist/src/commands/add.js.map +1 -1
- package/dist/src/commands/hook.d.ts +5 -4
- package/dist/src/commands/hook.d.ts.map +1 -1
- package/dist/src/commands/hook.js +7 -75
- package/dist/src/commands/hook.js.map +1 -1
- package/dist/src/commands/init.js +1 -1
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/layout.d.ts +5 -4
- package/dist/src/commands/layout.d.ts.map +1 -1
- package/dist/src/commands/layout.js +7 -75
- package/dist/src/commands/layout.js.map +1 -1
- package/dist/src/commands/provider.d.ts +5 -4
- package/dist/src/commands/provider.d.ts.map +1 -1
- package/dist/src/commands/provider.js +7 -75
- package/dist/src/commands/provider.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +78 -43
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/utils.d.ts +5 -4
- package/dist/src/commands/utils.d.ts.map +1 -1
- package/dist/src/commands/utils.js +7 -80
- package/dist/src/commands/utils.js.map +1 -1
- package/dist/src/shared/addFromRegistry.d.ts +16 -0
- package/dist/src/shared/addFromRegistry.d.ts.map +1 -0
- package/dist/src/shared/addFromRegistry.js +88 -0
- package/dist/src/shared/addFromRegistry.js.map +1 -0
- package/dist/src/shared/getInstallCommand.d.ts.map +1 -1
- package/dist/src/shared/getInstallCommand.js +5 -0
- package/dist/src/shared/getInstallCommand.js.map +1 -1
- package/dist/src/shared/installDependencies.d.ts +0 -10
- package/dist/src/shared/installDependencies.d.ts.map +1 -1
- package/dist/src/shared/installDependencies.js +0 -17
- package/dist/src/shared/installDependencies.js.map +1 -1
- package/dist/src/shared/installFromPlan.d.ts +7 -5
- package/dist/src/shared/installFromPlan.d.ts.map +1 -1
- package/dist/src/shared/installFromPlan.js +103 -36
- package/dist/src/shared/installFromPlan.js.map +1 -1
- package/dist/src/shared/loadRegistry.d.ts +12 -3
- package/dist/src/shared/loadRegistry.d.ts.map +1 -1
- package/dist/src/shared/loadRegistry.js +19 -20
- package/dist/src/shared/loadRegistry.js.map +1 -1
- package/dist/src/shared/registryClient.d.ts +19 -0
- package/dist/src/shared/registryClient.d.ts.map +1 -0
- package/dist/src/shared/registryClient.js +128 -0
- package/dist/src/shared/registryClient.js.map +1 -0
- package/dist/src/shared/resolveEntry.d.ts +10 -7
- package/dist/src/shared/resolveEntry.d.ts.map +1 -1
- package/dist/src/shared/resolveEntry.js +18 -13
- package/dist/src/shared/resolveEntry.js.map +1 -1
- package/dist/src/shared/suggestOtherCommand.d.ts +7 -1
- package/dist/src/shared/suggestOtherCommand.d.ts.map +1 -1
- package/dist/src/shared/suggestOtherCommand.js +29 -23
- package/dist/src/shared/suggestOtherCommand.js.map +1 -1
- package/dist/src/types/main.d.ts +31 -2
- package/dist/src/types/main.d.ts.map +1 -1
- package/package.json +6 -11
- package/apps/lib/components/ActionButton.tsx +0 -93
- package/apps/lib/components/ActionsGroup.tsx +0 -27
- package/apps/lib/components/AlertDialog.tsx +0 -204
- package/apps/lib/components/Avatar.tsx +0 -46
- package/apps/lib/components/Badge.tsx +0 -250
- package/apps/lib/components/BadgeField.tsx +0 -403
- package/apps/lib/components/Breadcrumb.tsx +0 -280
- package/apps/lib/components/Button.tsx +0 -325
- package/apps/lib/components/ButtonGroup.tsx +0 -190
- package/apps/lib/components/Calendar.tsx +0 -115
- package/apps/lib/components/Card.tsx +0 -95
- package/apps/lib/components/Checkbox.tsx +0 -42
- package/apps/lib/components/ColorPicker.tsx +0 -441
- package/apps/lib/components/ConclusionHeader.tsx +0 -148
- package/apps/lib/components/ContextMenu.tsx +0 -571
- package/apps/lib/components/CountBadge.tsx +0 -52
- package/apps/lib/components/DataTable.tsx +0 -213
- package/apps/lib/components/DataViews/badge.ts +0 -49
- package/apps/lib/components/DataViews/cell.tsx +0 -324
- package/apps/lib/components/DataViews/context.ts +0 -144
- package/apps/lib/components/DataViews/data-views.tsx +0 -395
- package/apps/lib/components/DataViews/filters/children.tsx +0 -98
- package/apps/lib/components/DataViews/filters/custom.tsx +0 -34
- package/apps/lib/components/DataViews/filters/filters.tsx +0 -157
- package/apps/lib/components/DataViews/filters/index.ts +0 -4
- package/apps/lib/components/DataViews/filters/labelled.tsx +0 -20
- package/apps/lib/components/DataViews/filters/presets.tsx +0 -65
- package/apps/lib/components/DataViews/filters/sync.tsx +0 -35
- package/apps/lib/components/DataViews/filters/values.ts +0 -173
- package/apps/lib/components/DataViews/header.tsx +0 -220
- package/apps/lib/components/DataViews/hooks/index.ts +0 -5
- package/apps/lib/components/DataViews/hooks/useActiveRow.ts +0 -22
- package/apps/lib/components/DataViews/hooks/useControllable.ts +0 -52
- package/apps/lib/components/DataViews/index.ts +0 -88
- package/apps/lib/components/DataViews/panel/columns.tsx +0 -153
- package/apps/lib/components/DataViews/panel/controls.tsx +0 -106
- package/apps/lib/components/DataViews/panel/index.ts +0 -3
- package/apps/lib/components/DataViews/panel/panel.tsx +0 -164
- package/apps/lib/components/DataViews/panel/saved-views.tsx +0 -67
- package/apps/lib/components/DataViews/panel/section.tsx +0 -81
- package/apps/lib/components/DataViews/panel/sort.tsx +0 -42
- package/apps/lib/components/DataViews/panel/tab.tsx +0 -31
- package/apps/lib/components/DataViews/slots.ts +0 -72
- package/apps/lib/components/DataViews/states.tsx +0 -73
- package/apps/lib/components/DataViews/types.ts +0 -510
- package/apps/lib/components/DataViews/views/board-view.tsx +0 -381
- package/apps/lib/components/DataViews/views/card-rows.tsx +0 -36
- package/apps/lib/components/DataViews/views/inbox-view.tsx +0 -260
- package/apps/lib/components/DataViews/views/pane-views.tsx +0 -196
- package/apps/lib/components/DataViews/views/table-view.tsx +0 -493
- package/apps/lib/components/DataViews/views/tree-view.tsx +0 -367
- package/apps/lib/components/DatePicker.tsx +0 -232
- package/apps/lib/components/Dialog.tsx +0 -116
- package/apps/lib/components/Divider.tsx +0 -28
- package/apps/lib/components/Drawer.tsx +0 -451
- package/apps/lib/components/DropdownMenu.tsx +0 -554
- package/apps/lib/components/FieldHint.tsx +0 -69
- package/apps/lib/components/Form.tsx +0 -182
- package/apps/lib/components/FormBuilder/context.ts +0 -85
- package/apps/lib/components/FormBuilder/field-kind.ts +0 -28
- package/apps/lib/components/FormBuilder/fields/ChoiceFields.tsx +0 -60
- package/apps/lib/components/FormBuilder/fields/ColorField.tsx +0 -59
- package/apps/lib/components/FormBuilder/fields/CustomField.tsx +0 -11
- package/apps/lib/components/FormBuilder/fields/DateField.tsx +0 -32
- package/apps/lib/components/FormBuilder/fields/FieldArray.tsx +0 -74
- package/apps/lib/components/FormBuilder/fields/FieldShell.tsx +0 -168
- package/apps/lib/components/FormBuilder/fields/FileField.tsx +0 -39
- package/apps/lib/components/FormBuilder/fields/OptionListFields.tsx +0 -132
- package/apps/lib/components/FormBuilder/fields/OtpField.tsx +0 -31
- package/apps/lib/components/FormBuilder/fields/PhoneField.tsx +0 -109
- package/apps/lib/components/FormBuilder/fields/RichTextEditorField.tsx +0 -31
- package/apps/lib/components/FormBuilder/fields/SelectField.tsx +0 -114
- package/apps/lib/components/FormBuilder/fields/SignatureField.tsx +0 -157
- package/apps/lib/components/FormBuilder/fields/SliderField.tsx +0 -67
- package/apps/lib/components/FormBuilder/fields/SwitchBoxField.tsx +0 -41
- package/apps/lib/components/FormBuilder/fields/TableField.tsx +0 -336
- package/apps/lib/components/FormBuilder/fields/TextField.tsx +0 -213
- package/apps/lib/components/FormBuilder/fields/TreeSelectField.tsx +0 -43
- package/apps/lib/components/FormBuilder/fields/countries.ts +0 -303
- package/apps/lib/components/FormBuilder/fields/index.ts +0 -25
- package/apps/lib/components/FormBuilder/form-builder.tsx +0 -198
- package/apps/lib/components/FormBuilder/index.ts +0 -31
- package/apps/lib/components/FormBuilder/numberFormat.ts +0 -16
- package/apps/lib/components/FormBuilder/submit.tsx +0 -67
- package/apps/lib/components/FormBuilder/types.ts +0 -316
- package/apps/lib/components/FormRenderer/FormDrawer.tsx +0 -250
- package/apps/lib/components/FormRenderer/detail.tsx +0 -256
- package/apps/lib/components/FormRenderer/form-renderer.tsx +0 -358
- package/apps/lib/components/FormRenderer/header.tsx +0 -88
- package/apps/lib/components/FormRenderer/index.ts +0 -17
- package/apps/lib/components/FormRenderer/notch-action.tsx +0 -64
- package/apps/lib/components/FormRenderer/section.tsx +0 -39
- package/apps/lib/components/FormRenderer/stepper.tsx +0 -393
- package/apps/lib/components/FormRenderer/types.ts +0 -115
- package/apps/lib/components/FormSummary.tsx +0 -282
- package/apps/lib/components/HeaderBar.tsx +0 -117
- package/apps/lib/components/ImageAttachment.tsx +0 -209
- package/apps/lib/components/InnerLabelField.tsx +0 -154
- package/apps/lib/components/Input.tsx +0 -224
- package/apps/lib/components/InputField.tsx +0 -147
- package/apps/lib/components/InputOTP.tsx +0 -84
- package/apps/lib/components/Label.tsx +0 -129
- package/apps/lib/components/LabelField.tsx +0 -76
- package/apps/lib/components/LabeledCheckBox.tsx +0 -51
- package/apps/lib/components/LabeledRadio.tsx +0 -51
- package/apps/lib/components/LinkButton.tsx +0 -94
- package/apps/lib/components/LoginButton.tsx +0 -51
- package/apps/lib/components/PasswordLevel.tsx +0 -58
- package/apps/lib/components/Popover.tsx +0 -312
- package/apps/lib/components/ProfileMenu.tsx +0 -85
- package/apps/lib/components/Radio.tsx +0 -59
- package/apps/lib/components/RadioCard.tsx +0 -50
- package/apps/lib/components/ScrollArea.tsx +0 -54
- package/apps/lib/components/SearchField.tsx +0 -62
- package/apps/lib/components/SearchableSelect.tsx +0 -318
- package/apps/lib/components/SearchableTable.tsx +0 -344
- package/apps/lib/components/SearchableTree.tsx +0 -485
- package/apps/lib/components/SearchableTreeDialog.tsx +0 -502
- package/apps/lib/components/SectionBlock.tsx +0 -168
- package/apps/lib/components/Select.tsx +0 -347
- package/apps/lib/components/SimpleSelect.tsx +0 -225
- package/apps/lib/components/Skeleton.tsx +0 -12
- package/apps/lib/components/SlideDatePicker.tsx +0 -255
- package/apps/lib/components/SpinLoading.tsx +0 -174
- package/apps/lib/components/Stepper.tsx +0 -480
- package/apps/lib/components/Switch.tsx +0 -82
- package/apps/lib/components/TabFormItem.tsx +0 -153
- package/apps/lib/components/TabSwitch.tsx +0 -172
- package/apps/lib/components/Table.tsx +0 -597
- package/apps/lib/components/TextEditor/ChartBlockTool.ts +0 -676
- package/apps/lib/components/TextEditor/RichTextField.tsx +0 -46
- package/apps/lib/components/TextEditor/TableDnDWrapper.ts +0 -462
- package/apps/lib/components/TextEditor/TextEditor.tsx +0 -1164
- package/apps/lib/components/TextEditor/TextEditorToolbar.tsx +0 -429
- package/apps/lib/components/TextEditor/editor-tools/AlignmentTune.ts +0 -70
- package/apps/lib/components/TextEditor/editor-tools/ColorInlineTool.ts +0 -50
- package/apps/lib/components/TextEditor/editor-tools/StrikethroughInlineTool.ts +0 -48
- package/apps/lib/components/TextEditor/editor-tools/inlineFormat.ts +0 -98
- package/apps/lib/components/TextEditor/editorjs.d.ts +0 -60
- package/apps/lib/components/TextEditor/index.ts +0 -7
- package/apps/lib/components/TextEditor/markdownParser.ts +0 -346
- package/apps/lib/components/Textarea.tsx +0 -117
- package/apps/lib/components/Timeline.tsx +0 -263
- package/apps/lib/components/Toast.tsx +0 -87
- package/apps/lib/components/Toggle.tsx +0 -125
- package/apps/lib/components/ToggleButton.tsx +0 -140
- package/apps/lib/components/Tooltip.tsx +0 -116
- package/apps/lib/components/TransparentLabel.tsx +0 -71
- package/apps/lib/components/TreeDropDown.tsx +0 -115
- package/apps/lib/components/TreeFolder/TreeFolder.tsx +0 -380
- package/apps/lib/components/TreeFolder/TreeFolderBreadcrumb.tsx +0 -75
- package/apps/lib/components/TreeFolder/TreeFolderRow.tsx +0 -354
- package/apps/lib/components/TreeFolder/TreeFolderStyles.tsx +0 -60
- package/apps/lib/components/TreeFolder/icons.tsx +0 -60
- package/apps/lib/components/TreeFolder/index.ts +0 -24
- package/apps/lib/components/TreeFolder/treeFolderUtils.ts +0 -109
- package/apps/lib/components/TreeFolder/types.ts +0 -77
- package/apps/lib/components/TreeFolder/useTreeFolderDnD.ts +0 -118
- package/apps/lib/hooks/useActiveTreeItem.ts +0 -61
- package/apps/lib/hooks/useClickOutside.ts +0 -27
- package/apps/lib/hooks/useDragDrop.tsx +0 -365
- package/apps/lib/hooks/useHtmlDir.ts +0 -31
- package/apps/lib/hooks/useInfiniteScroll.ts +0 -108
- package/apps/lib/hooks/useIsMobile.ts +0 -21
- package/apps/lib/hooks/useResize.ts +0 -67
- package/apps/lib/hooks/useTagSelection.ts +0 -300
- package/apps/lib/layouts/CNLayout.tsx +0 -372
- package/apps/lib/layouts/DataViewCard.tsx +0 -62
- package/apps/lib/layouts/FieldSection.tsx +0 -91
- package/apps/lib/layouts/TreeSubLayout.tsx +0 -173
- package/apps/lib/providers/ThemeProvider.tsx +0 -84
- package/apps/lib/registry.json +0 -1217
- package/apps/lib/tsconfig.json +0 -9
- package/apps/lib/tsconfig.tsbuildinfo +0 -1
- package/apps/lib/utils/cn.ts +0 -6
- package/apps/lib/utils/color.ts +0 -175
- package/apps/lib/utils/dataViews/path.ts +0 -67
- package/apps/lib/utils/dataViews/query.ts +0 -73
- package/apps/lib/utils/dataViews/types.ts +0 -187
- package/apps/lib/utils/dateFormat.ts +0 -108
- package/apps/lib/utils/resize.ts +0 -31
- package/apps/lib/utils/scroller.ts +0 -26
- package/apps/lib/utils/types.ts +0 -16
- package/docs/BLOCKS.md +0 -129
- package/docs/CHANGELOG-1.1.16.md +0 -108
- package/docs/Cover.png +0 -0
- package/docs/README.md +0 -215
- package/docs/components/action-button.md +0 -638
- package/docs/components/actions-group.md +0 -708
- package/docs/components/alert-dialog.md +0 -920
- package/docs/components/avatar.md +0 -709
- package/docs/components/badge-field.md +0 -738
- package/docs/components/badge.md +0 -301
- package/docs/components/breadcrumb.md +0 -930
- package/docs/components/button-group.md +0 -650
- package/docs/components/button.md +0 -639
- package/docs/components/calendar.md +0 -555
- package/docs/components/card.md +0 -622
- package/docs/components/chart-block-tool.md +0 -129
- package/docs/components/checkbox.md +0 -699
- package/docs/components/cn-layout.md +0 -854
- package/docs/components/color-picker.md +0 -101
- package/docs/components/conclusion-header.md +0 -80
- package/docs/components/context-menu.md +0 -483
- package/docs/components/count-badge.md +0 -560
- package/docs/components/data-table.md +0 -854
- package/docs/components/data-views/backend-response.md +0 -324
- package/docs/components/data-views/examples/a11y-rtl.md +0 -250
- package/docs/components/data-views/examples/api-orders-route.md +0 -130
- package/docs/components/data-views/examples/fields.md +0 -362
- package/docs/components/data-views/examples/filters.md +0 -307
- package/docs/components/data-views/examples/inbox-routing.md +0 -218
- package/docs/components/data-views/examples/index.md +0 -29
- package/docs/components/data-views/examples/overview.md +0 -244
- package/docs/components/data-views/examples/panel.md +0 -212
- package/docs/components/data-views/examples/scale.md +0 -231
- package/docs/components/data-views/examples/server-side.md +0 -210
- package/docs/components/data-views/examples/state.md +0 -250
- package/docs/components/data-views/examples/tree-custom.md +0 -388
- package/docs/components/data-views/examples/view-registry.md +0 -313
- package/docs/components/data-views/examples/views.md +0 -534
- package/docs/components/data-views/guide.md +0 -405
- package/docs/components/data-views/index.md +0 -1521
- package/docs/components/data-views/migration.md +0 -81
- package/docs/components/date-picker.md +0 -857
- package/docs/components/dialog.md +0 -929
- package/docs/components/divider.md +0 -766
- package/docs/components/drawer.md +0 -654
- package/docs/components/dropdown-menu.md +0 -668
- package/docs/components/field-hint.md +0 -898
- package/docs/components/field-section.md +0 -781
- package/docs/components/form-builder.md +0 -284
- package/docs/components/form-renderer.md +0 -396
- package/docs/components/form-summary.md +0 -138
- package/docs/components/form.md +0 -785
- package/docs/components/header-bar.md +0 -188
- package/docs/components/image-attachment.md +0 -906
- package/docs/components/inner-label-field.md +0 -819
- package/docs/components/input-field.md +0 -623
- package/docs/components/input-otp.md +0 -756
- package/docs/components/input.md +0 -634
- package/docs/components/label-field.md +0 -770
- package/docs/components/label.md +0 -761
- package/docs/components/labeled-check-box.md +0 -642
- package/docs/components/labeled-radio.md +0 -796
- package/docs/components/link-button.md +0 -685
- package/docs/components/login-button.md +0 -872
- package/docs/components/password-level.md +0 -803
- package/docs/components/popover.md +0 -649
- package/docs/components/profile-menu.md +0 -656
- package/docs/components/radio-card.md +0 -801
- package/docs/components/radio.md +0 -735
- package/docs/components/scroll-area.md +0 -691
- package/docs/components/search-field.md +0 -702
- package/docs/components/searchable-select.md +0 -368
- package/docs/components/searchable-table.md +0 -438
- package/docs/components/searchable-tree-dialog.md +0 -190
- package/docs/components/searchable-tree.md +0 -200
- package/docs/components/section-block.md +0 -483
- package/docs/components/select.md +0 -709
- package/docs/components/simple-select.md +0 -741
- package/docs/components/skeleton.md +0 -706
- package/docs/components/slide-date-picker.md +0 -837
- package/docs/components/spin-loading.md +0 -696
- package/docs/components/stepper.md +0 -316
- package/docs/components/switch.md +0 -770
- package/docs/components/tab-form-item.md +0 -773
- package/docs/components/tab-switch.md +0 -170
- package/docs/components/table-dnd-wrapper.md +0 -107
- package/docs/components/table.md +0 -1088
- package/docs/components/text-editor.md +0 -735
- package/docs/components/textarea.md +0 -681
- package/docs/components/timeline.md +0 -254
- package/docs/components/toast.md +0 -773
- package/docs/components/toggle-button.md +0 -643
- package/docs/components/toggle.md +0 -882
- package/docs/components/tooltip.md +0 -513
- package/docs/components/transparent-label.md +0 -721
- package/docs/components/tree-drop-down.md +0 -740
- package/docs/components/tree-folder.md +0 -110
- package/docs/components/tree-sub-layout.md +0 -707
- package/docs/explanation/architecture.md +0 -54
- package/docs/explanation/design-system.md +0 -52
- package/docs/how-to/form-and-list-recipes.md +0 -386
- package/docs/how-to/forms-with-form-builder.md +0 -472
- package/docs/how-to/guides.md +0 -1027
- package/docs/migration/changelog.md +0 -60
- package/docs/migration/form-builder-2.5.2.md +0 -113
- package/docs/reference/cli.md +0 -112
- package/docs/reference/components.md +0 -572
- package/docs/reference/hooks.md +0 -1523
- package/docs/reference/providers.md +0 -866
- package/docs/reference/tailwind-plugins.md +0 -942
- package/docs/reference/theme.md +0 -85
- package/docs/reference/types.md +0 -1016
- package/docs/reference/utilities.md +0 -726
- package/docs/tutorials/building-first-form.md +0 -846
- package/docs/tutorials/component-composition.md +0 -882
- package/docs/tutorials/getting-started.md +0 -302
- package/docs/tutorials/theming-basics.md +0 -785
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Stepper
|
|
3
|
-
description: The pill-shaped multi-step indicator — three semantic types (default, success, negative), horizontal or vertical, three sizes. Composed of Stepper, Step, StepIndicator, StepConnector and StepLabel.
|
|
4
|
-
component: true
|
|
5
|
-
group: Forms
|
|
6
|
-
keywords: [stepper, steps, wizard, progress, multi-step, vertical, horizontal]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Stepper
|
|
10
|
-
|
|
11
|
-
The step-progress component for wizards, onboarding flows, and multi-section forms, drawn as the Figma `FormStepper-1.0` pill. Each step has a semantic `type` — `default`, `success`, `negative` — and a selected state derived from `activeStep` or set explicitly per `Step`.
|
|
12
|
-
|
|
13
|
-
Not to be confused with `FormRenderer.Stepper`, which is the wizard *behaviour* (step state, validation, Back/Next) and renders this component as its rail.
|
|
14
|
-
|
|
15
|
-
The component is composed of `Stepper`, `Step`, `StepIndicator`, `StepConnector` and `StepLabel`. It is the single stepper in the library — the former `FormStepper` merged into it, so its types, states and badge live here alongside the orientation, sizes and connector.
|
|
16
|
-
|
|
17
|
-
## Installation
|
|
18
|
-
|
|
19
|
-
TORCH Glare is a copy-in library: the CLI copies this component's source into your project
|
|
20
|
-
(you do **not** install it from the npm package). Run `init` once, then `add`:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
npx torch-glare@latest init
|
|
24
|
-
npx torch-glare@latest add Stepper
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
`add` also copies any components, hooks, and utilities that `Stepper` depends on.
|
|
28
|
-
|
|
29
|
-
## Imports
|
|
30
|
-
|
|
31
|
-
```typescript
|
|
32
|
-
import {
|
|
33
|
-
Stepper,
|
|
34
|
-
Step,
|
|
35
|
-
StepIndicator,
|
|
36
|
-
StepConnector,
|
|
37
|
-
StepLabel,
|
|
38
|
-
} from '@/components/Stepper'
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Basic Usage
|
|
42
|
-
|
|
43
|
-
```tsx
|
|
44
|
-
import { useState } from 'react'
|
|
45
|
-
import {
|
|
46
|
-
Stepper,
|
|
47
|
-
Step,
|
|
48
|
-
StepIndicator,
|
|
49
|
-
StepConnector,
|
|
50
|
-
StepLabel,
|
|
51
|
-
} from '@/components/Stepper'
|
|
52
|
-
|
|
53
|
-
export function BasicStepper() {
|
|
54
|
-
const [activeStep, setActiveStep] = useState(1)
|
|
55
|
-
|
|
56
|
-
return (
|
|
57
|
-
<Stepper activeStep={activeStep}>
|
|
58
|
-
<Step index={0}>
|
|
59
|
-
<StepIndicator />
|
|
60
|
-
<StepLabel>Account</StepLabel>
|
|
61
|
-
</Step>
|
|
62
|
-
<StepConnector />
|
|
63
|
-
<Step index={1}>
|
|
64
|
-
<StepIndicator />
|
|
65
|
-
<StepLabel>Profile</StepLabel>
|
|
66
|
-
</Step>
|
|
67
|
-
<StepConnector />
|
|
68
|
-
<Step index={2}>
|
|
69
|
-
<StepIndicator />
|
|
70
|
-
<StepLabel>Confirm</StepLabel>
|
|
71
|
-
</Step>
|
|
72
|
-
</Stepper>
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
State derivation: `index === activeStep` → selected. Pass `selected` on a `Step` to override it, and `type` to mark a step as `success` or `negative`.
|
|
78
|
-
|
|
79
|
-
## Examples
|
|
80
|
-
|
|
81
|
-
### Vertical orientation with descriptions
|
|
82
|
-
|
|
83
|
-
```tsx
|
|
84
|
-
<Stepper orientation="vertical" activeStep={1}>
|
|
85
|
-
<Step index={0}>
|
|
86
|
-
<StepIndicator />
|
|
87
|
-
<div>
|
|
88
|
-
<StepLabel>Create account</StepLabel>
|
|
89
|
-
</div>
|
|
90
|
-
</Step>
|
|
91
|
-
<StepConnector />
|
|
92
|
-
<Step index={1}>
|
|
93
|
-
<StepIndicator />
|
|
94
|
-
<div>
|
|
95
|
-
<StepLabel>Verify email</StepLabel>
|
|
96
|
-
</div>
|
|
97
|
-
</Step>
|
|
98
|
-
<StepConnector />
|
|
99
|
-
<Step index={2}>
|
|
100
|
-
<StepIndicator />
|
|
101
|
-
<div>
|
|
102
|
-
<StepLabel>Done</StepLabel>
|
|
103
|
-
</div>
|
|
104
|
-
</Step>
|
|
105
|
-
</Stepper>
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
### Error state
|
|
109
|
-
|
|
110
|
-
```tsx
|
|
111
|
-
<Stepper activeStep={2}>
|
|
112
|
-
<Step index={0}>
|
|
113
|
-
<StepIndicator />
|
|
114
|
-
<StepLabel>Account</StepLabel>
|
|
115
|
-
</Step>
|
|
116
|
-
<StepConnector />
|
|
117
|
-
<Step index={1} type="negative">
|
|
118
|
-
<StepIndicator />
|
|
119
|
-
<StepLabel>Payment</StepLabel>
|
|
120
|
-
</Step>
|
|
121
|
-
<StepConnector />
|
|
122
|
-
<Step index={2}>
|
|
123
|
-
<StepIndicator />
|
|
124
|
-
<StepLabel>Confirm</StepLabel>
|
|
125
|
-
</Step>
|
|
126
|
-
</Stepper>
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
`StepIndicator` auto-renders a check icon for `completed`, a close icon for `error`, and the step number otherwise. Override via `icon`, `completedIcon`, or `errorIcon`.
|
|
130
|
-
|
|
131
|
-
### Custom indicators
|
|
132
|
-
|
|
133
|
-
```tsx
|
|
134
|
-
<Step index={0} type="success">
|
|
135
|
-
<StepIndicator
|
|
136
|
-
completedIcon={<i className="ri-shield-check-line" />}
|
|
137
|
-
errorIcon={<i className="ri-shield-cross-line" />}
|
|
138
|
-
/>
|
|
139
|
-
<StepLabel>Verified</StepLabel>
|
|
140
|
-
</Step>
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Sizes
|
|
144
|
-
|
|
145
|
-
```tsx
|
|
146
|
-
<Stepper size="S" activeStep={1}> {/* 24px pill, 20px indicator */} </Stepper>
|
|
147
|
-
<Stepper size="M" activeStep={1}> {/* 28px pill, 24px indicator — default, the size Figma draws */} </Stepper>
|
|
148
|
-
<Stepper size="L" activeStep={1}> {/* 34px pill, 30px indicator */} </Stepper>
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### Step Types
|
|
152
|
-
|
|
153
|
-
Three semantic types. `success` and `negative` add a small status badge on the indicator (check / info icon) and use filled colors when selected. `default` uses a gray ring at rest, blue ring on hover, and a solid blue fill when selected.
|
|
154
|
-
|
|
155
|
-
```tsx
|
|
156
|
-
export function StepTypes() {
|
|
157
|
-
return (
|
|
158
|
-
<Stepper>
|
|
159
|
-
<Step index={0} type="default" selected={false}>
|
|
160
|
-
<StepIndicator />
|
|
161
|
-
<StepLabel>Default</StepLabel>
|
|
162
|
-
</Step>
|
|
163
|
-
<Step index={1} type="success" selected={false}>
|
|
164
|
-
<StepIndicator />
|
|
165
|
-
<StepLabel>Success</StepLabel>
|
|
166
|
-
</Step>
|
|
167
|
-
<Step index={2} type="negative" selected={false}>
|
|
168
|
-
<StepIndicator />
|
|
169
|
-
<StepLabel>Negative</StepLabel>
|
|
170
|
-
</Step>
|
|
171
|
-
</Stepper>
|
|
172
|
-
)
|
|
173
|
-
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### Selected state
|
|
177
|
-
|
|
178
|
-
```tsx
|
|
179
|
-
export function SelectedSteps() {
|
|
180
|
-
return (
|
|
181
|
-
<Stepper>
|
|
182
|
-
<Step index={0} type="default" selected>
|
|
183
|
-
<StepIndicator />
|
|
184
|
-
<StepLabel>Default</StepLabel>
|
|
185
|
-
</Step>
|
|
186
|
-
<Step index={1} type="success" selected>
|
|
187
|
-
<StepIndicator />
|
|
188
|
-
<StepLabel>Success</StepLabel>
|
|
189
|
-
</Step>
|
|
190
|
-
<Step index={2} type="negative" selected>
|
|
191
|
-
<StepIndicator />
|
|
192
|
-
<StepLabel>Negative</StepLabel>
|
|
193
|
-
</Step>
|
|
194
|
-
</Stepper>
|
|
195
|
-
)
|
|
196
|
-
}
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### RTL direction
|
|
200
|
-
|
|
201
|
-
The pill, label spacing, and indicator badge all flip under `dir="rtl"`.
|
|
202
|
-
|
|
203
|
-
```tsx
|
|
204
|
-
export function RTLStepper() {
|
|
205
|
-
return (
|
|
206
|
-
<div dir="rtl">
|
|
207
|
-
<Stepper>
|
|
208
|
-
<Step index={0} type="default" selected>
|
|
209
|
-
<StepIndicator />
|
|
210
|
-
<StepLabel>افتراضي</StepLabel>
|
|
211
|
-
</Step>
|
|
212
|
-
<Step index={1} type="success">
|
|
213
|
-
<StepIndicator />
|
|
214
|
-
<StepLabel>نجاح</StepLabel>
|
|
215
|
-
</Step>
|
|
216
|
-
<Step index={2} type="negative">
|
|
217
|
-
<StepIndicator />
|
|
218
|
-
<StepLabel>خطأ</StepLabel>
|
|
219
|
-
</Step>
|
|
220
|
-
</Stepper>
|
|
221
|
-
</div>
|
|
222
|
-
)
|
|
223
|
-
}
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### Custom badge icon
|
|
227
|
-
|
|
228
|
-
`StepIndicator.badgeIcon` overrides the default check / info icon for `success` / `negative` types.
|
|
229
|
-
|
|
230
|
-
```tsx
|
|
231
|
-
<Step index={0} type="success" selected>
|
|
232
|
-
<StepIndicator badgeIcon={<i className="ri-shield-check-line" />} />
|
|
233
|
-
<StepLabel>Verified</StepLabel>
|
|
234
|
-
</Step>
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
### Custom indicator content
|
|
238
|
-
|
|
239
|
-
Children of `StepIndicator` replace the auto-rendered step number.
|
|
240
|
-
|
|
241
|
-
```tsx
|
|
242
|
-
<Step index={0} type="default" selected>
|
|
243
|
-
<StepIndicator>
|
|
244
|
-
<i className="ri-user-line" />
|
|
245
|
-
</StepIndicator>
|
|
246
|
-
<StepLabel>Account</StepLabel>
|
|
247
|
-
</Step>
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
## API Reference
|
|
251
|
-
|
|
252
|
-
### Stepper
|
|
253
|
-
|
|
254
|
-
| Prop | Type | Default | Description |
|
|
255
|
-
| ------------- | --------------------------------- | -------------- | ---------------------------------------------------- |
|
|
256
|
-
| `activeStep` | `number` | `0` | Zero-based index of the active step. |
|
|
257
|
-
| `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout direction. |
|
|
258
|
-
| `size` | `'S' \| 'M' \| 'L'` | `'M'` | Indicator size for all children. |
|
|
259
|
-
| `theme` | `'dark' \| 'light' \| 'default'` | — | Theme override applied via `data-theme`. |
|
|
260
|
-
|
|
261
|
-
### Step
|
|
262
|
-
|
|
263
|
-
| Prop | Type | Default | Description |
|
|
264
|
-
| ------------- | --------- | ------- | ------------------------------------------------------------ |
|
|
265
|
-
| `index` | `number` | `0` | Zero-based step index. Compared with `Stepper.activeStep`. |
|
|
266
|
-
| `type` | `'default' \| 'success' \| 'negative'` | `'default'` | Semantic state. `success`/`negative` fill the indicator and add a corner badge. |
|
|
267
|
-
| `selected` | `boolean` | `index === activeStep` | Force the selected state. |
|
|
268
|
-
|
|
269
|
-
### StepIndicator
|
|
270
|
-
|
|
271
|
-
| Prop | Type | Default | Description |
|
|
272
|
-
| --------------- | ----------- | ------- | ------------------------------------------------- |
|
|
273
|
-
| `icon` | `ReactNode` | — | Replaces the step number. |
|
|
274
|
-
| `completedIcon` | `ReactNode` | — | Replaces the default check icon when completed. |
|
|
275
|
-
| `errorIcon` | `ReactNode` | — | Replaces the default close icon on error. |
|
|
276
|
-
|
|
277
|
-
### StepConnector
|
|
278
|
-
|
|
279
|
-
The line between steps. No props beyond standard HTML attributes — orientation comes from the parent `Stepper`.
|
|
280
|
-
|
|
281
|
-
### StepLabel
|
|
282
|
-
|
|
283
|
-
Forward `HTMLAttributes<HTMLDivElement>`. Their colors follow the parent `Step` state automatically.
|
|
284
|
-
|
|
285
|
-
## Styling
|
|
286
|
-
|
|
287
|
-
- Default state: `bg-background-presentation-action-disabled`, gray border, disabled foreground.
|
|
288
|
-
- Active: blue informational background + focus ring.
|
|
289
|
-
- Completed: green success background and ring; check icon.
|
|
290
|
-
- Error: red negative background and ring; close icon.
|
|
291
|
-
- Connectors: `3px` rounded bar, `border-presentation-stepper-default` by default and focus-blue when `completed` is set. Vertically it centres itself under the indicator, tracking the stepper's size.
|
|
292
|
-
|
|
293
|
-
## TypeScript Types
|
|
294
|
-
|
|
295
|
-
```typescript
|
|
296
|
-
import type { VariantProps } from 'class-variance-authority'
|
|
297
|
-
import type { stepperStyles, stepIndicatorStyles } from '@/components/Stepper'
|
|
298
|
-
|
|
299
|
-
type StepperVariants = VariantProps<typeof stepperStyles>
|
|
300
|
-
// { orientation?: 'horizontal' | 'vertical' }
|
|
301
|
-
|
|
302
|
-
type IndicatorVariants = VariantProps<typeof stepIndicatorStyles>
|
|
303
|
-
// { type?: 'default' | 'success' | 'negative'; selected?: boolean; size?: 'S' | 'M' | 'L' }
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
## Accessibility
|
|
307
|
-
|
|
308
|
-
- Wrap the stepper in a `<nav aria-label="Progress">` when it represents real navigation.
|
|
309
|
-
- Use `aria-current="step"` on the active step's container when steps are interactive.
|
|
310
|
-
- Don't rely on colour alone for the negative type — pair it with an off-screen message.
|
|
311
|
-
|
|
312
|
-
## Best Practices
|
|
313
|
-
|
|
314
|
-
1. Add `StepConnector` between steps when you want the run of progress drawn; leave it out for a bare row of pills.
|
|
315
|
-
2. Keep `Step` count to 3–5 horizontal, 3–7 vertical. Beyond that, switch to a checklist or summary.
|
|
316
|
-
3. Drive selection from `activeStep` in the parent — only fall back to `selected` for non-linear flows.
|