@shadow-library/ui 0.1.2 → 1.0.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 +21 -23
- package/components/Accordion/Accordion.context.d.ts +7 -0
- package/components/Accordion/Accordion.context.js +6 -0
- package/components/Accordion/Accordion.context.js.map +1 -0
- package/components/Accordion/Accordion.d.ts +12 -0
- package/components/Accordion/Accordion.js +34 -0
- package/components/Accordion/Accordion.js.map +1 -0
- package/components/Accordion/Accordion.module.css.js +4 -0
- package/components/Accordion/Accordion.module.css.js.map +1 -0
- package/components/Accordion/Accordion.types.d.ts +39 -0
- package/components/Accordion/index.d.ts +2 -0
- package/components/Alert/Alert.d.ts +8 -0
- package/components/Alert/Alert.js +26 -0
- package/components/Alert/Alert.js.map +1 -0
- package/components/Alert/Alert.module.css.js +4 -0
- package/components/Alert/Alert.module.css.js.map +1 -0
- package/components/Alert/Alert.types.d.ts +22 -0
- package/components/Alert/index.d.ts +2 -0
- package/components/Avatar/Avatar.context.d.ts +9 -0
- package/components/Avatar/Avatar.context.js +6 -0
- package/components/Avatar/Avatar.context.js.map +1 -0
- package/components/Avatar/Avatar.d.ts +13 -0
- package/components/Avatar/Avatar.js +66 -0
- package/components/Avatar/Avatar.js.map +1 -0
- package/components/Avatar/Avatar.module.css.js +4 -0
- package/components/Avatar/Avatar.module.css.js.map +1 -0
- package/components/Avatar/Avatar.types.d.ts +32 -0
- package/components/Avatar/index.d.ts +2 -0
- package/components/Badge/Badge.d.ts +8 -0
- package/components/Badge/Badge.js +23 -0
- package/components/Badge/Badge.js.map +1 -0
- package/components/Badge/Badge.module.css.js +4 -0
- package/components/Badge/Badge.module.css.js.map +1 -0
- package/components/Badge/Badge.types.d.ts +25 -0
- package/components/Badge/index.d.ts +2 -0
- package/components/Banner/Banner.d.ts +8 -0
- package/components/Banner/Banner.js +74 -0
- package/components/Banner/Banner.js.map +1 -0
- package/components/Banner/Banner.module.css.js +4 -0
- package/components/Banner/Banner.module.css.js.map +1 -0
- package/components/Banner/Banner.provider.d.ts +20 -0
- package/components/Banner/Banner.provider.js +34 -0
- package/components/Banner/Banner.provider.js.map +1 -0
- package/components/Banner/Banner.store.d.ts +18 -0
- package/components/Banner/Banner.store.js +62 -0
- package/components/Banner/Banner.store.js.map +1 -0
- package/components/Banner/Banner.types.d.ts +42 -0
- package/components/Banner/index.d.ts +4 -0
- package/components/BottomSheet/BottomSheet.d.ts +8 -0
- package/components/BottomSheet/BottomSheet.js +127 -0
- package/components/BottomSheet/BottomSheet.js.map +1 -0
- package/components/BottomSheet/BottomSheet.module.css.js +4 -0
- package/components/BottomSheet/BottomSheet.module.css.js.map +1 -0
- package/components/BottomSheet/BottomSheet.types.d.ts +34 -0
- package/components/BottomSheet/index.d.ts +2 -0
- package/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/components/Breadcrumbs/Breadcrumbs.js +39 -0
- package/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/components/Breadcrumbs/Breadcrumbs.module.css.js +4 -0
- package/components/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
- package/components/Breadcrumbs/Breadcrumbs.types.d.ts +17 -0
- package/components/Breadcrumbs/index.d.ts +2 -0
- package/components/Button/Button.d.ts +12 -0
- package/components/Button/Button.js +52 -0
- package/components/Button/Button.js.map +1 -0
- package/components/Button/Button.module.css.js +4 -0
- package/components/Button/Button.module.css.js.map +1 -0
- package/components/Button/Button.types.d.ts +34 -0
- package/components/Button/index.d.ts +2 -0
- package/components/ButtonGroup/ButtonGroup.context.d.ts +23 -0
- package/components/ButtonGroup/ButtonGroup.context.js +9 -0
- package/components/ButtonGroup/ButtonGroup.context.js.map +1 -0
- package/components/ButtonGroup/ButtonGroup.d.ts +7 -0
- package/components/ButtonGroup/ButtonGroup.js +92 -0
- package/components/ButtonGroup/ButtonGroup.js.map +1 -0
- package/components/ButtonGroup/ButtonGroup.module.css.js +4 -0
- package/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -0
- package/components/ButtonGroup/ButtonGroup.types.d.ts +28 -0
- package/components/ButtonGroup/index.d.ts +3 -0
- package/components/Calendar/Calendar.d.ts +8 -0
- package/components/Calendar/Calendar.js +197 -0
- package/components/Calendar/Calendar.js.map +1 -0
- package/components/Calendar/Calendar.module.css.js +4 -0
- package/components/Calendar/Calendar.module.css.js.map +1 -0
- package/components/Calendar/Calendar.types.d.ts +32 -0
- package/components/Calendar/index.d.ts +2 -0
- package/components/Card/Card.d.ts +6 -0
- package/components/Card/Card.js +36 -0
- package/components/Card/Card.js.map +1 -0
- package/components/Card/Card.module.css.js +4 -0
- package/components/Card/Card.module.css.js.map +1 -0
- package/components/Card/Card.types.d.ts +30 -0
- package/components/Card/index.d.ts +2 -0
- package/components/Checkbox/Checkbox.d.ts +7 -0
- package/components/Checkbox/Checkbox.js +46 -0
- package/components/Checkbox/Checkbox.js.map +1 -0
- package/components/Checkbox/Checkbox.module.css.js +4 -0
- package/components/Checkbox/Checkbox.module.css.js.map +1 -0
- package/components/Checkbox/Checkbox.types.d.ts +19 -0
- package/components/Checkbox/index.d.ts +2 -0
- package/components/ColorPicker/ColorPicker.d.ts +10 -0
- package/components/ColorPicker/ColorPicker.js +340 -0
- package/components/ColorPicker/ColorPicker.js.map +1 -0
- package/components/ColorPicker/ColorPicker.module.css.js +4 -0
- package/components/ColorPicker/ColorPicker.module.css.js.map +1 -0
- package/components/ColorPicker/ColorPicker.types.d.ts +33 -0
- package/components/ColorPicker/index.d.ts +2 -0
- package/components/Combobox/Combobox.d.ts +9 -0
- package/components/Combobox/Combobox.js +316 -0
- package/components/Combobox/Combobox.js.map +1 -0
- package/components/Combobox/Combobox.module.css.js +4 -0
- package/components/Combobox/Combobox.module.css.js.map +1 -0
- package/components/Combobox/Combobox.types.d.ts +57 -0
- package/components/Combobox/index.d.ts +2 -0
- package/components/CommandPalette/CommandPalette.d.ts +9 -0
- package/components/CommandPalette/CommandPalette.js +197 -0
- package/components/CommandPalette/CommandPalette.js.map +1 -0
- package/components/CommandPalette/CommandPalette.module.css.js +4 -0
- package/components/CommandPalette/CommandPalette.module.css.js.map +1 -0
- package/components/CommandPalette/CommandPalette.types.d.ts +41 -0
- package/components/CommandPalette/index.d.ts +2 -0
- package/components/ContextMenu/ContextMenu.d.ts +34 -0
- package/components/ContextMenu/ContextMenu.js +98 -0
- package/components/ContextMenu/ContextMenu.js.map +1 -0
- package/components/ContextMenu/ContextMenu.types.d.ts +30 -0
- package/components/ContextMenu/index.d.ts +2 -0
- package/components/DataGrid/DataGrid.d.ts +8 -0
- package/components/DataGrid/DataGrid.js +192 -0
- package/components/DataGrid/DataGrid.js.map +1 -0
- package/components/DataGrid/DataGrid.module.css.js +4 -0
- package/components/DataGrid/DataGrid.module.css.js.map +1 -0
- package/components/DataGrid/DataGrid.types.d.ts +43 -0
- package/components/DataGrid/index.d.ts +2 -0
- package/components/DatePicker/DatePicker.d.ts +9 -0
- package/components/DatePicker/DatePicker.js +218 -0
- package/components/DatePicker/DatePicker.js.map +1 -0
- package/components/DatePicker/DatePicker.module.css.js +4 -0
- package/components/DatePicker/DatePicker.module.css.js.map +1 -0
- package/components/DatePicker/DatePicker.types.d.ts +39 -0
- package/components/DatePicker/index.d.ts +2 -0
- package/components/DateRangePicker/DateRangePicker.d.ts +8 -0
- package/components/DateRangePicker/DateRangePicker.js +139 -0
- package/components/DateRangePicker/DateRangePicker.js.map +1 -0
- package/components/DateRangePicker/DateRangePicker.module.css.js +4 -0
- package/components/DateRangePicker/DateRangePicker.module.css.js.map +1 -0
- package/components/DateRangePicker/DateRangePicker.types.d.ts +34 -0
- package/components/DateRangePicker/index.d.ts +2 -0
- package/components/DescriptionList/DescriptionList.d.ts +12 -0
- package/components/DescriptionList/DescriptionList.js +96 -0
- package/components/DescriptionList/DescriptionList.js.map +1 -0
- package/components/DescriptionList/DescriptionList.module.css.js +4 -0
- package/components/DescriptionList/DescriptionList.module.css.js.map +1 -0
- package/components/DescriptionList/DescriptionList.types.d.ts +35 -0
- package/components/DescriptionList/index.d.ts +2 -0
- package/components/Dialog/Dialog.d.ts +30 -0
- package/components/Dialog/Dialog.js +89 -0
- package/components/Dialog/Dialog.js.map +1 -0
- package/components/Dialog/Dialog.module.css.js +4 -0
- package/components/Dialog/Dialog.module.css.js.map +1 -0
- package/components/Dialog/Dialog.types.d.ts +59 -0
- package/components/Dialog/index.d.ts +2 -0
- package/components/Drawer/Drawer.context.d.ts +9 -0
- package/components/Drawer/Drawer.context.js +7 -0
- package/components/Drawer/Drawer.context.js.map +1 -0
- package/components/Drawer/Drawer.d.ts +20 -0
- package/components/Drawer/Drawer.js +63 -0
- package/components/Drawer/Drawer.js.map +1 -0
- package/components/Drawer/Drawer.module.css.js +4 -0
- package/components/Drawer/Drawer.module.css.js.map +1 -0
- package/components/Drawer/Drawer.types.d.ts +42 -0
- package/components/Drawer/index.d.ts +2 -0
- package/components/DropdownMenu/DropdownMenu.d.ts +33 -0
- package/components/DropdownMenu/DropdownMenu.js +98 -0
- package/components/DropdownMenu/DropdownMenu.js.map +1 -0
- package/components/DropdownMenu/DropdownMenu.module.css.js +4 -0
- package/components/DropdownMenu/DropdownMenu.module.css.js.map +1 -0
- package/components/DropdownMenu/DropdownMenu.types.d.ts +34 -0
- package/components/DropdownMenu/index.d.ts +2 -0
- package/components/EmptyState/EmptyState.d.ts +8 -0
- package/components/EmptyState/EmptyState.js +24 -0
- package/components/EmptyState/EmptyState.js.map +1 -0
- package/components/EmptyState/EmptyState.module.css.js +4 -0
- package/components/EmptyState/EmptyState.module.css.js.map +1 -0
- package/components/EmptyState/EmptyState.types.d.ts +26 -0
- package/components/EmptyState/index.d.ts +2 -0
- package/components/FileUpload/FileUpload.d.ts +9 -0
- package/components/FileUpload/FileUpload.js +174 -0
- package/components/FileUpload/FileUpload.js.map +1 -0
- package/components/FileUpload/FileUpload.module.css.js +4 -0
- package/components/FileUpload/FileUpload.module.css.js.map +1 -0
- package/components/FileUpload/FileUpload.types.d.ts +41 -0
- package/components/FileUpload/index.d.ts +2 -0
- package/components/FormField/FormField.context.d.ts +22 -0
- package/components/FormField/FormField.context.js +9 -0
- package/components/FormField/FormField.context.js.map +1 -0
- package/components/FormField/FormField.d.ts +8 -0
- package/components/FormField/FormField.js +44 -0
- package/components/FormField/FormField.js.map +1 -0
- package/components/FormField/FormField.module.css.js +4 -0
- package/components/FormField/FormField.module.css.js.map +1 -0
- package/components/FormField/FormField.types.d.ts +28 -0
- package/components/FormField/index.d.ts +3 -0
- package/components/HoverCard/HoverCard.d.ts +10 -0
- package/components/HoverCard/HoverCard.js +59 -0
- package/components/HoverCard/HoverCard.js.map +1 -0
- package/components/HoverCard/HoverCard.module.css.js +4 -0
- package/components/HoverCard/HoverCard.module.css.js.map +1 -0
- package/components/HoverCard/HoverCard.types.d.ts +35 -0
- package/components/HoverCard/index.d.ts +2 -0
- package/components/IconButton/IconButton.d.ts +13 -0
- package/components/IconButton/IconButton.js +44 -0
- package/components/IconButton/IconButton.js.map +1 -0
- package/components/IconButton/IconButton.module.css.js +4 -0
- package/components/IconButton/IconButton.module.css.js.map +1 -0
- package/components/IconButton/IconButton.types.d.ts +29 -0
- package/components/IconButton/index.d.ts +2 -0
- package/components/Input/Input.d.ts +9 -0
- package/components/Input/Input.js +102 -0
- package/components/Input/Input.js.map +1 -0
- package/components/Input/Input.module.css.js +4 -0
- package/components/Input/Input.module.css.js.map +1 -0
- package/components/Input/Input.types.d.ts +32 -0
- package/components/Input/index.d.ts +2 -0
- package/components/Kbd/Kbd.d.ts +9 -0
- package/components/Kbd/Kbd.js +65 -0
- package/components/Kbd/Kbd.js.map +1 -0
- package/components/Kbd/Kbd.module.css.js +4 -0
- package/components/Kbd/Kbd.module.css.js.map +1 -0
- package/components/Kbd/Kbd.types.d.ts +15 -0
- package/components/Kbd/index.d.ts +2 -0
- package/components/MultiSelect/MultiSelect.d.ts +7 -0
- package/components/MultiSelect/MultiSelect.js +297 -0
- package/components/MultiSelect/MultiSelect.js.map +1 -0
- package/components/MultiSelect/MultiSelect.module.css.js +4 -0
- package/components/MultiSelect/MultiSelect.module.css.js.map +1 -0
- package/components/MultiSelect/MultiSelect.types.d.ts +60 -0
- package/components/MultiSelect/index.d.ts +2 -0
- package/components/NotificationCenter/NotificationCenter.d.ts +9 -0
- package/components/NotificationCenter/NotificationCenter.js +83 -0
- package/components/NotificationCenter/NotificationCenter.js.map +1 -0
- package/components/NotificationCenter/NotificationCenter.module.css.js +4 -0
- package/components/NotificationCenter/NotificationCenter.module.css.js.map +1 -0
- package/components/NotificationCenter/NotificationCenter.types.d.ts +95 -0
- package/components/NotificationCenter/NotificationList.d.ts +8 -0
- package/components/NotificationCenter/NotificationList.js +105 -0
- package/components/NotificationCenter/NotificationList.js.map +1 -0
- package/components/NotificationCenter/index.d.ts +3 -0
- package/components/NumberStepper/NumberStepper.d.ts +9 -0
- package/components/NumberStepper/NumberStepper.js +184 -0
- package/components/NumberStepper/NumberStepper.js.map +1 -0
- package/components/NumberStepper/NumberStepper.module.css.js +4 -0
- package/components/NumberStepper/NumberStepper.module.css.js.map +1 -0
- package/components/NumberStepper/NumberStepper.types.d.ts +36 -0
- package/components/NumberStepper/index.d.ts +2 -0
- package/components/OtpInput/OtpInput.d.ts +11 -0
- package/components/OtpInput/OtpInput.js +143 -0
- package/components/OtpInput/OtpInput.js.map +1 -0
- package/components/OtpInput/OtpInput.module.css.js +4 -0
- package/components/OtpInput/OtpInput.module.css.js.map +1 -0
- package/components/OtpInput/OtpInput.types.d.ts +45 -0
- package/components/OtpInput/index.d.ts +2 -0
- package/components/Pagination/Pagination.d.ts +8 -0
- package/components/Pagination/Pagination.js +100 -0
- package/components/Pagination/Pagination.js.map +1 -0
- package/components/Pagination/Pagination.module.css.js +4 -0
- package/components/Pagination/Pagination.module.css.js.map +1 -0
- package/components/Pagination/Pagination.types.d.ts +32 -0
- package/components/Pagination/index.d.ts +2 -0
- package/components/Popover/Popover.d.ts +22 -0
- package/components/Popover/Popover.js +48 -0
- package/components/Popover/Popover.js.map +1 -0
- package/components/Popover/Popover.module.css.js +4 -0
- package/components/Popover/Popover.module.css.js.map +1 -0
- package/components/Popover/Popover.types.d.ts +23 -0
- package/components/Popover/index.d.ts +2 -0
- package/components/Progress/Progress.d.ts +7 -0
- package/components/Progress/Progress.js +36 -0
- package/components/Progress/Progress.js.map +1 -0
- package/components/Progress/Progress.module.css.js +4 -0
- package/components/Progress/Progress.module.css.js.map +1 -0
- package/components/Progress/Progress.types.d.ts +23 -0
- package/components/Progress/index.d.ts +2 -0
- package/components/RTEField/RTEField.d.ts +23 -0
- package/components/RTEField/RTEField.js +152 -0
- package/components/RTEField/RTEField.js.map +1 -0
- package/components/RTEField/RTEField.module.css.js +4 -0
- package/components/RTEField/RTEField.module.css.js.map +1 -0
- package/components/RTEField/RTEField.types.d.ts +61 -0
- package/components/RTEField/index.d.ts +2 -0
- package/components/RadioGroup/RadioGroup.context.d.ts +15 -0
- package/components/RadioGroup/RadioGroup.context.js +9 -0
- package/components/RadioGroup/RadioGroup.context.js.map +1 -0
- package/components/RadioGroup/RadioGroup.d.ts +7 -0
- package/components/RadioGroup/RadioGroup.js +43 -0
- package/components/RadioGroup/RadioGroup.js.map +1 -0
- package/components/RadioGroup/RadioGroup.module.css.js +4 -0
- package/components/RadioGroup/RadioGroup.module.css.js.map +1 -0
- package/components/RadioGroup/RadioGroup.types.d.ts +23 -0
- package/components/RadioGroup/index.d.ts +3 -0
- package/components/Rating/Rating.d.ts +8 -0
- package/components/Rating/Rating.js +101 -0
- package/components/Rating/Rating.js.map +1 -0
- package/components/Rating/Rating.module.css.js +4 -0
- package/components/Rating/Rating.module.css.js.map +1 -0
- package/components/Rating/Rating.types.d.ts +28 -0
- package/components/Rating/index.d.ts +2 -0
- package/components/SegmentedControl/SegmentedControl.d.ts +8 -0
- package/components/SegmentedControl/SegmentedControl.js +20 -0
- package/components/SegmentedControl/SegmentedControl.js.map +1 -0
- package/components/SegmentedControl/SegmentedControl.module.css.js +4 -0
- package/components/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
- package/components/SegmentedControl/SegmentedControl.types.d.ts +16 -0
- package/components/SegmentedControl/index.d.ts +2 -0
- package/components/Select/Select.d.ts +22 -0
- package/components/Select/Select.js +102 -0
- package/components/Select/Select.js.map +1 -0
- package/components/Select/Select.module.css.js +4 -0
- package/components/Select/Select.module.css.js.map +1 -0
- package/components/Select/Select.types.d.ts +45 -0
- package/components/Select/index.d.ts +2 -0
- package/components/Shell/Shell.d.ts +13 -0
- package/components/Shell/Shell.js +37 -0
- package/components/Shell/Shell.js.map +1 -0
- package/components/Shell/Shell.module.css.js +4 -0
- package/components/Shell/Shell.module.css.js.map +1 -0
- package/components/Shell/Shell.types.d.ts +31 -0
- package/components/Shell/index.d.ts +2 -0
- package/components/Sidebar/Sidebar.context.d.ts +6 -0
- package/components/Sidebar/Sidebar.context.js +6 -0
- package/components/Sidebar/Sidebar.context.js.map +1 -0
- package/components/Sidebar/Sidebar.d.ts +13 -0
- package/components/Sidebar/Sidebar.js +102 -0
- package/components/Sidebar/Sidebar.js.map +1 -0
- package/components/Sidebar/Sidebar.module.css.js +4 -0
- package/components/Sidebar/Sidebar.module.css.js.map +1 -0
- package/components/Sidebar/Sidebar.types.d.ts +45 -0
- package/components/Sidebar/index.d.ts +2 -0
- package/components/Skeleton/Skeleton.d.ts +13 -0
- package/components/Skeleton/Skeleton.js +48 -0
- package/components/Skeleton/Skeleton.js.map +1 -0
- package/components/Skeleton/Skeleton.module.css.js +4 -0
- package/components/Skeleton/Skeleton.module.css.js.map +1 -0
- package/components/Skeleton/Skeleton.types.d.ts +26 -0
- package/components/Skeleton/index.d.ts +2 -0
- package/components/Slider/Slider.d.ts +8 -0
- package/components/Slider/Slider.js +84 -0
- package/components/Slider/Slider.js.map +1 -0
- package/components/Slider/Slider.module.css.js +4 -0
- package/components/Slider/Slider.module.css.js.map +1 -0
- package/components/Slider/Slider.types.d.ts +35 -0
- package/components/Slider/index.d.ts +2 -0
- package/components/Spinner/Spinner.d.ts +7 -0
- package/components/Spinner/Spinner.js +16 -0
- package/components/Spinner/Spinner.js.map +1 -0
- package/components/Spinner/Spinner.module.css.js +4 -0
- package/components/Spinner/Spinner.module.css.js.map +1 -0
- package/components/Spinner/Spinner.types.d.ts +14 -0
- package/components/Spinner/index.d.ts +2 -0
- package/components/SplitPane/SplitPane.d.ts +18 -0
- package/components/SplitPane/SplitPane.js +169 -0
- package/components/SplitPane/SplitPane.js.map +1 -0
- package/components/SplitPane/SplitPane.module.css.js +4 -0
- package/components/SplitPane/SplitPane.module.css.js.map +1 -0
- package/components/SplitPane/SplitPane.types.d.ts +40 -0
- package/components/SplitPane/index.d.ts +2 -0
- package/components/Statistic/Statistic.d.ts +8 -0
- package/components/Statistic/Statistic.js +106 -0
- package/components/Statistic/Statistic.js.map +1 -0
- package/components/Statistic/Statistic.module.css.js +4 -0
- package/components/Statistic/Statistic.module.css.js.map +1 -0
- package/components/Statistic/Statistic.types.d.ts +42 -0
- package/components/Statistic/index.d.ts +2 -0
- package/components/Stepper/Stepper.d.ts +15 -0
- package/components/Stepper/Stepper.js +148 -0
- package/components/Stepper/Stepper.js.map +1 -0
- package/components/Stepper/Stepper.module.css.js +4 -0
- package/components/Stepper/Stepper.module.css.js.map +1 -0
- package/components/Stepper/Stepper.types.d.ts +48 -0
- package/components/Stepper/index.d.ts +2 -0
- package/components/Switch/Switch.d.ts +10 -0
- package/components/Switch/Switch.js +37 -0
- package/components/Switch/Switch.js.map +1 -0
- package/components/Switch/Switch.module.css.js +4 -0
- package/components/Switch/Switch.module.css.js.map +1 -0
- package/components/Switch/Switch.types.d.ts +19 -0
- package/components/Switch/index.d.ts +2 -0
- package/components/Table/Table.d.ts +14 -0
- package/components/Table/Table.js +131 -0
- package/components/Table/Table.js.map +1 -0
- package/components/Table/Table.module.css.js +4 -0
- package/components/Table/Table.module.css.js.map +1 -0
- package/components/Table/Table.types.d.ts +62 -0
- package/components/Table/index.d.ts +2 -0
- package/components/Tabs/Tabs.d.ts +18 -0
- package/components/Tabs/Tabs.js +32 -0
- package/components/Tabs/Tabs.js.map +1 -0
- package/components/Tabs/Tabs.module.css.js +4 -0
- package/components/Tabs/Tabs.module.css.js.map +1 -0
- package/components/Tabs/Tabs.types.d.ts +20 -0
- package/components/Tabs/index.d.ts +2 -0
- package/components/Tag/Tag.d.ts +8 -0
- package/components/Tag/Tag.js +25 -0
- package/components/Tag/Tag.js.map +1 -0
- package/components/Tag/Tag.module.css.js +4 -0
- package/components/Tag/Tag.module.css.js.map +1 -0
- package/components/Tag/Tag.types.d.ts +18 -0
- package/components/Tag/index.d.ts +2 -0
- package/components/Textarea/Textarea.d.ts +9 -0
- package/components/Textarea/Textarea.js +86 -0
- package/components/Textarea/Textarea.js.map +1 -0
- package/components/Textarea/Textarea.module.css.js +4 -0
- package/components/Textarea/Textarea.module.css.js.map +1 -0
- package/components/Textarea/Textarea.types.d.ts +27 -0
- package/components/Textarea/index.d.ts +2 -0
- package/components/TimePicker/TimePicker.d.ts +8 -0
- package/components/TimePicker/TimePicker.js +220 -0
- package/components/TimePicker/TimePicker.js.map +1 -0
- package/components/TimePicker/TimePicker.module.css.js +4 -0
- package/components/TimePicker/TimePicker.module.css.js.map +1 -0
- package/components/TimePicker/TimePicker.types.d.ts +29 -0
- package/components/TimePicker/index.d.ts +2 -0
- package/components/Timeline/Timeline.d.ts +6 -0
- package/components/Timeline/Timeline.js +49 -0
- package/components/Timeline/Timeline.js.map +1 -0
- package/components/Timeline/Timeline.module.css.js +4 -0
- package/components/Timeline/Timeline.module.css.js.map +1 -0
- package/components/Timeline/Timeline.types.d.ts +19 -0
- package/components/Timeline/index.d.ts +2 -0
- package/components/Toast/Toast.d.ts +11 -0
- package/components/Toast/Toast.js +75 -0
- package/components/Toast/Toast.js.map +1 -0
- package/components/Toast/Toast.module.css.js +4 -0
- package/components/Toast/Toast.module.css.js.map +1 -0
- package/components/Toast/Toast.store.d.ts +29 -0
- package/components/Toast/Toast.store.js +53 -0
- package/components/Toast/Toast.store.js.map +1 -0
- package/components/Toast/Toast.types.d.ts +40 -0
- package/components/Toast/index.d.ts +3 -0
- package/components/TokenInput/TokenInput.d.ts +8 -0
- package/components/TokenInput/TokenInput.js +206 -0
- package/components/TokenInput/TokenInput.js.map +1 -0
- package/components/TokenInput/TokenInput.module.css.js +4 -0
- package/components/TokenInput/TokenInput.module.css.js.map +1 -0
- package/components/TokenInput/TokenInput.types.d.ts +38 -0
- package/components/TokenInput/index.d.ts +2 -0
- package/components/Tooltip/Tooltip.d.ts +17 -0
- package/components/Tooltip/Tooltip.js +32 -0
- package/components/Tooltip/Tooltip.js.map +1 -0
- package/components/Tooltip/Tooltip.module.css.js +4 -0
- package/components/Tooltip/Tooltip.module.css.js.map +1 -0
- package/components/Tooltip/Tooltip.types.d.ts +38 -0
- package/components/Tooltip/index.d.ts +2 -0
- package/components/TopNavigation/TopNavigation.d.ts +4 -0
- package/components/TopNavigation/TopNavigation.js +46 -0
- package/components/TopNavigation/TopNavigation.js.map +1 -0
- package/components/TopNavigation/TopNavigation.module.css.js +4 -0
- package/components/TopNavigation/TopNavigation.module.css.js.map +1 -0
- package/components/TopNavigation/TopNavigation.types.d.ts +23 -0
- package/components/TopNavigation/index.d.ts +2 -0
- package/components/TreeView/TreeView.d.ts +8 -0
- package/components/TreeView/TreeView.js +224 -0
- package/components/TreeView/TreeView.js.map +1 -0
- package/components/TreeView/TreeView.module.css.js +4 -0
- package/components/TreeView/TreeView.module.css.js.map +1 -0
- package/components/TreeView/TreeView.types.d.ts +34 -0
- package/components/TreeView/index.d.ts +2 -0
- package/components/index.d.ts +62 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/useDeferredLoading.d.ts +16 -0
- package/hooks/useDeferredLoading.js +26 -0
- package/hooks/useDeferredLoading.js.map +1 -0
- package/index.d.ts +2 -3
- package/index.js +73 -4
- package/index.js.map +1 -1
- package/lib/api-request.js +5 -3
- package/lib/api-request.js.map +1 -1
- package/lib/cn.d.ts +19 -0
- package/lib/cn.js +8 -0
- package/lib/cn.js.map +1 -0
- package/lib/date.d.ts +17 -0
- package/lib/date.js +54 -0
- package/lib/date.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/merge-refs.d.ts +15 -0
- package/lib/merge-refs.js +11 -0
- package/lib/merge-refs.js.map +1 -0
- package/package.json +34 -12
- package/styles.css +1 -1
- package/styles.css.map +1 -1
- package/styles.layer.css +1 -1
- package/components/AppLayout/AppLayout.d.ts +0 -21
- package/components/AppLayout/AppLayout.js +0 -34
- package/components/AppLayout/AppLayout.js.map +0 -1
- package/components/AppLayout/AppLayout.module.css.js +0 -4
- package/components/AppLayout/AppLayout.module.css.js.map +0 -1
- package/components/AppLayout/ContentFooter.d.ts +0 -12
- package/components/AppLayout/ContentFooter.js +0 -11
- package/components/AppLayout/ContentFooter.js.map +0 -1
- package/components/AppLayout/SideNavbar.d.ts +0 -21
- package/components/AppLayout/SideNavbar.js +0 -43
- package/components/AppLayout/SideNavbar.js.map +0 -1
- package/components/AppLayout/SideNavbarGroup.d.ts +0 -19
- package/components/AppLayout/SideNavbarGroup.js +0 -16
- package/components/AppLayout/SideNavbarGroup.js.map +0 -1
- package/components/AppLayout/SideNavbarItem.d.ts +0 -19
- package/components/AppLayout/SideNavbarItem.js +0 -74
- package/components/AppLayout/SideNavbarItem.js.map +0 -1
- package/components/AppLayout/TopNavbar.d.ts +0 -20
- package/components/AppLayout/TopNavbar.js +0 -38
- package/components/AppLayout/TopNavbar.js.map +0 -1
- package/components/AppLayout/app-layout.utils.d.ts +0 -14
- package/components/AppLayout/app-layout.utils.js +0 -6
- package/components/AppLayout/app-layout.utils.js.map +0 -1
- package/components/AppLayout/hooks/use-active-nav-label.d.ts +0 -2
- package/components/AppLayout/hooks/use-active-nav-label.js +0 -29
- package/components/AppLayout/hooks/use-active-nav-label.js.map +0 -1
- package/components/AppLayout/hooks/use-layout-state.d.ts +0 -20
- package/components/AppLayout/hooks/use-layout-state.js +0 -14
- package/components/AppLayout/hooks/use-layout-state.js.map +0 -1
- package/components/AppLayout/hooks/use-side-navbar-item.d.ts +0 -11
- package/components/AppLayout/hooks/use-side-navbar-item.js +0 -26
- package/components/AppLayout/hooks/use-side-navbar-item.js.map +0 -1
- package/components/AppLayout/index.d.ts +0 -2
- package/components/AppLayout/layout.types.d.ts +0 -59
- package/components/Logo/Alphabets.d.ts +0 -39
- package/components/Logo/Alphabets.js +0 -119
- package/components/Logo/Alphabets.js.map +0 -1
- package/components/Logo/BrandMark.d.ts +0 -16
- package/components/Logo/BrandMark.js +0 -39
- package/components/Logo/BrandMark.js.map +0 -1
- package/components/Logo/Logo.d.ts +0 -17
- package/components/Logo/Logo.js +0 -22
- package/components/Logo/Logo.js.map +0 -1
- package/components/Logo/Logo.module.css.js +0 -4
- package/components/Logo/Logo.module.css.js.map +0 -1
- package/components/Logo/hooks/use-logo.d.ts +0 -9
- package/components/Logo/hooks/use-logo.js +0 -16
- package/components/Logo/hooks/use-logo.js.map +0 -1
- package/components/Logo/index.d.ts +0 -2
- package/styles/AppLayout.module.css +0 -82
- package/styles/Logo.module.css +0 -51
- package/theme.d.ts +0 -161
- package/theme.js +0 -112
- package/theme.js.map +0 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { Children, useState, useRef, isValidElement } from 'react';
|
|
4
|
+
import '../../lib/api-request.js';
|
|
5
|
+
import { cn } from '../../lib/cn.js';
|
|
6
|
+
import { Button } from '../Button/Button.js';
|
|
7
|
+
import styles from './Stepper.module.css.js';
|
|
8
|
+
|
|
9
|
+
const STATE_WORD = { completed: "completed", current: "current", upcoming: "upcoming", error: "needs review", skipped: "skipped" };
|
|
10
|
+
function StepperStep(_) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
function isStepElement(node) {
|
|
14
|
+
return isValidElement(node) && node.type === StepperStep;
|
|
15
|
+
}
|
|
16
|
+
function CheckGlyph() {
|
|
17
|
+
return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 16 16", width: "14", height: "14", fill: "none", stroke: "currentColor", strokeWidth: 2.25, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M3.5 8.5l3 3 6-6.5" }) });
|
|
18
|
+
}
|
|
19
|
+
function StepperRoot({
|
|
20
|
+
current,
|
|
21
|
+
defaultCurrent = 0,
|
|
22
|
+
onCurrentChange,
|
|
23
|
+
linear = true,
|
|
24
|
+
orientation = "horizontal",
|
|
25
|
+
status,
|
|
26
|
+
continueLabel = "Continue",
|
|
27
|
+
finishLabel = "Finish",
|
|
28
|
+
children,
|
|
29
|
+
className
|
|
30
|
+
}) {
|
|
31
|
+
const steps = Children.toArray(children).filter(isStepElement).map((child) => child.props);
|
|
32
|
+
const total = steps.length;
|
|
33
|
+
const isControlled = current !== void 0;
|
|
34
|
+
const [internal, setInternal] = useState(defaultCurrent);
|
|
35
|
+
const index = Math.min(isControlled ? current : internal, Math.max(0, total - 1));
|
|
36
|
+
const [completed, setCompleted] = useState(/* @__PURE__ */ new Set());
|
|
37
|
+
const [skipped, setSkipped] = useState(/* @__PURE__ */ new Set());
|
|
38
|
+
const [errors, setErrors] = useState(/* @__PURE__ */ new Set());
|
|
39
|
+
const [busy, setBusy] = useState(false);
|
|
40
|
+
const firstMount = useRef(true);
|
|
41
|
+
function focusContent(node) {
|
|
42
|
+
if (!node) return;
|
|
43
|
+
if (firstMount.current) {
|
|
44
|
+
firstMount.current = false;
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
node.focus();
|
|
48
|
+
}
|
|
49
|
+
function goTo(next) {
|
|
50
|
+
if (next < 0 || next >= total) return;
|
|
51
|
+
if (!isControlled) setInternal(next);
|
|
52
|
+
onCurrentChange?.(next);
|
|
53
|
+
}
|
|
54
|
+
function stateOf(step, i) {
|
|
55
|
+
if (errors.has(step.id)) return "error";
|
|
56
|
+
if (i === index) return "current";
|
|
57
|
+
if (skipped.has(step.id)) return "skipped";
|
|
58
|
+
if (completed.has(step.id)) return "completed";
|
|
59
|
+
return "upcoming";
|
|
60
|
+
}
|
|
61
|
+
function reachable(step, i) {
|
|
62
|
+
if (!linear) return true;
|
|
63
|
+
return i <= index || completed.has(step.id) || skipped.has(step.id);
|
|
64
|
+
}
|
|
65
|
+
async function onContinue() {
|
|
66
|
+
const step = steps[index];
|
|
67
|
+
if (!step) return;
|
|
68
|
+
if (step.validate) {
|
|
69
|
+
setBusy(true);
|
|
70
|
+
const ok = await step.validate();
|
|
71
|
+
setBusy(false);
|
|
72
|
+
if (!ok) return;
|
|
73
|
+
}
|
|
74
|
+
setCompleted((prev) => new Set(prev).add(step.id));
|
|
75
|
+
setErrors((prev) => {
|
|
76
|
+
const next = new Set(prev);
|
|
77
|
+
next.delete(step.id);
|
|
78
|
+
return next;
|
|
79
|
+
});
|
|
80
|
+
if (step.invalidates?.length) {
|
|
81
|
+
setCompleted((prev) => {
|
|
82
|
+
const next = new Set(prev);
|
|
83
|
+
for (const id of step.invalidates ?? []) next.delete(id);
|
|
84
|
+
return next;
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (index === total - 1) {
|
|
88
|
+
await step.onFinish?.();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
goTo(index + 1);
|
|
92
|
+
}
|
|
93
|
+
function onSkip() {
|
|
94
|
+
const step = steps[index];
|
|
95
|
+
if (!step) return;
|
|
96
|
+
setSkipped((prev) => new Set(prev).add(step.id));
|
|
97
|
+
goTo(index + 1);
|
|
98
|
+
}
|
|
99
|
+
function onStepClick(step, i) {
|
|
100
|
+
if (i === index || !reachable(step, i)) return;
|
|
101
|
+
goTo(i);
|
|
102
|
+
}
|
|
103
|
+
const currentStep = steps[index];
|
|
104
|
+
const isLast = index === total - 1;
|
|
105
|
+
const defaultStatus = `Step ${index + 1} of ${total}`;
|
|
106
|
+
return /* @__PURE__ */ jsxs("div", { className: cn(styles.root, className), "data-orientation": orientation, children: [
|
|
107
|
+
/* @__PURE__ */ jsx("nav", { className: styles.indicator, "aria-label": "Progress", children: /* @__PURE__ */ jsx("ol", { className: styles.list, children: steps.map((step, i) => {
|
|
108
|
+
const state = stateOf(step, i);
|
|
109
|
+
const canClick = reachable(step, i) && i !== index;
|
|
110
|
+
const label = `${typeof step.label === "string" ? step.label : `Step ${i + 1}`}, step ${i + 1} of ${total}, ${STATE_WORD[state]}`;
|
|
111
|
+
return /* @__PURE__ */ jsxs("li", { className: styles.stepItem, children: [
|
|
112
|
+
i > 0 ? /* @__PURE__ */ jsx("span", { className: styles.connector, "data-done": completed.has(steps[i - 1]?.id ?? "") || void 0, "aria-hidden": "true" }) : null,
|
|
113
|
+
/* @__PURE__ */ jsxs(
|
|
114
|
+
"button",
|
|
115
|
+
{
|
|
116
|
+
type: "button",
|
|
117
|
+
className: styles.step,
|
|
118
|
+
"data-state": state,
|
|
119
|
+
"aria-current": i === index ? "step" : void 0,
|
|
120
|
+
"aria-disabled": canClick || i === index ? void 0 : true,
|
|
121
|
+
"aria-label": label,
|
|
122
|
+
onClick: () => onStepClick(step, i),
|
|
123
|
+
children: [
|
|
124
|
+
/* @__PURE__ */ jsx("span", { className: styles.dot, "data-state": state, "aria-hidden": "true", children: state === "completed" ? /* @__PURE__ */ jsx(CheckGlyph, {}) : state === "error" ? "!" : state === "skipped" ? "\u2013" : i + 1 }),
|
|
125
|
+
/* @__PURE__ */ jsxs("span", { className: styles.labels, children: [
|
|
126
|
+
/* @__PURE__ */ jsx("span", { className: styles.label, children: step.label }),
|
|
127
|
+
step.hint != null || step.optional ? /* @__PURE__ */ jsx("span", { className: styles.hint, children: step.hint ?? "Optional" }) : null
|
|
128
|
+
] })
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
] }, step.id);
|
|
133
|
+
}) }) }),
|
|
134
|
+
/* @__PURE__ */ jsx("section", { ref: focusContent, className: styles.content, tabIndex: -1, "aria-label": typeof currentStep?.label === "string" ? currentStep.label : "Step content", children: currentStep?.children }, index),
|
|
135
|
+
/* @__PURE__ */ jsxs("div", { className: styles.footer, children: [
|
|
136
|
+
/* @__PURE__ */ jsx(Button, { variant: "secondary", onClick: () => goTo(index - 1), disabled: index === 0, children: "Back" }),
|
|
137
|
+
/* @__PURE__ */ jsx("span", { className: styles.status, "aria-live": "polite", children: status ?? defaultStatus }),
|
|
138
|
+
/* @__PURE__ */ jsxs("span", { className: styles.footerActions, children: [
|
|
139
|
+
currentStep?.optional && !isLast ? /* @__PURE__ */ jsx(Button, { variant: "ghost", onClick: onSkip, children: "Skip" }) : null,
|
|
140
|
+
/* @__PURE__ */ jsx(Button, { variant: "primary", loading: busy, onClick: onContinue, children: isLast ? finishLabel : continueLabel })
|
|
141
|
+
] })
|
|
142
|
+
] })
|
|
143
|
+
] });
|
|
144
|
+
}
|
|
145
|
+
const Stepper = Object.assign(StepperRoot, { Step: StepperStep });
|
|
146
|
+
|
|
147
|
+
export { Stepper, StepperStep };
|
|
148
|
+
//# sourceMappingURL=Stepper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stepper.js","sources":["../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { Children, isValidElement, type ReactElement, type ReactNode, useRef, useState } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { cn } from '@/lib';\n\nimport { Button } from '../Button';\nimport styles from './Stepper.module.css';\nimport { type StepperProps, type StepperStepProps, type StepState } from './Stepper.types';\n\n/**\n * Declaring the constants\n */\nconst STATE_WORD: Record<StepState, string> = { completed: 'completed', current: 'current', upcoming: 'upcoming', error: 'needs review', skipped: 'skipped' };\n\n/** Marker component — the parent reads its props and renders the current step's children. */\nexport function StepperStep(_: StepperStepProps): null {\n return null;\n}\n\nfunction isStepElement(node: ReactNode): node is ReactElement<StepperStepProps> {\n return isValidElement(node) && node.type === StepperStep;\n}\n\nfunction CheckGlyph() {\n return (\n <svg viewBox='0 0 16 16' width='14' height='14' fill='none' stroke='currentColor' strokeWidth={2.25} strokeLinecap='round' strokeLinejoin='round' aria-hidden='true'>\n <path d='M3.5 8.5l3 3 6-6.5' />\n </svg>\n );\n}\n\n/**\n * Multi-step flow progress with a validation-gated state machine — the indicator, content region, and\n * wizard footer shipped together so the grammar can't drift between flows. Forward movement is gated on\n * per-step validation; backward movement is always free and preserves step data. Revisiting a step\n * resets its declared downstream dependencies to upcoming (the invalidation contract). State is carried\n * by glyphs (check / number / ! / dash), never color alone. A headless `useStepper` is a follow-up.\n */\nfunction StepperRoot({\n current,\n defaultCurrent = 0,\n onCurrentChange,\n linear = true,\n orientation = 'horizontal',\n status,\n continueLabel = 'Continue',\n finishLabel = 'Finish',\n children,\n className,\n}: StepperProps) {\n const steps = Children.toArray(children)\n .filter(isStepElement)\n .map(child => child.props);\n const total = steps.length;\n\n const isControlled = current !== undefined;\n const [internal, setInternal] = useState(defaultCurrent);\n const index = Math.min(isControlled ? current : internal, Math.max(0, total - 1));\n\n const [completed, setCompleted] = useState<Set<string>>(new Set());\n const [skipped, setSkipped] = useState<Set<string>>(new Set());\n const [errors, setErrors] = useState<Set<string>>(new Set());\n const [busy, setBusy] = useState(false);\n const firstMount = useRef(true);\n\n // Move focus to each new step's content region on transition (the div is keyed by index, so this\n // callback ref fires per step) — never strand the user on a stale Continue button.\n function focusContent(node: HTMLElement | null): void {\n if (!node) return;\n if (firstMount.current) {\n firstMount.current = false;\n return;\n }\n node.focus();\n }\n\n function goTo(next: number): void {\n if (next < 0 || next >= total) return;\n if (!isControlled) setInternal(next);\n onCurrentChange?.(next);\n }\n\n function stateOf(step: StepperStepProps, i: number): StepState {\n if (errors.has(step.id)) return 'error';\n if (i === index) return 'current';\n if (skipped.has(step.id)) return 'skipped';\n if (completed.has(step.id)) return 'completed';\n return 'upcoming';\n }\n\n function reachable(step: StepperStepProps, i: number): boolean {\n if (!linear) return true;\n return i <= index || completed.has(step.id) || skipped.has(step.id);\n }\n\n async function onContinue(): Promise<void> {\n const step = steps[index];\n if (!step) return;\n if (step.validate) {\n setBusy(true);\n const ok = await step.validate();\n setBusy(false);\n if (!ok) return; // the step focuses its own first invalid field\n }\n setCompleted(prev => new Set(prev).add(step.id));\n setErrors(prev => {\n const next = new Set(prev);\n next.delete(step.id);\n return next;\n });\n // Invalidation contract — revisiting this step resets its declared dependents.\n if (step.invalidates?.length) {\n setCompleted(prev => {\n const next = new Set(prev);\n for (const id of step.invalidates ?? []) next.delete(id);\n return next;\n });\n }\n if (index === total - 1) {\n await step.onFinish?.();\n return;\n }\n goTo(index + 1);\n }\n\n function onSkip(): void {\n const step = steps[index];\n if (!step) return;\n setSkipped(prev => new Set(prev).add(step.id));\n goTo(index + 1);\n }\n\n function onStepClick(step: StepperStepProps, i: number): void {\n if (i === index || !reachable(step, i)) return;\n goTo(i);\n }\n\n const currentStep = steps[index];\n const isLast = index === total - 1;\n const defaultStatus = `Step ${index + 1} of ${total}`;\n\n return (\n <div className={cn(styles.root, className)} data-orientation={orientation}>\n <nav className={styles.indicator} aria-label='Progress'>\n <ol className={styles.list}>\n {steps.map((step, i) => {\n const state = stateOf(step, i);\n const canClick = reachable(step, i) && i !== index;\n const label = `${typeof step.label === 'string' ? step.label : `Step ${i + 1}`}, step ${i + 1} of ${total}, ${STATE_WORD[state]}`;\n return (\n <li key={step.id} className={styles.stepItem}>\n {i > 0 ? <span className={styles.connector} data-done={completed.has(steps[i - 1]?.id ?? '') || undefined} aria-hidden='true' /> : null}\n <button\n type='button'\n className={styles.step}\n data-state={state}\n aria-current={i === index ? 'step' : undefined}\n aria-disabled={canClick || i === index ? undefined : true}\n aria-label={label}\n onClick={() => onStepClick(step, i)}\n >\n <span className={styles.dot} data-state={state} aria-hidden='true'>\n {state === 'completed' ? <CheckGlyph /> : state === 'error' ? '!' : state === 'skipped' ? '–' : i + 1}\n </span>\n <span className={styles.labels}>\n <span className={styles.label}>{step.label}</span>\n {step.hint != null || step.optional ? <span className={styles.hint}>{step.hint ?? 'Optional'}</span> : null}\n </span>\n </button>\n </li>\n );\n })}\n </ol>\n </nav>\n\n <section key={index} ref={focusContent} className={styles.content} tabIndex={-1} aria-label={typeof currentStep?.label === 'string' ? currentStep.label : 'Step content'}>\n {currentStep?.children}\n </section>\n\n <div className={styles.footer}>\n <Button variant='secondary' onClick={() => goTo(index - 1)} disabled={index === 0}>\n Back\n </Button>\n <span className={styles.status} aria-live='polite'>\n {status ?? defaultStatus}\n </span>\n <span className={styles.footerActions}>\n {currentStep?.optional && !isLast ? (\n <Button variant='ghost' onClick={onSkip}>\n Skip\n </Button>\n ) : null}\n <Button variant='primary' loading={busy} onClick={onContinue}>\n {isLast ? finishLabel : continueLabel}\n </Button>\n </span>\n </div>\n </div>\n );\n}\n\nexport const Stepper = Object.assign(StepperRoot, { Step: StepperStep });\n"],"names":[],"mappings":";;;;;;;;AAiBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAwC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,QAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,cAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AAGrJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAA2B,CAAA;AACrD,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyD,CAAA;AAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAI,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/C,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAA,CAAA,CAAA,CAAa,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,GAC5J,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAC/B,CAAA,CAAA;AAEJ,CAAA;AASA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,WAAA,CAAY,CAAA;AAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAiB,CAAA,CAAA;AAAA,CAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAiB,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CACpB,CAAA,CAAA,CAAA,CAAI,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,QAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAEhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,GAAK,CAAA,CAAA;AACjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,GAAK,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,GAAK,CAAA,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AACtC,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,IAAI,CAAA,CAAA;AAI9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAAA,CAAA,CACb,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,IAAA,CAAA,CAAA,CAAO,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,KAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAI,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AAAA,CAAA,CACxB,CAAA;AAEA,CAAA,CAAA,SAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,GAAwB,CAAA,CAAA,CAAsB,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,GAAO,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,SAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,GAAwB,CAAA,CAAA,CAAoB,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,GAAQ,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,GAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,IAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAE,CAAA,CAAA;AAAA,CAAA,CACpE,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,UAAA,CAAA,CAAA,CAA4B,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,EAAM,KAAK,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK,MAAM,CAAA,CAAA,CAAA,CAAA,CAAK,QAAA,CAAA,CAAS,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACX,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,YAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAI,IAAA,CAAK,CAAA,CAAE,CAAC,CAAA,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,EAAK,EAAE,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,CAAC,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,MAAA,CAAA,CAAQ,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAI,CAAA,CAAA,CAAA,CAAI,IAAI,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,KAAM,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAC,EAAG,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EAAE,CAAA,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACH,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAG,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAC,CAAA,CAAA;AAAA,CAAA,CAChB,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,MAAA,CAAA,CAAA,CAAe,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,EAAM,KAAK,CAAA,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,UAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,EAAE,CAAA,CAAA,CAAA,CAAI,IAAA,CAAK,CAAA,CAAE,CAAC,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAC,CAAA,CAAA;AAAA,CAAA,CAChB,CAAA;AAEA,CAAA,CAAA,SAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,GAAwB,CAAA,CAAA,CAAiB,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA;AAAA,CAAA,CACR,CAAA;AAEA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,EAAM,KAAK,CAAA,CAAA;AAC/B,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,KAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA;AAEnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,IAAA,CAAC,CAAA,CAAA,CAAA,CAAA,KAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAS,CAAA,CAAA,CAAG,kBAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,UAAA,CAAA,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,IAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,MAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,EAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAK,CAAC,CAAA,CAAA,CAAA;AAC/H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjC,QAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,oBAAI,CAAA,CAAA,CAAA,CAAC,MAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,MAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,SAAA,CAAU,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAI,CAAC,GAAG,EAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,QAAO,CAAA,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnI,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,KAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,KAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAElC,QAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAK,cAAY,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,QACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,uBAAe,UAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,MAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,CAAA,CAAA,MAAU,SAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAM,IAAI,CAAA,CAAA,CACtG,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAK,CAAA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAC,MAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzG,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAlBO,CAAA,CAAA,CAAA,EAAK,EAmBd,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAEJ,CAAC,GACH,CAAA,EACF,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAEC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,QAAA,CAAA,CAAU,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,MAAU,QAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,IAAQ,cAAA,CAAA,CACvJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,YADF,KAEd,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAEnF,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,MAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,QAAA,CAAA,CACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,aAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzB,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEzC,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACJ,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,OAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAAA,CAAA,CAAA,CAAA,EACF,CAAA,CAAA;AAEJ,CAAA;AAEO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAa,CAAA,CAAA;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var styles = {"root":"sh-root_jbSYO","indicator":"sh-indicator_N8PoD","content":"sh-content_J-h8X","footer":"sh-footer_RCVcN","list":"sh-list_41uJy","stepItem":"sh-stepItem_UM-dG","connector":"sh-connector_lyeWp","step":"sh-step_s2nqL","label":"sh-label_8irAI","dot":"sh-dot_d1bSL","labels":"sh-labels_D3-UK","hint":"sh-hint_BayRm","status":"sh-status_MVuMx","footerActions":"sh-footerActions_GMpPA"};
|
|
2
|
+
|
|
3
|
+
export { styles as default };
|
|
4
|
+
//# sourceMappingURL=Stepper.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stepper.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing npm packages
|
|
3
|
+
*/
|
|
4
|
+
import { type ReactNode } from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Defining types
|
|
7
|
+
*/
|
|
8
|
+
export type StepperOrientation = 'horizontal' | 'vertical';
|
|
9
|
+
export type StepState = 'completed' | 'current' | 'upcoming' | 'error' | 'skipped';
|
|
10
|
+
export interface StepperStepProps {
|
|
11
|
+
/** Stable step id — referenced by `invalidates`. */
|
|
12
|
+
id: string;
|
|
13
|
+
/** Step name — a noun ("Payment"), not an instruction. */
|
|
14
|
+
label: ReactNode;
|
|
15
|
+
/** Optional 11px descriptor under the label. */
|
|
16
|
+
hint?: ReactNode;
|
|
17
|
+
/** Optional steps can be skipped; skipping marks a neutral dash, and Finish reports it. */
|
|
18
|
+
optional?: boolean;
|
|
19
|
+
/** Sync or async gate run when leaving the step forward; `false` blocks advance. */
|
|
20
|
+
validate?: () => boolean | Promise<boolean>;
|
|
21
|
+
/** Downstream step ids reset to upcoming when this step's answer changes (revisit). */
|
|
22
|
+
invalidates?: string[];
|
|
23
|
+
/** Terminal action on the last step — may open a confirmation for irreversible flows. */
|
|
24
|
+
onFinish?: () => void | Promise<void>;
|
|
25
|
+
/** The step's form/page. */
|
|
26
|
+
children?: ReactNode;
|
|
27
|
+
}
|
|
28
|
+
export interface StepperProps {
|
|
29
|
+
/** Controlled current step index (0-based). */
|
|
30
|
+
current?: number;
|
|
31
|
+
/** Initial step index (uncontrolled). @default 0 */
|
|
32
|
+
defaultCurrent?: number;
|
|
33
|
+
/** Fires when the current step changes. */
|
|
34
|
+
onCurrentChange?: (index: number) => void;
|
|
35
|
+
/** Linear flows gate forward movement on validation; backward is always free. @default true */
|
|
36
|
+
linear?: boolean;
|
|
37
|
+
/** Indicator layout. @default 'horizontal' */
|
|
38
|
+
orientation?: StepperOrientation;
|
|
39
|
+
/** Footer status text (defaults to "Step n of m"). */
|
|
40
|
+
status?: ReactNode;
|
|
41
|
+
/** Label for the Continue button. @default 'Continue' */
|
|
42
|
+
continueLabel?: ReactNode;
|
|
43
|
+
/** Label for the terminal button on the last step. @default 'Finish' */
|
|
44
|
+
finishLabel?: ReactNode;
|
|
45
|
+
/** `Stepper.Step` children. */
|
|
46
|
+
children: ReactNode;
|
|
47
|
+
className?: string;
|
|
48
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type SwitchProps } from './Switch.types';
|
|
2
|
+
/**
|
|
3
|
+
* Declaring the constants
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* On/off with immediate effect — no Save button. Built on Radix Switch (`role="switch"`, announced
|
|
7
|
+
* "on/off"). Use for live system state; use Checkbox for choices that commit on submit. With a
|
|
8
|
+
* `label` it renders the settings-row (label left, switch right); `pending` shows the async flip.
|
|
9
|
+
*/
|
|
10
|
+
export declare const Switch: import("react").ForwardRefExoticComponent<SwitchProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
4
|
+
import { forwardRef, useId } from 'react';
|
|
5
|
+
import '../../lib/api-request.js';
|
|
6
|
+
import { cn } from '../../lib/cn.js';
|
|
7
|
+
import styles from './Switch.module.css.js';
|
|
8
|
+
|
|
9
|
+
const Switch = forwardRef(function Switch2({ label, description, pending = false, id, className, disabled, ...props }, ref) {
|
|
10
|
+
const generatedId = useId();
|
|
11
|
+
const switchId = id ?? generatedId;
|
|
12
|
+
const descriptionId = description != null ? `${switchId}-description` : void 0;
|
|
13
|
+
const control = /* @__PURE__ */ jsx(
|
|
14
|
+
SwitchPrimitive.Root,
|
|
15
|
+
{
|
|
16
|
+
ref,
|
|
17
|
+
id: switchId,
|
|
18
|
+
className: cn(styles.switch, label == null && className),
|
|
19
|
+
disabled,
|
|
20
|
+
"data-pending": pending || void 0,
|
|
21
|
+
"aria-describedby": descriptionId,
|
|
22
|
+
...props,
|
|
23
|
+
children: /* @__PURE__ */ jsx(SwitchPrimitive.Thumb, { className: styles.thumb })
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
if (label == null) return control;
|
|
27
|
+
return /* @__PURE__ */ jsxs("div", { className: cn(styles.root, className), "data-disabled": disabled || void 0, children: [
|
|
28
|
+
/* @__PURE__ */ jsxs("div", { className: styles.text, children: [
|
|
29
|
+
/* @__PURE__ */ jsx("label", { htmlFor: switchId, className: styles.label, children: label }),
|
|
30
|
+
description != null ? /* @__PURE__ */ jsx("span", { id: descriptionId, className: styles.description, children: description }) : null
|
|
31
|
+
] }),
|
|
32
|
+
control
|
|
33
|
+
] });
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
export { Switch };
|
|
37
|
+
//# sourceMappingURL=Switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport * as SwitchPrimitive from '@radix-ui/react-switch';\nimport { forwardRef, useId } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { cn } from '@/lib';\n\nimport styles from './Switch.module.css';\nimport { type SwitchProps } from './Switch.types';\n\n/**\n * Declaring the constants\n */\n\n/**\n * On/off with immediate effect — no Save button. Built on Radix Switch (`role=\"switch\"`, announced\n * \"on/off\"). Use for live system state; use Checkbox for choices that commit on submit. With a\n * `label` it renders the settings-row (label left, switch right); `pending` shows the async flip.\n */\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(function Switch({ label, description, pending = false, id, className, disabled, ...props }, ref) {\n const generatedId = useId();\n const switchId = id ?? generatedId;\n const descriptionId = description != null ? `${switchId}-description` : undefined;\n\n const control = (\n <SwitchPrimitive.Root\n ref={ref}\n id={switchId}\n className={cn(styles.switch, label == null && className)}\n disabled={disabled}\n data-pending={pending || undefined}\n aria-describedby={descriptionId}\n {...props}\n >\n <SwitchPrimitive.Thumb className={styles.thumb} />\n </SwitchPrimitive.Root>\n );\n\n if (label == null) return control;\n\n return (\n <div className={cn(styles.root, className)} data-disabled={disabled || undefined}>\n <div className={styles.text}>\n <label htmlFor={switchId} className={styles.label}>\n {label}\n </label>\n {description != null ? (\n <span id={descriptionId} className={styles.description}>\n {description}\n </span>\n ) : null}\n </div>\n {control}\n </div>\n );\n});\n"],"names":["Switch"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Switch.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing npm packages
|
|
3
|
+
*/
|
|
4
|
+
import type * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
5
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
6
|
+
/**
|
|
7
|
+
* Importing user defined packages
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Defining types
|
|
11
|
+
*/
|
|
12
|
+
export interface SwitchProps extends Omit<ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>, 'asChild'> {
|
|
13
|
+
/** Feature name (never the state). Renders the settings-row: label left, switch right. */
|
|
14
|
+
label?: ReactNode;
|
|
15
|
+
/** Secondary line beneath the label, linked via `aria-describedby`. */
|
|
16
|
+
description?: ReactNode;
|
|
17
|
+
/** Async in-flight treatment: the thumb moves optimistically while the track dims. */
|
|
18
|
+
pending?: boolean;
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing npm packages
|
|
3
|
+
*/
|
|
4
|
+
import { type ReactElement } from 'react';
|
|
5
|
+
import { type TableAlign, type TableProps } from './Table.types';
|
|
6
|
+
/**
|
|
7
|
+
* Rows of homogeneous records with sorting, single-column and range selection, and bulk actions. A
|
|
8
|
+
* real semantic `<table>` — low-contrast chrome, high-contrast content. Sorting and selection are
|
|
9
|
+
* controlled (server- or consumer-driven); navigation (row click) and selection (checkbox) are
|
|
10
|
+
* distinct gestures that never collide. Chrome reads only neutral tokens, so dark mode is automatic.
|
|
11
|
+
*/
|
|
12
|
+
export declare function Table<T>({ data, columns, rowKey, onRowClick, selection, onSelectionChange, sort, onSortChange, loading, loadingRows, density, caption, emptyState, bulkActions, 'aria-label': ariaLabel, }: TableProps<T>): ReactElement;
|
|
13
|
+
/** Re-export for consumers who want the alignment union at a call site. */
|
|
14
|
+
export type { TableAlign };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import '../../lib/api-request.js';
|
|
4
|
+
import { cn } from '../../lib/cn.js';
|
|
5
|
+
import { Button } from '../Button/Button.js';
|
|
6
|
+
import { Checkbox } from '../Checkbox/Checkbox.js';
|
|
7
|
+
import styles from './Table.module.css.js';
|
|
8
|
+
|
|
9
|
+
function SortArrow({ direction }) {
|
|
10
|
+
if (direction == null) return null;
|
|
11
|
+
return /* @__PURE__ */ jsx("svg", { className: styles.sortArrow, viewBox: "0 0 12 12", fill: "currentColor", "aria-hidden": "true", children: direction === "asc" ? /* @__PURE__ */ jsx("path", { d: "M6 3l3 4H3z" }) : /* @__PURE__ */ jsx("path", { d: "M6 9L3 5h6z" }) });
|
|
12
|
+
}
|
|
13
|
+
const ARIA_SORT = { asc: "ascending", desc: "descending" };
|
|
14
|
+
function Table({
|
|
15
|
+
data,
|
|
16
|
+
columns,
|
|
17
|
+
rowKey,
|
|
18
|
+
onRowClick,
|
|
19
|
+
selection,
|
|
20
|
+
onSelectionChange,
|
|
21
|
+
sort,
|
|
22
|
+
onSortChange,
|
|
23
|
+
loading = false,
|
|
24
|
+
loadingRows = 5,
|
|
25
|
+
density = "comfortable",
|
|
26
|
+
caption,
|
|
27
|
+
emptyState,
|
|
28
|
+
bulkActions,
|
|
29
|
+
"aria-label": ariaLabel
|
|
30
|
+
}) {
|
|
31
|
+
const keyOf = (row) => typeof rowKey === "function" ? rowKey(row) : String(row[rowKey]);
|
|
32
|
+
const selectable = selection !== void 0;
|
|
33
|
+
const selectedSet = new Set(selection ?? []);
|
|
34
|
+
const keys = data.map(keyOf);
|
|
35
|
+
const selectedCount = keys.filter((key) => selectedSet.has(key)).length;
|
|
36
|
+
const allSelected = data.length > 0 && selectedCount === data.length;
|
|
37
|
+
const selectAll = allSelected ? true : selectedCount > 0 ? "indeterminate" : false;
|
|
38
|
+
const colSpan = columns.length + (selectable ? 1 : 0);
|
|
39
|
+
function toggleAll(checked) {
|
|
40
|
+
onSelectionChange?.(checked === true ? keys : []);
|
|
41
|
+
}
|
|
42
|
+
function toggleRow(key, checked) {
|
|
43
|
+
const next = new Set(selectedSet);
|
|
44
|
+
if (checked) next.add(key);
|
|
45
|
+
else next.delete(key);
|
|
46
|
+
onSelectionChange?.([...next]);
|
|
47
|
+
}
|
|
48
|
+
function cycleSort(id) {
|
|
49
|
+
if (sort == null || sort.id !== id) onSortChange?.({ id, direction: "asc" });
|
|
50
|
+
else if (sort.direction === "asc") onSortChange?.({ id, direction: "desc" });
|
|
51
|
+
else onSortChange?.(null);
|
|
52
|
+
}
|
|
53
|
+
function handleRowClick(event, row) {
|
|
54
|
+
if (event.target.closest("[data-selection-cell]")) return;
|
|
55
|
+
onRowClick?.(row);
|
|
56
|
+
}
|
|
57
|
+
function onRowKeyDown(event, row, key) {
|
|
58
|
+
if (event.key === "Enter" && onRowClick) {
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
onRowClick(row);
|
|
61
|
+
} else if (event.key === " " && selectable) {
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
toggleRow(key, !selectedSet.has(key));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return /* @__PURE__ */ jsxs("div", { className: styles.wrapper, children: [
|
|
67
|
+
selectable && selectedCount > 0 ? /* @__PURE__ */ jsxs("div", { className: styles.bulkBar, children: [
|
|
68
|
+
/* @__PURE__ */ jsxs("span", { className: styles.bulkCount, "aria-live": "polite", children: [
|
|
69
|
+
selectedCount,
|
|
70
|
+
" selected"
|
|
71
|
+
] }),
|
|
72
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: () => toggleAll(false), children: "Clear" }),
|
|
73
|
+
/* @__PURE__ */ jsx("div", { className: styles.bulkActions, children: bulkActions })
|
|
74
|
+
] }) : null,
|
|
75
|
+
/* @__PURE__ */ jsx("div", { className: styles.scroll, children: /* @__PURE__ */ jsxs("table", { className: styles.table, "data-density": density, "aria-label": ariaLabel, children: [
|
|
76
|
+
caption != null ? /* @__PURE__ */ jsx("caption", { className: styles.caption, children: caption }) : null,
|
|
77
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { className: styles.headerRow, children: [
|
|
78
|
+
selectable ? /* @__PURE__ */ jsx("th", { className: cn(styles.th, styles.checkboxCell), scope: "col", children: /* @__PURE__ */ jsx(Checkbox, { checked: selectAll, onCheckedChange: toggleAll, "aria-label": "Select all rows on this page" }) }) : null,
|
|
79
|
+
columns.map((column) => {
|
|
80
|
+
const sorted = sort?.id === column.id ? sort.direction : void 0;
|
|
81
|
+
return /* @__PURE__ */ jsx(
|
|
82
|
+
"th",
|
|
83
|
+
{
|
|
84
|
+
className: styles.th,
|
|
85
|
+
scope: "col",
|
|
86
|
+
"data-align": column.align ?? "start",
|
|
87
|
+
"aria-sort": column.sortable ? sorted ? ARIA_SORT[sorted] : "none" : void 0,
|
|
88
|
+
style: column.width != null ? { width: column.width } : void 0,
|
|
89
|
+
children: column.sortable ? /* @__PURE__ */ jsxs("button", { type: "button", className: styles.sortButton, onClick: () => cycleSort(column.id), "data-active": sorted ? "" : void 0, children: [
|
|
90
|
+
column.header,
|
|
91
|
+
/* @__PURE__ */ jsx(SortArrow, { direction: sorted })
|
|
92
|
+
] }) : column.header
|
|
93
|
+
},
|
|
94
|
+
column.id
|
|
95
|
+
);
|
|
96
|
+
})
|
|
97
|
+
] }) }),
|
|
98
|
+
/* @__PURE__ */ jsx("tbody", { children: loading ? Array.from({ length: loadingRows }, (_, index) => /* @__PURE__ */ jsxs("tr", { className: styles.row, children: [
|
|
99
|
+
selectable ? /* @__PURE__ */ jsx("td", { className: cn(styles.td, styles.checkboxCell), children: /* @__PURE__ */ jsx("span", { className: styles.skeleton }) }) : null,
|
|
100
|
+
columns.map((column) => /* @__PURE__ */ jsx("td", { className: styles.td, "data-align": column.align ?? "start", children: /* @__PURE__ */ jsx("span", { className: styles.skeleton }) }, column.id))
|
|
101
|
+
] }, `skeleton-${index}`)) : data.length === 0 ? /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { className: styles.empty, colSpan, children: emptyState ?? "No records" }) }) : data.map((row) => {
|
|
102
|
+
const key = keyOf(row);
|
|
103
|
+
const selected = selectedSet.has(key);
|
|
104
|
+
return /* @__PURE__ */ jsxs(
|
|
105
|
+
"tr",
|
|
106
|
+
{
|
|
107
|
+
className: styles.row,
|
|
108
|
+
"data-selected": selected ? "" : void 0,
|
|
109
|
+
"data-clickable": onRowClick ? "" : void 0,
|
|
110
|
+
onClick: onRowClick ? (event) => handleRowClick(event, row) : void 0,
|
|
111
|
+
onKeyDown: onRowClick || selectable ? (event) => onRowKeyDown(event, row, key) : void 0,
|
|
112
|
+
tabIndex: onRowClick ? 0 : void 0,
|
|
113
|
+
children: [
|
|
114
|
+
selectable ? /* @__PURE__ */ jsx("td", { className: cn(styles.td, styles.checkboxCell), "data-selection-cell": "", children: /* @__PURE__ */ jsx(Checkbox, { checked: selected, onCheckedChange: (checked) => toggleRow(key, checked === true), "aria-label": `Select ${key}` }) }) : null,
|
|
115
|
+
columns.map((column) => /* @__PURE__ */ jsx("td", { className: styles.td, "data-align": column.align ?? "start", "data-numeric": column.align === "end" ? "" : void 0, children: renderCell(column, row) }, column.id))
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
key
|
|
119
|
+
);
|
|
120
|
+
}) })
|
|
121
|
+
] }) })
|
|
122
|
+
] });
|
|
123
|
+
}
|
|
124
|
+
function renderCell(column, row) {
|
|
125
|
+
if (column.cell) return /* @__PURE__ */ jsx(Fragment, { children: column.cell(row) });
|
|
126
|
+
const value = row[column.id];
|
|
127
|
+
return value == null ? "" : String(value);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export { Table };
|
|
131
|
+
//# sourceMappingURL=Table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../../src/components/Table/Table.tsx"],"sourcesContent":["/**\n * Importing npm packages\n */\nimport { type KeyboardEvent, type MouseEvent, type ReactElement } from 'react';\n\n/**\n * Importing user defined packages\n */\nimport { cn } from '@/lib';\n\nimport { Button } from '../Button';\nimport { Checkbox } from '../Checkbox';\nimport styles from './Table.module.css';\nimport { type TableAlign, type TableColumn, type TableProps } from './Table.types';\n\n/**\n * Declaring the constants\n */\nfunction SortArrow({ direction }: { direction: 'asc' | 'desc' | undefined }) {\n if (direction == null) return null;\n return (\n <svg className={styles.sortArrow} viewBox='0 0 12 12' fill='currentColor' aria-hidden='true'>\n {direction === 'asc' ? <path d='M6 3l3 4H3z' /> : <path d='M6 9L3 5h6z' />}\n </svg>\n );\n}\n\nconst ARIA_SORT: Record<'asc' | 'desc', 'ascending' | 'descending'> = { asc: 'ascending', desc: 'descending' };\n\n/**\n * Rows of homogeneous records with sorting, single-column and range selection, and bulk actions. A\n * real semantic `<table>` — low-contrast chrome, high-contrast content. Sorting and selection are\n * controlled (server- or consumer-driven); navigation (row click) and selection (checkbox) are\n * distinct gestures that never collide. Chrome reads only neutral tokens, so dark mode is automatic.\n */\nexport function Table<T>({\n data,\n columns,\n rowKey,\n onRowClick,\n selection,\n onSelectionChange,\n sort,\n onSortChange,\n loading = false,\n loadingRows = 5,\n density = 'comfortable',\n caption,\n emptyState,\n bulkActions,\n 'aria-label': ariaLabel,\n}: TableProps<T>): ReactElement {\n const keyOf = (row: T): string => (typeof rowKey === 'function' ? rowKey(row) : String(row[rowKey]));\n const selectable = selection !== undefined;\n const selectedSet = new Set(selection ?? []);\n const keys = data.map(keyOf);\n const selectedCount = keys.filter(key => selectedSet.has(key)).length;\n const allSelected = data.length > 0 && selectedCount === data.length;\n const selectAll: boolean | 'indeterminate' = allSelected ? true : selectedCount > 0 ? 'indeterminate' : false;\n const colSpan = columns.length + (selectable ? 1 : 0);\n\n function toggleAll(checked: boolean | 'indeterminate'): void {\n onSelectionChange?.(checked === true ? keys : []);\n }\n\n function toggleRow(key: string, checked: boolean): void {\n const next = new Set(selectedSet);\n if (checked) next.add(key);\n else next.delete(key);\n onSelectionChange?.([...next]);\n }\n\n function cycleSort(id: string): void {\n if (sort == null || sort.id !== id) onSortChange?.({ id, direction: 'asc' });\n else if (sort.direction === 'asc') onSortChange?.({ id, direction: 'desc' });\n else onSortChange?.(null);\n }\n\n function handleRowClick(event: MouseEvent<HTMLTableRowElement>, row: T): void {\n if ((event.target as HTMLElement).closest('[data-selection-cell]')) return;\n onRowClick?.(row);\n }\n\n function onRowKeyDown(event: KeyboardEvent<HTMLTableRowElement>, row: T, key: string): void {\n if (event.key === 'Enter' && onRowClick) {\n event.preventDefault();\n onRowClick(row);\n } else if (event.key === ' ' && selectable) {\n event.preventDefault();\n toggleRow(key, !selectedSet.has(key));\n }\n }\n\n return (\n <div className={styles.wrapper}>\n {selectable && selectedCount > 0 ? (\n <div className={styles.bulkBar}>\n <span className={styles.bulkCount} aria-live='polite'>\n {selectedCount} selected\n </span>\n <Button variant='ghost' size='sm' onClick={() => toggleAll(false)}>\n Clear\n </Button>\n <div className={styles.bulkActions}>{bulkActions}</div>\n </div>\n ) : null}\n\n <div className={styles.scroll}>\n <table className={styles.table} data-density={density} aria-label={ariaLabel}>\n {caption != null ? <caption className={styles.caption}>{caption}</caption> : null}\n <thead>\n <tr className={styles.headerRow}>\n {selectable ? (\n <th className={cn(styles.th, styles.checkboxCell)} scope='col'>\n <Checkbox checked={selectAll} onCheckedChange={toggleAll} aria-label='Select all rows on this page' />\n </th>\n ) : null}\n {columns.map(column => {\n const sorted = sort?.id === column.id ? sort.direction : undefined;\n return (\n <th\n key={column.id}\n className={styles.th}\n scope='col'\n data-align={column.align ?? 'start'}\n aria-sort={column.sortable ? (sorted ? ARIA_SORT[sorted] : 'none') : undefined}\n style={column.width != null ? { width: column.width } : undefined}\n >\n {column.sortable ? (\n <button type='button' className={styles.sortButton} onClick={() => cycleSort(column.id)} data-active={sorted ? '' : undefined}>\n {column.header}\n <SortArrow direction={sorted} />\n </button>\n ) : (\n column.header\n )}\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {loading ? (\n Array.from({ length: loadingRows }, (_, index) => (\n <tr key={`skeleton-${index}`} className={styles.row}>\n {selectable ? (\n <td className={cn(styles.td, styles.checkboxCell)}>\n <span className={styles.skeleton} />\n </td>\n ) : null}\n {columns.map(column => (\n <td key={column.id} className={styles.td} data-align={column.align ?? 'start'}>\n <span className={styles.skeleton} />\n </td>\n ))}\n </tr>\n ))\n ) : data.length === 0 ? (\n <tr>\n <td className={styles.empty} colSpan={colSpan}>\n {emptyState ?? 'No records'}\n </td>\n </tr>\n ) : (\n data.map(row => {\n const key = keyOf(row);\n const selected = selectedSet.has(key);\n return (\n <tr\n key={key}\n className={styles.row}\n data-selected={selected ? '' : undefined}\n data-clickable={onRowClick ? '' : undefined}\n onClick={onRowClick ? event => handleRowClick(event, row) : undefined}\n onKeyDown={onRowClick || selectable ? event => onRowKeyDown(event, row, key) : undefined}\n tabIndex={onRowClick ? 0 : undefined}\n >\n {selectable ? (\n <td className={cn(styles.td, styles.checkboxCell)} data-selection-cell=''>\n <Checkbox checked={selected} onCheckedChange={checked => toggleRow(key, checked === true)} aria-label={`Select ${key}`} />\n </td>\n ) : null}\n {columns.map(column => (\n <td key={column.id} className={styles.td} data-align={column.align ?? 'start'} data-numeric={column.align === 'end' ? '' : undefined}>\n {renderCell(column, row)}\n </td>\n ))}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n </div>\n );\n}\n\nfunction renderCell<T>(column: TableColumn<T>, row: T): ReactElement | string {\n if (column.cell) return <>{column.cell(row)}</>;\n const value = (row as Record<string, unknown>)[column.id];\n return value == null ? '' : String(value);\n}\n\n/** Re-export for consumers who want the alignment union at a call site. */\nexport type { TableAlign };\n"],"names":[],"mappings":"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"}
|