@mozaic-ds/web-components 1.0.0-beta.7 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -70
- package/dist/Cross20.js +1 -1
- package/dist/Cross20.js.map +1 -1
- package/dist/Cross24.js +1 -1
- package/dist/CrossCircleFilled24.js +1 -1
- package/dist/attributes.js +1 -1
- package/dist/attributes.js.map +1 -1
- package/dist/bundle.d.ts +25 -23
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +25 -23
- package/dist/components/avatar/Avatar.js +2 -2
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/Avatar.spec.js +17 -0
- package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.stories.js +4 -32
- package/dist/components/avatar/Avatar.svelte +7 -5
- package/dist/components/avatar/Avatar.svelte.d.ts +2 -0
- package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -1
- package/dist/components/avatar/README.md +16 -0
- package/dist/components/breadcrumb/Breadcrumb.js +2 -2
- package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.spec.js +42 -0
- package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.stories.js +7 -39
- package/dist/components/breadcrumb/Breadcrumb.svelte +12 -20
- package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
- package/dist/components/breadcrumb/README.md +11 -0
- package/dist/components/button/Button.js +2 -2
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/Button.spec.js +74 -0
- package/dist/components/button/Button.stories.d.ts +9 -13
- package/dist/components/button/Button.stories.d.ts.map +1 -1
- package/dist/components/button/Button.stories.js +46 -146
- package/dist/components/button/Button.svelte +70 -53
- package/dist/components/button/Button.svelte.d.ts +36 -8
- package/dist/components/button/Button.svelte.d.ts.map +1 -1
- package/dist/components/button/README.md +26 -0
- package/dist/components/callout/Callout.js +2 -5
- package/dist/components/callout/Callout.js.map +1 -1
- package/dist/components/callout/Callout.spec.js +33 -0
- package/dist/components/callout/Callout.stories.d.ts.map +1 -1
- package/dist/components/callout/Callout.stories.js +2 -55
- package/dist/components/callout/Callout.svelte +12 -15
- package/dist/components/callout/Callout.svelte.d.ts +4 -0
- package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
- package/dist/components/callout/README.md +20 -0
- package/dist/components/checkbox/Checkbox.js +3 -3
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox/Checkbox.spec.js +70 -0
- package/dist/components/checkbox/Checkbox.stories.d.ts +11 -16
- package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.stories.js +67 -124
- package/dist/components/checkbox/Checkbox.svelte +42 -22
- package/dist/components/checkbox/Checkbox.svelte.d.ts +31 -6
- package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
- package/dist/components/checkbox/README.md +17 -0
- package/dist/components/checkboxgroup/CheckboxGroup.js +3 -3
- package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
- package/dist/components/checkboxgroup/CheckboxGroup.spec.js +111 -0
- package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +5 -13
- package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
- package/dist/components/checkboxgroup/CheckboxGroup.stories.js +56 -140
- package/dist/components/checkboxgroup/CheckboxGroup.svelte +54 -49
- package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts +30 -6
- package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
- package/dist/components/checkboxgroup/README.md +14 -0
- package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
- package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
- package/dist/components/circularprogressbar/CircularProgressbar.spec.js +74 -0
- package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +6 -6
- package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
- package/dist/components/circularprogressbar/CircularProgressbar.stories.js +29 -68
- package/dist/components/circularprogressbar/CircularProgressbar.svelte +20 -10
- package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +18 -0
- package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
- package/dist/components/circularprogressbar/README.md +14 -0
- package/dist/components/datepicker/Datepicker.js +3 -3
- package/dist/components/datepicker/Datepicker.js.map +1 -1
- package/dist/components/datepicker/Datepicker.spec.js +95 -0
- package/dist/components/datepicker/Datepicker.stories.d.ts +7 -6
- package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
- package/dist/components/datepicker/Datepicker.stories.js +58 -75
- package/dist/components/datepicker/Datepicker.svelte +47 -33
- package/dist/components/datepicker/Datepicker.svelte.d.ts +31 -2
- package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
- package/dist/components/datepicker/README.md +18 -0
- package/dist/components/drawer/Drawer.js +2 -2
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/drawer/Drawer.spec.js +101 -0
- package/dist/components/drawer/Drawer.stories.d.ts +29 -8
- package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.stories.js +85 -87
- package/dist/components/drawer/Drawer.svelte +74 -38
- package/dist/components/drawer/Drawer.svelte.d.ts +34 -3
- package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/components/drawer/README.md +31 -0
- package/dist/components/field/Field.js +2 -2
- package/dist/components/field/Field.js.map +1 -1
- package/dist/components/field/Field.spec.js +98 -0
- package/dist/components/field/Field.stories.d.ts +10 -15
- package/dist/components/field/Field.stories.d.ts.map +1 -1
- package/dist/components/field/Field.stories.js +100 -141
- package/dist/components/field/Field.svelte +55 -13
- package/dist/components/field/Field.svelte.d.ts +42 -7
- package/dist/components/field/Field.svelte.d.ts.map +1 -1
- package/dist/components/field/README.md +25 -0
- package/dist/components/flag/Flag.js +2 -2
- package/dist/components/flag/Flag.js.map +1 -1
- package/dist/components/flag/Flag.spec.js +30 -0
- package/dist/components/flag/Flag.stories.d.ts +8 -18
- package/dist/components/flag/Flag.stories.d.ts.map +1 -1
- package/dist/components/flag/Flag.stories.js +22 -103
- package/dist/components/flag/Flag.svelte +11 -9
- package/dist/components/flag/Flag.svelte.d.ts +10 -28
- package/dist/components/flag/Flag.svelte.d.ts.map +1 -1
- package/dist/components/flag/README.md +11 -0
- package/dist/components/iconbutton/IconButton.js +2 -2
- package/dist/components/iconbutton/IconButton.js.map +1 -1
- package/dist/components/iconbutton/IconButton.stories.d.ts +11 -11
- package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
- package/dist/components/iconbutton/IconButton.stories.js +51 -67
- package/dist/components/iconbutton/IconButton.svelte +41 -37
- package/dist/components/iconbutton/IconButton.svelte.d.ts +28 -7
- package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
- package/dist/components/iconbutton/README.md +21 -0
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.spec.js +28 -0
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +5 -7
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +18 -49
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +12 -7
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts +10 -1
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
- package/dist/components/linearprogressbarbuffer/README.md +11 -0
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.spec.js +26 -0
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +4 -5
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +15 -33
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +6 -0
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts +6 -0
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts.map +1 -1
- package/dist/components/linearprogressbarpercentage/README.md +10 -0
- package/dist/components/link/Link.js +2 -2
- package/dist/components/link/Link.js.map +1 -1
- package/dist/components/link/Link.spec.js +51 -0
- package/dist/components/link/Link.stories.d.ts +12 -12
- package/dist/components/link/Link.stories.d.ts.map +1 -1
- package/dist/components/link/Link.stories.js +61 -74
- package/dist/components/link/Link.svelte +45 -40
- package/dist/components/link/Link.svelte.d.ts +29 -8
- package/dist/components/link/Link.svelte.d.ts.map +1 -1
- package/dist/components/link/README.md +23 -0
- package/dist/components/loader/Loader.js +2 -2
- package/dist/components/loader/Loader.js.map +1 -1
- package/dist/components/loader/Loader.spec.js +73 -0
- package/dist/components/loader/Loader.stories.d.ts +8 -10
- package/dist/components/loader/Loader.stories.d.ts.map +1 -1
- package/dist/components/loader/Loader.stories.js +26 -42
- package/dist/components/loader/Loader.svelte +37 -35
- package/dist/components/loader/Loader.svelte.d.ts +14 -3
- package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
- package/dist/components/loader/README.md +12 -0
- package/dist/components/loadingoverlay/LoadingOverlay.js +4 -0
- package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -0
- package/dist/components/loadingoverlay/LoadingOverlay.spec.js +38 -0
- package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +7 -0
- package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -0
- package/dist/components/loadingoverlay/LoadingOverlay.stories.js +39 -0
- package/dist/components/loadingoverlay/LoadingOverlay.svelte +50 -0
- package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts +17 -0
- package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts.map +1 -0
- package/dist/components/loadingoverlay/README.md +11 -0
- package/dist/components/modal/Modal.js +2 -2
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/Modal.spec.js +50 -0
- package/dist/components/modal/Modal.stories.d.ts +36 -9
- package/dist/components/modal/Modal.stories.d.ts.map +1 -1
- package/dist/components/modal/Modal.stories.js +52 -83
- package/dist/components/modal/Modal.svelte +42 -41
- package/dist/components/modal/Modal.svelte.d.ts +22 -5
- package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
- package/dist/components/modal/README.md +28 -0
- package/dist/components/numberbadge/NumberBadge.js +2 -2
- package/dist/components/numberbadge/NumberBadge.js.map +1 -1
- package/dist/components/numberbadge/NumberBadge.spec.js +28 -0
- package/dist/components/numberbadge/NumberBadge.stories.d.ts +9 -13
- package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
- package/dist/components/numberbadge/NumberBadge.stories.js +28 -56
- package/dist/components/numberbadge/NumberBadge.svelte +18 -20
- package/dist/components/numberbadge/NumberBadge.svelte.d.ts +15 -4
- package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
- package/dist/components/numberbadge/README.md +12 -0
- package/dist/components/overlay/Overlay.js +2 -2
- package/dist/components/overlay/Overlay.js.map +1 -1
- package/dist/components/overlay/Overlay.spec.js +29 -0
- package/dist/components/overlay/Overlay.stories.d.ts +5 -7
- package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
- package/dist/components/overlay/Overlay.stories.js +29 -40
- package/dist/components/overlay/Overlay.svelte +14 -4
- package/dist/components/overlay/Overlay.svelte.d.ts +11 -0
- package/dist/components/overlay/Overlay.svelte.d.ts.map +1 -1
- package/dist/components/overlay/README.md +17 -0
- package/dist/components/pagination/Pagination.js +6 -6
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/Pagination.spec.js +65 -0
- package/dist/components/pagination/Pagination.stories.d.ts +8 -11
- package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.stories.js +37 -91
- package/dist/components/pagination/Pagination.svelte +37 -34
- package/dist/components/pagination/Pagination.svelte.d.ts +27 -4
- package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
- package/dist/components/pagination/README.md +16 -0
- package/dist/components/passwordinput/PasswordInput.js +3 -4
- package/dist/components/passwordinput/PasswordInput.js.map +1 -1
- package/dist/components/passwordinput/PasswordInput.spec.js +84 -0
- package/dist/components/passwordinput/PasswordInput.stories.d.ts +10 -13
- package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
- package/dist/components/passwordinput/PasswordInput.stories.js +67 -124
- package/dist/components/passwordinput/PasswordInput.svelte +387 -28
- package/dist/components/passwordinput/PasswordInput.svelte.d.ts +33 -1
- package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
- package/dist/components/passwordinput/README.md +19 -0
- package/dist/components/pincode/Pincode.js +2 -2
- package/dist/components/pincode/Pincode.js.map +1 -1
- package/dist/components/pincode/Pincode.spec.js +99 -0
- package/dist/components/pincode/Pincode.stories.d.ts +9 -13
- package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
- package/dist/components/pincode/Pincode.stories.js +62 -127
- package/dist/components/pincode/Pincode.svelte +56 -53
- package/dist/components/pincode/Pincode.svelte.d.ts +30 -24
- package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
- package/dist/components/pincode/README.md +22 -0
- package/dist/components/quantityselector/QuantitySelector.js +2 -2
- package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
- package/dist/components/quantityselector/QuantitySelector.spec.js +104 -0
- package/dist/components/quantityselector/QuantitySelector.stories.d.ts +10 -15
- package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
- package/dist/components/quantityselector/QuantitySelector.stories.js +72 -146
- package/dist/components/quantityselector/QuantitySelector.svelte +94 -77
- package/dist/components/quantityselector/QuantitySelector.svelte.d.ts +49 -17
- package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
- package/dist/components/quantityselector/README.md +21 -0
- package/dist/components/radio/README.md +15 -0
- package/dist/components/radio/Radio.js +2 -2
- package/dist/components/radio/Radio.js.map +1 -1
- package/dist/components/radio/Radio.spec.js +60 -0
- package/dist/components/radio/Radio.stories.d.ts +9 -13
- package/dist/components/radio/Radio.stories.d.ts.map +1 -1
- package/dist/components/radio/Radio.stories.js +54 -70
- package/dist/components/radio/Radio.svelte +35 -20
- package/dist/components/radio/Radio.svelte.d.ts +27 -5
- package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
- package/dist/components/radiogroup/README.md +14 -0
- package/dist/components/radiogroup/RadioGroup.js +3 -3
- package/dist/components/radiogroup/RadioGroup.js.map +1 -1
- package/dist/components/radiogroup/RadioGroup.spec.js +65 -0
- package/dist/components/radiogroup/RadioGroup.stories.d.ts +5 -12
- package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
- package/dist/components/radiogroup/RadioGroup.stories.js +56 -151
- package/dist/components/radiogroup/RadioGroup.svelte +48 -47
- package/dist/components/radiogroup/RadioGroup.svelte.d.ts +28 -9
- package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
- package/dist/components/segmentedcontrol/README.md +19 -0
- package/dist/components/segmentedcontrol/SegmentedControl.js +4 -0
- package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -0
- package/dist/components/segmentedcontrol/SegmentedControl.spec.js +52 -0
- package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts +8 -0
- package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -0
- package/dist/components/segmentedcontrol/SegmentedControl.stories.js +54 -0
- package/dist/components/segmentedcontrol/SegmentedControl.svelte +125 -0
- package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts +32 -0
- package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -0
- package/dist/components/select/README.md +18 -0
- package/dist/components/select/Select.js +2 -2
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/select/Select.spec.js +76 -0
- package/dist/components/select/Select.stories.d.ts +10 -14
- package/dist/components/select/Select.stories.d.ts.map +1 -1
- package/dist/components/select/Select.stories.js +87 -92
- package/dist/components/select/Select.svelte +57 -44
- package/dist/components/select/Select.svelte.d.ts +42 -11
- package/dist/components/select/Select.svelte.d.ts.map +1 -1
- package/dist/components/statusbadge/README.md +11 -0
- package/dist/components/statusbadge/StatusBadge.js +2 -2
- package/dist/components/statusbadge/StatusBadge.js.map +1 -1
- package/dist/components/statusbadge/StatusBadge.spec.js +31 -0
- package/dist/components/statusbadge/StatusBadge.stories.d.ts +9 -12
- package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
- package/dist/components/statusbadge/StatusBadge.stories.js +21 -44
- package/dist/components/statusbadge/StatusBadge.svelte +14 -6
- package/dist/components/statusbadge/StatusBadge.svelte.d.ts +13 -28
- package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
- package/dist/components/statusdot/README.md +11 -0
- package/dist/components/statusdot/StatusDot.js +2 -2
- package/dist/components/statusdot/StatusDot.js.map +1 -1
- package/dist/components/statusdot/StatusDot.spec.js +36 -0
- package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
- package/dist/components/statusdot/StatusDot.stories.js +9 -37
- package/dist/components/statusdot/StatusDot.svelte +5 -9
- package/dist/components/statusdot/StatusDot.svelte.d.ts +2 -2
- package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
- package/dist/components/statusnotification/README.md +25 -0
- package/dist/components/statusnotification/StatusNotification.js +2 -6
- package/dist/components/statusnotification/StatusNotification.js.map +1 -1
- package/dist/components/statusnotification/StatusNotification.spec.js +54 -0
- package/dist/components/statusnotification/StatusNotification.stories.d.ts +16 -14
- package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
- package/dist/components/statusnotification/StatusNotification.stories.js +53 -86
- package/dist/components/statusnotification/StatusNotification.svelte +53 -64
- package/dist/components/statusnotification/StatusNotification.svelte.d.ts +21 -18
- package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
- package/dist/components/tab/README.md +20 -0
- package/dist/components/tab/Tab.js +4 -0
- package/dist/components/tab/Tab.js.map +1 -0
- package/dist/components/tab/Tab.spec.js +58 -0
- package/dist/components/{tabs → tab}/Tab.svelte +44 -30
- package/dist/components/{tabs → tab}/Tab.svelte.d.ts +20 -3
- package/dist/components/tab/Tab.svelte.d.ts.map +1 -0
- package/dist/components/tabs/README.md +18 -0
- package/dist/components/tabs/Tabs.js +2 -2
- package/dist/components/tabs/Tabs.js.map +1 -1
- package/dist/components/tabs/Tabs.spec.js +51 -0
- package/dist/components/tabs/Tabs.stories.d.ts +9 -6
- package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.stories.js +59 -115
- package/dist/components/tabs/Tabs.svelte +27 -7
- package/dist/components/tabs/Tabs.svelte.d.ts +21 -7
- package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
- package/dist/components/tags/README.md +9 -0
- package/dist/components/tags/Tag.js +1 -1
- package/dist/components/tags/TagContextualised.js +2 -2
- package/dist/components/tags/TagContextualised.js.map +1 -1
- package/dist/components/tags/TagContextualised.svelte +1 -5
- package/dist/components/tags/TagInteractive.js +1 -1
- package/dist/components/tags/TagRemovable.js +2 -2
- package/dist/components/tags/TagRemovable.js.map +1 -1
- package/dist/components/tags/TagRemovable.svelte +2 -12
- package/dist/components/tags/TagRemovable.svelte.d.ts.map +1 -1
- package/dist/components/tags/TagSelectable.js +2 -2
- package/dist/components/tags/TagSelectable.js.map +1 -1
- package/dist/components/tags/TagSelectable.svelte +1 -5
- package/dist/components/tags/Tags.stories.d.ts.map +1 -1
- package/dist/components/tags/Tags.stories.js +7 -1
- package/dist/components/tags/TagsContextualised.stories.d.ts.map +1 -1
- package/dist/components/tags/TagsContextualised.stories.js +7 -1
- package/dist/components/tags/TagsInteractive.stories.d.ts.map +1 -1
- package/dist/components/tags/TagsInteractive.stories.js +7 -1
- package/dist/components/tags/TagsRemovable.stories.d.ts.map +1 -1
- package/dist/components/tags/TagsRemovable.stories.js +8 -4
- package/dist/components/tags/TagsSelectable.stories.d.ts.map +1 -1
- package/dist/components/tags/TagsSelectable.stories.js +7 -1
- package/dist/components/textarea/README.md +19 -0
- package/dist/components/textarea/Textarea.js +2 -5
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/textarea/Textarea.spec.js +67 -0
- package/dist/components/textarea/Textarea.stories.d.ts +9 -13
- package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
- package/dist/components/textarea/Textarea.stories.js +61 -92
- package/dist/components/textarea/Textarea.svelte +51 -97
- package/dist/components/textarea/Textarea.svelte.d.ts +43 -13
- package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
- package/dist/components/textinput/README.md +26 -0
- package/dist/components/textinput/Textinput.js +2 -2
- package/dist/components/textinput/Textinput.js.map +1 -1
- package/dist/components/textinput/Textinput.spec.js +89 -0
- package/dist/components/textinput/Textinput.stories.d.ts +11 -12
- package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
- package/dist/components/textinput/Textinput.stories.js +78 -137
- package/dist/components/textinput/Textinput.svelte +68 -118
- package/dist/components/textinput/Textinput.svelte.d.ts +47 -23
- package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
- package/dist/components/toaster/README.md +29 -0
- package/dist/components/toaster/Toaster.js +3 -7
- package/dist/components/toaster/Toaster.js.map +1 -1
- package/dist/components/toaster/Toaster.spec.js +100 -0
- package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
- package/dist/components/toaster/Toaster.stories.js +5 -73
- package/dist/components/toaster/Toaster.svelte +21 -14
- package/dist/components/toaster/Toaster.svelte.d.ts +7 -0
- package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
- package/dist/components/toggle/README.md +15 -0
- package/dist/components/toggle/Toggle.js +2 -2
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components/toggle/Toggle.spec.js +69 -0
- package/dist/components/toggle/Toggle.stories.d.ts +9 -14
- package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.stories.js +55 -64
- package/dist/components/toggle/Toggle.svelte +33 -33
- package/dist/components/toggle/Toggle.svelte.d.ts +26 -7
- package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
- package/dist/components/togglegroup/README.md +13 -0
- package/dist/components/togglegroup/ToggleGroup.js +3 -3
- package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
- package/dist/components/togglegroup/ToggleGroup.spec.js +50 -0
- package/dist/components/togglegroup/ToggleGroup.stories.d.ts +5 -13
- package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/components/togglegroup/ToggleGroup.stories.js +56 -104
- package/dist/components/togglegroup/ToggleGroup.svelte +55 -58
- package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +25 -14
- package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
- package/dist/components/tooltip/README.md +19 -0
- package/dist/components/tooltip/Tooltip.js +2 -2
- package/dist/components/tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/Tooltip.spec.js +38 -0
- package/dist/components/tooltip/Tooltip.stories.d.ts +6 -7
- package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/components/tooltip/Tooltip.stories.js +45 -59
- package/dist/components/tooltip/Tooltip.svelte +19 -14
- package/dist/components/tooltip/Tooltip.svelte.d.ts +17 -0
- package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
- package/dist/custom-element-forward-events.js.map +1 -1
- package/dist/custom-element.js +3 -3
- package/dist/custom-element.js.map +1 -1
- package/dist/documentation/Contributing.mdx +1 -1
- package/dist/documentation/Introduction.mdx +54 -11
- package/dist/documentation/SupportAndOnboarding.mdx +2 -2
- package/dist/documentation/Svelte/Introduction.mdx +1 -1
- package/dist/documentation/Svelte/usingPresets.mdx +5 -6
- package/dist/documentation/WebComponents/Introduction.mdx +0 -1
- package/dist/documentation/WebComponents/usingIcons.mdx +2 -3
- package/dist/documentation/WebComponents/usingPresets.mdx +3 -4
- package/dist/each.js +1 -1
- package/dist/each.js.map +1 -1
- package/dist/if.js +1 -1
- package/dist/if.js.map +1 -1
- package/dist/input.js +1 -1
- package/dist/input.js.map +1 -1
- package/dist/legacy.js +1 -1
- package/dist/main.d.ts +25 -23
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +25 -23
- package/dist/slot.js +1 -1
- package/dist/slot.js.map +1 -1
- package/dist/this.js +2 -0
- package/dist/this.js.map +1 -0
- package/dist/utils/custom-element-forward-events.d.ts.map +1 -1
- package/package.json +32 -22
- package/dist/components/button/button.types.d.ts +0 -13
- package/dist/components/button/button.types.d.ts.map +0 -1
- package/dist/components/button/button.types.js +0 -1
- package/dist/components/checkboxgroup/checkboxgroup.types.d.ts +0 -9
- package/dist/components/checkboxgroup/checkboxgroup.types.d.ts.map +0 -1
- package/dist/components/checkboxgroup/checkboxgroup.types.js +0 -1
- package/dist/components/link/link.types.d.ts +0 -4
- package/dist/components/link/link.types.d.ts.map +0 -1
- package/dist/components/link/link.types.js +0 -1
- package/dist/components/loader/loader.types.d.ts +0 -3
- package/dist/components/loader/loader.types.d.ts.map +0 -1
- package/dist/components/loader/loader.types.js +0 -1
- package/dist/components/numberbadge/NumberBadge.types.d.ts +0 -3
- package/dist/components/numberbadge/NumberBadge.types.d.ts.map +0 -1
- package/dist/components/numberbadge/NumberBadge.types.js +0 -1
- package/dist/components/overlayloader/OverlayLoader.js +0 -27
- package/dist/components/overlayloader/OverlayLoader.js.map +0 -1
- package/dist/components/overlayloader/OverlayLoader.stories.d.ts +0 -8
- package/dist/components/overlayloader/OverlayLoader.stories.d.ts.map +0 -1
- package/dist/components/overlayloader/OverlayLoader.stories.js +0 -50
- package/dist/components/overlayloader/OverlayLoader.svelte +0 -160
- package/dist/components/overlayloader/OverlayLoader.svelte.d.ts +0 -9
- package/dist/components/overlayloader/OverlayLoader.svelte.d.ts.map +0 -1
- package/dist/components/quantityselector/quantitySelector.types.d.ts +0 -2
- package/dist/components/quantityselector/quantitySelector.types.d.ts.map +0 -1
- package/dist/components/quantityselector/quantitySelector.types.js +0 -1
- package/dist/components/radiogroup/radioGroup.types.d.ts +0 -9
- package/dist/components/radiogroup/radioGroup.types.d.ts.map +0 -1
- package/dist/components/radiogroup/radioGroup.types.js +0 -1
- package/dist/components/select/select.types.d.ts +0 -9
- package/dist/components/select/select.types.d.ts.map +0 -1
- package/dist/components/select/select.types.js +0 -1
- package/dist/components/statusbadge/StatusBadge.types.d.ts +0 -2
- package/dist/components/statusbadge/StatusBadge.types.d.ts.map +0 -1
- package/dist/components/statusbadge/StatusBadge.types.js +0 -1
- package/dist/components/statusdot/StatusDot.types.d.ts +0 -3
- package/dist/components/statusdot/StatusDot.types.d.ts.map +0 -1
- package/dist/components/statusdot/StatusDot.types.js +0 -1
- package/dist/components/tabs/Tab.js +0 -4
- package/dist/components/tabs/Tab.js.map +0 -1
- package/dist/components/tabs/Tab.svelte.d.ts.map +0 -1
- package/dist/components/textinput/textinput.types.d.ts +0 -3
- package/dist/components/textinput/textinput.types.d.ts.map +0 -1
- package/dist/components/textinput/textinput.types.js +0 -1
- package/dist/components/toggle/toggle.types.d.ts +0 -2
- package/dist/components/toggle/toggle.types.d.ts.map +0 -1
- package/dist/components/toggle/toggle.types.js +0 -1
- package/dist/index-client.js +0 -2
- package/dist/index-client.js.map +0 -1
- package/dist/snippet.js +0 -2
- package/dist/snippet.js.map +0 -1
|
@@ -1,138 +1,107 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { ifDefined } from 'lit-html/directives/if-defined.js';
|
|
3
|
+
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
1
4
|
import { action } from 'storybook/actions';
|
|
2
|
-
import
|
|
3
|
-
|
|
5
|
+
import '@mozaic-ds/icons-svelte/custom-elements/InfoCircle32/InfoCircle32.js';
|
|
6
|
+
import '@mozaic-ds/icons-svelte/custom-elements/ExternalLink24/ExternalLink24.js';
|
|
7
|
+
const meta = {
|
|
4
8
|
title: 'Overlay/Modal',
|
|
5
|
-
|
|
9
|
+
component: 'm-modal',
|
|
6
10
|
parameters: {
|
|
7
11
|
layout: 'fullscreen',
|
|
8
12
|
docs: {
|
|
9
13
|
story: { height: '400px' },
|
|
10
|
-
description: {
|
|
11
|
-
component: 'A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.',
|
|
12
|
-
},
|
|
13
14
|
},
|
|
14
15
|
},
|
|
15
16
|
args: {
|
|
16
17
|
open: true,
|
|
17
18
|
title: 'Modal title',
|
|
18
|
-
description:
|
|
19
|
+
description: `A modal is a dialog window allowing you to focus the user's attention on a specific task, a piece of information or a mandatory action. It must be used for single action only and must have a call to action button in the bottom.`,
|
|
19
20
|
footer: `
|
|
20
|
-
<m-button ghost="true">Cancel</m-button>
|
|
21
|
-
<m-button>Primary action</m-button>
|
|
21
|
+
<m-button ghost="true" slot="footer">Cancel</m-button>
|
|
22
|
+
<m-button slot="footer">Primary action</m-button>
|
|
22
23
|
`,
|
|
23
24
|
},
|
|
24
25
|
argTypes: {
|
|
25
|
-
|
|
26
|
+
'update:open': {
|
|
27
|
+
control: false,
|
|
28
|
+
},
|
|
29
|
+
'--modal-z-index': {
|
|
30
|
+
description: 'Customise the z-index of the modal',
|
|
31
|
+
control: false,
|
|
32
|
+
table: {
|
|
33
|
+
category: 'Custom Properties',
|
|
34
|
+
type: { summary: 'number' },
|
|
35
|
+
defaultValue: { summary: '3' },
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
render: (args) => {
|
|
40
|
+
const handleUpdateOpen = action('update:open');
|
|
41
|
+
return html `
|
|
42
|
+
<m-modal
|
|
43
|
+
open=${ifDefined(args.open)}
|
|
44
|
+
title=${ifDefined(args.title)}
|
|
45
|
+
description=${ifDefined(args.description)}
|
|
46
|
+
closable=${ifDefined(args.closable)}
|
|
47
|
+
@update:open=${handleUpdateOpen}
|
|
48
|
+
>
|
|
49
|
+
${unsafeHTML(ifDefined(args.icon))} ${unsafeHTML(ifDefined(args.default))}
|
|
50
|
+
${unsafeHTML(ifDefined(args.link))} ${unsafeHTML(ifDefined(args.footer))}
|
|
51
|
+
</m-modal>
|
|
52
|
+
`;
|
|
26
53
|
},
|
|
27
54
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const button = document.createElement('m-button');
|
|
31
|
-
button.textContent = 'Open Modal';
|
|
32
|
-
const modal = document.createElement('m-modal');
|
|
33
|
-
modal.setAttribute('title', args.title);
|
|
34
|
-
modal.setAttribute('description', args.description);
|
|
35
|
-
modal.setAttribute('open', 'true');
|
|
36
|
-
modal.addEventListener('update:open', (e) => {
|
|
37
|
-
if (!e.detail)
|
|
38
|
-
modal.removeAttribute('open');
|
|
39
|
-
action('update:open')(e.detail);
|
|
40
|
-
});
|
|
41
|
-
// Inject default slot content
|
|
42
|
-
const contentSlot = document.createElement('div');
|
|
43
|
-
contentSlot.innerHTML =
|
|
44
|
-
args.default ??
|
|
45
|
-
'<p>A modal is a dialog window allowing you to focus the users attention on a specific task, a piece of information or a mandatory action. It must be used for single action only and must have a call to action button in the bottom.</p>';
|
|
46
|
-
modal.appendChild(contentSlot);
|
|
47
|
-
// Inject icon
|
|
48
|
-
if (args.icon) {
|
|
49
|
-
const iconSlot = document.createElement('div');
|
|
50
|
-
iconSlot.slot = 'icon';
|
|
51
|
-
iconSlot.innerHTML = args.icon;
|
|
52
|
-
modal.appendChild(iconSlot);
|
|
53
|
-
}
|
|
54
|
-
// Inject footer
|
|
55
|
-
if (args.footer) {
|
|
56
|
-
modal.setAttribute('footer', 'true');
|
|
57
|
-
const footerSlot = document.createElement('div');
|
|
58
|
-
footerSlot.setAttribute('slot', 'footer');
|
|
59
|
-
footerSlot.innerHTML = args.footer;
|
|
60
|
-
modal.appendChild(footerSlot);
|
|
61
|
-
}
|
|
62
|
-
// Inject link
|
|
63
|
-
if (args.link) {
|
|
64
|
-
const linkSlot = document.createElement('div');
|
|
65
|
-
modal.setAttribute('link', 'true');
|
|
66
|
-
linkSlot.setAttribute('slot', 'link');
|
|
67
|
-
linkSlot.innerHTML = args.link;
|
|
68
|
-
modal.appendChild(linkSlot);
|
|
69
|
-
}
|
|
70
|
-
// Inject icon
|
|
71
|
-
if (args.icon) {
|
|
72
|
-
modal.setAttribute('icon', 'true');
|
|
73
|
-
}
|
|
74
|
-
// Open modal on button click
|
|
75
|
-
button.onclick = () => modal.setAttribute('open', 'true');
|
|
76
|
-
wrapper.appendChild(button);
|
|
77
|
-
wrapper.appendChild(modal);
|
|
78
|
-
return wrapper;
|
|
79
|
-
};
|
|
80
|
-
export const Default = {
|
|
81
|
-
render: (args) => createModalTemplate(args),
|
|
82
|
-
};
|
|
55
|
+
export default meta;
|
|
56
|
+
export const Default = {};
|
|
83
57
|
export const Icon = {
|
|
84
58
|
args: {
|
|
85
|
-
icon: '<
|
|
59
|
+
icon: '<info-circle-32 slot="icon"/>',
|
|
86
60
|
},
|
|
87
|
-
render: (args) => createModalTemplate(args),
|
|
88
61
|
};
|
|
89
62
|
export const ValidationOnly = {
|
|
90
63
|
args: {
|
|
91
64
|
footer: `
|
|
92
|
-
<m-button>Primary action</m-button>
|
|
65
|
+
<m-button slot="footer">Primary action</m-button>
|
|
93
66
|
`,
|
|
94
67
|
},
|
|
95
|
-
render: (args) => createModalTemplate(args),
|
|
96
68
|
};
|
|
97
69
|
export const TwoOptions = {
|
|
98
70
|
args: {
|
|
99
71
|
footer: `
|
|
100
|
-
<m-button outlined="true">Secondary action</m-button>
|
|
101
|
-
<m-button>Primary action</m-button>
|
|
72
|
+
<m-button outlined="true" slot="footer">Secondary action</m-button>
|
|
73
|
+
<m-button slot="footer">Primary action</m-button>
|
|
102
74
|
`,
|
|
103
75
|
},
|
|
104
|
-
render: (args) => createModalTemplate(args),
|
|
105
76
|
};
|
|
106
77
|
export const Cancel = {
|
|
107
78
|
args: {
|
|
108
79
|
footer: `
|
|
109
|
-
<m-button ghost="true">Cancel</m-button>
|
|
110
|
-
<m-button outlined="true">Secondary action</m-button>
|
|
111
|
-
<m-button>Primary action</m-button>
|
|
80
|
+
<m-button ghost="true" slot="footer">Cancel</m-button>
|
|
81
|
+
<m-button outlined="true" slot="footer">Secondary action</m-button>
|
|
82
|
+
<m-button slot="footer">Primary action</m-button>
|
|
112
83
|
`,
|
|
113
84
|
},
|
|
114
|
-
render: (args) => createModalTemplate(args),
|
|
115
85
|
};
|
|
116
86
|
export const Link = {
|
|
117
87
|
args: {
|
|
118
88
|
link: `
|
|
119
|
-
<m-link href="#" size="m">
|
|
89
|
+
<m-link href="#" size="m" iconPosition="right" slot="link">
|
|
120
90
|
Learn more
|
|
91
|
+
<external-link-24 slot="icon"></external-link-24>
|
|
121
92
|
</m-link>
|
|
122
93
|
`,
|
|
123
94
|
footer: `
|
|
124
|
-
<m-button ghost="true">Cancel</m-button>
|
|
125
|
-
<m-button>Primary action</m-button>
|
|
95
|
+
<m-button ghost="true" slot="footer">Cancel</m-button>
|
|
96
|
+
<m-button slot="footer">Primary action</m-button>
|
|
126
97
|
`,
|
|
127
98
|
},
|
|
128
|
-
render: (args) => createModalTemplate(args),
|
|
129
99
|
};
|
|
130
100
|
export const Danger = {
|
|
131
101
|
args: {
|
|
132
102
|
footer: `
|
|
133
|
-
<m-button ghost="true">Cancel</m-button>
|
|
134
|
-
<m-button appearance="danger">Primary action</m-button>
|
|
103
|
+
<m-button ghost="true" slot="footer">Cancel</m-button>
|
|
104
|
+
<m-button appearance="danger" slot="footer">Primary action</m-button>
|
|
135
105
|
`,
|
|
136
106
|
},
|
|
137
|
-
render: (args) => createModalTemplate(args),
|
|
138
107
|
};
|
|
@@ -3,58 +3,61 @@
|
|
|
3
3
|
<script lang="ts">
|
|
4
4
|
import Cross24 from '@mozaic-ds/icons-svelte/svelte/Cross24/Cross24.svelte';
|
|
5
5
|
import MOverlay from '../overlay/Overlay.svelte';
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.
|
|
8
|
+
*
|
|
9
|
+
* @slot icon - Use this slot to insert an icon next to the title of the modal.
|
|
10
|
+
* @slot default - Use this slot to insert the content of the modal.
|
|
11
|
+
* @slot link - Use this slot to insert a link in the footer.
|
|
12
|
+
* @slot footer - Use this slot to insert buttons in the footer.
|
|
13
|
+
* @event update:open {CustomEvent<boolean>} - Fired when the open state changes.
|
|
14
|
+
*/
|
|
7
15
|
interface Props {
|
|
16
|
+
/**
|
|
17
|
+
* if `true`, display the modal.
|
|
18
|
+
*/
|
|
8
19
|
open?: boolean;
|
|
9
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Title of the modal.
|
|
22
|
+
*/
|
|
23
|
+
title: string;
|
|
24
|
+
/**
|
|
25
|
+
* Description of the modal.
|
|
26
|
+
*/
|
|
10
27
|
description?: string;
|
|
28
|
+
/**
|
|
29
|
+
* if `true`, display the close button.
|
|
30
|
+
*/
|
|
11
31
|
closable?: boolean;
|
|
12
|
-
icon?: any;
|
|
13
|
-
footer?: any;
|
|
14
|
-
link?: any;
|
|
15
|
-
[key: string]: any;
|
|
16
32
|
}
|
|
17
33
|
|
|
18
|
-
let {
|
|
19
|
-
|
|
20
|
-
title = '',
|
|
21
|
-
description = '',
|
|
22
|
-
closable = true,
|
|
23
|
-
icon = undefined,
|
|
24
|
-
footer = undefined,
|
|
25
|
-
link = undefined,
|
|
26
|
-
}: Props = $props();
|
|
34
|
+
let { open, title, description, closable = true }: Props = $props();
|
|
35
|
+
let element: HTMLElement;
|
|
27
36
|
|
|
28
37
|
function onClose() {
|
|
29
38
|
open = false;
|
|
30
|
-
|
|
39
|
+
|
|
31
40
|
const event = new CustomEvent('update:open', {
|
|
32
41
|
detail: open,
|
|
33
42
|
bubbles: true,
|
|
34
43
|
composed: true,
|
|
35
44
|
});
|
|
36
|
-
|
|
37
|
-
this.dispatchEvent(event);
|
|
45
|
+
element.dispatchEvent(event);
|
|
38
46
|
}
|
|
39
|
-
// afterUpdate(() => {
|
|
40
|
-
// dispatch('update:open', open);
|
|
41
|
-
// });
|
|
42
47
|
</script>
|
|
43
48
|
|
|
44
49
|
<section
|
|
45
|
-
class=
|
|
46
|
-
class:is-open={open}
|
|
50
|
+
class={['mc-modal', open && 'is-open']}
|
|
47
51
|
tabindex="-1"
|
|
48
52
|
aria-labelledby="modalTitle"
|
|
49
53
|
aria-hidden={!open}
|
|
54
|
+
bind:this={element}
|
|
50
55
|
>
|
|
51
56
|
<div class="mc-modal__dialog" role="document">
|
|
52
57
|
<header class="mc-modal__header">
|
|
53
|
-
|
|
54
|
-
<
|
|
55
|
-
|
|
56
|
-
</span>
|
|
57
|
-
{/if}
|
|
58
|
+
<span class="mc-modal__icon">
|
|
59
|
+
<slot name="icon" />
|
|
60
|
+
</span>
|
|
58
61
|
<h2 class="mc-modal__title" id="modalTitle">{title}</h2>
|
|
59
62
|
{#if closable}
|
|
60
63
|
<button
|
|
@@ -63,9 +66,7 @@
|
|
|
63
66
|
aria-label="Close"
|
|
64
67
|
onclick={onClose}
|
|
65
68
|
>
|
|
66
|
-
<
|
|
67
|
-
<Cross24 aria-hidden="true" />
|
|
68
|
-
</span>
|
|
69
|
+
<Cross24 class="mc-modal__close" aria-hidden="true" />
|
|
69
70
|
</button>
|
|
70
71
|
{/if}
|
|
71
72
|
</header>
|
|
@@ -77,16 +78,12 @@
|
|
|
77
78
|
<slot />
|
|
78
79
|
</main>
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
{/if}
|
|
87
|
-
<slot name="footer" />
|
|
88
|
-
</footer>
|
|
89
|
-
{/if}
|
|
81
|
+
<footer class="mc-modal__footer">
|
|
82
|
+
<span class="mc-modal__link">
|
|
83
|
+
<slot name="link" />
|
|
84
|
+
</span>
|
|
85
|
+
<slot name="footer" />
|
|
86
|
+
</footer>
|
|
90
87
|
</div>
|
|
91
88
|
|
|
92
89
|
<MOverlay isvisible={open} dialoglabel="modal" />
|
|
@@ -547,4 +544,8 @@
|
|
|
547
544
|
border-color: transparent;
|
|
548
545
|
color: var(--button-state-disabled-color, #737373);
|
|
549
546
|
cursor: not-allowed;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.mc-modal__icon:empty {
|
|
550
|
+
display: none;
|
|
550
551
|
}</style>
|
|
@@ -1,12 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.
|
|
3
|
+
*
|
|
4
|
+
* @slot icon - Use this slot to insert an icon next to the title of the modal.
|
|
5
|
+
* @slot default - Use this slot to insert the content of the modal.
|
|
6
|
+
* @slot link - Use this slot to insert a link in the footer.
|
|
7
|
+
* @slot footer - Use this slot to insert buttons in the footer.
|
|
8
|
+
* @event update:open {CustomEvent<boolean>} - Fired when the open state changes.
|
|
9
|
+
*/
|
|
1
10
|
interface Props {
|
|
11
|
+
/**
|
|
12
|
+
* if `true`, display the modal.
|
|
13
|
+
*/
|
|
2
14
|
open?: boolean;
|
|
3
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Title of the modal.
|
|
17
|
+
*/
|
|
18
|
+
title: string;
|
|
19
|
+
/**
|
|
20
|
+
* Description of the modal.
|
|
21
|
+
*/
|
|
4
22
|
description?: string;
|
|
23
|
+
/**
|
|
24
|
+
* if `true`, display the close button.
|
|
25
|
+
*/
|
|
5
26
|
closable?: boolean;
|
|
6
|
-
icon?: any;
|
|
7
|
-
footer?: any;
|
|
8
|
-
link?: any;
|
|
9
|
-
[key: string]: any;
|
|
10
27
|
}
|
|
11
28
|
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> {
|
|
12
29
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.svelte.ts"],"names":[],"mappings":"AAME;;;;;;;;GAQG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2DH,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;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,KAAK;;;;;;;;;;;;UAAqF,CAAC;AAC/E,KAAK,KAAK,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC;AAC1C,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# `m-modal`
|
|
2
|
+
|
|
3
|
+
A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.
|
|
4
|
+
|
|
5
|
+
## Props
|
|
6
|
+
|
|
7
|
+
| Name | Description | Type | Default |
|
|
8
|
+
|------|-------------|------|---------|
|
|
9
|
+
| `open` | if `true`, display the modal. | `boolean` | |
|
|
10
|
+
| `title*` | Title of the modal. | `string` | |
|
|
11
|
+
| `description` | Description of the modal. | `string` | |
|
|
12
|
+
| `closable` | if `true`, display the close button. | `boolean` | `true` |
|
|
13
|
+
|
|
14
|
+
## Slots
|
|
15
|
+
|
|
16
|
+
| Name | Description |
|
|
17
|
+
|------|-------------|
|
|
18
|
+
| `icon` | Use this slot to insert an icon next to the title of the modal. |
|
|
19
|
+
| `default` | Use this slot to insert the content of the modal. |
|
|
20
|
+
| `link` | Use this slot to insert a link in the footer. |
|
|
21
|
+
| `footer` | Use this slot to insert buttons in the footer. |
|
|
22
|
+
|
|
23
|
+
## Events
|
|
24
|
+
|
|
25
|
+
| Name | Description | Type |
|
|
26
|
+
|------|------|-------------|
|
|
27
|
+
| `update:open` | Fired when the open state changes. | `CustomEvent<boolean>` |
|
|
28
|
+
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as
|
|
1
|
+
import{c as i,p as m,a as g,b as o,f,t as u,i as v,j as p,k as b,d as h,r as x,e as z,g as k,h as _}from"../../custom-element.js";var w=f("<div> </div>");const y={hash:"svelte-sb883",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
|
-
*/.mc-number-badge.svelte-sb883 {color:var(--number-badge-color-text-standard, #ffffff);background-color:var(--number-badge-color-background-standard, #464e63);height:1rem;min-width:1rem;padding-inline:0.125rem;font-size:var(--font-size-25, 0.625rem);border-radius:var(--radius-l, 1rem);font-weight:var(--font-weight-semi-bold, 600);display:inline-flex;align-items:center;box-sizing:border-box;justify-content:center;line-height:1;}.mc-number-badge--m.svelte-sb883 {height:1.5rem;min-width:1.5rem;padding-inline:0.25rem;font-size:var(--font-size-50, 0.75rem);}.mc-number-badge--accent.svelte-sb883 {color:var(--number-badge-color-text-accent, #ffffff);background-color:var(--number-badge-color-background-accent, #117f03);}.mc-number-badge--danger.svelte-sb883 {color:var(--number-badge-color-text-danger, #ffffff);background-color:var(--number-badge-color-background-danger, #c61112);}.mc-number-badge--inverse.svelte-sb883 {color:var(--number-badge-color-text-inverse, #464e63);background-color:var(--number-badge-color-background-inverse, #ffffff);}`};function
|
|
3
|
+
*/.mc-number-badge.svelte-sb883 {color:var(--number-badge-color-text-standard, #ffffff);background-color:var(--number-badge-color-background-standard, #464e63);height:1rem;min-width:1rem;padding-inline:0.125rem;font-size:var(--font-size-25, 0.625rem);border-radius:var(--radius-l, 1rem);font-weight:var(--font-weight-semi-bold, 600);display:inline-flex;align-items:center;box-sizing:border-box;justify-content:center;line-height:1;}.mc-number-badge--m.svelte-sb883 {height:1.5rem;min-width:1.5rem;padding-inline:0.25rem;font-size:var(--font-size-50, 0.75rem);}.mc-number-badge--accent.svelte-sb883 {color:var(--number-badge-color-text-accent, #ffffff);background-color:var(--number-badge-color-background-accent, #117f03);}.mc-number-badge--danger.svelte-sb883 {color:var(--number-badge-color-text-danger, #ffffff);background-color:var(--number-badge-color-background-danger, #c61112);}.mc-number-badge--inverse.svelte-sb883 {color:var(--number-badge-color-text-inverse, #464e63);background-color:var(--number-badge-color-background-inverse, #ffffff);}`};function j(d,r){m(r,!0),g(d,y);let t=o(r,"label",7),n=o(r,"appearance",7,"standard"),s=o(r,"size",7,"s");var c={get label(){return t()},set label(e){t(e),b()},get appearance(){return n()},set appearance(e="standard"){n(e),b()},get size(){return s()},set size(e="s"){s(e),b()}},a=w(),l=h(a,!0);return x(a),u(()=>{z(a,1,k(["mc-number-badge",`mc-number-badge--${n()}`,`mc-number-badge--${s()}`]),"svelte-sb883"),_(l,t())}),v(d,a),p(c)}customElements.define("m-number-badge",i(j,{label:{},appearance:{},size:{}},[],[],!0));export{j as N};
|
|
4
4
|
//# sourceMappingURL=NumberBadge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberBadge.js","sources":["../../../src/components/numberbadge/NumberBadge.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-number-badge' }} />\n\n<script lang=\"ts\">\n
|
|
1
|
+
{"version":3,"file":"NumberBadge.js","sources":["../../../src/components/numberbadge/NumberBadge.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-number-badge' }} />\n\n<script lang=\"ts\">\n /**\n * A Number Badge represents a numeric count, often used to indicate notifications, updates, or items requiring attention. Its distinct appearance makes it easy to spot changes at a glance, ensuring users stay informed without breaking their workflow. Badges are commonly attached to icons, buttons, or tabs to provide contextual awareness.\n */\n interface Props {\n /**\n * Content of the badge.\n */\n label: number;\n /**\n * Allows to define the badge appearance.\n */\n appearance?: 'danger' | 'accent' | 'inverse' | 'standard';\n\n /**\n * Allows to define the badge size.\n */\n size?: 's' | 'm';\n }\n\n let { label, appearance = 'standard', size = 's' }: Props = $props();\n</script>\n\n<div class={['mc-number-badge', `mc-number-badge--${appearance}`, `mc-number-badge--${size}`]}>\n {label}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/number-badge';\n</style>\n"],"names":["label","$.prop","$$props","appearance","size"],"mappings":";;+iCAAA,oBAsBQA,EAAKC,EAAAC,EAAA,QAAA,CAAA,EAAEC,qBAAa,UAAU,EAAEC,eAAO,GAAG,sGAAtB,WAAU,6CAAS,IAAG,wDAGrC,sCAAuCD,EAAU,CAAA,uBAAwBC,GAAI,yBACvFJ,GAAK,eAHR"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { render } from '@testing-library/svelte';
|
|
3
|
+
import NumberBadge from './NumberBadge.svelte';
|
|
4
|
+
describe('m-number-badge component', () => {
|
|
5
|
+
it('renders the label correctly', () => {
|
|
6
|
+
const { container } = render(NumberBadge, { props: { label: 42 } });
|
|
7
|
+
expect(container.textContent).toContain('42');
|
|
8
|
+
});
|
|
9
|
+
it('applies the default appearance and size classes', () => {
|
|
10
|
+
const { container } = render(NumberBadge, { props: { label: 1 } });
|
|
11
|
+
const badge = container.querySelector('.mc-number-badge');
|
|
12
|
+
expect(badge).toHaveClass('mc-number-badge--standard');
|
|
13
|
+
expect(badge).toHaveClass('mc-number-badge--s');
|
|
14
|
+
});
|
|
15
|
+
it('applies custom appearance and size classes', () => {
|
|
16
|
+
const { container } = render(NumberBadge, {
|
|
17
|
+
props: { label: 99, appearance: 'danger', size: 'm' },
|
|
18
|
+
});
|
|
19
|
+
const badge = container.querySelector('.mc-number-badge');
|
|
20
|
+
expect(badge).toHaveClass('mc-number-badge--danger');
|
|
21
|
+
expect(badge).toHaveClass('mc-number-badge--m');
|
|
22
|
+
});
|
|
23
|
+
it('renders numeric label as text content', () => {
|
|
24
|
+
const { container } = render(NumberBadge, { props: { label: 0 } });
|
|
25
|
+
const badge = container.querySelector('.mc-number-badge');
|
|
26
|
+
expect(badge?.textContent).toBe('0');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
import type { Meta } from '@storybook/
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
declare const
|
|
9
|
-
export
|
|
10
|
-
export declare const Default: any;
|
|
11
|
-
export declare const CustomLabel: any;
|
|
12
|
-
export declare const AccentStyle: any;
|
|
13
|
-
export declare const SmallSize: any;
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
declare const meta: Meta;
|
|
3
|
+
export default meta;
|
|
4
|
+
type Story = StoryObj;
|
|
5
|
+
export declare const Standard: Story;
|
|
6
|
+
export declare const Accent: Story;
|
|
7
|
+
export declare const Danger: Story;
|
|
8
|
+
export declare const Inverse: Story;
|
|
9
|
+
export declare const Size: Story;
|
|
14
10
|
//# sourceMappingURL=NumberBadge.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberBadge.stories.d.ts","sourceRoot":"","sources":["../../../src/components/numberbadge/NumberBadge.stories.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NumberBadge.stories.d.ts","sourceRoot":"","sources":["../../../src/components/numberbadge/NumberBadge.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,QAAA,MAAM,IAAI,EAAE,IAqBX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAAU,CAAC;AAElC,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC"}
|
|
@@ -1,69 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
* A Number badge indicates the status of an entity and can evolve at any time.
|
|
5
|
-
*
|
|
6
|
-
* The `NumberBadge` component is the **Svelte / WebComponent** implementation of the **Number Badge** component of Mozaic Design System.
|
|
7
|
-
* The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/badge/).
|
|
8
|
-
*/
|
|
9
|
-
export default {
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { ifDefined } from 'lit-html/directives/if-defined.js';
|
|
3
|
+
const meta = {
|
|
10
4
|
title: 'Indicators/Number Badge',
|
|
11
|
-
|
|
5
|
+
component: 'm-number-badge',
|
|
12
6
|
argTypes: {
|
|
13
|
-
label: {
|
|
14
|
-
description: 'Specify the badge label',
|
|
15
|
-
control: 'text',
|
|
16
|
-
},
|
|
17
7
|
appearance: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
options: ['standard', 'accent', 'danger', 'inverse'],
|
|
8
|
+
control: 'radio',
|
|
9
|
+
options: ['danger', 'accent', 'inverse', 'standard'],
|
|
21
10
|
},
|
|
22
11
|
size: {
|
|
23
|
-
|
|
24
|
-
control: { type: 'radio' },
|
|
12
|
+
control: 'radio',
|
|
25
13
|
options: ['s', 'm'],
|
|
26
14
|
},
|
|
27
|
-
change: {
|
|
28
|
-
name: 'click',
|
|
29
|
-
action: 'click',
|
|
30
|
-
table: {
|
|
31
|
-
category: 'Events',
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
15
|
},
|
|
16
|
+
args: { label: 99 },
|
|
17
|
+
render: (args) => html `
|
|
18
|
+
<m-number-badge
|
|
19
|
+
label=${ifDefined(args.label)}
|
|
20
|
+
appearance=${ifDefined(args.appearance)}
|
|
21
|
+
size=${ifDefined(args.size)}
|
|
22
|
+
></m-number-badge>
|
|
23
|
+
`,
|
|
35
24
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
primary.setAttribute('appearance', args.appearance);
|
|
41
|
-
if (args.size)
|
|
42
|
-
primary.setAttribute('size', args.size || 'm');
|
|
43
|
-
primary.addEventListener('click', action('click'));
|
|
44
|
-
return primary;
|
|
25
|
+
export default meta;
|
|
26
|
+
export const Standard = {};
|
|
27
|
+
export const Accent = {
|
|
28
|
+
args: { appearance: 'accent' },
|
|
45
29
|
};
|
|
46
|
-
export const
|
|
47
|
-
|
|
48
|
-
Default.play = async ({ canvasElement }) => {
|
|
49
|
-
const badge = canvasElement.querySelector('m-number-badge');
|
|
50
|
-
expect(badge).toHaveAttribute('label', '99');
|
|
30
|
+
export const Danger = {
|
|
31
|
+
args: { appearance: 'danger' },
|
|
51
32
|
};
|
|
52
|
-
export const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
};
|
|
58
|
-
export const AccentStyle = Template.bind({});
|
|
59
|
-
AccentStyle.args = { appearance: 'accent' };
|
|
60
|
-
AccentStyle.play = async ({ canvasElement }) => {
|
|
61
|
-
const badge = canvasElement.querySelector('m-number-badge');
|
|
62
|
-
expect(badge).toHaveAttribute('appearance', 'accent');
|
|
33
|
+
export const Inverse = {
|
|
34
|
+
globals: {
|
|
35
|
+
backgrounds: { value: 'inverse' },
|
|
36
|
+
},
|
|
37
|
+
args: { appearance: 'inverse' },
|
|
63
38
|
};
|
|
64
|
-
export const
|
|
65
|
-
|
|
66
|
-
SmallSize.play = async ({ canvasElement }) => {
|
|
67
|
-
const badge = canvasElement.querySelector('m-number-badge');
|
|
68
|
-
expect(badge).toHaveAttribute('size', 's');
|
|
39
|
+
export const Size = {
|
|
40
|
+
args: { size: 'm' },
|
|
69
41
|
};
|
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
<svelte:options customElement={{ tag: 'm-number-badge' }} />
|
|
2
2
|
|
|
3
3
|
<script lang="ts">
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* A Number Badge represents a numeric count, often used to indicate notifications, updates, or items requiring attention. Its distinct appearance makes it easy to spot changes at a glance, ensuring users stay informed without breaking their workflow. Badges are commonly attached to icons, buttons, or tabs to provide contextual awareness.
|
|
6
|
+
*/
|
|
5
7
|
interface Props {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const classes = ['mc-number-badge'];
|
|
8
|
+
/**
|
|
9
|
+
* Content of the badge.
|
|
10
|
+
*/
|
|
11
|
+
label: number;
|
|
12
|
+
/**
|
|
13
|
+
* Allows to define the badge appearance.
|
|
14
|
+
*/
|
|
15
|
+
appearance?: 'danger' | 'accent' | 'inverse' | 'standard';
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (size) {
|
|
21
|
-
classes.push(`mc-number-badge--${size}`);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return classes.join(' ');
|
|
17
|
+
/**
|
|
18
|
+
* Allows to define the badge size.
|
|
19
|
+
*/
|
|
20
|
+
size?: 's' | 'm';
|
|
25
21
|
}
|
|
22
|
+
|
|
23
|
+
let { label, appearance = 'standard', size = 's' }: Props = $props();
|
|
26
24
|
</script>
|
|
27
25
|
|
|
28
|
-
<div class={
|
|
26
|
+
<div class={['mc-number-badge', `mc-number-badge--${appearance}`, `mc-number-badge--${size}`]}>
|
|
29
27
|
{label}
|
|
30
28
|
</div>
|
|
31
29
|
|