@mozaic-ds/web-components 1.5.1 → 1.7.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/dist/Condition20.js +1 -1
- package/dist/Condition20.js.map +1 -1
- package/dist/accordion-list.state.svelte.js +1 -1
- package/dist/attributes.js +1 -1
- package/dist/attributes.js.map +1 -1
- package/dist/branches.js +1 -1
- package/dist/branches.js.map +1 -1
- package/dist/bundle.d.ts +16 -0
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +16 -0
- package/dist/components/accordionlist/AccordionList.js +4 -4
- package/dist/components/accordionlist/AccordionList.js.map +1 -1
- package/dist/components/accordionlist/AccordionList.stories.js +2 -2
- package/dist/components/accordionlist/AccordionList.svelte +19 -17
- package/dist/components/accordionlistItem/AccordionListItem.js +4 -4
- package/dist/components/accordionlistItem/AccordionListItem.js.map +1 -1
- package/dist/components/accordionlistItem/AccordionListItem.svelte +19 -17
- package/dist/components/actionbottombar/ActionBottomBar.js +2 -2
- package/dist/components/actionlistbox/ActionListbox.js +6 -4
- package/dist/components/actionlistbox/ActionListbox.js.map +1 -1
- package/dist/components/actionlistbox/ActionListbox.spec.js +73 -16
- package/dist/components/actionlistbox/ActionListbox.stories.d.ts +2 -0
- package/dist/components/actionlistbox/ActionListbox.stories.d.ts.map +1 -1
- package/dist/components/actionlistbox/ActionListbox.stories.js +73 -2
- package/dist/components/actionlistbox/ActionListbox.svelte +158 -12
- package/dist/components/actionlistbox/ActionListbox.svelte.d.ts +11 -1
- package/dist/components/actionlistbox/ActionListbox.svelte.d.ts.map +1 -1
- package/dist/components/actionlistbox/README.md +3 -0
- package/dist/components/actionlistboxitem/ActionListboxItem.js +2 -2
- package/dist/components/actionlistboxitem/ActionListboxItem.js.map +1 -1
- package/dist/components/actionlistboxitem/ActionListboxItem.svelte +21 -5
- package/dist/components/actionlistboxitem/ActionListboxItem.svelte.d.ts +6 -1
- package/dist/components/actionlistboxitem/ActionListboxItem.svelte.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +2 -2
- package/dist/components/breadcrumb/Breadcrumb.js +4 -6
- package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.svelte +7 -14
- package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
- package/dist/components/builtinmenu/BuiltInMenu.js +2 -2
- package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts +1 -1
- package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts.map +1 -1
- package/dist/components/builtinmenu/BuiltInMenu.stories.js +2 -2
- package/dist/components/builtinmenu/BuiltInMenu.svelte +1 -1
- package/dist/components/builtinmenuitem/BuiltInMenuItem.js +3 -3
- package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte +1 -1
- package/dist/components/button/Button.js +3 -3
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/Button.svelte +16 -1
- package/dist/components/button/Button.svelte.d.ts +6 -1
- package/dist/components/button/Button.svelte.d.ts.map +1 -1
- package/dist/components/callout/Callout.js +2 -2
- package/dist/components/callout/Callout.stories.d.ts +3 -3
- package/dist/components/callout/Callout.stories.d.ts.map +1 -1
- package/dist/components/callout/Callout.stories.js +3 -3
- package/dist/components/carousel/Carousel.js +2 -2
- package/dist/components/carousel/Carousel.js.map +1 -1
- package/dist/components/carousel/Carousel.svelte +1 -0
- package/dist/components/checkbox/Checkbox.js +4 -4
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox/Checkbox.svelte +30 -10
- package/dist/components/checkboxgroup/CheckboxGroup.js +4 -4
- package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
- package/dist/components/checkboxgroup/CheckboxGroup.svelte +30 -10
- package/dist/components/checklistmenu/CheckListMenu.js +2 -2
- package/dist/components/checklistmenu/CheckListMenu.js.map +1 -1
- package/dist/components/checklistmenu/CheckListMenu.stories.js +1 -1
- package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
- package/dist/components/combobox/Combobox.js +4 -0
- package/dist/components/combobox/Combobox.js.map +1 -0
- package/dist/components/combobox/Combobox.spec.js +186 -0
- package/dist/components/combobox/Combobox.stories.d.ts +17 -0
- package/dist/components/combobox/Combobox.stories.d.ts.map +1 -0
- package/dist/components/combobox/Combobox.stories.js +126 -0
- package/dist/components/combobox/Combobox.svelte +415 -0
- package/dist/components/combobox/Combobox.svelte.d.ts +99 -0
- package/dist/components/combobox/Combobox.svelte.d.ts.map +1 -0
- package/dist/components/combobox/README.md +38 -0
- package/dist/components/container/Container.js +2 -2
- package/dist/components/datepicker/Datepicker.js +3 -3
- package/dist/components/datepicker/Datepicker.js.map +1 -1
- package/dist/components/datepicker/Datepicker.stories.d.ts +1 -1
- package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
- package/dist/components/datepicker/Datepicker.stories.js +2 -2
- package/dist/components/datepicker/Datepicker.svelte +34 -9
- package/dist/components/divider/Divider.js +2 -2
- package/dist/components/divider/Divider.js.map +1 -1
- package/dist/components/divider/Divider.svelte +6 -1
- package/dist/components/divider/Divider.svelte.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.js +4 -4
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/drawer/Drawer.svelte +6 -2
- package/dist/components/field/Field.js +3 -3
- package/dist/components/field/Field.js.map +1 -1
- package/dist/components/field/Field.spec.js +1 -1
- package/dist/components/field/Field.svelte +7 -3
- package/dist/components/fileuploader/FileUploader.js +2 -2
- package/dist/components/fileuploader/FileUploader.js.map +1 -1
- package/dist/components/fileuploader/FileUploader.stories.js +3 -3
- package/dist/components/fileuploader/FileUploader.svelte +5 -5
- package/dist/components/fileuploaderitem/FileUploaderItem.js +3 -3
- package/dist/components/fileuploaderitem/FileUploaderItem.svelte +1 -4
- package/dist/components/flag/Flag.js +2 -2
- package/dist/components/iconbutton/IconButton.js +2 -2
- package/dist/components/iconbutton/IconButton.js.map +1 -1
- package/dist/components/iconbutton/IconButton.svelte +11 -1
- package/dist/components/iconbutton/IconButton.svelte.d.ts +3 -1
- package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
- package/dist/components/kpiitem/KpiItem.js +2 -2
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
- package/dist/components/link/Link.js +2 -2
- package/dist/components/link/Link.stories.js +2 -2
- package/dist/components/loader/Loader.js +2 -2
- package/dist/components/loadingoverlay/LoadingOverlay.js +2 -2
- package/dist/components/loadingoverlay/LoadingOverlay.svelte +1 -1
- package/dist/components/modal/Modal.js +5 -5
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/Modal.spec.js +3 -1
- package/dist/components/modal/Modal.svelte +14 -4
- package/dist/components/modal/Modal.svelte.d.ts +4 -0
- package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
- package/dist/components/modal/README.md +1 -0
- package/dist/components/navigationindicator/NavigationIndicator.js +4 -0
- package/dist/components/navigationindicator/NavigationIndicator.js.map +1 -0
- package/dist/components/navigationindicator/NavigationIndicator.spec.js +130 -0
- package/dist/components/navigationindicator/NavigationIndicator.stories.d.ts +8 -0
- package/dist/components/navigationindicator/NavigationIndicator.stories.d.ts.map +1 -0
- package/dist/components/navigationindicator/NavigationIndicator.stories.js +40 -0
- package/dist/components/navigationindicator/NavigationIndicator.svelte +156 -0
- package/dist/components/navigationindicator/NavigationIndicator.svelte.d.ts +34 -0
- package/dist/components/navigationindicator/NavigationIndicator.svelte.d.ts.map +1 -0
- package/dist/components/navigationindicator/README.md +21 -0
- package/dist/components/numberbadge/NumberBadge.js +2 -2
- package/dist/components/optionlistbox/OptionListbox.js +23 -0
- package/dist/components/optionlistbox/OptionListbox.js.map +1 -0
- package/dist/components/optionlistbox/OptionListbox.spec.js +350 -0
- package/dist/components/optionlistbox/OptionListbox.svelte +566 -0
- package/dist/components/optionlistbox/OptionListbox.svelte.d.ts +92 -0
- package/dist/components/optionlistbox/OptionListbox.svelte.d.ts.map +1 -0
- package/dist/components/optionlistbox/README.md +38 -0
- package/dist/components/overlay/Overlay.js +2 -2
- package/dist/components/overlay/Overlay.svelte +2 -2
- package/dist/components/pageheader/PageHeader.js +24 -0
- package/dist/components/pageheader/PageHeader.js.map +1 -0
- package/dist/components/pageheader/PageHeader.spec.js +75 -0
- package/dist/components/pageheader/PageHeader.stories.d.ts +12 -0
- package/dist/components/pageheader/PageHeader.stories.d.ts.map +1 -0
- package/dist/components/pageheader/PageHeader.stories.js +82 -0
- package/dist/components/pageheader/PageHeader.svelte +268 -0
- package/dist/components/pageheader/PageHeader.svelte.d.ts +66 -0
- package/dist/components/pageheader/PageHeader.svelte.d.ts.map +1 -0
- package/dist/components/pageheader/README.md +32 -0
- package/dist/components/pagination/Pagination.js +8 -8
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/Pagination.svelte +44 -28
- package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
- package/dist/components/passwordinput/PasswordInput.js +4 -4
- package/dist/components/passwordinput/PasswordInput.js.map +1 -1
- package/dist/components/passwordinput/PasswordInput.stories.d.ts +1 -1
- package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
- package/dist/components/passwordinput/PasswordInput.stories.js +2 -2
- package/dist/components/passwordinput/PasswordInput.svelte +16 -6
- package/dist/components/phonenumber/PhoneNumber.js +13 -11
- package/dist/components/phonenumber/PhoneNumber.js.map +1 -1
- package/dist/components/phonenumber/PhoneNumber.stories.d.ts +1 -1
- package/dist/components/phonenumber/PhoneNumber.stories.d.ts.map +1 -1
- package/dist/components/phonenumber/PhoneNumber.stories.js +2 -2
- package/dist/components/phonenumber/PhoneNumber.svelte +87 -39
- package/dist/components/phonenumber/PhoneNumber.svelte.d.ts.map +1 -1
- package/dist/components/pincode/Pincode.js +2 -2
- package/dist/components/pincode/Pincode.js.map +1 -1
- package/dist/components/pincode/Pincode.stories.d.ts +1 -1
- package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
- package/dist/components/pincode/Pincode.stories.js +2 -2
- package/dist/components/popover/Popover.js +6 -0
- package/dist/components/popover/Popover.js.map +1 -0
- package/dist/components/popover/Popover.spec.js +69 -0
- package/dist/components/popover/Popover.stories.d.ts +36 -0
- package/dist/components/popover/Popover.stories.d.ts.map +1 -0
- package/dist/components/popover/Popover.stories.js +124 -0
- package/dist/components/popover/Popover.svelte +348 -0
- package/dist/components/popover/Popover.svelte.d.ts +79 -0
- package/dist/components/popover/Popover.svelte.d.ts.map +1 -0
- package/dist/components/popover/README.md +25 -0
- package/dist/components/quantityselector/QuantitySelector.js +3 -3
- package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
- package/dist/components/quantityselector/QuantitySelector.stories.js +1 -1
- package/dist/components/quantityselector/QuantitySelector.svelte +4 -4
- package/dist/components/radio/Radio.js +2 -2
- package/dist/components/radio/Radio.js.map +1 -1
- package/dist/components/radiogroup/RadioGroup.js +2 -2
- package/dist/components/radiogroup/RadioGroup.js.map +1 -1
- package/dist/components/radiogroup/RadioGroup.svelte +6 -2
- package/dist/components/segmentedcontrol/README.md +6 -3
- package/dist/components/segmentedcontrol/SegmentedControl.js +2 -2
- package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -1
- package/dist/components/segmentedcontrol/SegmentedControl.spec.js +60 -23
- package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -1
- package/dist/components/segmentedcontrol/SegmentedControl.stories.js +6 -1
- package/dist/components/segmentedcontrol/SegmentedControl.svelte +23 -10
- package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts +10 -3
- package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -1
- package/dist/components/select/Select.js +3 -3
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/select/Select.spec.js +2 -2
- package/dist/components/select/Select.stories.d.ts +1 -1
- package/dist/components/select/Select.stories.d.ts.map +1 -1
- package/dist/components/select/Select.stories.js +2 -2
- package/dist/components/select/Select.svelte +50 -31
- package/dist/components/select/Select.svelte.d.ts.map +1 -1
- package/dist/components/sidebar/README.md +28 -0
- package/dist/components/sidebar/Sidebar.js +18 -0
- package/dist/components/sidebar/Sidebar.js.map +1 -0
- package/dist/components/sidebar/Sidebar.spec.js +74 -0
- package/dist/components/sidebar/Sidebar.stories.d.ts +23 -0
- package/dist/components/sidebar/Sidebar.stories.d.ts.map +1 -0
- package/dist/components/sidebar/Sidebar.stories.js +333 -0
- package/dist/components/sidebar/Sidebar.svelte +570 -0
- package/dist/components/sidebar/Sidebar.svelte.d.ts +47 -0
- package/dist/components/sidebar/Sidebar.svelte.d.ts.map +1 -0
- package/dist/components/sidebar/floating-item.spec.js +96 -0
- package/dist/components/sidebar/floating-item.svelte.d.ts +13 -0
- package/dist/components/sidebar/floating-item.svelte.d.ts.map +1 -0
- package/dist/components/sidebar/floating-item.svelte.js +95 -0
- package/dist/components/sidebar/sidebar-state.spec.js +112 -0
- package/dist/components/sidebar/sidebar-state.svelte.d.ts +9 -0
- package/dist/components/sidebar/sidebar-state.svelte.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-state.svelte.js +36 -0
- package/dist/components/sidebarexpandableitem/README.md +19 -0
- package/dist/components/sidebarexpandableitem/SidebarExpandableItem.js +18 -0
- package/dist/components/sidebarexpandableitem/SidebarExpandableItem.js.map +1 -0
- package/dist/components/sidebarexpandableitem/SidebarExpandableItem.spec.js +85 -0
- package/dist/components/sidebarexpandableitem/SidebarExpandableItem.svelte +578 -0
- package/dist/components/sidebarexpandableitem/SidebarExpandableItem.svelte.d.ts +49 -0
- package/dist/components/sidebarexpandableitem/SidebarExpandableItem.svelte.d.ts.map +1 -0
- package/dist/components/sidebarfooter/README.md +29 -0
- package/dist/components/sidebarfooter/SidebarFooter.js +18 -0
- package/dist/components/sidebarfooter/SidebarFooter.js.map +1 -0
- package/dist/components/sidebarfooter/SidebarFooter.spec.js +132 -0
- package/dist/components/sidebarfooter/SidebarFooter.svelte +1018 -0
- package/dist/components/sidebarfooter/SidebarFooter.svelte.d.ts +60 -0
- package/dist/components/sidebarfooter/SidebarFooter.svelte.d.ts.map +1 -0
- package/dist/components/sidebarfooter/_SidebarFooterMenu.js +18 -0
- package/dist/components/sidebarfooter/_SidebarFooterMenu.js.map +1 -0
- package/dist/components/sidebarfooter/_SidebarFooterMenu.svelte +517 -0
- package/dist/components/sidebarfooter/_SidebarFooterMenu.svelte.d.ts +36 -0
- package/dist/components/sidebarfooter/_SidebarFooterMenu.svelte.d.ts.map +1 -0
- package/dist/components/sidebarheader/README.md +11 -0
- package/dist/components/sidebarheader/SidebarHeader.js +18 -0
- package/dist/components/sidebarheader/SidebarHeader.js.map +1 -0
- package/dist/components/sidebarheader/SidebarHeader.spec.js +37 -0
- package/dist/components/sidebarheader/SidebarHeader.svelte +499 -0
- package/dist/components/sidebarheader/SidebarHeader.svelte.d.ts +17 -0
- package/dist/components/sidebarheader/SidebarHeader.svelte.d.ts.map +1 -0
- package/dist/components/sidebarnavitem/README.md +30 -0
- package/dist/components/sidebarnavitem/SidebarNavItem.js +18 -0
- package/dist/components/sidebarnavitem/SidebarNavItem.js.map +1 -0
- package/dist/components/sidebarnavitem/SidebarNavItem.spec.js +95 -0
- package/dist/components/sidebarnavitem/SidebarNavItem.svelte +617 -0
- package/dist/components/sidebarnavitem/SidebarNavItem.svelte.d.ts +58 -0
- package/dist/components/sidebarnavitem/SidebarNavItem.svelte.d.ts.map +1 -0
- package/dist/components/sidebarshortcutitem/README.md +17 -0
- package/dist/components/sidebarshortcutitem/SidebarShortcutItem.js +18 -0
- package/dist/components/sidebarshortcutitem/SidebarShortcutItem.js.map +1 -0
- package/dist/components/sidebarshortcutitem/SidebarShortcutItem.spec.js +34 -0
- package/dist/components/sidebarshortcutitem/SidebarShortcutItem.svelte +509 -0
- package/dist/components/sidebarshortcutitem/SidebarShortcutItem.svelte.d.ts +35 -0
- package/dist/components/sidebarshortcutitem/SidebarShortcutItem.svelte.d.ts.map +1 -0
- package/dist/components/sidebarshortcuts/README.md +23 -0
- package/dist/components/sidebarshortcuts/SidebarShortcuts.js +18 -0
- package/dist/components/sidebarshortcuts/SidebarShortcuts.js.map +1 -0
- package/dist/components/sidebarshortcuts/SidebarShortcuts.spec.js +82 -0
- package/dist/components/sidebarshortcuts/SidebarShortcuts.svelte +583 -0
- package/dist/components/sidebarshortcuts/SidebarShortcuts.svelte.d.ts +42 -0
- package/dist/components/sidebarshortcuts/SidebarShortcuts.svelte.d.ts.map +1 -0
- package/dist/components/starrating/StarRating.js +2 -2
- package/dist/components/starrating/StarRating.js.map +1 -1
- package/dist/components/starrating/StarRating.stories.d.ts +5 -5
- package/dist/components/starrating/StarRating.stories.d.ts.map +1 -1
- package/dist/components/starrating/StarRating.stories.js +5 -5
- package/dist/components/statusbadge/StatusBadge.js +2 -2
- package/dist/components/statusdot/StatusDot.js +2 -2
- package/dist/components/statusmessage/StatusMessage.js +2 -2
- package/dist/components/statusmessage/StatusMessage.js.map +1 -1
- package/dist/components/statusmessage/StatusMessage.svelte +5 -0
- package/dist/components/statusnotification/StatusNotification.js +2 -2
- package/dist/components/statusnotification/StatusNotification.js.map +1 -1
- package/dist/components/statusnotification/StatusNotification.stories.d.ts +3 -3
- package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
- package/dist/components/statusnotification/StatusNotification.stories.js +3 -3
- package/dist/components/statusnotification/StatusNotification.svelte +9 -1
- package/dist/components/stepperbottombar/StepperBottomBar.js +3 -3
- package/dist/components/stepperbottombar/StepperBottomBar.svelte +5 -1
- package/dist/components/stepperbottombar/StepperBottomBar.svelte.d.ts +1 -1
- package/dist/components/steppercompact/StepperCompact.js +2 -2
- package/dist/components/stepperinline/README.md +6 -2
- package/dist/components/stepperinline/StepperInline.js +3 -3
- package/dist/components/stepperinline/StepperInline.js.map +1 -1
- package/dist/components/stepperinline/StepperInline.spec.js +57 -23
- package/dist/components/stepperinline/StepperInline.stories.d.ts.map +1 -1
- package/dist/components/stepperinline/StepperInline.stories.js +6 -11
- package/dist/components/stepperinline/StepperInline.svelte +24 -11
- package/dist/components/stepperinline/StepperInline.svelte.d.ts +11 -3
- package/dist/components/stepperinline/StepperInline.svelte.d.ts.map +1 -1
- package/dist/components/stepperstacked/README.md +15 -0
- package/dist/components/stepperstacked/StepperStacked.js +18 -0
- package/dist/components/stepperstacked/StepperStacked.js.map +1 -0
- package/dist/components/stepperstacked/StepperStacked.spec.js +138 -0
- package/dist/components/stepperstacked/StepperStacked.stories.d.ts +8 -0
- package/dist/components/stepperstacked/StepperStacked.stories.d.ts.map +1 -0
- package/dist/components/stepperstacked/StepperStacked.stories.js +33 -0
- package/dist/components/stepperstacked/StepperStacked.svelte +214 -0
- package/dist/components/stepperstacked/StepperStacked.svelte.d.ts +35 -0
- package/dist/components/stepperstacked/StepperStacked.svelte.d.ts.map +1 -0
- package/dist/components/tab/README.md +1 -0
- package/dist/components/tab/Tab.js +2 -2
- package/dist/components/tab/Tab.js.map +1 -1
- package/dist/components/tab/Tab.svelte +17 -1
- package/dist/components/tab/Tab.svelte.d.ts +4 -0
- package/dist/components/tab/Tab.svelte.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +2 -2
- package/dist/components/tabs/Tabs.stories.d.ts +1 -0
- package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.stories.js +11 -1
- package/dist/components/tag/README.md +1 -0
- package/dist/components/tag/Tag.js +2 -2
- package/dist/components/tag/Tag.js.map +1 -1
- package/dist/components/tag/Tag.svelte +15 -5
- package/dist/components/tag/Tag.svelte.d.ts +4 -0
- package/dist/components/tag/Tag.svelte.d.ts.map +1 -1
- package/dist/components/textarea/Textarea.js +2 -2
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/textarea/Textarea.stories.d.ts +1 -1
- package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
- package/dist/components/textarea/Textarea.stories.js +2 -2
- package/dist/components/textarea/Textarea.svelte +1 -0
- package/dist/components/textinput/README.md +3 -0
- package/dist/components/textinput/Textinput.js +5 -5
- package/dist/components/textinput/Textinput.js.map +1 -1
- package/dist/components/textinput/Textinput.stories.d.ts +11 -1
- package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
- package/dist/components/textinput/Textinput.stories.js +21 -29
- package/dist/components/textinput/Textinput.svelte +33 -5
- package/dist/components/textinput/Textinput.svelte.d.ts +10 -1
- package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
- package/dist/components/tile/README.md +19 -0
- package/dist/components/tile/Tile.js +111 -0
- package/dist/components/tile/Tile.js.map +1 -0
- package/dist/components/tile/Tile.spec.js +21 -0
- package/dist/components/tile/Tile.stories.d.ts +10 -0
- package/dist/components/tile/Tile.stories.d.ts.map +1 -0
- package/dist/components/tile/Tile.stories.js +37 -0
- package/dist/components/tile/Tile.svelte +894 -0
- package/dist/components/tile/Tile.svelte.d.ts +48 -0
- package/dist/components/tile/Tile.svelte.d.ts.map +1 -0
- package/dist/components/tileclickable/README.md +31 -0
- package/dist/components/tileclickable/TileClickable.js +114 -0
- package/dist/components/tileclickable/TileClickable.js.map +1 -0
- package/dist/components/tileclickable/TileClickable.spec.js +62 -0
- package/dist/components/tileclickable/TileClickable.stories.d.ts +10 -0
- package/dist/components/tileclickable/TileClickable.stories.d.ts.map +1 -0
- package/dist/components/tileclickable/TileClickable.stories.js +52 -0
- package/dist/components/tileclickable/TileClickable.svelte +954 -0
- package/dist/components/tileclickable/TileClickable.svelte.d.ts +65 -0
- package/dist/components/tileclickable/TileClickable.svelte.d.ts.map +1 -0
- package/dist/components/tileexpandable/README.md +20 -0
- package/dist/components/tileexpandable/TileExpandable.js +114 -0
- package/dist/components/tileexpandable/TileExpandable.js.map +1 -0
- package/dist/components/tileexpandable/TileExpandable.spec.js +65 -0
- package/dist/components/tileexpandable/TileExpandable.stories.d.ts +7 -0
- package/dist/components/tileexpandable/TileExpandable.stories.d.ts.map +1 -0
- package/dist/components/tileexpandable/TileExpandable.stories.js +38 -0
- package/dist/components/tileexpandable/TileExpandable.svelte +956 -0
- package/dist/components/tileexpandable/TileExpandable.svelte.d.ts +53 -0
- package/dist/components/tileexpandable/TileExpandable.svelte.d.ts.map +1 -0
- package/dist/components/tileselectable/README.md +21 -0
- package/dist/components/tileselectable/TileSelectable.js +108 -0
- package/dist/components/tileselectable/TileSelectable.js.map +1 -0
- package/dist/components/tileselectable/TileSelectable.spec.js +57 -0
- package/dist/components/tileselectable/TileSelectable.stories.d.ts +9 -0
- package/dist/components/tileselectable/TileSelectable.stories.d.ts.map +1 -0
- package/dist/components/tileselectable/TileSelectable.stories.js +44 -0
- package/dist/components/tileselectable/TileSelectable.svelte +939 -0
- package/dist/components/tileselectable/TileSelectable.svelte.d.ts +57 -0
- package/dist/components/tileselectable/TileSelectable.svelte.d.ts.map +1 -0
- package/dist/components/toaster/Toaster.js +3 -3
- package/dist/components/toaster/Toaster.js.map +1 -1
- package/dist/components/toaster/Toaster.stories.d.ts +2 -2
- package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
- package/dist/components/toaster/Toaster.stories.js +2 -2
- package/dist/components/toaster/Toaster.svelte +11 -3
- package/dist/components/toggle/Toggle.js +2 -2
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components/toggle/Toggle.svelte +0 -14
- package/dist/components/togglegroup/ToggleGroup.js +2 -2
- package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
- package/dist/components/togglegroup/ToggleGroup.svelte +6 -16
- package/dist/components/tooltip/README.md +1 -0
- package/dist/components/tooltip/Tooltip.js +2 -2
- package/dist/components/tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/Tooltip.svelte +18 -10
- package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
- package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
- package/dist/custom-element.js +3 -3
- package/dist/custom-element.js.map +1 -1
- package/dist/documentation/DarkMode.mdx +115 -0
- package/dist/each.js +1 -1
- package/dist/each.js.map +1 -1
- package/dist/floating-item.svelte.js +2 -0
- package/dist/floating-item.svelte.js.map +1 -0
- package/dist/if.js +1 -1
- package/dist/if.js.map +1 -1
- package/dist/index-client.js +1 -1
- package/dist/index-client.js.map +1 -1
- package/dist/input.js +1 -1
- package/dist/main.d.ts +17 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -1
- package/dist/media-query.js +2 -0
- package/dist/media-query.js.map +1 -0
- package/dist/sidebar-state.svelte.js +2 -0
- package/dist/sidebar-state.svelte.js.map +1 -0
- package/dist/slot.js +1 -1
- package/dist/svelte-component.js +1 -1
- package/dist/svelte-component.js.map +1 -1
- package/dist/svelte-element.js +1 -1
- package/dist/svelte-element.js.map +1 -1
- package/dist/this.js +1 -1
- package/package.json +3 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{c as H,
|
|
1
|
+
import{c as H,e as J,a as K,p as $,g as L,b as p,d as N,f as c,n as O,h as a,m as C,i as s,s as I,r as n,t as j,j as g,l as x,k as P,w as y}from"../../custom-element.js";import{i as M}from"../../if.js";import{e as Q,i as T}from"../../each.js";import{a as U}from"../../attributes.js";import{f as V,g as W}from"../../Condition20.js";import"../../branches.js";var X=c('<span class="mc-stepper-inline__icon mc-stepper-inline__icon--check svelte-s80odb" aria-hidden="true"><!></span>'),Y=c("<span></span>"),Z=c('<span class="mc-stepper-inline__icon mc-stepper-inline__icon--chevron svelte-s80odb" aria-hidden="true"><!></span>'),ee=c('<li><!> <div class="mc-stepper-inline__content svelte-s80odb"><span> </span></div> <!></li>'),re=c('<nav><ol class="mc-stepper-inline__container svelte-s80odb"></ol></nav>');const te={hash:"svelte-s80odb",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
|
-
*/.mc-stepper-inline__container.svelte-s80odb {display:flex;align-items:center;gap:1rem;list-style:none;padding:0;margin:0;}.mc-stepper-inline__label.svelte-s80odb {font-size:var(--font-size-100, 0.875rem);transition:color 200ms ease;}.mc-stepper-inline__label.is-current.svelte-s80odb {font-weight:var(--font-weight-medium, 600);color:var(--stepper-color-step-label-active, #000000);}.mc-stepper-inline__item.svelte-s80odb {display:inline-flex;align-items:center;gap:0.5rem;color:var(--stepper-color-step-label-default, #666666);}.mc-stepper-inline__item.is-completed.svelte-s80odb:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;border-radius:var(--border-radius-s, 0.25rem);}.mc-stepper-inline__item.is-completed.svelte-s80odb:hover {cursor:pointer;}.mc-stepper-inline__item.is-completed.svelte-s80odb:hover .mc-stepper-inline__label:where(.svelte-s80odb) {text-decoration:underline;}.mc-stepper-inline__icon.svelte-s80odb {fill:var(--stepper-color-information, #666666);display:flex;flex-shrink:0;}.mc-stepper-inline__icon--check.svelte-s80odb {box-sizing:border-box;width:1.5rem;height:1.5rem;background-color:
|
|
3
|
+
*/.mc-stepper-inline__container.svelte-s80odb {display:flex;align-items:center;gap:1rem;list-style:none;padding:0;margin:0;}.mc-stepper-inline__label.svelte-s80odb {font-size:var(--font-size-100, 0.875rem);transition:color 200ms ease;}.mc-stepper-inline__label.is-current.svelte-s80odb {font-weight:var(--font-weight-medium, 600);color:var(--stepper-color-step-label-active, #000000);}.mc-stepper-inline__item.svelte-s80odb {display:inline-flex;align-items:center;gap:0.5rem;color:var(--stepper-color-step-label-default, #666666);}.mc-stepper-inline__item.is-completed.svelte-s80odb:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;border-radius:var(--border-radius-s, 0.25rem);}.mc-stepper-inline__item.is-completed.svelte-s80odb:hover {cursor:pointer;}.mc-stepper-inline__item.is-completed.svelte-s80odb:hover .mc-stepper-inline__label:where(.svelte-s80odb) {text-decoration:underline;}.mc-stepper-inline__icon.svelte-s80odb {fill:var(--stepper-color-information, #666666);display:flex;flex-shrink:0;}.mc-stepper-inline__icon--check.svelte-s80odb {box-sizing:border-box;width:1.5rem;height:1.5rem;background-color:var(--stepper-color-step-item-default-background, #ffffff);border:0.125rem solid var(--stepper-color-information, #666666);border-radius:1rem;}.mc-stepper-inline__icon--chevron.svelte-s80odb {width:1.25rem;height:1.25rem;}.mc-stepper-inline__circle.svelte-s80odb {box-sizing:border-box;width:1.5rem;height:1.5rem;border-radius:50%;border:0.125rem solid var(--stepper-color-information, #666666);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-100, 0.875rem);font-weight:var(--font-weight-medium, 600);color:var(--stepper-color-information, #666666);background-color:var(--stepper-color-step-item-default-background, #ffffff);flex-shrink:0;transition:background-color 200ms ease, color 200ms ease, border-color 200ms ease;}.mc-stepper-inline__circle.is-current.svelte-s80odb {background-color:var(--stepper-color-step-item-active-background, #117f03);color:var(--stepper-color-step-item-active-text, #ffffff);border-color:transparent;
|
|
4
4
|
animation: svelte-s80odb-pop-in 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;}.mc-stepper-inline__content.svelte-s80odb {display:flex;flex-direction:column;margin-right:0.5rem;}.mc-stepper-inline__additional.svelte-s80odb {font-size:var(--font-size-50, 0.75rem);color:var(--stepper-color-information, #666666);}.mc-stepper-inline__separator.svelte-s80odb {color:var(--stepper-color-information, #666666);margin-left:1rem;}
|
|
5
5
|
|
|
6
6
|
@keyframes svelte-s80odb-pop-in {
|
|
@@ -12,5 +12,5 @@ import{c as H,p as J,a as K,b as $,k as L,f as a,g as N,h as l,i as O,d as i,j a
|
|
|
12
12
|
transform: scale(1);
|
|
13
13
|
opacity: 1;
|
|
14
14
|
}
|
|
15
|
-
}.mc-stepper-inline__icon {align-items:center;}`};function se(k,
|
|
15
|
+
}.mc-stepper-inline__icon {align-items:center;}`};function se(k,m){J(m,!0),K(k,te);let l=$(m,"step",15,0),o=$(m,"steps",31,()=>L([])),D=O(m,["$$slots","$$events","$$legacy","$$host","step","steps"]);const w=y(()=>{if(typeof l()=="number")return Math.min(Math.max(l(),1),o().length)-1;{const t=o().findIndex(i=>i.id===l());return t===-1?0:t}}),E=y(()=>o().map((t,i)=>({completed:i<s(w),current:i===s(w)})));var R={get step(){return l()},set step(t=0){l(t),C()},get steps(){return o()},set steps(t=[]){o(t),C()}},d=re();U(d,()=>({class:"mc-stepper-inline","aria-label":"Stepper",...D}),void 0,void 0,void 0,"svelte-s80odb");var z=a(d);return Q(z,21,o,T,(t,i,_,oe)=>{const v=y(()=>s(E)[_]);var f=ee(),S=a(f);{var q=r=>{var e=X(),h=a(e);V(h,{}),n(e),p(r,e)},A=r=>{var e=Y();e.textContent=_+1,j(()=>g(e,1,x(["mc-stepper-inline__circle",s(v).current?"is-current":""]),"svelte-s80odb")),p(r,e)};M(S,r=>{s(v).completed?r(q):r(A,-1)})}var b=I(S,2),u=a(b),B=a(u,!0);n(u),n(b);var F=I(b,2);{var G=r=>{var e=Z(),h=a(e);W(h,{}),n(e),p(r,e)};M(F,r=>{_<o().length-1&&r(G)})}n(f),j(()=>{g(f,1,x(["mc-stepper-inline__item",s(v).completed?"is-completed":""]),"svelte-s80odb"),g(u,1,x(["mc-stepper-inline__label",s(v).current?"is-current":""]),"svelte-s80odb"),P(B,s(i).label)}),p(t,f)}),n(z),n(d),p(k,d),N(R)}customElements.define("m-stepper-inline",H(se,{step:{},steps:{}},[],[],{mode:"open"}));
|
|
16
16
|
//# sourceMappingURL=StepperInline.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepperInline.js","sources":["../../../src/components/stepperinline/StepperInline.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-stepper-inline' }} />\n\n<script lang=\"ts\">\n import { Check24 } from '@mozaic-ds/icons-svelte';\n import { ChevronRight24 } from '@mozaic-ds/icons-svelte';\n /**\n * An inline stepper is a horizontal navigation component that displays a sequence of steps in a linear fashion. It helps users understand their progress through a multi-step process by visually indicating the current step, completed steps, and upcoming steps. Inline steppers are typically used in forms, onboarding flows, and checkout processes to enhance user experience and provide clarity on the workflow.\n */\n\n interface Props {\n [key: string]: any;\n /**\n *
|
|
1
|
+
{"version":3,"file":"StepperInline.js","sources":["../../../src/components/stepperinline/StepperInline.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-stepper-inline' }} />\n\n<script lang=\"ts\">\n import { Check24 } from '@mozaic-ds/icons-svelte';\n import { ChevronRight24 } from '@mozaic-ds/icons-svelte';\n /**\n * An inline stepper is a horizontal navigation component that displays a sequence of steps in a linear fashion. It helps users understand their progress through a multi-step process by visually indicating the current step, completed steps, and upcoming steps. Inline steppers are typically used in forms, onboarding flows, and checkout processes to enhance user experience and provide clarity on the workflow.\n */\n\n interface Props {\n [key: string]: any;\n /**\n * Defines the currently active step.\n *\n * - If a `number` is provided, it represents the 1-based position of the step\n * in the `steps` array (e.g. `1` for the first step).\n * - If a `string` is provided, it must match the `id` of one of the steps.\n */\n step?: number | string;\n /**\n * Steps of the stepper inline.\n */\n steps?: Array<{\n /**\n * Uniquer identifier for the step.\n */\n id?: string;\n /**\n * Label of the step.\n */\n label: string;\n /**\n * Optional additional information under the label.\n */\n additionalinfo?: string;\n }>;\n }\n\n let { step = $bindable(0), steps = $bindable([]), ...attrs }: Props = $props();\n\n const activeStep = $derived.by(() => {\n if (typeof step === 'number') {\n return Math.min(Math.max(step, 1), steps.length) - 1;\n } else {\n const activeIndex = steps.findIndex((el) => el.id === step);\n return activeIndex === -1 ? 0 : activeIndex;\n }\n });\n\n const stepStates = $derived.by(() =>\n steps.map((_, i) => ({\n completed: i < activeStep,\n current: i === activeStep,\n })),\n );\n</script>\n\n<nav class=\"mc-stepper-inline\" aria-label=\"Stepper\" {...attrs}>\n <ol class=\"mc-stepper-inline__container\">\n {#each steps as step, i (i)}\n {@const state = stepStates[i]}\n <li class={['mc-stepper-inline__item', state.completed ? 'is-completed' : '']}>\n {#if state.completed}\n <span class=\"mc-stepper-inline__icon mc-stepper-inline__icon--check\" aria-hidden=\"true\">\n <Check24 />\n </span>\n {:else}\n <span class={['mc-stepper-inline__circle', state.current ? 'is-current' : '']}>\n {i + 1}\n </span>\n {/if}\n <div class=\"mc-stepper-inline__content\">\n <span class={['mc-stepper-inline__label', state.current ? 'is-current' : '']}>\n {step.label}\n </span>\n </div>\n {#if i < steps.length - 1}\n <span class=\"mc-stepper-inline__icon mc-stepper-inline__icon--chevron\" aria-hidden=\"true\">\n <ChevronRight24 />\n </span>\n {/if}\n </li>\n {/each}\n </ol>\n</nav>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/stepper-inline';\n\n :global(.mc-stepper-inline__icon) {\n align-items: center;\n }\n</style>\n"],"names":["step","steps","$.prop","$$props","$.proxy","attrs","$.rest_props","activeStep","$.derived","activeIndex","el","stepStates","_","$.get","nav","root","ol","$.index","$$anchor","i","$$array","state","li","root_1","span","root_2","Check24","node_1","span_1","root_3","$$render","consequent","alternate","div","$.sibling","node","span_2","span_3","root_4","ChevronRight24","node_3","consequent_1","$.set_text","text"],"mappings":";;;;;;;;;;;;;;kEAEA,iBAoCQ,IAAAA,gBAAiB,CAAC,EAAGC,EAAKC,EAAAC,EAAA,QAAA,GAAA,IAAAC,EAAA,CAAA,CAAA,CAAA,EAAqBC,EAAKC,EAAAH,EAAA,CAAA,UAAA,WAAA,WAAA,SAAA,OAAA,OAAA,CAAA,EAEpD,MAAAI,EAAUC,EAAA,IAAqB,WACxBR,EAAI,GAAK,SACX,OAAA,KAAK,IAAI,KAAK,IAAIA,IAAM,CAAC,EAAGC,IAAM,MAAM,EAAI,EAC9C,OACCQ,EAAcR,EAAK,EAAC,UAAWS,GAAOA,EAAG,KAAOV,GAAI,EACnD,OAAAS,IAAW,GAAU,EAAIA,CAClC,CACF,CAAC,EAEKE,QACJV,EAAK,EAAC,IAAG,CAAEW,EAAG,KAAC,CACb,UAAW,EAACC,EAAGN,CAAU,EACzB,QAAS,IAACM,EAAKN,CAAU,+CAdN,EAAC,8DAmBzBO,EAAGC,GAAA,IAAHD,4DAAuDT,0CACrD,IAAAW,IADFF,CAAG,WACDE,EAAE,GACMf,EAAKgB,EAAA,CAAAC,EAAIlB,EAAImB,EAAAC,KAAA,OACVC,EAAKb,EAAA,IAAAK,EAAGF,CAAU,EAACQ,CAAC,CAAA,MAC3BG,EAAEC,GAAA,MAAFD,CAAE,iBAEEE,EAAIC,EAAA,MAAJD,CAAI,EACFE,EAAOC,EAAA,EAAA,IADTH,CAAI,MAAJA,CAAI,aAIJI,EAAIC,EAAA,EAAJD,EAAI,YACFT,EAAI,UADNS,OAAa,4BAA6Bf,EAAAQ,CAAK,EAAC,QAAU,aAAe,2BAAzEO,CAAI,WALFf,EAAAQ,CAAK,EAAC,UAASS,EAAAC,CAAA,EAAAD,EAAAE,EAAA,EAAA,QASnBC,EAAGC,EAAAC,EAAA,CAAA,EACDC,IADFH,CAAG,MACDG,EAAI,EAAA,IAAJA,CAAI,IADNH,CAAG,UAAHA,EAAG,CAAA,iBAMDI,EAAIC,EAAA,MAAJD,CAAI,EACFE,EAAcC,EAAA,EAAA,IADhBH,CAAI,MAAJA,CAAI,WADFlB,EAAIlB,EAAK,EAAC,OAAS,GAAC6B,EAAAW,CAAA,MAf1BnB,CAAE,WAAFA,OAAW,0BAA2BT,EAAAQ,CAAK,EAAC,UAAY,eAAiB,wBAWrEe,OAAa,2BAA4BvB,EAAAQ,CAAK,EAAC,QAAU,aAAe,sBACtEqB,EAAAC,EAAA9B,EAAAb,CAAI,EAAC,KAAK,QAZhBsB,CAAE,MAHNN,CAAE,IADJF,CAAG,MAAHA,CAAG,MAFI"}
|
|
@@ -2,7 +2,11 @@ import { render } from '@testing-library/svelte';
|
|
|
2
2
|
import StepperInline from './StepperInline.svelte';
|
|
3
3
|
import { describe, it, expect } from 'vitest';
|
|
4
4
|
describe('StepperInline', () => {
|
|
5
|
-
const defaultSteps = [
|
|
5
|
+
const defaultSteps = [
|
|
6
|
+
{ id: '1', label: 'Step 1' },
|
|
7
|
+
{ id: '2', label: 'Step 2' },
|
|
8
|
+
{ id: '3', label: 'Step 3' },
|
|
9
|
+
];
|
|
6
10
|
it('renders correctly with default props', () => {
|
|
7
11
|
const { getAllByRole, getByText } = render(StepperInline, {
|
|
8
12
|
props: {
|
|
@@ -13,31 +17,61 @@ describe('StepperInline', () => {
|
|
|
13
17
|
expect(getAllByRole('listitem').length).toBe(defaultSteps.length);
|
|
14
18
|
expect(getByText('Step 1')).toBeTruthy();
|
|
15
19
|
});
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
describe('Active step - number type', () => {
|
|
21
|
+
it('marks the correct step as active', async () => {
|
|
22
|
+
const { container, rerender } = render(StepperInline, {
|
|
23
|
+
props: {
|
|
24
|
+
step: 2,
|
|
25
|
+
steps: defaultSteps,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
let labels = container.querySelectorAll('.mc-stepper-inline__label');
|
|
29
|
+
expect(labels[1].classList.contains('is-current')).toBe(true);
|
|
30
|
+
expect(labels[0].classList.contains('is-current')).toBe(false);
|
|
31
|
+
await rerender({ step: 3, steps: defaultSteps });
|
|
32
|
+
labels = container.querySelectorAll('.mc-stepper-inline__label');
|
|
33
|
+
expect(labels[2].classList.contains('is-current')).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it('marks completed steps', () => {
|
|
36
|
+
const { container } = render(StepperInline, {
|
|
37
|
+
props: {
|
|
38
|
+
step: 3,
|
|
39
|
+
steps: defaultSteps,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
const items = container.querySelectorAll('.mc-stepper-inline__item');
|
|
43
|
+
expect(items[0].classList.contains('is-completed')).toBe(true);
|
|
44
|
+
expect(items[1].classList.contains('is-completed')).toBe(true);
|
|
45
|
+
expect(items[2].classList.contains('is-completed')).toBe(false);
|
|
22
46
|
});
|
|
23
|
-
let labels = container.querySelectorAll('.mc-stepper-inline__label');
|
|
24
|
-
expect(labels[1].classList.contains('is-current')).toBe(true);
|
|
25
|
-
expect(labels[0].classList.contains('is-current')).toBe(false);
|
|
26
|
-
await rerender({ step: 3, steps: defaultSteps });
|
|
27
|
-
labels = container.querySelectorAll('.mc-stepper-inline__label');
|
|
28
|
-
expect(labels[2].classList.contains('is-current')).toBe(true);
|
|
29
47
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
48
|
+
describe('Active step - string type', () => {
|
|
49
|
+
it('marks the correct step as active', async () => {
|
|
50
|
+
const { container, rerender } = render(StepperInline, {
|
|
51
|
+
props: {
|
|
52
|
+
step: '2',
|
|
53
|
+
steps: defaultSteps,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
let labels = container.querySelectorAll('.mc-stepper-inline__label');
|
|
57
|
+
expect(labels[1].classList.contains('is-current')).toBe(true);
|
|
58
|
+
expect(labels[0].classList.contains('is-current')).toBe(false);
|
|
59
|
+
await rerender({ step: '3', steps: defaultSteps });
|
|
60
|
+
labels = container.querySelectorAll('.mc-stepper-inline__label');
|
|
61
|
+
expect(labels[2].classList.contains('is-current')).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
it('marks completed steps', () => {
|
|
64
|
+
const { container } = render(StepperInline, {
|
|
65
|
+
props: {
|
|
66
|
+
step: '3',
|
|
67
|
+
steps: defaultSteps,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
const items = container.querySelectorAll('.mc-stepper-inline__item');
|
|
71
|
+
expect(items[0].classList.contains('is-completed')).toBe(true);
|
|
72
|
+
expect(items[1].classList.contains('is-completed')).toBe(true);
|
|
73
|
+
expect(items[2].classList.contains('is-completed')).toBe(false);
|
|
36
74
|
});
|
|
37
|
-
const items = container.querySelectorAll('.mc-stepper-inline__item');
|
|
38
|
-
expect(items[0].classList.contains('is-completed')).toBe(true);
|
|
39
|
-
expect(items[1].classList.contains('is-completed')).toBe(true);
|
|
40
|
-
expect(items[2].classList.contains('is-completed')).toBe(false);
|
|
41
75
|
});
|
|
42
76
|
it('renders no steps when steps prop is empty', () => {
|
|
43
77
|
const { queryAllByRole } = render(StepperInline, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepperInline.stories.d.ts","sourceRoot":"","sources":["../../../src/components/stepperinline/StepperInline.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,wBAAwB,CAAC;AAEhC,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"StepperInline.stories.d.ts","sourceRoot":"","sources":["../../../src/components/stepperinline/StepperInline.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,wBAAwB,CAAC;AAEhC,QAAA,MAAM,IAAI,EAAE,IAcX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -3,21 +3,16 @@ import './StepperInline.svelte';
|
|
|
3
3
|
const meta = {
|
|
4
4
|
title: 'Indicators/Stepper Inline',
|
|
5
5
|
component: 'm-stepper-inline',
|
|
6
|
-
argTypes: {
|
|
7
|
-
step: {
|
|
8
|
-
control: { type: 'number', min: 1, max: 10 },
|
|
9
|
-
},
|
|
10
|
-
},
|
|
11
6
|
args: {
|
|
12
|
-
|
|
7
|
+
step: 'step1',
|
|
13
8
|
steps: [
|
|
14
|
-
{ label: 'Cart' },
|
|
15
|
-
{ label: 'Delivery address' },
|
|
16
|
-
{ label: 'Payment' },
|
|
17
|
-
{ label: 'Order confirmation' },
|
|
9
|
+
{ id: 'step1', label: 'Cart' },
|
|
10
|
+
{ id: 'step2', label: 'Delivery address' },
|
|
11
|
+
{ id: 'step3', label: 'Payment' },
|
|
12
|
+
{ id: 'step4', label: 'Order confirmation' },
|
|
18
13
|
],
|
|
19
14
|
},
|
|
20
|
-
render: (args) => html `<m-stepper-inline step="${args.
|
|
15
|
+
render: (args) => html `<m-stepper-inline step="${args.step}" .steps="${args.steps}"></m-stepper-inline>`,
|
|
21
16
|
};
|
|
22
17
|
export default meta;
|
|
23
18
|
export const Default = {};
|
|
@@ -10,19 +10,25 @@
|
|
|
10
10
|
interface Props {
|
|
11
11
|
[key: string]: any;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Defines the currently active step.
|
|
14
|
+
*
|
|
15
|
+
* - If a `number` is provided, it represents the 1-based position of the step
|
|
16
|
+
* in the `steps` array (e.g. `1` for the first step).
|
|
17
|
+
* - If a `string` is provided, it must match the `id` of one of the steps.
|
|
14
18
|
*/
|
|
15
|
-
step?: number;
|
|
16
|
-
|
|
19
|
+
step?: number | string;
|
|
17
20
|
/**
|
|
18
21
|
* Steps of the stepper inline.
|
|
19
22
|
*/
|
|
20
23
|
steps?: Array<{
|
|
24
|
+
/**
|
|
25
|
+
* Uniquer identifier for the step.
|
|
26
|
+
*/
|
|
27
|
+
id?: string;
|
|
21
28
|
/**
|
|
22
29
|
* Label of the step.
|
|
23
30
|
*/
|
|
24
31
|
label: string;
|
|
25
|
-
|
|
26
32
|
/**
|
|
27
33
|
* Optional additional information under the label.
|
|
28
34
|
*/
|
|
@@ -30,14 +36,21 @@
|
|
|
30
36
|
}>;
|
|
31
37
|
}
|
|
32
38
|
|
|
33
|
-
let { step = $bindable(
|
|
39
|
+
let { step = $bindable(0), steps = $bindable([]), ...attrs }: Props = $props();
|
|
34
40
|
|
|
35
|
-
const
|
|
41
|
+
const activeStep = $derived.by(() => {
|
|
42
|
+
if (typeof step === 'number') {
|
|
43
|
+
return Math.min(Math.max(step, 1), steps.length) - 1;
|
|
44
|
+
} else {
|
|
45
|
+
const activeIndex = steps.findIndex((el) => el.id === step);
|
|
46
|
+
return activeIndex === -1 ? 0 : activeIndex;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
36
49
|
|
|
37
|
-
const stepStates = $derived(() =>
|
|
50
|
+
const stepStates = $derived.by(() =>
|
|
38
51
|
steps.map((_, i) => ({
|
|
39
|
-
completed: i
|
|
40
|
-
current: i
|
|
52
|
+
completed: i < activeStep,
|
|
53
|
+
current: i === activeStep,
|
|
41
54
|
})),
|
|
42
55
|
);
|
|
43
56
|
</script>
|
|
@@ -45,7 +58,7 @@
|
|
|
45
58
|
<nav class="mc-stepper-inline" aria-label="Stepper" {...attrs}>
|
|
46
59
|
<ol class="mc-stepper-inline__container">
|
|
47
60
|
{#each steps as step, i (i)}
|
|
48
|
-
{@const state = stepStates
|
|
61
|
+
{@const state = stepStates[i]}
|
|
49
62
|
<li class={['mc-stepper-inline__item', state.completed ? 'is-completed' : '']}>
|
|
50
63
|
{#if state.completed}
|
|
51
64
|
<span class="mc-stepper-inline__icon mc-stepper-inline__icon--check" aria-hidden="true">
|
|
@@ -117,7 +130,7 @@
|
|
|
117
130
|
box-sizing: border-box;
|
|
118
131
|
width: 1.5rem;
|
|
119
132
|
height: 1.5rem;
|
|
120
|
-
background-color:
|
|
133
|
+
background-color: var(--stepper-color-step-item-default-background, #ffffff);
|
|
121
134
|
border: 0.125rem solid var(--stepper-color-information, #666666);
|
|
122
135
|
border-radius: 1rem;
|
|
123
136
|
}
|
|
@@ -4,13 +4,21 @@
|
|
|
4
4
|
interface Props {
|
|
5
5
|
[key: string]: any;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Defines the currently active step.
|
|
8
|
+
*
|
|
9
|
+
* - If a `number` is provided, it represents the 1-based position of the step
|
|
10
|
+
* in the `steps` array (e.g. `1` for the first step).
|
|
11
|
+
* - If a `string` is provided, it must match the `id` of one of the steps.
|
|
8
12
|
*/
|
|
9
|
-
step?: number;
|
|
13
|
+
step?: number | string;
|
|
10
14
|
/**
|
|
11
15
|
* Steps of the stepper inline.
|
|
12
16
|
*/
|
|
13
17
|
steps?: Array<{
|
|
18
|
+
/**
|
|
19
|
+
* Uniquer identifier for the step.
|
|
20
|
+
*/
|
|
21
|
+
id?: string;
|
|
14
22
|
/**
|
|
15
23
|
* Label of the step.
|
|
16
24
|
*/
|
|
@@ -21,7 +29,7 @@ interface Props {
|
|
|
21
29
|
additionalinfo?: string;
|
|
22
30
|
}>;
|
|
23
31
|
}
|
|
24
|
-
declare const StepperInline: import("svelte").Component<Props, {}, "
|
|
32
|
+
declare const StepperInline: import("svelte").Component<Props, {}, "steps" | "step">;
|
|
25
33
|
type StepperInline = ReturnType<typeof StepperInline>;
|
|
26
34
|
export default StepperInline;
|
|
27
35
|
//# sourceMappingURL=StepperInline.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepperInline.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/stepperinline/StepperInline.svelte.ts"],"names":[],"mappings":"AAME;;GAEG;AAEH,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB
|
|
1
|
+
{"version":3,"file":"StepperInline.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/stepperinline/StepperInline.svelte.ts"],"names":[],"mappings":"AAME;;GAEG;AAEH,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC,CAAC;CACJ;AA4DH,QAAA,MAAM,aAAa,yDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# `m-stepper-stacked`
|
|
2
|
+
|
|
3
|
+
A stepper is a navigation component that guides users through a sequence of steps in a structured process. It visually represents progress, completed steps, and upcoming steps, helping users understand their position within a workflow. Steppers are commonly used in multi-step forms, onboarding flows, checkout processes, and task completion sequences to improve clarity and reduce cognitive load.
|
|
4
|
+
|
|
5
|
+
## Props
|
|
6
|
+
|
|
7
|
+
| Name | Description | Type | Default |
|
|
8
|
+
|------|-------------|------|---------|
|
|
9
|
+
| `step` | Defines the currently active step.
|
|
10
|
+
|
|
11
|
+
- If a `number` is provided, it represents the 1-based position of the step
|
|
12
|
+
in the `steps` array (e.g. `1` for the first step).
|
|
13
|
+
- If a `string` is provided, it must match the `id` of one of the steps. | `string` `number` | `$bindable(1)` |
|
|
14
|
+
| `steps` | Steps of the stepper stacked. | `Array<{ id?: string; label: string; additionalinfo?: string; }>` | `$bindable([])` |
|
|
15
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{c as J,e as K,a as L,p as $,g as N,b as v,d as O,f,n as P,h as o,m as j,i as t,r,s as C,t as I,j as u,l as k,k as M,w}from"../../custom-element.js";import{i as Q}from"../../if.js";import{e as R,i as T}from"../../each.js";import{a as U}from"../../attributes.js";import{f as V}from"../../Condition20.js";import"../../branches.js";var W=f('<span class="mc-stepper-stacked__icon mc-stepper-stacked__icon--check svelte-wnz47h"><!></span>'),Y=f("<span></span>"),Z=f('<li><div class="mc-stepper-stacked__indicator svelte-wnz47h"><!></div> <div class="mc-stepper-stacked__content svelte-wnz47h"><span> </span> <span class="mc-stepper-stacked__additional svelte-wnz47h"> </span></div></li>'),ee=f('<nav><ol class="mc-stepper-stacked__container svelte-wnz47h"></ol></nav>');const te={hash:"svelte-wnz47h",code:`/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/.mc-stepper-stacked__container.svelte-wnz47h {display:flex;flex-direction:column;list-style:none;padding:0;margin:0;}.mc-stepper-stacked__indicator.svelte-wnz47h {display:flex;flex-direction:column;align-items:center;margin-right:0.5rem;position:relative;min-height:100%;padding-bottom:2rem;}.mc-stepper-stacked__indicator.svelte-wnz47h::after {content:"";position:absolute;top:1.5rem;bottom:0;width:0.125rem;background-color:var(--stepper-color-progress-bar-background, #c9d0de);left:50%;transform:translateX(-50%);}.mc-stepper-stacked__circle.svelte-wnz47h {box-sizing:border-box;width:1.5rem;height:1.5rem;border-radius:50%;border:0.125rem solid var(--stepper-color-step-item-default-border, #333333);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-100, 0.875rem);font-weight:var(--font-weight-bold, 700);color:var(--stepper-color-information, #666666);background-color:var(--stepper-color-step-item-default-background, #ffffff);z-index:1;flex-shrink:0;transition:background-color 200ms ease, color 200ms ease, border-color 200ms ease;}.mc-stepper-stacked__circle.is-current.svelte-wnz47h {background-color:var(--stepper-color-step-item-active-background, #117f03);border-color:var(--stepper-color-step-item-active-background, #117f03);color:var(--stepper-color-step-item-active-text, #ffffff);
|
|
4
|
+
animation: svelte-wnz47h-pop-in 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;}.mc-stepper-stacked__icon--check.svelte-wnz47h {width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;color:var(--stepper-color-step-item-default-icon, #666666);fill:currentcolor;border:0.125rem solid var(--stepper-color-step-item-default-border, #333333);border-radius:50%;box-sizing:border-box;background-color:var(--stepper-color-step-item-default-background, #ffffff);z-index:1;}.mc-stepper-stacked__content.svelte-wnz47h {display:flex;flex-direction:column;padding-top:0.25rem;}.mc-stepper-stacked__label.svelte-wnz47h {font-size:var(--font-size-100, 0.875rem);color:var(--stepper-color-step-label-default, #666666);line-height:var(--line-height-s, 1.3);transition:color 200ms ease;}.mc-stepper-stacked__label.is-current.svelte-wnz47h {font-weight:var(--font-weight-medium, 600);color:var(--stepper-color-step-label-active, #000000);}.mc-stepper-stacked__additional.svelte-wnz47h {font-size:var(--font-size-50, 0.75rem);color:var(--stepper-color-information, #666666);margin-top:0.25rem;}.mc-stepper-stacked__item.svelte-wnz47h {display:flex;position:relative;}.mc-stepper-stacked__item.has-additional.svelte-wnz47h .mc-stepper-stacked__indicator:where(.svelte-wnz47h),
|
|
5
|
+
.mc-stepper-stacked__item.has-additional.svelte-wnz47h .mc-stepper-stacked__content:where(.svelte-wnz47h) {padding-bottom:1rem;}.mc-stepper-stacked__item.svelte-wnz47h:last-child .mc-stepper-stacked__indicator:where(.svelte-wnz47h),
|
|
6
|
+
.mc-stepper-stacked__item.svelte-wnz47h:last-child .mc-stepper-stacked__content:where(.svelte-wnz47h) {padding-bottom:0;}.mc-stepper-stacked__item.svelte-wnz47h:last-child .mc-stepper-stacked__indicator:where(.svelte-wnz47h)::after {display:none;}
|
|
7
|
+
|
|
8
|
+
@keyframes svelte-wnz47h-pop-in {
|
|
9
|
+
0% {
|
|
10
|
+
transform: scale(0.5);
|
|
11
|
+
opacity: 0;
|
|
12
|
+
}
|
|
13
|
+
100% {
|
|
14
|
+
transform: scale(1);
|
|
15
|
+
opacity: 1;
|
|
16
|
+
}
|
|
17
|
+
}`};function se(b,p){K(p,!0),L(b,te);let i=$(p,"step",15,1),n=$(p,"steps",31,()=>N([])),D=P(p,["$$slots","$$events","$$legacy","$$host","step","steps"]);const z=w(()=>{if(typeof i()=="number")return Math.min(Math.max(i(),1),n().length)-1;{const e=n().findIndex(s=>s.id===i());return e===-1?0:e}}),E=w(()=>()=>n().map((e,s)=>({completed:s<t(z),current:s===t(z)})));var X={get step(){return i()},set step(e=1){i(e),j()},get steps(){return n()},set steps(e=[]){n(e),j()}},l=ee();U(l,()=>({class:"mc-stepper-stacked","aria-label":"Stepper",...D}),void 0,void 0,void 0,"svelte-wnz47h");var g=o(l);return R(g,21,n,T,(e,s,x,re)=>{const _=w(()=>t(E)()[x]);var d=Z(),h=o(d),q=o(h);{var A=c=>{var a=W(),H=o(a);V(H,{}),r(a),v(c,a)},B=c=>{var a=Y();a.textContent=x+1,I(()=>u(a,1,k({"mc-stepper-stacked__circle":!0,"is-current":t(_).current}),"svelte-wnz47h")),v(c,a)};Q(q,c=>{t(_).completed?c(A):c(B,-1)})}r(h);var y=C(h,2),m=o(y),F=o(m,!0);r(m);var S=C(m,2),G=o(S,!0);r(S),r(y),r(d),I(()=>{u(d,1,k({"mc-stepper-stacked__item":!0,"has-additional":t(s).additionalinfo}),"svelte-wnz47h"),u(m,1,k({"mc-stepper-stacked__label":!0,"is-current":t(_).current}),"svelte-wnz47h"),M(F,t(s).label),M(G,t(s).additionalinfo)}),v(e,d)}),r(g),r(l),v(b,l),O(X)}customElements.define("m-stepper-stacked",J(se,{step:{},steps:{}},[],[],{mode:"open"}));
|
|
18
|
+
//# sourceMappingURL=StepperStacked.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepperStacked.js","sources":["../../../src/components/stepperstacked/StepperStacked.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-stepper-stacked' }} />\n\n<script lang=\"ts\">\n import { Check24 } from '@mozaic-ds/icons-svelte';\n /**\n * A stepper is a navigation component that guides users through a sequence of steps in a structured process. It visually represents progress, completed steps, and upcoming steps, helping users understand their position within a workflow. Steppers are commonly used in multi-step forms, onboarding flows, checkout processes, and task completion sequences to improve clarity and reduce cognitive load.\n */\n\n interface Props {\n [key: string]: any;\n /**\n * Defines the currently active step.\n *\n * - If a `number` is provided, it represents the 1-based position of the step\n * in the `steps` array (e.g. `1` for the first step).\n * - If a `string` is provided, it must match the `id` of one of the steps.\n */\n step?: string | number;\n\n /**\n * Steps of the stepper stacked.\n */\n steps?: Array<{\n /**\n * Unique identifier for the step.\n */\n id?: string;\n /**\n * Label of the step.\n */\n label: string;\n\n /**\n * Optional additional information under the label.\n */\n additionalinfo?: string;\n }>;\n }\n\n let { step = $bindable(1), steps = $bindable([]), ...attrs }: Props = $props();\n\n const activeStep = $derived.by(() => {\n if (typeof step === 'number') {\n return Math.min(Math.max(step, 1), steps.length) - 1;\n } else {\n const activeIndex = steps.findIndex((el) => el.id === step);\n return activeIndex === -1 ? 0 : activeIndex;\n }\n });\n\n const stepStates = $derived(() =>\n steps.map((_, i) => ({\n completed: i < activeStep,\n current: i === activeStep,\n })),\n );\n</script>\n\n<nav class=\"mc-stepper-stacked\" aria-label=\"Stepper\" {...attrs}>\n <ol class=\"mc-stepper-stacked__container\">\n {#each steps as step, index (index)}\n {@const state = stepStates()[index]}\n <li\n class={{\n 'mc-stepper-stacked__item': true,\n 'has-additional': step.additionalinfo,\n }}\n >\n <div class=\"mc-stepper-stacked__indicator\">\n {#if state.completed}\n <span class=\"mc-stepper-stacked__icon mc-stepper-stacked__icon--check\">\n <Check24 />\n </span>\n {:else}\n <span\n class={{\n 'mc-stepper-stacked__circle': true,\n 'is-current': state.current,\n }}\n >\n {index + 1}\n </span>\n {/if}\n </div>\n <div class=\"mc-stepper-stacked__content\">\n <span\n class={{\n 'mc-stepper-stacked__label': true,\n 'is-current': state.current,\n }}\n >\n {step.label}\n </span>\n <span class=\"mc-stepper-stacked__additional\">\n {step.additionalinfo}\n </span>\n </div>\n </li>\n {/each}\n </ol>\n</nav>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/stepper-stacked';\n</style>\n"],"names":["step","steps","$.prop","$$props","$.proxy","attrs","$.rest_props","activeStep","$.derived","activeIndex","el","stepStates","_","i","$.get","nav","root","ol","$.index","$$anchor","index","$$array","state","li","root_1","div","$.child","span","root_2","Check24","node_1","span_1","root_3","$.append","$$render","consequent","alternate","div_1","span_2","text","$.reset","span_3","$.sibling","$.set_text","text_1"],"mappings":";;;;;;;;;;;;;;;;oBAEA,iBAqCQ,IAAAA,gBAAiB,CAAC,EAAGC,EAAKC,EAAAC,EAAA,QAAA,GAAA,IAAAC,EAAA,CAAA,CAAA,CAAA,EAAqBC,EAAKC,EAAAH,EAAA,CAAA,UAAA,WAAA,WAAA,SAAA,OAAA,OAAA,CAAA,EAEpD,MAAAI,EAAUC,EAAA,IAAqB,WACxBR,EAAI,GAAK,SACX,OAAA,KAAK,IAAI,KAAK,IAAIA,IAAM,CAAC,EAAGC,IAAM,MAAM,EAAI,EAC9C,OACCQ,EAAcR,EAAK,EAAC,UAAWS,GAAOA,EAAG,KAAOV,GAAI,EACnD,OAAAS,IAAW,GAAU,EAAIA,CAClC,CACF,CAAC,EAEKE,YACJV,EAAK,EAAC,IAAG,CAAEW,EAAGC,KAAC,CACb,UAAWA,EAACC,EAAGP,CAAU,EACzB,QAASM,IAACC,EAAKP,CAAU,+CAdN,EAAC,8DAmBzBQ,EAAGC,GAAA,IAAHD,6DAAwDV,0CACtD,IAAAY,IADFF,CAAG,WACDE,EAAE,GACMhB,EAAKiB,EAAA,CAAAC,EAAInB,EAAIoB,EAAAC,KAAA,OACVC,EAAKd,EAAA,IAAAM,EAAGH,CAAU,EAAA,EAAGS,CAAK,CAAA,EACjC,IAAAG,EAAAC,EAAA,EAMEC,EAAGC,EANLH,CAAA,MAMEE,CAAG,iBAECE,EAAIC,EAAA,MAAJD,CAAI,EACFE,EAAOC,EAAA,EAAA,IADTH,CAAI,MAAJA,CAAI,SAIJ,IAAAI,EAAAC,EAAA,EAAAD,EAAA,YAMEX,EAAQ,UANVW,OAEG,6BAA8B,GAC9B,aAAYjB,EAAEQ,CAAK,EAAC,4BAHvBW,EAAAd,EAAAY,CAAA,WALEjB,EAAAQ,CAAK,EAAC,UAASY,EAAAC,CAAA,EAAAD,EAAAE,EAAA,EAAA,MADrBX,CAAG,EAgBH,IAAAY,IAhBAZ,EAAG,CAAA,EAiBDa,EAAAZ,EADFW,CAAG,EACDE,EAAAb,EAAAY,EAAA,EAAA,EAAAE,EAAAF,CAAA,EAQA,IAAAG,EAAIC,EARJJ,EAAA,CAAA,MAQAG,EAAI,EAAA,IAAJA,CAAI,IATNJ,CAAG,EAtBLG,EAAAjB,CAAA,WAAAA,OAEG,2BAA4B,GAC5B,iBAAgBT,EAAEd,CAAI,EAAC,oCAoBtBsC,OAEG,4BAA6B,GAC7B,aAAYxB,EAAEQ,CAAK,EAAC,2BAGrBqB,EAAAJ,EAAAzB,EAAAd,CAAI,EAAC,KAAK,EAGV2C,EAAAC,EAAA9B,EAAAd,CAAI,EAAC,cAAc,IAhCzBiC,EAAAd,EAAAI,CAAA,MAHJN,CAAE,IADJF,CAAG,MAAHA,CAAG,MAFI"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { render, screen } from '@testing-library/svelte';
|
|
2
|
+
import { describe, it, expect } from 'vitest';
|
|
3
|
+
import StepperStacked from './StepperStacked.svelte';
|
|
4
|
+
const defaultSteps = [
|
|
5
|
+
{ label: 'Step 1', additionalinfo: 'Info 1' },
|
|
6
|
+
{ label: 'Step 2', additionalinfo: 'Info 2' },
|
|
7
|
+
{ label: 'Step 3' },
|
|
8
|
+
];
|
|
9
|
+
describe('StepperStacked', () => {
|
|
10
|
+
it('renders the correct number of list items', () => {
|
|
11
|
+
render(StepperStacked, { props: { steps: defaultSteps, step: 1 } });
|
|
12
|
+
const items = screen.getAllByRole('listitem');
|
|
13
|
+
expect(items).toHaveLength(defaultSteps.length);
|
|
14
|
+
});
|
|
15
|
+
it('renders step labels', () => {
|
|
16
|
+
render(StepperStacked, { props: { steps: defaultSteps, step: 1 } });
|
|
17
|
+
defaultSteps.forEach(({ label }) => {
|
|
18
|
+
expect(screen.getByText(label)).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
it('renders additionalinfo when provided', () => {
|
|
22
|
+
render(StepperStacked, { props: { steps: defaultSteps, step: 1 } });
|
|
23
|
+
expect(screen.getByText('Info 1')).toBeTruthy();
|
|
24
|
+
expect(screen.getByText('Info 2')).toBeTruthy();
|
|
25
|
+
});
|
|
26
|
+
it('adds has-additional class on items with additionalinfo', () => {
|
|
27
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 1 } });
|
|
28
|
+
const items = container.querySelectorAll('li.mc-stepper-stacked__item');
|
|
29
|
+
expect(items[0].classList.contains('has-additional')).toBe(true);
|
|
30
|
+
expect(items[1].classList.contains('has-additional')).toBe(true);
|
|
31
|
+
expect(items[2].classList.contains('has-additional')).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
it('renders nothing when steps is empty', () => {
|
|
34
|
+
const { container } = render(StepperStacked, { props: { steps: [], step: 1 } });
|
|
35
|
+
const items = container.querySelectorAll('li');
|
|
36
|
+
expect(items).toHaveLength(0);
|
|
37
|
+
});
|
|
38
|
+
describe('active step as number - 1 based', () => {
|
|
39
|
+
it('marks the current step circle with is-current class', () => {
|
|
40
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 2 } });
|
|
41
|
+
const currentCircles = container.querySelectorAll('.mc-stepper-stacked__circle.is-current');
|
|
42
|
+
expect(currentCircles).toHaveLength(1);
|
|
43
|
+
expect(currentCircles[0].textContent?.trim()).toBe('2');
|
|
44
|
+
});
|
|
45
|
+
it('marks the current step label with is-current class', () => {
|
|
46
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 2 } });
|
|
47
|
+
const currentLabels = container.querySelectorAll('.mc-stepper-stacked__label.is-current');
|
|
48
|
+
expect(currentLabels).toHaveLength(1);
|
|
49
|
+
expect(currentLabels[0].textContent?.trim()).toBe('Step 2');
|
|
50
|
+
});
|
|
51
|
+
it('renders check icon for completed steps', () => {
|
|
52
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 3 } });
|
|
53
|
+
const checkIcons = container.querySelectorAll('.mc-stepper-stacked__icon--check');
|
|
54
|
+
expect(checkIcons).toHaveLength(2);
|
|
55
|
+
});
|
|
56
|
+
it('renders no check icon when on step 1', () => {
|
|
57
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 1 } });
|
|
58
|
+
const checkIcons = container.querySelectorAll('.mc-stepper-stacked__icon--check');
|
|
59
|
+
expect(checkIcons).toHaveLength(0);
|
|
60
|
+
});
|
|
61
|
+
it('renders circles (not checks) for incomplete and upcoming steps', () => {
|
|
62
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 2 } });
|
|
63
|
+
const circles = container.querySelectorAll('.mc-stepper-stacked__circle');
|
|
64
|
+
expect(circles).toHaveLength(2);
|
|
65
|
+
});
|
|
66
|
+
it('circle text reflects 1-based step index', () => {
|
|
67
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 1 } });
|
|
68
|
+
const circles = container.querySelectorAll('.mc-stepper-stacked__circle');
|
|
69
|
+
expect(circles[0].textContent?.trim()).toBe('1');
|
|
70
|
+
expect(circles[1].textContent?.trim()).toBe('2');
|
|
71
|
+
expect(circles[2].textContent?.trim()).toBe('3');
|
|
72
|
+
});
|
|
73
|
+
it('clamps step below 1 to 1', () => {
|
|
74
|
+
const { container } = render(StepperStacked, { props: { steps: defaultSteps, step: 0 } });
|
|
75
|
+
const currentCircles = container.querySelectorAll('.mc-stepper-stacked__circle.is-current');
|
|
76
|
+
expect(currentCircles[0].textContent?.trim()).toBe('1');
|
|
77
|
+
});
|
|
78
|
+
it('clamps step above steps.length to last step', () => {
|
|
79
|
+
const { container } = render(StepperStacked, {
|
|
80
|
+
props: { steps: defaultSteps, step: 99 },
|
|
81
|
+
});
|
|
82
|
+
const currentLabels = container.querySelectorAll('.mc-stepper-stacked__label.is-current');
|
|
83
|
+
expect(currentLabels[0].textContent?.trim()).toBe('Step 3');
|
|
84
|
+
const checkIcons = container.querySelectorAll('.mc-stepper-stacked__icon--check');
|
|
85
|
+
expect(checkIcons).toHaveLength(defaultSteps.length - 1);
|
|
86
|
+
});
|
|
87
|
+
it('defaults to step=1 and empty steps without props', () => {
|
|
88
|
+
const { container } = render(StepperStacked, { props: {} });
|
|
89
|
+
expect(container.querySelectorAll('li')).toHaveLength(0);
|
|
90
|
+
});
|
|
91
|
+
it('handles a single step correctly', () => {
|
|
92
|
+
const { container } = render(StepperStacked, {
|
|
93
|
+
props: { steps: [{ label: 'Only step' }], step: 1 },
|
|
94
|
+
});
|
|
95
|
+
const items = container.querySelectorAll('li');
|
|
96
|
+
expect(items).toHaveLength(1);
|
|
97
|
+
const currentCircles = container.querySelectorAll('.mc-stepper-stacked__circle.is-current');
|
|
98
|
+
expect(currentCircles).toHaveLength(1);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe('Active step as string (id-based)', () => {
|
|
102
|
+
const stepsWithIds = [
|
|
103
|
+
{ id: 'first', label: 'Step 1', additionalinfo: 'Info 1' },
|
|
104
|
+
{ id: 'second', label: 'Step 2' },
|
|
105
|
+
{ id: 'third', label: 'Step 3' },
|
|
106
|
+
];
|
|
107
|
+
it('marks the correct step as current when step matches an id', () => {
|
|
108
|
+
const { container } = render(StepperStacked, {
|
|
109
|
+
props: { steps: stepsWithIds, step: 'second' },
|
|
110
|
+
});
|
|
111
|
+
const currentLabels = container.querySelectorAll('.mc-stepper-stacked__label.is-current');
|
|
112
|
+
expect(currentLabels).toHaveLength(1);
|
|
113
|
+
expect(currentLabels[0].textContent?.trim()).toBe('Step 2');
|
|
114
|
+
});
|
|
115
|
+
it('marks previous steps as completed when step is identified by id', () => {
|
|
116
|
+
const { container } = render(StepperStacked, {
|
|
117
|
+
props: { steps: stepsWithIds, step: 'third' },
|
|
118
|
+
});
|
|
119
|
+
const checkIcons = container.querySelectorAll('.mc-stepper-stacked__icon--check');
|
|
120
|
+
expect(checkIcons).toHaveLength(2);
|
|
121
|
+
});
|
|
122
|
+
it('falls back to the first step when the string id does not match any step', () => {
|
|
123
|
+
const { container } = render(StepperStacked, {
|
|
124
|
+
props: { steps: stepsWithIds, step: 'unknown-id' },
|
|
125
|
+
});
|
|
126
|
+
const currentCircles = container.querySelectorAll('.mc-stepper-stacked__circle.is-current');
|
|
127
|
+
expect(currentCircles).toHaveLength(1);
|
|
128
|
+
expect(currentCircles[0].textContent?.trim()).toBe('1');
|
|
129
|
+
});
|
|
130
|
+
it('renders no completed steps when the first step is active via id', () => {
|
|
131
|
+
const { container } = render(StepperStacked, {
|
|
132
|
+
props: { steps: stepsWithIds, step: 'first' },
|
|
133
|
+
});
|
|
134
|
+
const checkIcons = container.querySelectorAll('.mc-stepper-stacked__icon--check');
|
|
135
|
+
expect(checkIcons).toHaveLength(0);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './StepperStacked.svelte';
|
|
3
|
+
declare const meta: Meta;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const AditionnalInfo: Story;
|
|
8
|
+
//# sourceMappingURL=StepperStacked.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepperStacked.stories.d.ts","sourceRoot":"","sources":["../../../src/components/stepperstacked/StepperStacked.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,yBAAyB,CAAC;AAEjC,QAAA,MAAM,IAAI,EAAE,IAmBX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,cAAc,EAAE,KAS5B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import './StepperStacked.svelte';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Indicators/Stepper Stacked',
|
|
5
|
+
component: 'm-stepper-stacked',
|
|
6
|
+
argTypes: {
|
|
7
|
+
step: {
|
|
8
|
+
control: { type: 'number', min: 1, max: 10 },
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
args: {
|
|
12
|
+
step: 2,
|
|
13
|
+
steps: [
|
|
14
|
+
{ label: 'Cart' },
|
|
15
|
+
{ label: 'Delivery address' },
|
|
16
|
+
{ label: 'Payment' },
|
|
17
|
+
{ label: 'Order confirmation' },
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
render: (args) => html `<m-stepper-stacked .step="${args.step}" .steps="${args.steps}"></m-stepper-stacked>`,
|
|
21
|
+
};
|
|
22
|
+
export default meta;
|
|
23
|
+
export const Default = {};
|
|
24
|
+
export const AditionnalInfo = {
|
|
25
|
+
args: {
|
|
26
|
+
steps: [
|
|
27
|
+
{ label: 'Cart', additionalinfo: 'Additional information' },
|
|
28
|
+
{ label: 'Delivery address', additionalinfo: 'Additional information' },
|
|
29
|
+
{ label: 'Payment', additionalinfo: 'Additional information' },
|
|
30
|
+
{ label: 'Order confirmation', additionalinfo: 'Additional information' },
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
};
|