@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
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './Combobox.svelte';
|
|
3
|
+
declare const meta: Meta;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj;
|
|
6
|
+
export declare const Standard: Story;
|
|
7
|
+
export declare const Multiple: Story;
|
|
8
|
+
export declare const SearchInput: Story;
|
|
9
|
+
export declare const ActionButtons: Story;
|
|
10
|
+
export declare const WithSections: Story;
|
|
11
|
+
export declare const SelectableSections: Story;
|
|
12
|
+
export declare const Clearable: Story;
|
|
13
|
+
export declare const Disabled: Story;
|
|
14
|
+
export declare const Readonly: Story;
|
|
15
|
+
export declare const Invalid: Story;
|
|
16
|
+
export declare const AdditionalInformation: Story;
|
|
17
|
+
//# sourceMappingURL=Combobox.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Combobox.stories.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,mBAAmB,CAAC;AA4B3B,QAAA,MAAM,IAAI,EAAE,IAwCX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAAU,CAAC;AAElC,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAM3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAI1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,KAOnC,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import './Combobox.svelte';
|
|
3
|
+
import { ifDefined } from 'lit-html/directives/if-defined.js';
|
|
4
|
+
const defaultOptions = Array.from({ length: 12 }).map((_el, index) => {
|
|
5
|
+
return {
|
|
6
|
+
id: (index + 1).toString(),
|
|
7
|
+
label: `Option ${index + 1}`,
|
|
8
|
+
value: `option${index + 1}`,
|
|
9
|
+
};
|
|
10
|
+
});
|
|
11
|
+
let optionCount = 0;
|
|
12
|
+
const optionsWithSections = Array.from({ length: 12 }).map((_el, index) => {
|
|
13
|
+
const isSection = index % 3 === 0;
|
|
14
|
+
if (!isSection) {
|
|
15
|
+
optionCount++;
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
label: `${isSection ? 'Section' : 'Option'} ${isSection ? index / 3 + 1 : optionCount}`,
|
|
19
|
+
value: !isSection ? `option${optionCount}` : undefined,
|
|
20
|
+
type: isSection ? 'section' : 'option',
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
const meta = {
|
|
24
|
+
title: 'Form elements/Combobox',
|
|
25
|
+
component: 'm-combobox',
|
|
26
|
+
tags: ['v2'],
|
|
27
|
+
parameters: {
|
|
28
|
+
docs: {
|
|
29
|
+
story: {
|
|
30
|
+
height: '300px',
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
args: {
|
|
35
|
+
search: false,
|
|
36
|
+
actions: true,
|
|
37
|
+
value: null,
|
|
38
|
+
checkablesections: true,
|
|
39
|
+
options: defaultOptions,
|
|
40
|
+
},
|
|
41
|
+
render: (args) => html `
|
|
42
|
+
<m-combobox
|
|
43
|
+
.value="${args.value}"
|
|
44
|
+
?multiple="${args.multiple}"
|
|
45
|
+
?compact="${args.compact}"
|
|
46
|
+
size="${ifDefined(args.size)}"
|
|
47
|
+
?disabled="${args.disabled}"
|
|
48
|
+
?readonly="${args.readonly}"
|
|
49
|
+
?invalid="${args.invalid}"
|
|
50
|
+
?clearable="${args.clearable}"
|
|
51
|
+
?search="${args.search}"
|
|
52
|
+
?actions="${args.actions}"
|
|
53
|
+
?checkablesections="${args.checkablesections}"
|
|
54
|
+
placeholder="${ifDefined(args.placeholder)}"
|
|
55
|
+
counterlabel="${ifDefined(args.counterlabel)}"
|
|
56
|
+
searchplaceholder="${ifDefined(args.searchplaceholder)}"
|
|
57
|
+
selectlabel="${ifDefined(args.selectlabel)}"
|
|
58
|
+
clearlabel="${ifDefined(args.clearlabel)}"
|
|
59
|
+
showlabel="${ifDefined(args.showlabel)}"
|
|
60
|
+
.options="${args.options}"
|
|
61
|
+
></m-combobox>
|
|
62
|
+
`,
|
|
63
|
+
};
|
|
64
|
+
export default meta;
|
|
65
|
+
export const Standard = {};
|
|
66
|
+
export const Multiple = {
|
|
67
|
+
args: {
|
|
68
|
+
multiple: true,
|
|
69
|
+
value: [],
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
export const SearchInput = {
|
|
73
|
+
args: {
|
|
74
|
+
search: true,
|
|
75
|
+
value: [],
|
|
76
|
+
multiple: true,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
export const ActionButtons = {
|
|
80
|
+
args: {
|
|
81
|
+
value: [],
|
|
82
|
+
multiple: true,
|
|
83
|
+
actions: true,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
export const WithSections = {
|
|
87
|
+
args: {
|
|
88
|
+
options: optionsWithSections,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
export const SelectableSections = {
|
|
92
|
+
args: {
|
|
93
|
+
value: [],
|
|
94
|
+
multiple: true,
|
|
95
|
+
options: optionsWithSections,
|
|
96
|
+
checkablesections: true,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
export const Clearable = {
|
|
100
|
+
args: {
|
|
101
|
+
clearable: true,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
export const Disabled = {
|
|
105
|
+
args: {
|
|
106
|
+
disabled: true,
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
export const Readonly = {
|
|
110
|
+
args: {
|
|
111
|
+
readonly: true,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
export const Invalid = {
|
|
115
|
+
args: {
|
|
116
|
+
invalid: true,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
export const AdditionalInformation = {
|
|
120
|
+
args: {
|
|
121
|
+
options: defaultOptions.map((option) => ({
|
|
122
|
+
...option,
|
|
123
|
+
content: 'Additional information',
|
|
124
|
+
})),
|
|
125
|
+
},
|
|
126
|
+
};
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
<svelte:options
|
|
2
|
+
customElement={{
|
|
3
|
+
tag: 'm-combobox',
|
|
4
|
+
props: {
|
|
5
|
+
multiple: { reflect: true, type: 'Boolean', attribute: 'multiple' },
|
|
6
|
+
compact: { reflect: true, type: 'Boolean', attribute: 'compact' },
|
|
7
|
+
disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },
|
|
8
|
+
readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },
|
|
9
|
+
invalid: { reflect: true, type: 'Boolean', attribute: 'invalid' },
|
|
10
|
+
clearable: { reflect: true, type: 'Boolean', attribute: 'clearable' },
|
|
11
|
+
search: { reflect: true, type: 'Boolean', attribute: 'search' },
|
|
12
|
+
actions: { reflect: true, type: 'Boolean', attribute: 'actions' },
|
|
13
|
+
checkablesections: { reflect: true, type: 'Boolean', attribute: 'checkablesections' },
|
|
14
|
+
},
|
|
15
|
+
}}
|
|
16
|
+
/>
|
|
17
|
+
|
|
18
|
+
<script lang="ts">
|
|
19
|
+
import { onDestroy } from 'svelte';
|
|
20
|
+
import OptionListbox, { type ListboxOption } from '../optionlistbox/OptionListbox.svelte';
|
|
21
|
+
import { ChevronDown24, CrossCircleFilled24 } from '@mozaic-ds/icons-svelte';
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* A combobox is an input field that allows users to select an option from a dropdown list or enter a custom value. It combines the functionality of a text input and a dropdown menu, providing flexibility and ease of use in forms and user interfaces.
|
|
25
|
+
* @slot optionPrefix - Use this slot to add a prefix to options.
|
|
26
|
+
* @event update:open {CustomEvent<boolean>} - Emitted when the listbox is opened or closed.
|
|
27
|
+
*/
|
|
28
|
+
interface Props {
|
|
29
|
+
/**
|
|
30
|
+
* The current selected value(s) of the combobox.
|
|
31
|
+
*/
|
|
32
|
+
value: string | number | null | (string | number)[];
|
|
33
|
+
/**
|
|
34
|
+
* Enable multiple value mode.
|
|
35
|
+
*/
|
|
36
|
+
multiple?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Size of the combobox: small ('s') or medium ('m').
|
|
39
|
+
*/
|
|
40
|
+
size?: 's' | 'm';
|
|
41
|
+
/**
|
|
42
|
+
* Disable the combobox input.
|
|
43
|
+
*/
|
|
44
|
+
disabled?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Make the combobox read-only.
|
|
47
|
+
*/
|
|
48
|
+
readonly?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Mark the combobox as invalid.
|
|
51
|
+
*/
|
|
52
|
+
invalid?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Show a clear value button.
|
|
55
|
+
*/
|
|
56
|
+
clearable?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Enable the search input inside the listbox.
|
|
59
|
+
*/
|
|
60
|
+
search?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Show select all / clear buttons when multiple.
|
|
63
|
+
*/
|
|
64
|
+
actions?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Enable checkable section headers in the listbox.
|
|
67
|
+
*/
|
|
68
|
+
checkablesections?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Placeholder text when no value is selected.
|
|
71
|
+
*/
|
|
72
|
+
placeholder?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Label for the selected items counter.
|
|
75
|
+
*/
|
|
76
|
+
counterlabel?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Placeholder text for the search input.
|
|
79
|
+
*/
|
|
80
|
+
searchplaceholder?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Label for the "Select all" button.
|
|
83
|
+
*/
|
|
84
|
+
selectlabel?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Label for the "Clear value" button.
|
|
87
|
+
*/
|
|
88
|
+
clearlabel?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Array of options to display in the listbox.
|
|
91
|
+
*/
|
|
92
|
+
options: Array<ListboxOption>;
|
|
93
|
+
/**
|
|
94
|
+
* Callback to trigger when the listbox is opened or closed.
|
|
95
|
+
*/
|
|
96
|
+
onopen?: (value: boolean) => void;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
let {
|
|
100
|
+
value = $bindable(),
|
|
101
|
+
multiple,
|
|
102
|
+
size = 'm',
|
|
103
|
+
disabled,
|
|
104
|
+
readonly,
|
|
105
|
+
invalid,
|
|
106
|
+
clearable,
|
|
107
|
+
search,
|
|
108
|
+
actions,
|
|
109
|
+
checkablesections,
|
|
110
|
+
placeholder = 'Select an option',
|
|
111
|
+
counterlabel = '99 selected',
|
|
112
|
+
searchplaceholder = 'Find an option...',
|
|
113
|
+
selectlabel = 'Select all',
|
|
114
|
+
clearlabel = 'Clear',
|
|
115
|
+
options,
|
|
116
|
+
onopen,
|
|
117
|
+
}: Props = $props();
|
|
118
|
+
|
|
119
|
+
const id = crypto.randomUUID();
|
|
120
|
+
|
|
121
|
+
let combobox: HTMLElement;
|
|
122
|
+
let listbox: InstanceType<typeof OptionListbox> | null = $state(null);
|
|
123
|
+
let listboxEl: HTMLElement | null | undefined = $state(null);
|
|
124
|
+
let comboboxControl: HTMLElement;
|
|
125
|
+
|
|
126
|
+
let isOpen = $state(false);
|
|
127
|
+
|
|
128
|
+
let activeIndex = $state(-1);
|
|
129
|
+
|
|
130
|
+
const activeDescendantId = $derived.by(() => {
|
|
131
|
+
return activeIndex >= 0 ? `option-${id}-${activeIndex}` : undefined;
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
const selectionLabel = $derived.by(() => {
|
|
135
|
+
if (Array.isArray(value)) {
|
|
136
|
+
if (!value.length) return placeholder;
|
|
137
|
+
return (value as (string | number)[]).join(', ');
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return options.find((option) => option.value === value)?.label || placeholder;
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
const hasValue = $derived.by(() =>
|
|
144
|
+
multiple ? !!(value as (string | number)[]).length : !!value,
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
function handleClickOutside(event: MouseEvent) {
|
|
148
|
+
const path = event.composedPath ? event.composedPath() : [];
|
|
149
|
+
if (!path.includes(combobox) && !path.includes(listboxEl!)) {
|
|
150
|
+
close();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function open() {
|
|
155
|
+
isOpen = true;
|
|
156
|
+
handleOpen();
|
|
157
|
+
document.addEventListener('click', handleClickOutside);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function close() {
|
|
161
|
+
isOpen = false;
|
|
162
|
+
handleOpen();
|
|
163
|
+
document.removeEventListener('click', handleClickOutside);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function toggleListbox() {
|
|
167
|
+
return isOpen ? close() : open();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function handleOpen() {
|
|
171
|
+
onopen?.(isOpen);
|
|
172
|
+
|
|
173
|
+
combobox.dispatchEvent(new CustomEvent('update:open', { bubbles: true, composed: true }));
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
onDestroy(() => {
|
|
177
|
+
document.removeEventListener('click', handleClickOutside);
|
|
178
|
+
});
|
|
179
|
+
</script>
|
|
180
|
+
|
|
181
|
+
<div
|
|
182
|
+
bind:this={combobox}
|
|
183
|
+
class={{
|
|
184
|
+
'mc-combobox': true,
|
|
185
|
+
'mc-combobox--open': isOpen,
|
|
186
|
+
'mc-combobox--multiple': multiple,
|
|
187
|
+
'mc-combobox--invalid': invalid,
|
|
188
|
+
'mc-combobox--s': size === 's',
|
|
189
|
+
'mc-combobox--disabled': disabled,
|
|
190
|
+
'mc-combobox--readonly': readonly,
|
|
191
|
+
}}
|
|
192
|
+
>
|
|
193
|
+
<div class="mc-combobox__input">
|
|
194
|
+
<button
|
|
195
|
+
bind:this={comboboxControl}
|
|
196
|
+
aria-expanded={isOpen}
|
|
197
|
+
aria-haspopup="listbox"
|
|
198
|
+
aria-controls={`listbox-${id}`}
|
|
199
|
+
{disabled}
|
|
200
|
+
class="mc-combobox__control"
|
|
201
|
+
aria-label="Combobox input"
|
|
202
|
+
onclick={toggleListbox}
|
|
203
|
+
{...search
|
|
204
|
+
? {}
|
|
205
|
+
: {
|
|
206
|
+
role: 'combobox',
|
|
207
|
+
'aria-activedescendant': activeDescendantId,
|
|
208
|
+
onkeydown: listbox?.handleKeydown,
|
|
209
|
+
}}
|
|
210
|
+
>
|
|
211
|
+
{selectionLabel}
|
|
212
|
+
</button>
|
|
213
|
+
{#if multiple}
|
|
214
|
+
<span class="mc-combobox__counter">
|
|
215
|
+
{counterlabel}
|
|
216
|
+
</span>
|
|
217
|
+
{/if}
|
|
218
|
+
|
|
219
|
+
{#if clearable && hasValue}
|
|
220
|
+
<button
|
|
221
|
+
type="button"
|
|
222
|
+
class="mc-combobox__clear"
|
|
223
|
+
aria-label="Clear value"
|
|
224
|
+
onclick={() => listbox?.clearSelection()}
|
|
225
|
+
>
|
|
226
|
+
<CrossCircleFilled24 />
|
|
227
|
+
</button>
|
|
228
|
+
{/if}
|
|
229
|
+
|
|
230
|
+
<button
|
|
231
|
+
type="button"
|
|
232
|
+
tabindex={-1}
|
|
233
|
+
class="mc-combobox__icon"
|
|
234
|
+
aria-label="Expand options list"
|
|
235
|
+
onclick={toggleListbox}
|
|
236
|
+
>
|
|
237
|
+
<ChevronDown24 />
|
|
238
|
+
</button>
|
|
239
|
+
</div>
|
|
240
|
+
|
|
241
|
+
<div class="mc-combobox__listbox">
|
|
242
|
+
<OptionListbox
|
|
243
|
+
bind:this={listbox}
|
|
244
|
+
bind:element={listboxEl}
|
|
245
|
+
bind:value
|
|
246
|
+
{id}
|
|
247
|
+
open={isOpen}
|
|
248
|
+
{multiple}
|
|
249
|
+
{search}
|
|
250
|
+
{actions}
|
|
251
|
+
{checkablesections}
|
|
252
|
+
{searchplaceholder}
|
|
253
|
+
{selectlabel}
|
|
254
|
+
{clearlabel}
|
|
255
|
+
{options}
|
|
256
|
+
activeindex={activeIndex}
|
|
257
|
+
onopen={open}
|
|
258
|
+
onclose={() => {
|
|
259
|
+
close();
|
|
260
|
+
comboboxControl?.focus();
|
|
261
|
+
}}
|
|
262
|
+
>
|
|
263
|
+
<slot name="optionPrefix" slot="optionPrefix" />
|
|
264
|
+
</OptionListbox>
|
|
265
|
+
</div>
|
|
266
|
+
</div>
|
|
267
|
+
|
|
268
|
+
<style>/**
|
|
269
|
+
* Do not edit directly, this file was auto-generated.
|
|
270
|
+
*/
|
|
271
|
+
.mc-combobox {
|
|
272
|
+
position: relative;
|
|
273
|
+
width: 18.75rem;
|
|
274
|
+
}
|
|
275
|
+
.mc-combobox__input {
|
|
276
|
+
transition: box-shadow 200ms ease;
|
|
277
|
+
background-color: var(--forms-color-background-default, #ffffff);
|
|
278
|
+
border: var(--border-width-s, 0.0625rem) solid var(--forms-color-border-default, #666666);
|
|
279
|
+
border-radius: var(--forms-border-radius, 0.25rem);
|
|
280
|
+
transition: all ease 200ms;
|
|
281
|
+
color: var(--forms-color-text-default, #000000);
|
|
282
|
+
display: block;
|
|
283
|
+
width: 100%;
|
|
284
|
+
display: flex;
|
|
285
|
+
align-items: center;
|
|
286
|
+
gap: 0.5rem;
|
|
287
|
+
box-sizing: border-box;
|
|
288
|
+
}
|
|
289
|
+
.mc-combobox__input:focus-within {
|
|
290
|
+
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));
|
|
291
|
+
outline: 0.125rem solid transparent;
|
|
292
|
+
outline-offset: 0.125rem;
|
|
293
|
+
}
|
|
294
|
+
.mc-combobox__input:hover:not(:focus-within) {
|
|
295
|
+
border-color: var(--forms-color-border-hover, #4d4d4d);
|
|
296
|
+
box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);
|
|
297
|
+
}
|
|
298
|
+
.mc-combobox__input:has(.mc-combobox__control:disabled) {
|
|
299
|
+
background-color: var(--forms-color-background-disabled, #d9d9d9);
|
|
300
|
+
cursor: not-allowed;
|
|
301
|
+
border-color: transparent;
|
|
302
|
+
box-shadow: none;
|
|
303
|
+
color: var(--forms-color-text-disabled, #737373);
|
|
304
|
+
pointer-events: none;
|
|
305
|
+
}
|
|
306
|
+
.mc-combobox__input .mc-combobox__control {
|
|
307
|
+
text-align: left;
|
|
308
|
+
font-size: var(--font-size-150, 1rem);
|
|
309
|
+
font-weight: var(--font-weight-regular, 400);
|
|
310
|
+
color: var(--forms-color-text-default, #000000);
|
|
311
|
+
background-color: transparent;
|
|
312
|
+
border: none;
|
|
313
|
+
padding-left: 0.75rem;
|
|
314
|
+
padding-right: 0;
|
|
315
|
+
flex-grow: 1;
|
|
316
|
+
height: 3rem;
|
|
317
|
+
cursor: pointer;
|
|
318
|
+
overflow: hidden;
|
|
319
|
+
text-overflow: ellipsis;
|
|
320
|
+
white-space: nowrap;
|
|
321
|
+
}
|
|
322
|
+
.mc-combobox__input .mc-combobox__control:focus-within {
|
|
323
|
+
outline: none;
|
|
324
|
+
}
|
|
325
|
+
.mc-combobox__icon {
|
|
326
|
+
border: none;
|
|
327
|
+
display: flex;
|
|
328
|
+
align-items: center;
|
|
329
|
+
cursor: pointer;
|
|
330
|
+
padding-right: 0.75rem;
|
|
331
|
+
background: none;
|
|
332
|
+
color: var(--forms-color-icon-interactive, #000000);
|
|
333
|
+
fill: currentcolor;
|
|
334
|
+
}
|
|
335
|
+
.mc-combobox__clear {
|
|
336
|
+
padding: 0;
|
|
337
|
+
display: flex;
|
|
338
|
+
align-items: center;
|
|
339
|
+
justify-content: center;
|
|
340
|
+
border: none;
|
|
341
|
+
background: none;
|
|
342
|
+
cursor: pointer;
|
|
343
|
+
color: var(--forms-color-icon-clear, #666666);
|
|
344
|
+
fill: currentcolor;
|
|
345
|
+
}
|
|
346
|
+
.mc-combobox__counter {
|
|
347
|
+
height: 1.5rem;
|
|
348
|
+
display: flex;
|
|
349
|
+
flex-shrink: 0;
|
|
350
|
+
align-items: center;
|
|
351
|
+
justify-content: center;
|
|
352
|
+
padding: 0 0.5rem;
|
|
353
|
+
border-radius: var(--border-radius-l, 1rem);
|
|
354
|
+
background-color: var(--forms-color-selection-counter-background, #464e63);
|
|
355
|
+
font-weight: var(--font-weight-regular, 400);
|
|
356
|
+
font-size: var(--font-size-50, 0.75rem);
|
|
357
|
+
line-height: var(--line-height-s, 1.3);
|
|
358
|
+
color: var(--forms-color-selection-counter-text, #ffffff);
|
|
359
|
+
}
|
|
360
|
+
.mc-combobox__listbox {
|
|
361
|
+
position: absolute;
|
|
362
|
+
left: 0;
|
|
363
|
+
top: calc(100% + 0.25rem);
|
|
364
|
+
visibility: hidden;
|
|
365
|
+
opacity: 0;
|
|
366
|
+
box-shadow: var(--shadow-bottom-s-x, 0px) var(--shadow-bottom-s-y, 5px) var(--shadow-bottom-s-blur, 10px) var(--shadow-bottom-s-spread, -2px) rgba(0, 0, 0, var(--shadow-bottom-s-opacity, 20%));
|
|
367
|
+
border: var(--border-width-s, 0.0625rem) solid var(--color-border-primary, #cccccc);
|
|
368
|
+
border-radius: var(--border-radius-m, 0.5rem);
|
|
369
|
+
width: 100%;
|
|
370
|
+
z-index: 10;
|
|
371
|
+
background-color: var(--color-background-primary, #ffffff);
|
|
372
|
+
pointer-events: all;
|
|
373
|
+
}
|
|
374
|
+
.mc-combobox--open .mc-combobox__listbox {
|
|
375
|
+
visibility: visible;
|
|
376
|
+
opacity: 1;
|
|
377
|
+
}
|
|
378
|
+
.mc-combobox--s .mc-combobox__control {
|
|
379
|
+
height: 2rem;
|
|
380
|
+
font-size: var(--font-size-100, 0.875rem);
|
|
381
|
+
padding-left: 0.5rem;
|
|
382
|
+
}
|
|
383
|
+
.mc-combobox--s .mc-combobox__icon {
|
|
384
|
+
padding-right: 0.5rem;
|
|
385
|
+
}
|
|
386
|
+
.mc-combobox--s .mc-combobox__clear {
|
|
387
|
+
width: 1.25rem;
|
|
388
|
+
height: 1.25rem;
|
|
389
|
+
}
|
|
390
|
+
.mc-combobox--invalid .mc-combobox__input {
|
|
391
|
+
border-color: var(--forms-color-border-invalid, #ea302d);
|
|
392
|
+
box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid, #ea302d);
|
|
393
|
+
}
|
|
394
|
+
.mc-combobox--invalid .mc-combobox__input:hover:not(:focus-within) {
|
|
395
|
+
border-color: var(--forms-color-border-invalid-hover, #c61112);
|
|
396
|
+
box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid-hover, #c61112);
|
|
397
|
+
}
|
|
398
|
+
.mc-combobox--disabled .mc-combobox__input {
|
|
399
|
+
background-color: var(--forms-color-background-disabled, #d9d9d9);
|
|
400
|
+
cursor: not-allowed;
|
|
401
|
+
border-color: transparent;
|
|
402
|
+
box-shadow: none;
|
|
403
|
+
color: var(--forms-color-text-disabled, #737373);
|
|
404
|
+
pointer-events: none;
|
|
405
|
+
}
|
|
406
|
+
.mc-combobox--disabled .mc-combobox__control {
|
|
407
|
+
color: var(--forms-color-text-disabled, #737373);
|
|
408
|
+
}
|
|
409
|
+
.mc-combobox--disabled .mc-combobox__icon {
|
|
410
|
+
color: var(--forms-color-icon-disabled, #737373);
|
|
411
|
+
}
|
|
412
|
+
.mc-combobox--readonly .mc-combobox__input {
|
|
413
|
+
border-color: var(--forms-color-border-read-only, #cccccc);
|
|
414
|
+
pointer-events: none;
|
|
415
|
+
}</style>
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type ListboxOption } from '../optionlistbox/OptionListbox.svelte';
|
|
2
|
+
/**
|
|
3
|
+
* A combobox is an input field that allows users to select an option from a dropdown list or enter a custom value. It combines the functionality of a text input and a dropdown menu, providing flexibility and ease of use in forms and user interfaces.
|
|
4
|
+
* @slot optionPrefix - Use this slot to add a prefix to options.
|
|
5
|
+
* @event update:open {CustomEvent<boolean>} - Emitted when the listbox is opened or closed.
|
|
6
|
+
*/
|
|
7
|
+
interface Props {
|
|
8
|
+
/**
|
|
9
|
+
* The current selected value(s) of the combobox.
|
|
10
|
+
*/
|
|
11
|
+
value: string | number | null | (string | number)[];
|
|
12
|
+
/**
|
|
13
|
+
* Enable multiple value mode.
|
|
14
|
+
*/
|
|
15
|
+
multiple?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Size of the combobox: small ('s') or medium ('m').
|
|
18
|
+
*/
|
|
19
|
+
size?: 's' | 'm';
|
|
20
|
+
/**
|
|
21
|
+
* Disable the combobox input.
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Make the combobox read-only.
|
|
26
|
+
*/
|
|
27
|
+
readonly?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Mark the combobox as invalid.
|
|
30
|
+
*/
|
|
31
|
+
invalid?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Show a clear value button.
|
|
34
|
+
*/
|
|
35
|
+
clearable?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Enable the search input inside the listbox.
|
|
38
|
+
*/
|
|
39
|
+
search?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Show select all / clear buttons when multiple.
|
|
42
|
+
*/
|
|
43
|
+
actions?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Enable checkable section headers in the listbox.
|
|
46
|
+
*/
|
|
47
|
+
checkablesections?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Placeholder text when no value is selected.
|
|
50
|
+
*/
|
|
51
|
+
placeholder?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Label for the selected items counter.
|
|
54
|
+
*/
|
|
55
|
+
counterlabel?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Placeholder text for the search input.
|
|
58
|
+
*/
|
|
59
|
+
searchplaceholder?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Label for the "Select all" button.
|
|
62
|
+
*/
|
|
63
|
+
selectlabel?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Label for the "Clear value" button.
|
|
66
|
+
*/
|
|
67
|
+
clearlabel?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Array of options to display in the listbox.
|
|
70
|
+
*/
|
|
71
|
+
options: Array<ListboxOption>;
|
|
72
|
+
/**
|
|
73
|
+
* Callback to trigger when the listbox is opened or closed.
|
|
74
|
+
*/
|
|
75
|
+
onopen?: (value: boolean) => void;
|
|
76
|
+
}
|
|
77
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
78
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
79
|
+
$$bindings?: Bindings;
|
|
80
|
+
} & Exports;
|
|
81
|
+
(internal: unknown, props: Props & {
|
|
82
|
+
$$events?: Events;
|
|
83
|
+
$$slots?: Slots;
|
|
84
|
+
}): Exports & {
|
|
85
|
+
$set?: any;
|
|
86
|
+
$on?: any;
|
|
87
|
+
};
|
|
88
|
+
z_$$bindings?: Bindings;
|
|
89
|
+
}
|
|
90
|
+
declare const Combobox: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
91
|
+
[evt: string]: CustomEvent<any>;
|
|
92
|
+
}, {
|
|
93
|
+
optionPrefix: {
|
|
94
|
+
slot: string;
|
|
95
|
+
};
|
|
96
|
+
}, {}, "value">;
|
|
97
|
+
type Combobox = InstanceType<typeof Combobox>;
|
|
98
|
+
export default Combobox;
|
|
99
|
+
//# sourceMappingURL=Combobox.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Combobox.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/Combobox.svelte.ts"],"names":[],"mappings":"AAIA,OAAsB,EAAE,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAIxF;;;;GAIG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AA0JH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAUD,QAAA,MAAM,QAAQ;;;;;;eAAqF,CAAC;AAClF,KAAK,QAAQ,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;AAChD,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# `m-combobox`
|
|
2
|
+
|
|
3
|
+
A combobox is an input field that allows users to select an option from a dropdown list or enter a custom value. It combines the functionality of a text input and a dropdown menu, providing flexibility and ease of use in forms and user interfaces.
|
|
4
|
+
|
|
5
|
+
## Props
|
|
6
|
+
|
|
7
|
+
| Name | Description | Type | Default |
|
|
8
|
+
|------|-------------|------|---------|
|
|
9
|
+
| `value*` | The current selected value(s) of the combobox. | `string` `number` `null` `(string` `number)[]` | `$bindable()` |
|
|
10
|
+
| `multiple` | Enable multiple value mode. | `boolean` | |
|
|
11
|
+
| `size` | Size of the combobox: small ('s') or medium ('m'). | `'s'` `'m'` | `m` |
|
|
12
|
+
| `disabled` | Disable the combobox input. | `boolean` | |
|
|
13
|
+
| `readonly` | Make the combobox read-only. | `boolean` | |
|
|
14
|
+
| `invalid` | Mark the combobox as invalid. | `boolean` | |
|
|
15
|
+
| `clearable` | Show a clear value button. | `boolean` | |
|
|
16
|
+
| `search` | Enable the search input inside the listbox. | `boolean` | |
|
|
17
|
+
| `actions` | Show select all / clear buttons when multiple. | `boolean` | |
|
|
18
|
+
| `checkablesections` | Enable checkable section headers in the listbox. | `boolean` | |
|
|
19
|
+
| `placeholder` | Placeholder text when no value is selected. | `string` | `Select an option` |
|
|
20
|
+
| `counterlabel` | Label for the selected items counter. | `string` | `99 selected` |
|
|
21
|
+
| `searchplaceholder` | Placeholder text for the search input. | `string` | `Find an option...` |
|
|
22
|
+
| `selectlabel` | Label for the "Select all" button. | `string` | `Select all` |
|
|
23
|
+
| `clearlabel` | Label for the "Clear value" button. | `string` | `Clear` |
|
|
24
|
+
| `options*` | Array of options to display in the listbox. | `Array<ListboxOption>` | |
|
|
25
|
+
| `onopen` | Callback to trigger when the listbox is opened or closed. | `(value: boolean) => void` | |
|
|
26
|
+
|
|
27
|
+
## Slots
|
|
28
|
+
|
|
29
|
+
| Name | Description |
|
|
30
|
+
|------|-------------|
|
|
31
|
+
| `optionPrefix` | Use this slot to add a prefix to options. |
|
|
32
|
+
|
|
33
|
+
## Events
|
|
34
|
+
|
|
35
|
+
| Name | Description | Type |
|
|
36
|
+
|------|------|-------------|
|
|
37
|
+
| `update:open` | Emitted when the listbox is opened or closed. | `CustomEvent<boolean>` |
|
|
38
|
+
|