@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
|
@@ -174,12 +174,12 @@
|
|
|
174
174
|
display: block;
|
|
175
175
|
width: 100%;
|
|
176
176
|
height: 3rem;
|
|
177
|
-
box-sizing: border-box;
|
|
178
177
|
display: flex;
|
|
179
178
|
gap: 0.25rem;
|
|
180
179
|
padding: 0.1875rem;
|
|
181
180
|
position: relative;
|
|
182
181
|
border-radius: var(--border-radius-s, 0.25rem);
|
|
182
|
+
box-sizing: border-box;
|
|
183
183
|
}
|
|
184
184
|
.mc-quantity-selector__control {
|
|
185
185
|
background-color: transparent;
|
|
@@ -227,18 +227,18 @@
|
|
|
227
227
|
height: 2.5rem;
|
|
228
228
|
width: 2.5rem;
|
|
229
229
|
border-radius: var(--border-radius-full, 100%);
|
|
230
|
-
color: var(--quantity-selector-color-button-text-default, #
|
|
230
|
+
color: var(--quantity-selector-color-button-text-default, #000000);
|
|
231
231
|
display: inline-flex;
|
|
232
232
|
align-items: center;
|
|
233
233
|
justify-content: center;
|
|
234
234
|
flex-shrink: 0;
|
|
235
235
|
}
|
|
236
236
|
.mc-quantity-selector__button:disabled {
|
|
237
|
-
color: var(--quantity-selector-color-button-text-disabled, #
|
|
237
|
+
color: var(--quantity-selector-color-button-text-disabled, #b3b3b3);
|
|
238
238
|
cursor: not-allowed;
|
|
239
239
|
}
|
|
240
240
|
.mc-quantity-selector__button:hover:not(:disabled) {
|
|
241
|
-
background-color: var(--quantity-selector-color-button-background-hover, rgba(
|
|
241
|
+
background-color: var(--quantity-selector-color-button-background-hover, rgba(0, 0, 0, 0.05));
|
|
242
242
|
}
|
|
243
243
|
.mc-quantity-selector__button--decrease {
|
|
244
244
|
order: -1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as
|
|
1
|
+
import{c as k,e as w,a as g,p as o,s as q,t as x,b as y,d as B,f as E,n as z,h as v,m as a,r as f,k as R}from"../../custom-element.js";import{a as D,s as F}from"../../attributes.js";import{c as S}from"../../custom-element-forward-events.js";var j=E('<div class="mc-radio svelte-1bwbq3n"><input/> <label class="mc-radio__label svelte-1bwbq3n"> </label></div>');const A={hash:"svelte-1bwbq3n",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
|
-
*/.mc-radio.svelte-1bwbq3n {align-items:center;display:flex;gap:0.5rem;padding:0.375rem;}.mc-radio__label.svelte-1bwbq3n {font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);color:var(--forms-color-text-default, #000000);cursor:pointer;}.mc-radio__input.svelte-1bwbq3n {appearance:none;margin:0;cursor:pointer;flex-shrink:0;transition:box-shadow 200ms ease;background-color:var(--forms-color-background-default, #ffffff);border:var(--border-width-m, 0.125rem) solid var(--forms-color-border-default, #666666);border-radius:100%;transition:all ease 200ms;height:1.25rem;width:1.25rem;position:relative;}.mc-radio__input.svelte-1bwbq3n::before {border-radius:var(--border-radius-full, 100%);content:"";display:block;height:0.5rem;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:0.5rem;}.mc-radio__input.svelte-1bwbq3n:hover {border-color:var(--forms-color-border-hover, #4d4d4d);}.mc-radio__input.svelte-1bwbq3n: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;}.mc-radio__input.svelte-1bwbq3n:checked {background-color:var(--forms-color-background-checked, #117f03);}.mc-radio__input.svelte-1bwbq3n:checked::before {background-color:var(--forms-color-background-default, #ffffff);}.mc-radio__input.svelte-1bwbq3n:checked, .mc-radio__input.svelte-1bwbq3n:disabled {border-color:transparent;}.mc-radio__input.svelte-1bwbq3n:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;}.mc-radio__input.svelte-1bwbq3n:disabled:checked::before {background-color:var(--forms-color-icon-disabled, #737373);}.mc-radio__input.svelte-1bwbq3n:disabled + .mc-radio__label:where(.svelte-1bwbq3n) {color:var(--forms-color-text-disabled, #737373);cursor:not-allowed;}.mc-radio__input.svelte-1bwbq3n:not(:disabled):checked:hover {background-color:var(--forms-color-background-checked-hover, #006902);}.mc-radio__input.is-invalid.svelte-1bwbq3n:not(:checked) {border-color:var(--forms-color-border-invalid, #ea302d);}.mc-radio__input.is-invalid.svelte-1bwbq3n:not(:checked):hover {border-color:var(--forms-color-border-invalid-hover, #c61112);}`};function C(
|
|
3
|
+
*/.mc-radio.svelte-1bwbq3n {align-items:center;display:flex;gap:0.5rem;padding:0.375rem;}.mc-radio__label.svelte-1bwbq3n {font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);color:var(--forms-color-text-default, #000000);cursor:pointer;}.mc-radio__input.svelte-1bwbq3n {appearance:none;margin:0;cursor:pointer;flex-shrink:0;transition:box-shadow 200ms ease;background-color:var(--forms-color-background-default, #ffffff);border:var(--border-width-m, 0.125rem) solid var(--forms-color-border-default, #666666);border-radius:100%;transition:all ease 200ms;height:1.25rem;width:1.25rem;position:relative;}.mc-radio__input.svelte-1bwbq3n::before {border-radius:var(--border-radius-full, 100%);content:"";display:block;height:0.5rem;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:0.5rem;}.mc-radio__input.svelte-1bwbq3n:hover {border-color:var(--forms-color-border-hover, #4d4d4d);}.mc-radio__input.svelte-1bwbq3n: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;}.mc-radio__input.svelte-1bwbq3n:checked {background-color:var(--forms-color-background-checked, #117f03);}.mc-radio__input.svelte-1bwbq3n:checked::before {background-color:var(--forms-color-background-default, #ffffff);}.mc-radio__input.svelte-1bwbq3n:checked, .mc-radio__input.svelte-1bwbq3n:disabled {border-color:transparent;}.mc-radio__input.svelte-1bwbq3n:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;}.mc-radio__input.svelte-1bwbq3n:disabled:checked::before {background-color:var(--forms-color-icon-disabled, #737373);}.mc-radio__input.svelte-1bwbq3n:disabled + .mc-radio__label:where(.svelte-1bwbq3n) {color:var(--forms-color-text-disabled, #737373);cursor:not-allowed;}.mc-radio__input.svelte-1bwbq3n:not(:disabled):checked:hover {background-color:var(--forms-color-background-checked-hover, #006902);}.mc-radio__input.is-invalid.svelte-1bwbq3n:not(:checked) {border-color:var(--forms-color-border-invalid, #ea302d);}.mc-radio__input.is-invalid.svelte-1bwbq3n:not(:checked):hover {border-color:var(--forms-color-border-invalid-hover, #c61112);}`};function C(m,r){w(r,!0),g(m,A);let t=o(r,"id",7),i=o(r,"name",7),d=o(r,"label",7),l=o(r,"checked",15,!1),s=o(r,"disabled",7),n=o(r,"isinvalid",7),h=z(r,["$$slots","$$events","$$legacy","$$host","id","name","label","checked","disabled","isinvalid"]);var _={get id(){return t()},set id(e){t(e),a()},get name(){return i()},set name(e){i(e),a()},get label(){return d()},set label(e){d(e),a()},get checked(){return l()},set checked(e=!1){l(e),a()},get disabled(){return s()},set disabled(e){s(e),a()},get isinvalid(){return n()},set isinvalid(e){n(e),a()}},c=j(),u=v(c);D(u,()=>({id:t(),type:"radio",class:["mc-radio__input",n()&&"is-invalid"],name:i(),disabled:s(),checked:l(),...h}),void 0,void 0,void 0,"svelte-1bwbq3n",!0);var b=q(u,2),p=v(b,!0);return f(b),f(c),x(()=>{F(b,"for",t()),R(p,d())}),y(m,c),B(_)}customElements.define("m-radio",k(C,{checked:{attribute:"checked",reflect:!0,type:"Boolean"},isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},disabled:{attribute:"disabled",reflect:!0,type:"Boolean"},id:{},name:{},label:{}},[],[],{mode:"open"},S));export{C as R};
|
|
4
4
|
//# sourceMappingURL=Radio.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.js","sources":["../../../src/components/radio/Radio.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio',\n props: {\n checked: { reflect: true, type: 'Boolean', attribute: 'checked' },\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.\n */\n interface Props {\n [key: string]: any;\n /**\n * A unique identifier for the radio, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the radio.\n */\n label?: string;\n /**\n * The radio's checked state.\n */\n checked?: boolean;\n /**\n * If `true`, applies an invalid state to the radio.\n */\n isinvalid?: boolean;\n /**\n * If `true`, disables the radio, making it non-interactive.\n */\n disabled?: boolean;\n }\n\n let {\n id,\n name,\n label,\n checked = $bindable(false),\n disabled,\n isinvalid,\n ...attrs\n }: Props = $props();\n</script>\n\n<div class=\"mc-radio\">\n <input\n {id}\n type=\"radio\"\n class={['mc-radio__input', isinvalid && 'is-invalid']}\n {name}\n {disabled}\n {checked}\n {...attrs}\n />\n <label for={id} class=\"mc-radio__label\">{label}</label>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n</style>\n"],"names":["id","$.prop","$$props","name","label","checked","disabled","isinvalid","attrs","$.rest_props","div","root","input","$.child","label_1","$.sibling","$.set_attribute","customElementForwardEvents"],"mappings":";;sxEAYA,oBAkCIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJE,EAAKH,EAAAC,EAAA,QAAA,CAAA,EACLG,mBAAoB,EAAK,EACzBC,EAAQL,EAAAC,EAAA,WAAA,CAAA,EACRK,EAASN,EAAAC,EAAA,YAAA,CAAA,EACNM,EAAAC,EAAAP,EAAA,qRAHiB,GAAK,wHAO5BQ,EAAGC,EAAA,EACDC,EAAAC,EADFH,CAAG,IACDE,WACEZ,EAAE,sBAEK,kBAAmBO,EAAS,GAAI,YAAY,OACnDJ,EAAI,WACJG,EAAQ,UACRD,EAAO,KACJG,8CAEL,IAAAM,EAAKC,EATLH,EAAA,CAAA,MASAE,EAAK,EAAA,WAALA,CAAK,IAVPJ,CAAG,SAUDM,EAAAF,QAAWd,GAAE,MAA2BI,GAAK,QAV/CM,CAAG,MAFI,
|
|
1
|
+
{"version":3,"file":"Radio.js","sources":["../../../src/components/radio/Radio.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio',\n props: {\n checked: { reflect: true, type: 'Boolean', attribute: 'checked' },\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.\n */\n interface Props {\n [key: string]: any;\n /**\n * A unique identifier for the radio, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name?: string;\n /**\n * The text label displayed next to the radio.\n */\n label?: string;\n /**\n * The radio's checked state.\n */\n checked?: boolean;\n /**\n * If `true`, applies an invalid state to the radio.\n */\n isinvalid?: boolean;\n /**\n * If `true`, disables the radio, making it non-interactive.\n */\n disabled?: boolean;\n }\n\n let {\n id,\n name,\n label,\n checked = $bindable(false),\n disabled,\n isinvalid,\n ...attrs\n }: Props = $props();\n</script>\n\n<div class=\"mc-radio\">\n <input\n {id}\n type=\"radio\"\n class={['mc-radio__input', isinvalid && 'is-invalid']}\n {name}\n {disabled}\n {checked}\n {...attrs}\n />\n <label for={id} class=\"mc-radio__label\">{label}</label>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n</style>\n"],"names":["id","$.prop","$$props","name","label","checked","disabled","isinvalid","attrs","$.rest_props","div","root","input","$.child","label_1","$.sibling","$.set_attribute","customElementForwardEvents"],"mappings":";;sxEAYA,oBAkCIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJE,EAAKH,EAAAC,EAAA,QAAA,CAAA,EACLG,mBAAoB,EAAK,EACzBC,EAAQL,EAAAC,EAAA,WAAA,CAAA,EACRK,EAASN,EAAAC,EAAA,YAAA,CAAA,EACNM,EAAAC,EAAAP,EAAA,qRAHiB,GAAK,wHAO5BQ,EAAGC,EAAA,EACDC,EAAAC,EADFH,CAAG,IACDE,WACEZ,EAAE,sBAEK,kBAAmBO,EAAS,GAAI,YAAY,OACnDJ,EAAI,WACJG,EAAQ,UACRD,EAAO,KACJG,8CAEL,IAAAM,EAAKC,EATLH,EAAA,CAAA,MASAE,EAAK,EAAA,WAALA,CAAK,IAVPJ,CAAG,SAUDM,EAAAF,QAAWd,GAAE,MAA2BI,GAAK,QAV/CM,CAAG,MAFI,gQA9CIO"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{c as A,
|
|
1
|
+
import{c as A,e as D,a as F,p as a,t as g,b as k,d as G,f as E,m as i,h as w,s as R,r as _,j as y,l as x,i as o,k as S}from"../../custom-element.js";import{e as q}from"../../each.js";import{r as C,s as b}from"../../attributes.js";import{b as H}from"../../input.js";import{c as I}from"../../custom-element-forward-events.js";var J=E('<div class="mc-radio mc-field__item svelte-clvmul"><input type="radio"/> <label class="mc-radio__label svelte-clvmul"> </label></div>'),K=E("<div></div>");const L={hash:"svelte-clvmul",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
3
|
*/.mc-radio.svelte-clvmul {align-items:center;display:flex;gap:0.5rem;padding:0.375rem;}.mc-radio__label.svelte-clvmul {font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);color:var(--forms-color-text-default, #000000);cursor:pointer;}.mc-radio__input.svelte-clvmul {appearance:none;margin:0;cursor:pointer;flex-shrink:0;transition:box-shadow 200ms ease;background-color:var(--forms-color-background-default, #ffffff);border:var(--border-width-m, 0.125rem) solid var(--forms-color-border-default, #666666);border-radius:100%;transition:all ease 200ms;height:1.25rem;width:1.25rem;position:relative;}.mc-radio__input.svelte-clvmul::before {border-radius:var(--border-radius-full, 100%);content:"";display:block;height:0.5rem;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:0.5rem;}.mc-radio__input.svelte-clvmul:hover {border-color:var(--forms-color-border-hover, #4d4d4d);}.mc-radio__input.svelte-clvmul: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;}.mc-radio__input.svelte-clvmul:checked {background-color:var(--forms-color-background-checked, #117f03);}.mc-radio__input.svelte-clvmul:checked::before {background-color:var(--forms-color-background-default, #ffffff);}.mc-radio__input.svelte-clvmul:checked, .mc-radio__input.svelte-clvmul:disabled {border-color:transparent;}.mc-radio__input.svelte-clvmul:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;}.mc-radio__input.svelte-clvmul:disabled:checked::before {background-color:var(--forms-color-icon-disabled, #737373);}.mc-radio__input.svelte-clvmul:disabled + .mc-radio__label:where(.svelte-clvmul) {color:var(--forms-color-text-disabled, #737373);cursor:not-allowed;}.mc-radio__input.svelte-clvmul:not(:disabled):checked:hover {background-color:var(--forms-color-background-checked-hover, #006902);}.mc-radio__input.is-invalid.svelte-clvmul:not(:checked) {border-color:var(--forms-color-border-invalid, #ea302d);}.mc-radio__input.is-invalid.svelte-clvmul:not(:checked):hover {border-color:var(--forms-color-border-invalid-hover, #c61112);}
|
|
4
4
|
|
|
5
5
|
/* stylelint-disable string-no-newline */.mc-field__content.svelte-clvmul {margin-top:0.5rem;}
|
|
6
6
|
|
|
7
|
-
/* stylelint-enable string-no-newline */.mc-field__content.svelte-clvmul:where(.mc-field__content--inline:where(.svelte-clvmul)) {display:flex;flex-flow:row wrap;gap:0.25rem 1rem;}`};function M(p,t){D(t,!0),F(p,L);const z=[];let s=a(t,"value",15),c=a(t,"name",7),d=a(t,"options",7),
|
|
7
|
+
/* stylelint-enable string-no-newline */.mc-field__content.svelte-clvmul:where(.mc-field__content--inline:where(.svelte-clvmul)) {display:flex;flex-flow:row wrap;gap:0.25rem 1rem;}`};function M(p,t){D(t,!0),F(p,L);const z=[];let s=a(t,"value",15),c=a(t,"name",7),d=a(t,"options",7),m=a(t,"inline",7),u=a(t,"isinvalid",7);var B={get value(){return s()},set value(e){s(e),i()},get name(){return c()},set name(e){c(e),i()},get options(){return d()},set options(e){d(e),i()},get inline(){return m()},set inline(e){m(e),i()},get isinvalid(){return u()},set isinvalid(e){u(e),i()}},n=K();return q(n,21,d,e=>e.id,(e,l)=>{var v=J(),r=w(v);C(r);var h,f=R(r,2),j=w(f,!0);_(f),_(v),g(()=>{y(r,1,x(["mc-radio__input",u()&&"is-invalid"]),"svelte-clvmul"),b(r,"id",o(l).id),b(r,"name",c()),r.disabled=o(l).disabled,h!==(h=o(l).value)&&(r.value=(r.__value=o(l).value)??""),b(f,"for",o(l).id),S(j,o(l).label)}),H(z,[],r,()=>(o(l).value,s()),s),k(e,v)}),_(n),g(()=>y(n,1,x(["mc-field__content",m()&&"mc-field__content--inline"]),"svelte-clvmul")),k(p,n),G(B)}customElements.define("m-radio-group",A(M,{options:{attribute:"options",type:"Array"},isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},inline:{attribute:"inline",reflect:!0,type:"Boolean"},value:{},name:{}},[],[],{mode:"open"},I));
|
|
8
8
|
//# sourceMappingURL=RadioGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroup.js","sources":["../../../src/components/radiogroup/RadioGroup.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio-group',\n props: {\n options: { type: 'Array', attribute: 'options' },\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n inline: { reflect: true, type: 'Boolean', attribute: 'inline' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.\n */\n interface Props {\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name: string;\n /**\n * The current value of the radio group.\n */\n value?: string;\n /**\n * list of properties of each radio button of the radio group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n }>;\n /**\n * If `true`, applies an invalid state to the radio group.\n */\n isinvalid?: boolean;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n }\n\n let { value = $bindable(), name, options, inline, isinvalid }: Props = $props();\n</script>\n\n<div class={['mc-field__content', inline && 'mc-field__content--inline']}>\n {#each options as option (option.id)}\n <div class=\"mc-radio mc-field__item\">\n <input\n type=\"radio\"\n class={['mc-radio__input', isinvalid && 'is-invalid']}\n id={option.id}\n {name}\n bind:group={value}\n value={option.value}\n disabled={option.disabled}\n />\n <label for={option.id} class=\"mc-radio__label\">{option.label}</label>\n </div>\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n @use '@mozaic-ds/styles/components/field';\n\n .mc-field__content:where(.mc-field__content--inline) {\n display: flex;\n flex-flow: row wrap;\n gap: 0.25rem 1rem;\n }\n</style>\n"],"names":["value","$.prop","$$props","name","options","inline","isinvalid","div","root","option","$$anchor","div_1","root_1","input","$.child","$.remove_input_defaults","label","$.sibling","$.set_class","$.clsx","$.get","$.set_attribute","input_value","$.set_text","text","$.template_effect","customElementForwardEvents"],"mappings":";;;;;;sMAYA,+BAiCQA,EAAKC,EAAAC,EAAA,QAAA,EAAA,EAAgBC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EAAEE,EAAOH,EAAAC,EAAA,UAAA,CAAA,EAAEG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EAAEI,EAASL,EAAAC,EAAA,YAAA,CAAA,iQAG5DK,EAAGC,EAAA,WAAHD,EAAG,GACKH,EAAWK,GAAQA,EAAO,GAAE,CAAAC,EAAjBD,IAAM,KACrBE,EAAGC,EAAA,EACDC,EAAAC,EADFH,CAAG,EACDI,EAAAF,CAAA,QASAG,EAAKC,EATLJ,EAAA,CAAA,MASAG,EAAK,EAAA,IAALA,CAAK,IAVPL,CAAG,SACDO,EAAAL,EAAA,EAAAM,EAAA,CAES,kBAAmBb,KAAa,YAAY,CAAA,EAAA,eAAA,IAFrDO,EAAA,KAAAO,EAGKX,CAAM,EAAC,EAAE,EAHdY,EAAAR,EAAA,OAIEV,GAAI,EAJNU,EAAA,SAAAO,EAOWX,CAAM,EAAC,SADVa,KAAAA,EAAAF,EAAAX,CAAM,EAAC,SANfI,EAAA,OAAAA,EAAA,QAAAO,EAMQX,CAAM,EAAC,QAAK,MAGpBO,EAAK,MAAAI,EAAMX,CAAM,EAAC,EAAE,EAA2Bc,EAAAC,EAAAJ,EAAAX,CAAM,EAAC,KAAK,WAT3DI,OAMQO,EAAAX,CAAM,EAAC,MADFT,EAAK,GAALA,OANfW,CAAG,MAFPJ,CAAG,EAAHkB,EAAA,IAAAP,EAAAX,EAAG,EAAAY,EAAA,CAAS,oBAAqBd,EAAM,GAAI,2BAA2B,CAAA,EAAA,eAAA,CAAA,MAAtEE,CAAG,MAFI
|
|
1
|
+
{"version":3,"file":"RadioGroup.js","sources":["../../../src/components/radiogroup/RadioGroup.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio-group',\n props: {\n options: { type: 'Array', attribute: 'options' },\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n inline: { reflect: true, type: 'Boolean', attribute: 'inline' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.\n */\n interface Props {\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name: string;\n /**\n * The current value of the radio group.\n */\n value?: string;\n /**\n * list of properties of each radio button of the radio group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n }>;\n /**\n * If `true`, applies an invalid state to the radio group.\n */\n isinvalid?: boolean;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n }\n\n let { value = $bindable(), name, options, inline, isinvalid }: Props = $props();\n</script>\n\n<div class={['mc-field__content', inline && 'mc-field__content--inline']}>\n {#each options as option (option.id)}\n <div class=\"mc-radio mc-field__item\">\n <input\n type=\"radio\"\n class={['mc-radio__input', isinvalid && 'is-invalid']}\n id={option.id}\n {name}\n bind:group={value}\n value={option.value}\n disabled={option.disabled}\n />\n <label for={option.id} class=\"mc-radio__label\">{option.label}</label>\n </div>\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n @use '@mozaic-ds/styles/components/field';\n\n .mc-field__content:where(.mc-field__content--inline) {\n display: flex;\n flex-flow: row wrap;\n gap: 0.25rem 1rem;\n }\n</style>\n"],"names":["value","$.prop","$$props","name","options","inline","isinvalid","div","root","option","$$anchor","div_1","root_1","input","$.child","$.remove_input_defaults","label","$.sibling","$.set_class","$.clsx","$.get","$.set_attribute","input_value","$.set_text","text","$.template_effect","customElementForwardEvents"],"mappings":";;;;;;sMAYA,+BAiCQA,EAAKC,EAAAC,EAAA,QAAA,EAAA,EAAgBC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EAAEE,EAAOH,EAAAC,EAAA,UAAA,CAAA,EAAEG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EAAEI,EAASL,EAAAC,EAAA,YAAA,CAAA,iQAG5DK,EAAGC,EAAA,WAAHD,EAAG,GACKH,EAAWK,GAAQA,EAAO,GAAE,CAAAC,EAAjBD,IAAM,KACrBE,EAAGC,EAAA,EACDC,EAAAC,EADFH,CAAG,EACDI,EAAAF,CAAA,QASAG,EAAKC,EATLJ,EAAA,CAAA,MASAG,EAAK,EAAA,IAALA,CAAK,IAVPL,CAAG,SACDO,EAAAL,EAAA,EAAAM,EAAA,CAES,kBAAmBb,KAAa,YAAY,CAAA,EAAA,eAAA,IAFrDO,EAAA,KAAAO,EAGKX,CAAM,EAAC,EAAE,EAHdY,EAAAR,EAAA,OAIEV,GAAI,EAJNU,EAAA,SAAAO,EAOWX,CAAM,EAAC,SADVa,KAAAA,EAAAF,EAAAX,CAAM,EAAC,SANfI,EAAA,OAAAA,EAAA,QAAAO,EAMQX,CAAM,EAAC,QAAK,MAGpBO,EAAK,MAAAI,EAAMX,CAAM,EAAC,EAAE,EAA2Bc,EAAAC,EAAAJ,EAAAX,CAAM,EAAC,KAAK,WAT3DI,OAMQO,EAAAX,CAAM,EAAC,MADFT,EAAK,GAALA,OANfW,CAAG,MAFPJ,CAAG,EAAHkB,EAAA,IAAAP,EAAAX,EAAG,EAAAY,EAAA,CAAS,oBAAqBd,EAAM,GAAI,2BAA2B,CAAA,EAAA,eAAA,CAAA,MAAtEE,CAAG,MAFI,+OAtCImB"}
|
|
@@ -181,13 +181,17 @@
|
|
|
181
181
|
color: var(--field-color-validation-valid, #117f03);
|
|
182
182
|
}
|
|
183
183
|
.mc-field__validation-message.is-valid::before {
|
|
184
|
-
background-
|
|
184
|
+
background-color: var(--field-color-validation-valid, #117f03);
|
|
185
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M3.25 10c0-3.72792 3.02208-6.75 6.75-6.75 3.7279 0 6.75 3.02208 6.75 6.75 0 3.7279-3.0221 6.75-6.75 6.75-3.72792 0-6.75-3.0221-6.75-6.75ZM10 1.75c-4.55635 0-8.25 3.69365-8.25 8.25 0 4.5563 3.69365 8.25 8.25 8.25 4.5563 0 8.25-3.6937 8.25-8.25 0-4.55635-3.6937-8.25-8.25-8.25Zm4.2803 6.697c.2929-.2929.2929-.76777 0-1.06066-.2929-.2929-.7677-.2929-1.0606 0L9.16667 11.4393 7.197 9.46967c-.2929-.29289-.76777-.29289-1.06066 0-.2929.29289-.2929.76773 0 1.06063l2.5 2.5c.29289.2929.76776.2929 1.06066 0l4.5833-4.5833Z'/%3E%3C/svg%3E") no-repeat center/contain;
|
|
186
|
+
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M3.25 10c0-3.72792 3.02208-6.75 6.75-6.75 3.7279 0 6.75 3.02208 6.75 6.75 0 3.7279-3.0221 6.75-6.75 6.75-3.72792 0-6.75-3.0221-6.75-6.75ZM10 1.75c-4.55635 0-8.25 3.69365-8.25 8.25 0 4.5563 3.69365 8.25 8.25 8.25 4.5563 0 8.25-3.6937 8.25-8.25 0-4.55635-3.6937-8.25-8.25-8.25Zm4.2803 6.697c.2929-.2929.2929-.76777 0-1.06066-.2929-.2929-.7677-.2929-1.0606 0L9.16667 11.4393 7.197 9.46967c-.2929-.29289-.76777-.29289-1.06066 0-.2929.29289-.2929.76773 0 1.06063l2.5 2.5c.29289.2929.76776.2929 1.06066 0l4.5833-4.5833Z'/%3E%3C/svg%3E") no-repeat center/contain;
|
|
185
187
|
}
|
|
186
188
|
.mc-field__validation-message.is-invalid {
|
|
187
189
|
color: var(--field-color-validation-invalid, #c61112);
|
|
188
190
|
}
|
|
189
191
|
.mc-field__validation-message.is-invalid::before {
|
|
190
|
-
background-
|
|
192
|
+
background-color: var(--field-color-validation-invalid, #c61112);
|
|
193
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 3.25c-3.72792 0-6.75 3.02208-6.75 6.75 0 3.7279 3.02208 6.75 6.75 6.75 3.7279 0 6.75-3.0221 6.75-6.75 0-3.72792-3.0221-6.75-6.75-6.75ZM1.75 10c0-4.55635 3.69365-8.25 8.25-8.25 4.5563 0 8.25 3.69365 8.25 8.25 0 4.5563-3.6937 8.25-8.25 8.25-4.55635 0-8.25-3.6937-8.25-8.25ZM10 5.91667c.4142 0 .75.33578.75.75v4.16663c0 .4142-.3358.75-.75.75-.41421 0-.75-.3358-.75-.75V6.66667c0-.41422.33579-.75.75-.75Zm0 8.25003c.4602 0 .8333-.3731.8333-.8334 0-.4602-.3731-.8333-.8333-.8333-.46024 0-.83333.3731-.83333.8333 0 .4603.37309.8334.83333.8334Z'/%3E%3C/svg%3E") no-repeat center/contain;
|
|
194
|
+
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 3.25c-3.72792 0-6.75 3.02208-6.75 6.75 0 3.7279 3.02208 6.75 6.75 6.75 3.7279 0 6.75-3.0221 6.75-6.75 0-3.72792-3.0221-6.75-6.75-6.75ZM1.75 10c0-4.55635 3.69365-8.25 8.25-8.25 4.5563 0 8.25 3.69365 8.25 8.25 0 4.5563-3.6937 8.25-8.25 8.25-4.55635 0-8.25-3.6937-8.25-8.25ZM10 5.91667c.4142 0 .75.33578.75.75v4.16663c0 .4142-.3358.75-.75.75-.41421 0-.75-.3358-.75-.75V6.66667c0-.41422.33579-.75.75-.75Zm0 8.25003c.4602 0 .8333-.3731.8333-.8334 0-.4602-.3731-.8333-.8333-.8333-.46024 0-.83333.3731-.83333.8333 0 .4603.37309.8334.83333.8334Z'/%3E%3C/svg%3E") no-repeat center/contain;
|
|
191
195
|
}
|
|
192
196
|
.mc-field__validation-message.is-loading {
|
|
193
197
|
color: var(--field-color-validation-loading, #666666);
|
|
@@ -6,14 +6,17 @@ A Segmented Control allows users to switch between multiple options or views wit
|
|
|
6
6
|
|
|
7
7
|
| Name | Description | Type | Default |
|
|
8
8
|
|------|-------------|------|---------|
|
|
9
|
-
| `selected` |
|
|
9
|
+
| `selected` | Defines the currently active tab.
|
|
10
|
+
|
|
11
|
+
- If a `number` is provided, it represents the index of the segment.
|
|
12
|
+
- If a `string` is provided, it must match the `id` of one of the segments. | `number` `string` | `$bindable(0)` |
|
|
10
13
|
| `full` | if `true`, the segmented control take the full width. | `boolean` | |
|
|
11
14
|
| `size` | Determines the size of the segmented control. | `'s'` `'m'` | `s` |
|
|
12
|
-
| `segments*` | An array of objects that allows you to provide all the data needed to generate the content for each segment. | `Array<{ label: string; }>` | |
|
|
15
|
+
| `segments*` | An array of objects that allows you to provide all the data needed to generate the content for each segment. | `Array<{ id?: string; label: string; }>` | |
|
|
13
16
|
|
|
14
17
|
## Events
|
|
15
18
|
|
|
16
19
|
| Name | Description | Type |
|
|
17
20
|
|------|------|-------------|
|
|
18
|
-
| `change` | Emits when the selected segment changes. | `CustomEvent<number>` |
|
|
21
|
+
| `change` | Emits when the selected segment changes. | `CustomEvent<number | string | undefined>` |
|
|
19
22
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as
|
|
1
|
+
import{o as B,c as D,e as q,a as A,p as d,t as p,b as v,d as F,f as y,m as a,h as G,r as b,l as _,i as c,j as k,k as H,u as I}from"../../custom-element.js";import{e as J,i as K}from"../../each.js";import{s as x}from"../../attributes.js";import{b as L}from"../../this.js";var M=y('<button type="button" role="radio"> </button>'),N=y('<div role="radiogroup"></div>');const O={hash:"svelte-1p6odhf",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
|
-
*/.mc-segmented-control.svelte-1p6odhf {display:inline-flex;background-color:var(--segmented-control-color-background-default, #ffffff);border:1px solid var(--segmented-control-color-border, #cccccc);border-radius:3rem;height:2rem;padding:0.25rem;box-sizing:border-box;gap:0.25rem;}.mc-segmented-control__segment.svelte-1p6odhf {display:flex;align-items:center;justify-content:center;background-color:transparent;border:none;color:var(--segmented-control-color-text-default, #666666);cursor:pointer;font-family:inherit;font-weight:var(--font-weight-semi-bold, 600);font-size:var(--font-size-100, 0.875rem);padding:0 1rem;border-radius:3rem;height:1.5rem;width:100%;transition:background-color 0.3s ease;white-space:nowrap;}.mc-segmented-control__segment.svelte-1p6odhf:not(.mc-segmented-control__segment--selected):hover {background-color:var(--segmented-control-color-background-hover, rgba(0, 0, 0, 0.05));}.mc-segmented-control__segment--selected.svelte-1p6odhf {color:var(--segmented-control-color-text-selected, #ffffff);background-color:var(--segmented-control-color-background-selected, #464e63);}.mc-segmented-control__segment.svelte-1p6odhf: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;}.mc-segmented-control--m.svelte-1p6odhf {height:3rem;padding:0.5rem;}.mc-segmented-control--m.svelte-1p6odhf .mc-segmented-control__segment:where(.svelte-1p6odhf) {height:2rem;}.mc-segmented-control--full.svelte-1p6odhf {display:flex;}`};function
|
|
3
|
+
*/.mc-segmented-control.svelte-1p6odhf {display:inline-flex;background-color:var(--segmented-control-color-background-default, #ffffff);border:1px solid var(--segmented-control-color-border, #cccccc);border-radius:3rem;height:2rem;padding:0.25rem;box-sizing:border-box;gap:0.25rem;}.mc-segmented-control__segment.svelte-1p6odhf {display:flex;align-items:center;justify-content:center;background-color:transparent;border:none;color:var(--segmented-control-color-text-default, #666666);cursor:pointer;font-family:inherit;font-weight:var(--font-weight-semi-bold, 600);font-size:var(--font-size-100, 0.875rem);padding:0 1rem;border-radius:3rem;height:1.5rem;width:100%;transition:background-color 0.3s ease;white-space:nowrap;}.mc-segmented-control__segment.svelte-1p6odhf:not(.mc-segmented-control__segment--selected):hover {background-color:var(--segmented-control-color-background-hover, rgba(0, 0, 0, 0.05));}.mc-segmented-control__segment--selected.svelte-1p6odhf {color:var(--segmented-control-color-text-selected, #ffffff);background-color:var(--segmented-control-color-background-selected, #464e63);}.mc-segmented-control__segment.svelte-1p6odhf: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;}.mc-segmented-control--m.svelte-1p6odhf {height:3rem;padding:0.5rem;}.mc-segmented-control--m.svelte-1p6odhf .mc-segmented-control__segment:where(.svelte-1p6odhf) {height:2rem;}.mc-segmented-control--full.svelte-1p6odhf {display:flex;}`};function P(h,n){q(n,!0),A(h,O);let s=d(n,"selected",15,0),m=d(n,"full",7),i=d(n,"size",7,"s"),f=d(n,"segments",7),g;const w=(e,t)=>{const o=typeof s()=="string"?t||"":e;s(o);const r=new CustomEvent("change",{detail:o,bubbles:!0,composed:!0});g.dispatchEvent(r)},u=(e,t)=>{const o=typeof s()=="string"?t||"":e;return s()===o};var z={get selected(){return s()},set selected(e=0){s(e),a()},get full(){return m()},set full(e){m(e),a()},get size(){return i()},set size(e="s"){i(e),a()},get segments(){return f()},set segments(e){f(e),a()}},l=N();return J(l,21,f,K,(e,t,o)=>{var r=M(),S=G(r,!0);b(r),p((C,E,j)=>{k(r,1,C,"svelte-1p6odhf"),x(r,"tabindex",E),x(r,"aria-checked",j),H(S,c(t).label)},[()=>_(["mc-segmented-control__segment",u(o,c(t).id)&&"mc-segmented-control__segment--selected"]),()=>u(o,c(t).id)?0:-1,()=>u(o,c(t).id)?"true":"false"]),I("click",r,()=>w(o,c(t).id)),v(e,r)}),b(l),L(l,e=>g=e,()=>g),p(()=>k(l,1,_(["mc-segmented-control",`mc-segmented-control--${i()}`,m()&&"mc-segmented-control--full"]),"svelte-1p6odhf")),v(h,l),F(z)}B(["click"]);customElements.define("m-segmented-control",D(P,{full:{attribute:"full",reflect:!0,type:"Boolean"},selected:{},size:{},segments:{}},[],[],{mode:"open"}));
|
|
4
4
|
//# sourceMappingURL=SegmentedControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/segmentedcontrol/SegmentedControl.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-segmented-control',\n props: {\n full: { reflect: true, type: 'Boolean', attribute: 'full' },\n },\n }}\n/>\n\n<script lang=\"ts\">\n /**\n * A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.\n *\n * @event change {CustomEvent<number>} - Emits when the selected segment changes.\n */\n interface Props {\n /**\n *
|
|
1
|
+
{"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/segmentedcontrol/SegmentedControl.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-segmented-control',\n props: {\n full: { reflect: true, type: 'Boolean', attribute: 'full' },\n },\n }}\n/>\n\n<script lang=\"ts\">\n /**\n * A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.\n *\n * @event change {CustomEvent<number | string | undefined>} - Emits when the selected segment changes.\n */\n interface Props {\n /**\n * Defines the currently active tab.\n *\n * - If a `number` is provided, it represents the index of the segment.\n * - If a `string` is provided, it must match the `id` of one of the segments.\n */\n selected?: number | string;\n /**\n * if `true`, the segmented control take the full width.\n */\n full?: boolean;\n /**\n * Determines the size of the segmented control.\n */\n size?: 's' | 'm';\n /**\n * An array of objects that allows you to provide all the data needed to generate the content for each segment.\n */\n segments: Array<{\n /**\n * Unique identifier for the segment.\n */\n id?: string;\n /**\n * The label displayed for the segment.\n */\n label: string;\n }>;\n }\n\n let { selected = $bindable(0), full, size = 's', segments }: Props = $props();\n let element: HTMLElement;\n\n const onClick = (index: number, id?: string) => {\n const value = typeof selected === 'string' ? id || '' : index;\n selected = value;\n\n const event = new CustomEvent('change', {\n detail: value,\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n };\n\n const isSegmentSelected = (index: number, id?: string) => {\n const value = typeof selected === 'string' ? id || '' : index;\n return selected === value;\n };\n</script>\n\n<div\n class={[\n 'mc-segmented-control',\n `mc-segmented-control--${size}`,\n full && 'mc-segmented-control--full',\n ]}\n role=\"radiogroup\"\n bind:this={element}\n>\n {#each segments as segment, index (index)}\n <button\n type=\"button\"\n class={[\n 'mc-segmented-control__segment',\n isSegmentSelected(index, segment.id) && 'mc-segmented-control__segment--selected',\n ]}\n role=\"radio\"\n tabindex={isSegmentSelected(index, segment.id) ? 0 : -1}\n aria-checked={isSegmentSelected(index, segment.id) ? 'true' : 'false'}\n onclick={() => onClick(index, segment.id)}\n >\n {segment.label}\n </button>\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/segmented-control';\n</style>\n"],"names":["selected","full","$.prop","$$props","size","segments","element","onClick","index","id","value","event","isSegmentSelected","div","root","segment","button","root_1","text","$.child","$.reset","$.set_class","$0","$.set_attribute","$1","$2","$.set_text","$.get","$.delegated","$.append","$$anchor","$$value"],"mappings":";;onDASA,gBAqCQ,IAAAA,oBAAqB,CAAC,EAAGC,EAAIC,EAAAC,EAAA,OAAA,CAAA,EAAEC,eAAO,GAAG,EAAEC,EAAQH,EAAAC,EAAA,WAAA,CAAA,EACrDG,EAEE,MAAAC,EAAO,CAAIC,EAAeC,IAAgB,OACxCC,EAAK,OAAUV,EAAQ,GAAK,SAAWS,GAAM,GAAKD,EACxDR,EAAWU,CAAK,EAEV,MAAAC,EAAK,IAAO,YAAY,UAC5B,OAAQD,EACR,QAAS,GACT,SAAU,EAAI,CAAA,EAEhBJ,EAAQ,cAAcK,CAAK,CAC7B,EAEMC,EAAiB,CAAIJ,EAAeC,IAAgB,OAClDC,EAAK,OAAUV,EAAQ,GAAK,SAAWS,GAAM,GAAKD,EACjD,OAAAR,EAAQ,IAAKU,CACtB,mDAlB2B,EAAC,0FAAgB,IAAG,iEAqBhDG,EAAAC,EAAA,WAAAD,EAAA,GASQR,OAAYU,EAAOP,IAAA,CACvB,IAAAQ,EAAAC,EAAA,EAAAC,EAAAC,EAAAH,EAAA,EAAA,EAAAI,EAAAJ,CAAA,cAAAK,EAAAL,EAAA,EAAAM,EAAA,gBAAA,EAAAC,EAAAP,EAAA,WAAAQ,CAAA,EAAAD,EAAAP,EAAA,eAAAS,CAAA,EAWEC,EAAAR,EAAAS,EAAAZ,CAAO,EAAC,KAAK,WARZ,gCACAH,EAAkBJ,EAAKmB,EAAEZ,CAAO,EAAC,EAAE,GAAK,gDAGhCH,EAAkBJ,EAAKmB,EAAEZ,CAAO,EAAC,EAAE,EAAI,EAAC,OACpCH,EAAkBJ,EAAKmB,EAAEZ,CAAO,EAAC,EAAE,EAAI,OAAS,UAR/Da,EAAA,QAAAZ,EAAA,IASgBT,EAAQC,EAAKmB,EAAEZ,CAAO,EAAC,EAAE,CAAA,EATzCc,EAAAC,EAAAd,CAAA,IAVJI,EAAAP,CAAA,IAAAA,EAAAkB,GAOYzB,QAAAA,CAAO,UAPnBO,OAEG,gDACyBT,EAAI,CAAA,GAC7BH,KAAQ,kDAJX4B,EAAAC,EAAAjB,CAAA,MAFO"}
|
|
@@ -2,15 +2,25 @@ import { describe, it, expect, vi } from 'vitest';
|
|
|
2
2
|
import { render, fireEvent } from '@testing-library/svelte';
|
|
3
3
|
import SegmentedControl from './SegmentedControl.svelte';
|
|
4
4
|
describe('m-segmented-control component', () => {
|
|
5
|
-
const
|
|
5
|
+
const numberBasedProps = {
|
|
6
6
|
segments: [{ label: 'Segment 1' }, { label: 'Segment 2' }, { label: 'Segment 3' }],
|
|
7
7
|
selected: 1,
|
|
8
8
|
size: 's',
|
|
9
9
|
full: false,
|
|
10
10
|
};
|
|
11
|
+
const stringBasedProps = {
|
|
12
|
+
segments: [
|
|
13
|
+
{ id: '1', label: 'Segment 1' },
|
|
14
|
+
{ id: '2', label: 'Segment 2' },
|
|
15
|
+
{ id: '3', label: 'Segment 3' },
|
|
16
|
+
],
|
|
17
|
+
selected: '2',
|
|
18
|
+
size: 's',
|
|
19
|
+
full: false,
|
|
20
|
+
};
|
|
11
21
|
it('renders correct number of segments with labels', () => {
|
|
12
22
|
const { getAllByRole } = render(SegmentedControl, {
|
|
13
|
-
props:
|
|
23
|
+
props: numberBasedProps,
|
|
14
24
|
});
|
|
15
25
|
const buttons = getAllByRole('radio');
|
|
16
26
|
expect(buttons.length).toBe(3);
|
|
@@ -18,32 +28,59 @@ describe('m-segmented-control component', () => {
|
|
|
18
28
|
expect(buttons[1].textContent).toBe('Segment 2');
|
|
19
29
|
expect(buttons[2].textContent).toBe('Segment 3');
|
|
20
30
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
31
|
+
describe('Segment selection - number type', () => {
|
|
32
|
+
it('sets the correct initial selected segment', () => {
|
|
33
|
+
const { getAllByRole } = render(SegmentedControl, { props: numberBasedProps });
|
|
34
|
+
const buttons = getAllByRole('radio');
|
|
35
|
+
expect(buttons[1].getAttribute('aria-checked')).toBe('true');
|
|
36
|
+
expect(buttons[1].tabIndex).toBe(0);
|
|
37
|
+
expect(buttons[0].getAttribute('aria-checked')).toBe('false');
|
|
38
|
+
expect(buttons[0].tabIndex).toBe(-1);
|
|
39
|
+
});
|
|
40
|
+
it('updates selected segment and dispatches event on click', async () => {
|
|
41
|
+
const { container, getAllByRole } = render(SegmentedControl, {
|
|
42
|
+
props: numberBasedProps,
|
|
43
|
+
});
|
|
44
|
+
const buttons = getAllByRole('radio');
|
|
45
|
+
const handler = vi.fn();
|
|
46
|
+
container.firstChild?.addEventListener('change', handler);
|
|
47
|
+
await fireEvent.click(buttons[2]);
|
|
48
|
+
expect(handler).toHaveBeenCalledTimes(1);
|
|
49
|
+
expect(handler.mock.calls[0][0].detail).toBe(2);
|
|
50
|
+
expect(buttons[2].getAttribute('aria-checked')).toBe('true');
|
|
51
|
+
expect(buttons[2].tabIndex).toBe(0);
|
|
52
|
+
expect(buttons[1].getAttribute('aria-checked')).toBe('false');
|
|
53
|
+
expect(buttons[1].tabIndex).toBe(-1);
|
|
54
|
+
});
|
|
28
55
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
props:
|
|
56
|
+
describe('Segment selection - string type', () => {
|
|
57
|
+
it('sets the correct initial selected segment', () => {
|
|
58
|
+
const { getAllByRole } = render(SegmentedControl, { props: stringBasedProps });
|
|
59
|
+
const buttons = getAllByRole('radio');
|
|
60
|
+
expect(buttons[1].getAttribute('aria-checked')).toBe('true');
|
|
61
|
+
expect(buttons[1].tabIndex).toBe(0);
|
|
62
|
+
expect(buttons[0].getAttribute('aria-checked')).toBe('false');
|
|
63
|
+
expect(buttons[0].tabIndex).toBe(-1);
|
|
64
|
+
});
|
|
65
|
+
it('updates selected segment and dispatches event on click', async () => {
|
|
66
|
+
const { container, getAllByRole } = render(SegmentedControl, {
|
|
67
|
+
props: stringBasedProps,
|
|
68
|
+
});
|
|
69
|
+
const buttons = getAllByRole('radio');
|
|
70
|
+
const handler = vi.fn();
|
|
71
|
+
container.firstChild?.addEventListener('change', handler);
|
|
72
|
+
await fireEvent.click(buttons[2]);
|
|
73
|
+
expect(handler).toHaveBeenCalledTimes(1);
|
|
74
|
+
expect(handler.mock.calls[0][0].detail).toBe('3');
|
|
75
|
+
expect(buttons[2].getAttribute('aria-checked')).toBe('true');
|
|
76
|
+
expect(buttons[2].tabIndex).toBe(0);
|
|
77
|
+
expect(buttons[1].getAttribute('aria-checked')).toBe('false');
|
|
78
|
+
expect(buttons[1].tabIndex).toBe(-1);
|
|
32
79
|
});
|
|
33
|
-
const buttons = getAllByRole('radio');
|
|
34
|
-
const handler = vi.fn();
|
|
35
|
-
container.firstChild?.addEventListener('change', handler);
|
|
36
|
-
await fireEvent.click(buttons[2]);
|
|
37
|
-
expect(handler).toHaveBeenCalledTimes(1);
|
|
38
|
-
expect(handler.mock.calls[0][0].detail).toBe(2);
|
|
39
|
-
expect(buttons[2].getAttribute('aria-checked')).toBe('true');
|
|
40
|
-
expect(buttons[2].tabIndex).toBe(0);
|
|
41
|
-
expect(buttons[1].getAttribute('aria-checked')).toBe('false');
|
|
42
|
-
expect(buttons[1].tabIndex).toBe(-1);
|
|
43
80
|
});
|
|
44
81
|
it('applies size and full classes correctly', () => {
|
|
45
82
|
const { container } = render(SegmentedControl, {
|
|
46
|
-
props: { ...
|
|
83
|
+
props: { ...numberBasedProps, size: 'm', full: true },
|
|
47
84
|
});
|
|
48
85
|
const rootDiv = container.querySelector('.mc-segmented-control');
|
|
49
86
|
expect(rootDiv.classList.contains('mc-segmented-control--m')).toBe(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.stories.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedcontrol/SegmentedControl.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,2BAA2B,CAAC;AAEnC,QAAA,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.stories.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedcontrol/SegmentedControl.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,2BAA2B,CAAC;AAEnC,QAAA,MAAM,IAAI,EAAE,IAiDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC"}
|
|
@@ -16,17 +16,22 @@ const meta = {
|
|
|
16
16
|
},
|
|
17
17
|
},
|
|
18
18
|
args: {
|
|
19
|
+
selected: 'label2',
|
|
19
20
|
segments: [
|
|
20
21
|
{
|
|
22
|
+
id: 'label1',
|
|
21
23
|
label: 'Label',
|
|
22
24
|
},
|
|
23
25
|
{
|
|
26
|
+
id: 'label2',
|
|
24
27
|
label: 'Label',
|
|
25
28
|
},
|
|
26
29
|
{
|
|
30
|
+
id: 'label3',
|
|
27
31
|
label: 'Label',
|
|
28
32
|
},
|
|
29
33
|
{
|
|
34
|
+
id: 'label4',
|
|
30
35
|
label: 'Label',
|
|
31
36
|
},
|
|
32
37
|
],
|
|
@@ -35,7 +40,7 @@ const meta = {
|
|
|
35
40
|
const onChange = action('change');
|
|
36
41
|
return html `
|
|
37
42
|
<m-segmented-control
|
|
38
|
-
selected
|
|
43
|
+
selected="${args.selected}"
|
|
39
44
|
?full=${args.full}
|
|
40
45
|
size=${ifDefined(args.size)}
|
|
41
46
|
.segments=${ifDefined(args.segments)}
|
|
@@ -11,13 +11,16 @@
|
|
|
11
11
|
/**
|
|
12
12
|
* A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.
|
|
13
13
|
*
|
|
14
|
-
* @event change {CustomEvent<number>} - Emits when the selected segment changes.
|
|
14
|
+
* @event change {CustomEvent<number | string | undefined>} - Emits when the selected segment changes.
|
|
15
15
|
*/
|
|
16
16
|
interface Props {
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Defines the currently active tab.
|
|
19
|
+
*
|
|
20
|
+
* - If a `number` is provided, it represents the index of the segment.
|
|
21
|
+
* - If a `string` is provided, it must match the `id` of one of the segments.
|
|
19
22
|
*/
|
|
20
|
-
selected?: number;
|
|
23
|
+
selected?: number | string;
|
|
21
24
|
/**
|
|
22
25
|
* if `true`, the segmented control take the full width.
|
|
23
26
|
*/
|
|
@@ -30,6 +33,10 @@
|
|
|
30
33
|
* An array of objects that allows you to provide all the data needed to generate the content for each segment.
|
|
31
34
|
*/
|
|
32
35
|
segments: Array<{
|
|
36
|
+
/**
|
|
37
|
+
* Unique identifier for the segment.
|
|
38
|
+
*/
|
|
39
|
+
id?: string;
|
|
33
40
|
/**
|
|
34
41
|
* The label displayed for the segment.
|
|
35
42
|
*/
|
|
@@ -40,16 +47,22 @@
|
|
|
40
47
|
let { selected = $bindable(0), full, size = 's', segments }: Props = $props();
|
|
41
48
|
let element: HTMLElement;
|
|
42
49
|
|
|
43
|
-
const onClick = (index: number) => {
|
|
44
|
-
|
|
50
|
+
const onClick = (index: number, id?: string) => {
|
|
51
|
+
const value = typeof selected === 'string' ? id || '' : index;
|
|
52
|
+
selected = value;
|
|
45
53
|
|
|
46
54
|
const event = new CustomEvent('change', {
|
|
47
|
-
detail:
|
|
55
|
+
detail: value,
|
|
48
56
|
bubbles: true,
|
|
49
57
|
composed: true,
|
|
50
58
|
});
|
|
51
59
|
element.dispatchEvent(event);
|
|
52
60
|
};
|
|
61
|
+
|
|
62
|
+
const isSegmentSelected = (index: number, id?: string) => {
|
|
63
|
+
const value = typeof selected === 'string' ? id || '' : index;
|
|
64
|
+
return selected === value;
|
|
65
|
+
};
|
|
53
66
|
</script>
|
|
54
67
|
|
|
55
68
|
<div
|
|
@@ -66,12 +79,12 @@
|
|
|
66
79
|
type="button"
|
|
67
80
|
class={[
|
|
68
81
|
'mc-segmented-control__segment',
|
|
69
|
-
|
|
82
|
+
isSegmentSelected(index, segment.id) && 'mc-segmented-control__segment--selected',
|
|
70
83
|
]}
|
|
71
84
|
role="radio"
|
|
72
|
-
tabindex={
|
|
73
|
-
aria-checked={
|
|
74
|
-
onclick={() => onClick(index)}
|
|
85
|
+
tabindex={isSegmentSelected(index, segment.id) ? 0 : -1}
|
|
86
|
+
aria-checked={isSegmentSelected(index, segment.id) ? 'true' : 'false'}
|
|
87
|
+
onclick={() => onClick(index, segment.id)}
|
|
75
88
|
>
|
|
76
89
|
{segment.label}
|
|
77
90
|
</button>
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.
|
|
3
3
|
*
|
|
4
|
-
* @event change {CustomEvent<number>} - Emits when the selected segment changes.
|
|
4
|
+
* @event change {CustomEvent<number | string | undefined>} - Emits when the selected segment changes.
|
|
5
5
|
*/
|
|
6
6
|
interface Props {
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Defines the currently active tab.
|
|
9
|
+
*
|
|
10
|
+
* - If a `number` is provided, it represents the index of the segment.
|
|
11
|
+
* - If a `string` is provided, it must match the `id` of one of the segments.
|
|
9
12
|
*/
|
|
10
|
-
selected?: number;
|
|
13
|
+
selected?: number | string;
|
|
11
14
|
/**
|
|
12
15
|
* if `true`, the segmented control take the full width.
|
|
13
16
|
*/
|
|
@@ -20,6 +23,10 @@ interface Props {
|
|
|
20
23
|
* An array of objects that allows you to provide all the data needed to generate the content for each segment.
|
|
21
24
|
*/
|
|
22
25
|
segments: Array<{
|
|
26
|
+
/**
|
|
27
|
+
* Unique identifier for the segment.
|
|
28
|
+
*/
|
|
29
|
+
id?: string;
|
|
23
30
|
/**
|
|
24
31
|
* The label displayed for the segment.
|
|
25
32
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedcontrol/SegmentedControl.svelte.ts"],"names":[],"mappings":"AAGE;;;;GAIG;AACH,UAAU,KAAK;IACb
|
|
1
|
+
{"version":3,"file":"SegmentedControl.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedcontrol/SegmentedControl.svelte.ts"],"names":[],"mappings":"AAGE;;;;GAIG;AACH,UAAU,KAAK;IACb;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;QACd;;WAEG;QACH,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAmDH,QAAA,MAAM,gBAAgB,mDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{c as
|
|
1
|
+
import{c as A,e as D,a as F,p as t,s as Y,t as w,b as z,d as q,f as y,n as G,h as d,m as a,r as c,k as C,i as v,j as H,l as I}from"../../custom-element.js";import{i as J}from"../../if.js";import{e as K,i as N}from"../../each.js";import{a as O,d as P}from"../../attributes.js";import{c as Q}from"../../custom-element-forward-events.js";import"../../branches.js";var R=y('<option disabled="" selected=""> </option>'),T=y("<option> </option>"),U=y("<div><select><!><!></select></div>");const V={hash:"svelte-6nznl5",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
3
|
*/
|
|
4
|
-
/* stylelint-disable string-no-newline */.mc-select.svelte-6nznl5 {
|
|
4
|
+
/* stylelint-disable string-no-newline */.mc-select.svelte-6nznl5 {position:relative;display:block;width:100%;}.mc-select.svelte-6nznl5::after {content:"";pointer-events:none;position:absolute;top:50%;right:1rem;transform:translateY(-50%);width:1rem;height:1rem;background-color:var(--forms-color-icon-interactive, #000000);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E") no-repeat center/contain;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E") no-repeat center/contain;}.mc-select__control.svelte-6nznl5 {appearance:none;font-family:inherit;transition:box-shadow 200ms ease;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);height:3rem;padding:0 3rem 0 0.75rem;background-position:right 1rem center;border:var(--border-width-s, 0.0625rem) solid var(--forms-color-border-default, #666666);display:block;width:100%;color:var(--forms-color-text-default, #000000);background-color:var(--forms-color-background-default, #ffffff);text-overflow:ellipsis;border-radius:var(--border-radius-s, 0.25rem);}.mc-select__control.svelte-6nznl5:hover {border-color:var(--forms-color-border-hover, #4d4d4d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);}.mc-select__control.svelte-6nznl5:focus {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;}.mc-select__control.svelte-6nznl5:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);border-color:transparent;cursor:not-allowed;box-shadow:none;color:var(--forms-color-text-disabled, #737373);}.mc-select__control--readonly.svelte-6nznl5 {border-color:var(--forms-color-border-read-only, #cccccc);pointer-events:none;}.mc-select__control.is-invalid.svelte-6nznl5 {border-color:var(--forms-color-border-invalid, #ea302d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid, #ea302d);}.mc-select__control.is-invalid.svelte-6nznl5:hover {border-color:var(--forms-color-border-invalid-hover, #c61112);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid-hover, #c61112);}.mc-select--s.svelte-6nznl5 .mc-select__control:where(.svelte-6nznl5) {font-size:var(--font-size-100, 0.875rem);line-height:var(--line-height-s, 1.3);height:2rem;padding:0 2rem 0 0.5rem;background-position:right 0.5rem center;}
|
|
5
5
|
|
|
6
|
-
/* stylelint-enable string-no-newline */`};function
|
|
6
|
+
/* stylelint-enable string-no-newline */`};function W(x,r){D(r,!0),F(x,V);let m=t(r,"id",7),u=t(r,"name",7),f=t(r,"value",15),s=t(r,"placeholder",7),h=t(r,"size",7,"m"),b=t(r,"isinvalid",7),g=t(r,"disabled",7),p=t(r,"readonly",7),_=t(r,"options",7),B=G(r,["$$slots","$$events","$$legacy","$$host","id","name","value","placeholder","size","isinvalid","disabled","readonly","options"]);var L={get id(){return m()},set id(e){m(e),a()},get name(){return u()},set name(e){u(e),a()},get value(){return f()},set value(e){f(e),a()},get placeholder(){return s()},set placeholder(e){s(e),a()},get size(){return h()},set size(e="m"){h(e),a()},get isinvalid(){return b()},set isinvalid(e){b(e),a()},get disabled(){return g()},set disabled(e){g(e),a()},get readonly(){return p()},set readonly(e){p(e),a()},get options(){return _()},set options(e){_(e),a()}},n=U(),i=d(n);O(i,()=>({id:m(),class:["mc-select__control",p()&&"mc-select__control--readonly",b()&&"is-invalid"],name:u(),disabled:g(),...B}),void 0,void 0,void 0,"svelte-6nznl5");var k=d(i);{var M=e=>{var o=R(),l=d(o);c(o),o.value=o.__value="",w(()=>C(l,`-- ${s()??""} --`)),z(e,o)};J(k,e=>{s()&&e(M)})}var S=Y(k);return K(S,17,_,N,(e,o)=>{var l=T(),j=d(l,!0);c(l);var E={};w(()=>{l.disabled=v(o).disabled,C(j,v(o).text),E!==(E=v(o).value)&&(l.value=(l.__value=v(o).value)??"")}),z(e,l)}),c(i),c(n),w(()=>H(n,1,I(["mc-select",`mc-select--${h()}`]),"svelte-6nznl5")),P(i,f),z(x,n),q(L)}customElements.define("m-select",A(W,{options:{attribute:"options",type:"Array"},isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},disabled:{attribute:"disabled",reflect:!0,type:"Boolean"},readonly:{attribute:"readonly",reflect:!0,type:"Boolean"},id:{},name:{},value:{},placeholder:{},size:{}},[],[],{mode:"open"},Q));
|
|
7
7
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-select',\n props: {\n options: { type: 'Array', attribute: 'options' },\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },\n readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A select component allows users to choose a single option from a predefined list within a native dropdown menu. It helps simplify input by displaying only relevant choices, reducing the need for manual text entry. Select components are commonly used in forms, settings, and filters where structured selection is required.\n */\n interface Props {\n [key: string]: any;\n /**\n * A unique identifier for the select, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the select element, used for form submission.\n */\n name?: string;\n /**\n * Define the available choices for the select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: string | number;\n disabled?: boolean;\n }>;\n /**\n * The current value of the select.\n */\n value?: string | number;\n /**\n * Text displayed when the select has no selected value.\n */\n placeholder?: string;\n /**\n * If `true`, the select is marked as invalid.\n */\n isinvalid?: boolean;\n /**\n * If `true`, the select is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the select.\n */\n size?: 's' | 'm';\n /**\n * If `true`, the select is read-only (cannot be edited).\n */\n readonly?: boolean;\n }\n\n let {\n id,\n name,\n value = $bindable(),\n placeholder,\n size = 'm',\n isinvalid,\n disabled,\n readonly,\n options,\n ...attrs\n }: Props = $props();\n</script>\n\n<
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-select',\n props: {\n options: { type: 'Array', attribute: 'options' },\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },\n readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A select component allows users to choose a single option from a predefined list within a native dropdown menu. It helps simplify input by displaying only relevant choices, reducing the need for manual text entry. Select components are commonly used in forms, settings, and filters where structured selection is required.\n */\n interface Props {\n [key: string]: any;\n /**\n * A unique identifier for the select, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the select element, used for form submission.\n */\n name?: string;\n /**\n * Define the available choices for the select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: string | number;\n disabled?: boolean;\n }>;\n /**\n * The current value of the select.\n */\n value?: string | number;\n /**\n * Text displayed when the select has no selected value.\n */\n placeholder?: string;\n /**\n * If `true`, the select is marked as invalid.\n */\n isinvalid?: boolean;\n /**\n * If `true`, the select is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the select.\n */\n size?: 's' | 'm';\n /**\n * If `true`, the select is read-only (cannot be edited).\n */\n readonly?: boolean;\n }\n\n let {\n id,\n name,\n value = $bindable(),\n placeholder,\n size = 'm',\n isinvalid,\n disabled,\n readonly,\n options,\n ...attrs\n }: Props = $props();\n</script>\n\n<div class={[\n 'mc-select',\n `mc-select--${size}`,\n ]}\n>\n <select\n {id}\n class={[\n 'mc-select__control',\n readonly && 'mc-select__control--readonly',\n isinvalid && 'is-invalid',\n ]}\n {name}\n {disabled}\n bind:value\n {...attrs}\n >\n {#if placeholder}\n <option value=\"\" disabled selected>\n -- {placeholder} --\n </option>\n {/if}\n\n {#each options as option, index (index)}\n <option disabled={option.disabled} value={option.value}>\n {option.text}\n </option>\n {/each}\n </select>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/select';\n</style>\n"],"names":["id","$.prop","$$props","name","value","placeholder","size","isinvalid","disabled","readonly","options","attrs","$.rest_props","div","root","select","$.child","node","option_1","root_1","$$render","consequent","$.each","node_1","option","option_2","root_2","$.get","$.set_text","text_1","option_2_value","$.reset","$.clsx","$.bind_select_value","customElementForwardEvents"],"mappings":";;;;;0DAaA,oBAmDIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJE,EAAKH,EAAAC,EAAA,QAAA,EAAA,EACLG,EAAWJ,EAAAC,EAAA,cAAA,CAAA,EACXI,eAAO,GAAG,EACVC,EAASN,EAAAC,EAAA,YAAA,CAAA,EACTM,EAAQP,EAAAC,EAAA,WAAA,CAAA,EACRO,EAAQR,EAAAC,EAAA,WAAA,CAAA,EACRQ,EAAOT,EAAAC,EAAA,UAAA,CAAA,EACJS,EAAAC,EAAAV,EAAA,0WALI,IAAG,gOASbW,EAAGC,EAAA,EAKDC,EAAAC,EALFH,CAAG,IAKDE,WACEf,EAAE,SAED,qBACAS,EAAQ,GAAI,+BACZF,KAAa,mBAEdJ,EAAI,WACJK,EAAQ,KAELG,0CAVL,IAAAM,EAAAD,EAAAD,CAAA,iBAaIG,EAAMC,EAAA,MAAND,CAAM,IAANA,CAAM,EAANA,QAAAA,EAAM,QAAA,mBACDb,KAAW,EAAA,KAAA,CAAA,MADhBa,CAAM,WADJb,EAAW,GAAAe,EAAAC,CAAA,eAMTC,OAAAA,EAAAC,EAAA,GAAAb,OAAWc,IAAM,KACrBC,EAAMC,EAAA,MAAND,EAAM,EAAA,IAANA,CAAM,kBAANA,EAAM,SAAAE,EAAWH,CAAM,EAAC,SACtBI,EAAAC,EAAAF,EAAAH,CAAM,EAAC,IAAI,EAD4BM,KAAAA,EAAAH,EAAAH,CAAM,EAAC,SAAhDC,EAAM,OAANA,EAAM,QAAAE,EAAmCH,CAAM,EAAC,QAAK,UAArDC,CAAM,IAnBVM,EAAAhB,CAAA,IALFF,CAAG,UAAHA,EAAG,EAAAmB,EAAA,CACA,YAAW,cACG1B,EAAI,CAAA,EAAA,CAAA,EAAA,eAAA,CAAA,EAGnB2B,EAAAlB,EAAAX,CAAA,MALFS,CAAG,MAFI,qUAlEIqB"}
|
|
@@ -57,7 +57,7 @@ describe('m-select component', () => {
|
|
|
57
57
|
props: { ...baseProps, readonly: true },
|
|
58
58
|
});
|
|
59
59
|
const select = container.querySelector('select');
|
|
60
|
-
expect(select.classList.contains('mc-
|
|
60
|
+
expect(select.classList.contains('mc-select__control--readonly')).toBe(true);
|
|
61
61
|
});
|
|
62
62
|
it('applies the is-invalid class when isinvalid is true', () => {
|
|
63
63
|
const { container } = render(Select, {
|
|
@@ -70,7 +70,7 @@ describe('m-select component', () => {
|
|
|
70
70
|
const { container } = render(Select, {
|
|
71
71
|
props: { ...baseProps, size: 's' },
|
|
72
72
|
});
|
|
73
|
-
const select = container.querySelector('select');
|
|
73
|
+
const select = container.querySelector('.mc-select');
|
|
74
74
|
expect(select.classList.contains('mc-select--s')).toBe(true);
|
|
75
75
|
});
|
|
76
76
|
});
|