@mozaic-ds/web-components 1.0.0-beta.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -68
- package/dist/Cross20.js +1 -1
- package/dist/Cross20.js.map +1 -1
- package/dist/Cross24.js +1 -1
- package/dist/Cross24.js.map +1 -1
- package/dist/CrossCircleFilled24.js +1 -1
- package/dist/CrossCircleFilled24.js.map +1 -1
- package/dist/attributes.js +1 -1
- package/dist/attributes.js.map +1 -1
- package/dist/bundle.d.ts +24 -23
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +24 -23
- package/dist/components/avatar/Avatar.js +2 -5
- 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 +3 -29
- package/dist/components/avatar/Avatar.svelte +9 -10
- 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 +6 -9
- 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 +6 -35
- package/dist/components/breadcrumb/Breadcrumb.svelte +26 -34
- 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 +3 -6
- 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 +186 -168
- 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 +15 -14
- 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 -6
- 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 +75 -58
- 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 +4 -7
- package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
- package/dist/components/checkboxgroup/CheckboxGroup.spec.js +113 -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 +89 -81
- 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 +4 -7
- 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 +46 -30
- 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 -6
- 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 +103 -79
- package/dist/components/datepicker/Datepicker.svelte.d.ts +30 -1
- 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 +12 -15
- 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 +86 -87
- package/dist/components/drawer/Drawer.svelte +185 -161
- package/dist/components/drawer/Drawer.svelte.d.ts +26 -3
- package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/components/drawer/README.md +29 -0
- package/dist/components/field/Field.js +3 -6
- package/dist/components/field/Field.js.map +1 -1
- package/dist/components/field/Field.spec.js +51 -0
- package/dist/components/field/Field.stories.d.ts +9 -15
- package/dist/components/field/Field.stories.d.ts.map +1 -1
- package/dist/components/field/Field.stories.js +86 -142
- package/dist/components/field/Field.svelte +63 -30
- package/dist/components/field/Field.svelte.d.ts +38 -7
- package/dist/components/field/Field.svelte.d.ts.map +1 -1
- package/dist/components/field/README.md +24 -0
- package/dist/components/flag/Flag.js +2 -5
- 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 +28 -106
- package/dist/components/flag/Flag.svelte +23 -24
- 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 -5
- 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 +157 -152
- 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 -5
- 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 +19 -12
- 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 -5
- 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 +19 -16
- 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 -5
- 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 +54 -52
- 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 +7 -10
- package/dist/components/loader/Loader.js.map +1 -1
- package/dist/components/loader/Loader.spec.js +54 -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 +27 -43
- package/dist/components/loader/Loader.svelte +42 -43
- 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 +14 -17
- 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 +54 -83
- package/dist/components/modal/Modal.svelte +167 -166
- 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 -5
- 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 +36 -35
- 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 -5
- 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 +32 -40
- package/dist/components/overlay/Overlay.svelte +21 -12
- 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 +8 -11
- 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 +53 -35
- 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 +4 -9
- 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 +424 -60
- package/dist/components/passwordinput/PasswordInput.svelte.d.ts +34 -2
- 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 +4 -7
- 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 +72 -60
- 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 +3 -7
- 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 +11 -15
- package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
- package/dist/components/quantityselector/QuantitySelector.stories.js +77 -145
- package/dist/components/quantityselector/QuantitySelector.svelte +136 -112
- 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 -5
- 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 +58 -39
- 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 +4 -7
- 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 +81 -77
- package/dist/components/radiogroup/RadioGroup.svelte.d.ts +28 -9
- package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
- package/dist/components/select/README.md +18 -0
- package/dist/components/select/Select.js +3 -6
- 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 +77 -67
- package/dist/components/select/Select.svelte.d.ts +41 -10
- 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 -5
- 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 +34 -29
- 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 -5
- package/dist/components/statusdot/StatusDot.js.map +1 -1
- package/dist/components/statusdot/StatusDot.spec.js +42 -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 +15 -16
- 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 +3 -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 +186 -187
- 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/tab/Tab.svelte +154 -0
- 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 -5
- 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 +46 -29
- 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 +2 -5
- package/dist/components/tags/Tag.js.map +1 -1
- package/dist/components/tags/Tag.svelte +35 -38
- package/dist/components/tags/TagContextualised.js +2 -5
- package/dist/components/tags/TagContextualised.js.map +1 -1
- package/dist/components/tags/TagContextualised.svelte +35 -38
- package/dist/components/tags/TagInteractive.js +2 -5
- package/dist/components/tags/TagInteractive.js.map +1 -1
- package/dist/components/tags/TagInteractive.svelte +35 -38
- package/dist/components/tags/TagRemovable.js +2 -5
- package/dist/components/tags/TagRemovable.js.map +1 -1
- package/dist/components/tags/TagRemovable.svelte +35 -38
- package/dist/components/tags/TagSelectable.js +2 -5
- package/dist/components/tags/TagSelectable.js.map +1 -1
- package/dist/components/tags/TagSelectable.svelte +35 -38
- 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 +7 -1
- 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 -8
- 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 +70 -117
- 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 +5 -9
- 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 +107 -148
- package/dist/components/textinput/Textinput.svelte.d.ts +46 -22
- package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
- package/dist/components/toaster/README.md +28 -0
- package/dist/components/toaster/Toaster.js +5 -8
- 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 +157 -146
- package/dist/components/toaster/Toaster.svelte.d.ts +3 -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 -5
- 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 +59 -48
- 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 -6
- 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 +91 -97
- 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 +4 -7
- 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 +31 -25
- 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 +45 -11
- package/dist/documentation/SupportAndOnboarding.mdx +2 -2
- 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/legacy.js.map +1 -1
- package/dist/main.d.ts +24 -23
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +24 -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/package.json +12 -4
- 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 -30
- 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 -159
- 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 -7
- package/dist/components/tabs/Tab.js.map +0 -1
- package/dist/components/tabs/Tab.svelte +0 -137
- 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,67 +1,88 @@
|
|
|
1
1
|
<svelte:options customElement={{ tag: 'm-pincode' }} />
|
|
2
2
|
|
|
3
3
|
<script lang="ts">
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
/**
|
|
5
|
+
* A pincode input is a specialized input field used to enter short numeric codes, such as verification codes, security PINs, or authentication tokens. It typically separates each digit into individual fields to improve readability and ease of entry. This component is commonly used in two-factor authentication (2FA), password recovery, and secure access flows, ensuring a structured and user-friendly experience.
|
|
6
|
+
*
|
|
7
|
+
* @event input {CustomEvent<{ value: string }>} - Emits when the pincode value changes.
|
|
8
|
+
*/
|
|
7
9
|
interface Props {
|
|
10
|
+
/**
|
|
11
|
+
* A unique identifier for the pincode element, used to associate the label with the form element.
|
|
12
|
+
*/
|
|
8
13
|
id: string;
|
|
9
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The number of input displayed in the pincode element.
|
|
16
|
+
*/
|
|
17
|
+
length?: 4 | 5 | 6;
|
|
18
|
+
/**
|
|
19
|
+
* The name attribute for the pincode element, typically used for form submission.
|
|
20
|
+
*/
|
|
10
21
|
name?: string;
|
|
22
|
+
/**
|
|
23
|
+
* The current value of the pincode field.
|
|
24
|
+
*/
|
|
11
25
|
value?: string | number;
|
|
12
|
-
|
|
26
|
+
/**
|
|
27
|
+
* If `true`, applies an invalid state to the pincode.
|
|
28
|
+
*/
|
|
29
|
+
isinvalid?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* If `true`, disables the pincode, making it non-interactive.
|
|
32
|
+
*/
|
|
13
33
|
disabled?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* If `true`, the pincode is read-only (cannot be edited).
|
|
36
|
+
*/
|
|
14
37
|
readonly?: boolean;
|
|
15
|
-
[key: string]: any;
|
|
16
38
|
}
|
|
17
39
|
|
|
18
|
-
const dispatch = createEventDispatcher();
|
|
19
|
-
|
|
20
40
|
let {
|
|
21
41
|
id,
|
|
22
42
|
length = 6,
|
|
23
43
|
name,
|
|
24
|
-
value
|
|
25
|
-
|
|
26
|
-
disabled
|
|
27
|
-
readonly
|
|
28
|
-
...attrsAndEvents
|
|
44
|
+
value,
|
|
45
|
+
isinvalid,
|
|
46
|
+
disabled,
|
|
47
|
+
readonly,
|
|
29
48
|
}: Props = $props();
|
|
30
49
|
|
|
31
|
-
// Normalisation: length numérique (ex. "6" -> 6)
|
|
32
50
|
const L = $derived(
|
|
33
51
|
typeof length === 'string' ? parseInt(length, 10) || 6 : length,
|
|
34
52
|
);
|
|
35
53
|
|
|
36
|
-
// État minimal
|
|
37
54
|
let otp = $state<string[]>(Array(L).fill(''));
|
|
38
55
|
let inputs = $state<HTMLInputElement[]>([]);
|
|
56
|
+
let element: HTMLElement;
|
|
39
57
|
|
|
40
|
-
// Sync depuis props (value/length normalisé)
|
|
41
58
|
$effect(() => {
|
|
42
59
|
const incoming = String(value ?? '');
|
|
43
60
|
otp = Array.from({ length: L }, (_, i) => incoming[i] ?? '');
|
|
44
61
|
});
|
|
45
62
|
|
|
46
|
-
|
|
63
|
+
const focusInput = (i: number) => {
|
|
47
64
|
queueMicrotask(() => inputs?.[i]?.focus());
|
|
48
|
-
}
|
|
65
|
+
};
|
|
49
66
|
|
|
50
|
-
|
|
67
|
+
const emitInput = () => {
|
|
51
68
|
const joined = otp.join('');
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
const event = new CustomEvent('input', {
|
|
70
|
+
detail: { value: joined },
|
|
71
|
+
bubbles: true,
|
|
72
|
+
composed: true,
|
|
73
|
+
});
|
|
74
|
+
element.dispatchEvent(event);
|
|
75
|
+
};
|
|
55
76
|
|
|
56
|
-
|
|
77
|
+
const onInput = (e: Event, index: number) => {
|
|
57
78
|
const el = e.target as HTMLInputElement;
|
|
58
79
|
const digit = el.value.replace(/\D/g, '').slice(0, 1);
|
|
59
80
|
otp[index] = digit;
|
|
60
|
-
|
|
81
|
+
emitInput();
|
|
61
82
|
if (digit && index + 1 < L) focusInput(index + 1);
|
|
62
|
-
}
|
|
83
|
+
};
|
|
63
84
|
|
|
64
|
-
|
|
85
|
+
const onKeyDown = (e: KeyboardEvent, index: number) => {
|
|
65
86
|
if (e.key === 'ArrowLeft' && index > 0) {
|
|
66
87
|
e.preventDefault();
|
|
67
88
|
focusInput(index - 1);
|
|
@@ -70,34 +91,28 @@
|
|
|
70
91
|
focusInput(index + 1);
|
|
71
92
|
} else if (e.key === 'Backspace' && otp[index] === '' && index > 0) {
|
|
72
93
|
otp[index - 1] = '';
|
|
73
|
-
|
|
94
|
+
emitInput();
|
|
74
95
|
focusInput(index - 1);
|
|
75
96
|
}
|
|
76
|
-
}
|
|
97
|
+
};
|
|
77
98
|
|
|
78
|
-
|
|
99
|
+
const onPaste = (e: ClipboardEvent) => {
|
|
79
100
|
e.preventDefault();
|
|
80
101
|
const pasted = (e.clipboardData?.getData('text') ?? '')
|
|
81
102
|
.replace(/\D/g, '')
|
|
82
103
|
.slice(0, L);
|
|
83
104
|
otp = Array.from({ length: L }, (_, i) => pasted[i] ?? '');
|
|
84
|
-
|
|
105
|
+
emitInput();
|
|
85
106
|
focusInput(Math.min(pasted.length, L - 1));
|
|
86
|
-
}
|
|
107
|
+
};
|
|
87
108
|
</script>
|
|
88
109
|
|
|
89
|
-
<div
|
|
90
|
-
class="mc-pincode-input"
|
|
91
|
-
on:paste|preventDefault={onPaste}
|
|
92
|
-
class:is-invalid={isInvalid}
|
|
93
|
-
{...attrsAndEvents}
|
|
94
|
-
>
|
|
110
|
+
<div class="mc-pincode-input" onpaste={onPaste} bind:this={element}>
|
|
95
111
|
{#each Array(L) as _, i}
|
|
96
112
|
<input
|
|
97
113
|
id={`pincodeItem${i}`}
|
|
98
114
|
bind:this={inputs[i]}
|
|
99
|
-
class=
|
|
100
|
-
class:is-invalid={isInvalid}
|
|
115
|
+
class={['mc-pincode-input__control', isinvalid && 'is-invalid']}
|
|
101
116
|
type="text"
|
|
102
117
|
inputmode="numeric"
|
|
103
118
|
maxlength="1"
|
|
@@ -107,8 +122,8 @@
|
|
|
107
122
|
{disabled}
|
|
108
123
|
{readonly}
|
|
109
124
|
value={otp[i]}
|
|
110
|
-
|
|
111
|
-
|
|
125
|
+
oninput={(e) => onInput(e, i)}
|
|
126
|
+
onkeydown={(e) => onKeyDown(e as KeyboardEvent, i)}
|
|
112
127
|
/>
|
|
113
128
|
{/each}
|
|
114
129
|
</div>
|
|
@@ -116,9 +131,6 @@
|
|
|
116
131
|
<style>/**
|
|
117
132
|
* Do not edit directly, this file was auto-generated.
|
|
118
133
|
*/
|
|
119
|
-
/**
|
|
120
|
-
* Do not edit directly, this file was auto-generated.
|
|
121
|
-
*/
|
|
122
134
|
.mc-pincode-input {
|
|
123
135
|
display: inline-flex;
|
|
124
136
|
column-gap: 0.5rem;
|
|
@@ -130,45 +142,45 @@
|
|
|
130
142
|
}
|
|
131
143
|
}
|
|
132
144
|
.mc-pincode-input__control {
|
|
133
|
-
font-size: 1.75rem;
|
|
145
|
+
font-size: var(--font-size-400, 1.75rem);
|
|
134
146
|
transition: box-shadow 200ms ease;
|
|
135
|
-
background-color: #ffffff;
|
|
136
|
-
border: 1px solid #666666;
|
|
137
|
-
border-radius: 0.25rem;
|
|
147
|
+
background-color: var(--forms-color-background-default, #ffffff);
|
|
148
|
+
border: var(--border-s, 1px) solid var(--forms-color-border-default, #666666);
|
|
149
|
+
border-radius: var(--forms-radius-border, 0.25rem);
|
|
138
150
|
transition: all ease 200ms;
|
|
139
|
-
color: #000000;
|
|
151
|
+
color: var(--forms-color-text-default, #000000);
|
|
140
152
|
display: block;
|
|
141
153
|
width: 3rem;
|
|
142
154
|
box-sizing: border-box;
|
|
143
155
|
height: 4rem;
|
|
144
156
|
text-align: center;
|
|
145
|
-
line-height: 1.3;
|
|
157
|
+
line-height: var(--line-height-s, 1.3);
|
|
146
158
|
}
|
|
147
159
|
.mc-pincode-input__control::placeholder {
|
|
148
|
-
color: #666666;
|
|
160
|
+
color: var(--forms-color-placeholder, #666666);
|
|
149
161
|
}
|
|
150
162
|
.mc-pincode-input__control:focus-within {
|
|
151
|
-
box-shadow: 0 0 0 0.125rem var(--focus-color-mid, #ffffff), 0 0 0 0.25rem var(--focus-color-outer, #000000);
|
|
163
|
+
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));
|
|
152
164
|
outline: 0.125rem solid transparent;
|
|
153
165
|
outline-offset: 0.125rem;
|
|
154
166
|
}
|
|
155
167
|
.mc-pincode-input__control:hover:not(:focus-within) {
|
|
156
|
-
border-color: #4d4d4d;
|
|
157
|
-
box-shadow: 0 0 0 1px #4d4d4d;
|
|
168
|
+
border-color: var(--forms-color-border-hover, #4d4d4d);
|
|
169
|
+
box-shadow: 0 0 0 var(--border-s, 1px) var(--forms-color-border-hover, #4d4d4d);
|
|
158
170
|
}
|
|
159
171
|
.mc-pincode-input__control:disabled {
|
|
160
|
-
background-color: #d9d9d9;
|
|
172
|
+
background-color: var(--forms-color-background-disabled, #d9d9d9);
|
|
161
173
|
cursor: not-allowed;
|
|
162
174
|
border-color: transparent;
|
|
163
175
|
box-shadow: none;
|
|
164
|
-
color: #737373;
|
|
176
|
+
color: var(--forms-color-text-disabled, #737373);
|
|
165
177
|
pointer-events: none;
|
|
166
178
|
}
|
|
167
179
|
.mc-pincode-input__control.is-invalid {
|
|
168
|
-
border-color: #ea302d;
|
|
169
|
-
box-shadow: 0 0 0 1px #ea302d;
|
|
180
|
+
border-color: var(--forms-color-border-invalid, #ea302d);
|
|
181
|
+
box-shadow: 0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid, #ea302d);
|
|
170
182
|
}
|
|
171
183
|
.mc-pincode-input__control.is-invalid:hover:not(:focus-within) {
|
|
172
|
-
border-color: #c61112;
|
|
173
|
-
box-shadow: 0 0 0 1px #c61112;
|
|
184
|
+
border-color: var(--forms-color-border-invalid-hover, #c61112);
|
|
185
|
+
box-shadow: 0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid-hover, #c61112);
|
|
174
186
|
}</style>
|
|
@@ -1,33 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A pincode input is a specialized input field used to enter short numeric codes, such as verification codes, security PINs, or authentication tokens. It typically separates each digit into individual fields to improve readability and ease of entry. This component is commonly used in two-factor authentication (2FA), password recovery, and secure access flows, ensuring a structured and user-friendly experience.
|
|
3
|
+
*
|
|
4
|
+
* @event input {CustomEvent<{ value: string }>} - Emits when the pincode value changes.
|
|
5
|
+
*/
|
|
2
6
|
interface Props {
|
|
7
|
+
/**
|
|
8
|
+
* A unique identifier for the pincode element, used to associate the label with the form element.
|
|
9
|
+
*/
|
|
3
10
|
id: string;
|
|
4
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The number of input displayed in the pincode element.
|
|
13
|
+
*/
|
|
14
|
+
length?: 4 | 5 | 6;
|
|
15
|
+
/**
|
|
16
|
+
* The name attribute for the pincode element, typically used for form submission.
|
|
17
|
+
*/
|
|
5
18
|
name?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The current value of the pincode field.
|
|
21
|
+
*/
|
|
6
22
|
value?: string | number;
|
|
7
|
-
|
|
23
|
+
/**
|
|
24
|
+
* If `true`, applies an invalid state to the pincode.
|
|
25
|
+
*/
|
|
26
|
+
isinvalid?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* If `true`, disables the pincode, making it non-interactive.
|
|
29
|
+
*/
|
|
8
30
|
disabled?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* If `true`, the pincode is read-only (cannot be edited).
|
|
33
|
+
*/
|
|
9
34
|
readonly?: boolean;
|
|
10
|
-
[key: string]: any;
|
|
11
35
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
$$bindings?: Bindings;
|
|
15
|
-
} & Exports;
|
|
16
|
-
(internal: unknown, props: Props & {
|
|
17
|
-
$$events?: Events;
|
|
18
|
-
$$slots?: Slots;
|
|
19
|
-
}): Exports & {
|
|
20
|
-
$set?: any;
|
|
21
|
-
$on?: any;
|
|
22
|
-
};
|
|
23
|
-
z_$$bindings?: Bindings;
|
|
24
|
-
}
|
|
25
|
-
declare const Pincode: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
26
|
-
input: CustomEvent<any>;
|
|
27
|
-
change: CustomEvent<any>;
|
|
28
|
-
} & {
|
|
29
|
-
[evt: string]: CustomEvent<any>;
|
|
30
|
-
}, {}, {}, "">;
|
|
31
|
-
type Pincode = InstanceType<typeof Pincode>;
|
|
36
|
+
declare const Pincode: import("svelte").Component<Props, {}, "">;
|
|
37
|
+
type Pincode = ReturnType<typeof Pincode>;
|
|
32
38
|
export default Pincode;
|
|
33
39
|
//# sourceMappingURL=Pincode.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pincode.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/pincode/Pincode.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Pincode.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/pincode/Pincode.svelte.ts"],"names":[],"mappings":"AAGE;;;;GAIG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAsFH,QAAA,MAAM,OAAO,2CAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# `m-pincode`
|
|
2
|
+
|
|
3
|
+
A pincode input is a specialized input field used to enter short numeric codes, such as verification codes, security PINs, or authentication tokens. It typically separates each digit into individual fields to improve readability and ease of entry. This component is commonly used in two-factor authentication (2FA), password recovery, and secure access flows, ensuring a structured and user-friendly experience.
|
|
4
|
+
|
|
5
|
+
## Props
|
|
6
|
+
|
|
7
|
+
| Name | Description | Type | Default |
|
|
8
|
+
|------|-------------|------|---------|
|
|
9
|
+
| `id*` | A unique identifier for the pincode element, used to associate the label with the form element. | `string` | |
|
|
10
|
+
| `length` | The number of input displayed in the pincode element. | `4` `5` `6` | `6` |
|
|
11
|
+
| `name` | The name attribute for the pincode element, typically used for form submission. | `string` | |
|
|
12
|
+
| `value` | The current value of the pincode field. | `string` `number` | |
|
|
13
|
+
| `isinvalid` | If `true`, applies an invalid state to the pincode. | `boolean` | |
|
|
14
|
+
| `disabled` | If `true`, disables the pincode, making it non-interactive. | `boolean` | |
|
|
15
|
+
| `readonly` | If `true`, the pincode is read-only (cannot be edited). | `boolean` | |
|
|
16
|
+
|
|
17
|
+
## Events
|
|
18
|
+
|
|
19
|
+
| Name | Description | Type |
|
|
20
|
+
|------|------|-------------|
|
|
21
|
+
| `input` | Emits when the pincode value changes. | `CustomEvent<{ value: string }>` |
|
|
22
|
+
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import{c as
|
|
1
|
+
import{c as E,p as D,b as n,A,t as S,i as V,j as I,k as a,e as M,g as j,v as R,a as T,f as U,d as p,s as g,r as f,h as H}from"../../custom-element.js";import{s as u,a as G,r as W}from"../../attributes.js";import{c as X}from"../../input.js";import{c as Y}from"../../custom-element-forward-events.js";import"../../legacy.js";var Z=A('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path fill-rule="evenodd" d="M6 12a1 1 0 0 1 1-1h10a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1"></path></svg>');function L(v,e){D(e,!1);let o=n(e,"id",12,void 0),t=n(e,"style",12,void 0),r=n(e,"className",12,void 0),i=n(e,"fill",12,void 0),m=n(e,"size",12,"1.5rem");var b={get id(){return o()},set id(s){o(s),a()},get style(){return t()},set style(s){t(s),a()},get className(){return r()},set className(s){r(s),a()},get fill(){return i()},set fill(s){i(s),a()},get size(){return m()},set size(s){m(s),a()}},d=Z();return S(()=>{u(d,"id",o()),G(d,t()),M(d,0,j(r())),u(d,"fill",i())}),V(v,d),I(b)}customElements.define("less-24",E(L,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var $=A('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path fill-rule="evenodd" d="M13 5a1 1 0 1 0-2 0v6H5a1 1 0 1 0 0 2h6v6a1 1 0 1 0 2 0v-6h6a1 1 0 1 0 0-2h-6z"></path></svg>');function O(v,e){D(e,!1);let o=n(e,"id",12,void 0),t=n(e,"style",12,void 0),r=n(e,"className",12,void 0),i=n(e,"fill",12,void 0),m=n(e,"size",12,"1.5rem");var b={get id(){return o()},set id(s){o(s),a()},get style(){return t()},set style(s){t(s),a()},get className(){return r()},set className(s){r(s),a()},get fill(){return i()},set fill(s){i(s),a()},get size(){return m()},set size(s){m(s),a()}},d=$();return S(()=>{u(d,"id",o()),G(d,t()),M(d,0,j(r())),u(d,"fill",i())}),V(v,d),I(b)}customElements.define("more-24",E(O,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));const ee=(v,e,o,t)=>{const r=Number(e());r>o()?e(o()):r<t()?e(t()):e(r)},te=(v,e,o,t)=>{const r=Number(e()),i=Number(o());r+i<=t()?e(r+i):e(t())},re=(v,e,o,t)=>{const r=Number(e()),i=Number(o());r-i>=t()?e(r-i):e(t())};var se=U('<div><input type="number" class="mc-quantity-selector__control svelte-ptlds1"/> <button type="button" class="mc-quantity-selector__button mc-quantity-selector__button--increase svelte-ptlds1" tabindex="-1"><span class="mc-quantity-selector__icon svelte-ptlds1"><!></span> <span class="mc-quantity-selector__label svelte-ptlds1"> </span></button> <button type="button" class="mc-quantity-selector__button mc-quantity-selector__button--decrease svelte-ptlds1" tabindex="-1"><span class="mc-quantity-selector__icon svelte-ptlds1"><!></span> <span class="mc-quantity-selector__label svelte-ptlds1"> </span></button></div>');const le={hash:"svelte-ptlds1",code:`/**
|
|
2
2
|
* Do not edit directly, this file was auto-generated.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* Do not edit directly, this file was auto-generated.
|
|
6
|
-
*/.mc-quantity-selector.svelte-529exj {background-color:#ffffff;border:1px solid #666666;border-radius:0.25rem;transition:all ease 200ms;color:#000000;display:block;width:100%;height:3rem;border-radius:0.25rem;box-sizing:border-box;display:flex;gap:0.25rem;padding:0.1875rem;position:relative;}.mc-quantity-selector__control.svelte-529exj {background-color:transparent;border-width:0;color:inherit;font-family:inherit;outline:none;padding:0;font-size:inherit;font-size:1rem;line-height:1.5;font-weight:600;cursor:inherit;text-align:center;flex-grow:1;}.mc-quantity-selector__control[type=number].svelte-529exj {
|
|
7
|
-
/* For Blink & WebKit rendering engines */
|
|
8
|
-
/* For Gecko rendering engine */appearance:textfield;}.mc-quantity-selector__control[type=number].svelte-529exj::-webkit-inner-spin-button, .mc-quantity-selector__control[type=number].svelte-529exj::-webkit-outer-spin-button {appearance:none;margin:0;}.mc-quantity-selector__control.svelte-529exj::placeholder {color:#666666;}.mc-quantity-selector__button.svelte-529exj {background-color:transparent;border-width:0;color:initial;font-family:inherit;outline:none;appearance:none;cursor:pointer;padding:0;height:2.5rem;width:2.5rem;border-radius:100%;color:#242938;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.mc-quantity-selector__button.svelte-529exj:disabled {color:#d9d9d9;cursor:not-allowed;}.mc-quantity-selector__button.svelte-529exj:hover:not(:disabled) {background-color:rgba(255, 255, 255, 0.1);}.mc-quantity-selector__button--decrease.svelte-529exj {order:-1;}.mc-quantity-selector__icon.svelte-529exj {height:1.5rem;width:1.5rem;fill:currentcolor;}.mc-quantity-selector__label.svelte-529exj {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}.mc-quantity-selector.svelte-529exj::after {transition:box-shadow 200ms ease;border-radius:0.25rem;content:"";position:absolute;inset:-0.125rem var(--inset-x, 3rem);pointer-events:none;display:block;}.mc-quantity-selector.svelte-529exj:hover:not(:focus-within) {border-color:#4d4d4d;box-shadow:0 0 0 1px #4d4d4d;}.mc-quantity-selector.svelte-529exj:has(input:where(.svelte-529exj):disabled) {background-color:#d9d9d9;cursor:not-allowed;border-color:transparent;box-shadow:none;color:#737373;pointer-events:none;}.mc-quantity-selector.svelte-529exj:has(input:where(.svelte-529exj):disabled) .mc-quantity-selector__button:where(.svelte-529exj):disabled {color:#737373;}.mc-quantity-selector.svelte-529exj:has(input:where(.svelte-529exj):focus)::after {box-shadow:0 0 0 0.125rem var(--focus-color-mid, #ffffff), 0 0 0 0.25rem var(--focus-color-outer, #000000);outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-quantity-selector--s.svelte-529exj {--inset-x: 2rem;height:2rem;}.mc-quantity-selector--s.svelte-529exj .mc-quantity-selector__button:where(.svelte-529exj) {height:1.5rem;width:1.5rem;}.mc-quantity-selector--s.svelte-529exj .mc-quantity-selector__icon:where(.svelte-529exj) {height:1.25rem;width:1.25rem;}.mc-quantity-selector.is-invalid.svelte-529exj {border-color:#ea302d;box-shadow:0 0 0 1px #ea302d;}.mc-quantity-selector.is-invalid.svelte-529exj:hover:not(:focus-within) {border-color:#c61112;box-shadow:0 0 0 1px #c61112;}.mc-quantity-selector.svelte-529exj :where(.svelte-529exj) {box-sizing:border-box;}`};function be(b,e){H(e,!0),te(b,me);let l=n(e,"id",7,void 0),r=n(e,"quantity",15,1),o=n(e,"min",7,1),a=n(e,"max",7,100),m=n(e,"size",7,"m"),c=n(e,"decrementlabel",7,"Decrement"),s=n(e,"inputarialabel",7,"Quantity Selector"),j=n(e,"incrementlabel",7,"Increment"),x=n(e,"disabled",7,!1),_=n(e,"isinvalid",7,!1),z=n(e,"required",7,!1),k=n(e,"name",7,"quantity-selector-input"),y=n(e,"step",7,1),N=n(e,"increment",7),D=n(e,"decrement",7),S=n(e,"inputqty",7),B=n(e,"oninput",7),E=n(e,"onblur",7);function U(t,q){const Q=["mc-quantity-selector"];return t&&Q.push("is-invalid"),q==="s"&&Q.push("mc-quantity-selector--s"),Q.join(" ")}var p=de(),u=f(p);re(u),u.__input=[oe,r,a,o,S,B];var h=w(u,2);h.__click=[ue,r,y,a,N];var I=f(h),X=f(I);T(X,{}),v(I);var V=w(I,2),Y=f(V,!0);v(V),v(h);var g=w(h,2);g.__click=[ce,r,y,o,D];var M=f(g),Z=f(M);R(Z,{}),v(M);var W=w(M,2),$=f(W,!0);return v(W),v(g),v(p),C(t=>{L(p,1,t,"svelte-529exj"),d(u,"id",l()),d(u,"name",k()),d(u,"aria-label",s()),d(u,"aria-valuemin",o()),d(u,"aria-valuemax",a()),d(u,"aria-valuenow",r()),d(u,"aria-invalid",_()),u.disabled=x(),u.required=z(),d(h,"aria-controls",l()),h.disabled=r()===a()||x(),A(Y,c()),d(g,"aria-controls",l()),g.disabled=r()===o()||x(),A($,j())},[()=>U(_(),m())]),ie("blur",u,function(...t){var q;(q=E())==null||q.apply(this,t)}),se(u,r),G(b,p),K({get id(){return l()},set id(t=void 0){l(t),i()},get quantity(){return r()},set quantity(t=1){r(t),i()},get min(){return o()},set min(t=1){o(t),i()},get max(){return a()},set max(t=100){a(t),i()},get size(){return m()},set size(t="m"){m(t),i()},get decrementlabel(){return c()},set decrementlabel(t="Decrement"){c(t),i()},get inputarialabel(){return s()},set inputarialabel(t="Quantity Selector"){s(t),i()},get incrementlabel(){return j()},set incrementlabel(t="Increment"){j(t),i()},get disabled(){return x()},set disabled(t=!1){x(t),i()},get isinvalid(){return _()},set isinvalid(t=!1){_(t),i()},get required(){return z()},set required(t=!1){z(t),i()},get name(){return k()},set name(t="quantity-selector-input"){k(t),i()},get step(){return y()},set step(t=1){y(t),i()},get increment(){return N()},set increment(t){N(t),i()},get decrement(){return D()},set decrement(t){D(t),i()},get inputqty(){return S()},set inputqty(t){S(t),i()},get oninput(){return B()},set oninput(t){B(t),i()},get onblur(){return E()},set onblur(t){E(t),i()}})}ee(["input","click"]);customElements.define("m-quantityselector",F(be,{id:{},quantity:{},min:{},max:{},size:{},decrementlabel:{},inputarialabel:{},incrementlabel:{},disabled:{},isinvalid:{},required:{},name:{},step:{},increment:{},decrement:{},inputqty:{},oninput:{},onblur:{}},[],[],!0));
|
|
3
|
+
*/.mc-quantity-selector.svelte-ptlds1 {background-color:var(--forms-color-background-default, #ffffff);border:var(--border-s, 1px) solid var(--forms-color-border-default, #666666);border-radius:var(--forms-radius-border, 0.25rem);transition:all ease 200ms;color:var(--forms-color-text-default, #000000);display:block;width:100%;height:3rem;border-radius:var(--radius-s, 0.25rem);box-sizing:border-box;display:flex;gap:0.25rem;padding:0.1875rem;position:relative;}.mc-quantity-selector__control.svelte-ptlds1 {background-color:transparent;border-width:0;color:inherit;font-family:inherit;outline:none;}.mc-quantity-selector__control[type=number].svelte-ptlds1::-webkit-inner-spin-button, .mc-quantity-selector__control[type=number].svelte-ptlds1::-webkit-outer-spin-button {appearance:none;margin:0;}.mc-quantity-selector__control[type=number].svelte-ptlds1 {
|
|
4
|
+
/* For Gecko rendering engine */appearance:textfield;}.mc-quantity-selector__control.svelte-ptlds1 {padding:0;font-size:inherit;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-m, 1.5);font-weight:var(--font-weight-semi-bold, 600);cursor:inherit;text-align:center;flex-grow:1;}.mc-quantity-selector__control.svelte-ptlds1::placeholder {color:var(--forms-color-placeholder, #666666);}.mc-quantity-selector__button.svelte-ptlds1 {background-color:transparent;border-width:0;color:initial;font-family:inherit;outline:none;appearance:none;cursor:pointer;padding:0;height:2.5rem;width:2.5rem;border-radius:var(--radius-full, 100%);color:var(--quantity-selector-color-button-text-default, #242938);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}.mc-quantity-selector__button.svelte-ptlds1:disabled {color:var(--quantity-selector-color-button-text-disabled, #d9d9d9);cursor:not-allowed;}.mc-quantity-selector__button.svelte-ptlds1:hover:not(:disabled) {background-color:var(--quantity-selector-color-button-background-hover, rgba(255, 255, 255, 0.1));}.mc-quantity-selector__button--decrease.svelte-ptlds1 {order:-1;}.mc-quantity-selector__icon.svelte-ptlds1 {height:1.5rem;width:1.5rem;fill:currentcolor;}.mc-quantity-selector__label.svelte-ptlds1 {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}.mc-quantity-selector.svelte-ptlds1::after {transition:box-shadow 200ms ease;border-radius:var(--radius-s, 0.25rem);content:"";position:absolute;inset:-0.125rem var(--inset-x, 3rem);pointer-events:none;display:block;}.mc-quantity-selector.svelte-ptlds1:hover:not(:focus-within) {border-color:var(--forms-color-border-hover, #4d4d4d);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-hover, #4d4d4d);}.mc-quantity-selector.svelte-ptlds1:has(input:where(.svelte-ptlds1):disabled) {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;border-color:transparent;box-shadow:none;color:var(--forms-color-text-disabled, #737373);pointer-events:none;}.mc-quantity-selector.svelte-ptlds1:has(input:where(.svelte-ptlds1):disabled) .mc-quantity-selector__button:where(.svelte-ptlds1):disabled {color:var(--forms-color-icon-disabled, #737373);}.mc-quantity-selector.svelte-ptlds1:has(input[readonly]:where(.svelte-ptlds1)) {border-color:var(--forms-color-border-read-only, #cccccc);pointer-events:none;}.mc-quantity-selector.svelte-ptlds1:has(input[readonly]:where(.svelte-ptlds1)) .mc-quantity-selector__control[readonly]:where(.svelte-ptlds1) {text-align:left;padding-left:0.5rem;}.mc-quantity-selector.svelte-ptlds1:has(input:where(.svelte-ptlds1):focus)::after {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-quantity-selector--s.svelte-ptlds1 {--inset-x: 2rem;height:2rem;}.mc-quantity-selector--s.svelte-ptlds1 .mc-quantity-selector__button:where(.svelte-ptlds1) {height:1.5rem;width:1.5rem;}.mc-quantity-selector--s.svelte-ptlds1 .mc-quantity-selector__icon:where(.svelte-ptlds1) {height:1.25rem;width:1.25rem;}.mc-quantity-selector.is-invalid.svelte-ptlds1 {border-color:var(--forms-color-border-invalid, #ea302d);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid, #ea302d);}.mc-quantity-selector.is-invalid.svelte-ptlds1:hover:not(:focus-within) {border-color:var(--forms-color-border-invalid-hover, #c61112);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid-hover, #c61112);}.mc-quantity-selector.svelte-ptlds1 :where(.svelte-ptlds1) {box-sizing:border-box;}`};function ne(v,e){D(e,!0),T(v,le);let o=n(e,"id",7),t=n(e,"value",15,1),r=n(e,"min",7,1),i=n(e,"max",7,100),m=n(e,"step",7,1),b=n(e,"size",7,"m"),d=n(e,"disabled",7),s=n(e,"isinvalid",7,!1),x=n(e,"name",7,"quantity-selector-input"),w=n(e,"readonly",7),q=n(e,"decrementlabel",7,"Decrement"),z=n(e,"incrementlabel",7,"Increment");var Q={get id(){return o()},set id(l){o(l),a()},get value(){return t()},set value(l=1){t(l),a()},get min(){return r()},set min(l=1){r(l),a()},get max(){return i()},set max(l=100){i(l),a()},get step(){return m()},set step(l=1){m(l),a()},get size(){return b()},set size(l="m"){b(l),a()},get disabled(){return d()},set disabled(l){d(l),a()},get isinvalid(){return s()},set isinvalid(l=!1){s(l),a()},get name(){return x()},set name(l="quantity-selector-input"){x(l),a()},get readonly(){return w()},set readonly(l){w(l),a()},get decrementlabel(){return q()},set decrementlabel(l="Decrement"){q(l),a()},get incrementlabel(){return z()},set incrementlabel(l="Increment"){z(l),a()}},_=se(),c=p(_);W(c),c.__input=[ee,t,i,r];var h=g(c,2);h.__click=[te,t,m,i];var k=p(h),C=p(k);O(C,{}),f(k);var B=g(k,2),J=p(B,!0);f(B),f(h);var y=g(h,2);y.__click=[re,t,m,r];var N=p(y),K=p(N);L(K,{}),f(N);var F=g(N,2),P=p(F,!0);return f(F),f(y),f(_),S(()=>{M(_,1,j(["mc-quantity-selector",`mc-quantity-selector--${b()}`,s()&&"is-invalid"]),"svelte-ptlds1"),u(c,"id",o()),u(c,"name",x()),u(c,"aria-valuemin",r()),u(c,"aria-valuemax",i()),u(c,"aria-valuenow",t()),u(c,"aria-invalid",`${s()}`),c.readOnly=w(),c.disabled=d(),u(h,"aria-controls",o()),h.disabled=t()===i()||d(),H(J,z()),u(y,"aria-controls",o()),y.disabled=t()===r()||d(),H(P,q())}),X(c,t),V(v,_),I(Q)}R(["input","click"]);customElements.define("m-quantityselector",E(ne,{id:{},value:{},min:{},max:{},step:{},size:{},disabled:{},isinvalid:{},name:{},readonly:{},decrementlabel:{},incrementlabel:{}},[],[],!0,Y));
|
|
9
5
|
//# sourceMappingURL=QuantitySelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantitySelector.js","sources":["../../../node_modules/@mozaic-ds/icons-svelte/dist/components/Less24/Less24.svelte","../../../node_modules/@mozaic-ds/icons-svelte/dist/components/More24/More24.svelte","../../../src/components/quantityselector/QuantitySelector.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'less-24', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"1.5rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M6 12a1 1 0 0 1 1-1h10a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1\"/></svg>","<svelte:options customElement={{ tag: 'more-24', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"1.5rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M13 5a1 1 0 1 0-2 0v6H5a1 1 0 1 0 0 2h6v6a1 1 0 1 0 2 0v-6h6a1 1 0 1 0 0-2h-6z\"/></svg>","<svelte:options\n customElement={{\n tag: 'm-quantityselector',\n }}\n/>\n\n<script lang=\"ts\">\n import Less24 from '@mozaic-ds/icons-svelte/svelte/Less24/Less24.svelte';\n import More24 from '@mozaic-ds/icons-svelte/svelte/More24/More24.svelte';\n
|
|
1
|
+
{"version":3,"file":"QuantitySelector.js","sources":["../../../node_modules/@mozaic-ds/icons-svelte/dist/components/Less24/Less24.svelte","../../../node_modules/@mozaic-ds/icons-svelte/dist/components/More24/More24.svelte","../../../src/components/quantityselector/QuantitySelector.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'less-24', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"1.5rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M6 12a1 1 0 0 1 1-1h10a1 1 0 1 1 0 2H7a1 1 0 0 1-1-1\"/></svg>","<svelte:options customElement={{ tag: 'more-24', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"1.5rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M13 5a1 1 0 1 0-2 0v6H5a1 1 0 1 0 0 2h6v6a1 1 0 1 0 2 0v-6h6a1 1 0 1 0 0-2h-6z\"/></svg>","<svelte:options\n customElement={{\n tag: 'm-quantityselector',\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n import Less24 from '@mozaic-ds/icons-svelte/svelte/Less24/Less24.svelte';\n import More24 from '@mozaic-ds/icons-svelte/svelte/More24/More24.svelte';\n /**\n * A quantity selector is an input component that allows users to increment or decrement a numeric value, typically using plus (+) and minus (−) buttons. It provides a simple and efficient way to adjust quantities without manual typing, ensuring controlled input. This component is commonly used in e-commerce, inventory management, and settings where users need to specify amounts.\n */\n interface Props {\n /**\n * A unique identifier for the quantity selector element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the quantity selector element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the quantity selector field.\n */\n value?: number;\n /**\n * If `true`, applies an invalid state to the quantity selector.\n */\n isinvalid?: boolean;\n /**\n * If `true`, disables the quantity selector, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the quantity selector.\n */\n size?: 's' | 'm';\n /**\n * Minimum acceptable value for the quantity selector.\n */\n min?: number;\n /**\n * Maximum acceptable value for the quantity selector.\n */\n max?: number;\n /**\n * Determines how much the value will change per click when the quantity is increased or decreased.\n */\n step?: number;\n /**\n * If `true`, the quantity selector is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * The label text for the increment button.\n */\n incrementlabel?: string;\n /**\n * The label text for the decrement button.\n */\n decrementlabel?: string;\n }\n\n let {\n id,\n value = $bindable(1),\n min = 1,\n max = 100,\n step = 1,\n size = 'm',\n disabled,\n isinvalid = false,\n name = 'quantity-selector-input',\n readonly,\n decrementlabel = 'Decrement',\n incrementlabel = 'Increment',\n }: Props = $props();\n\n const onValue = (): void => {\n const numericValue = Number(value);\n if (numericValue > max) {\n value = max;\n } else if (numericValue < min) {\n value = min;\n } else {\n value = numericValue;\n }\n };\n\n const onIncrement = (): void => {\n const numericValue = Number(value);\n const numericStep = Number(step);\n\n if (numericValue + numericStep <= max) {\n value = numericValue + numericStep;\n } else {\n value = max;\n }\n };\n\n const onDecrement = (): void => {\n const numericValue = Number(value);\n const numericStep = Number(step);\n\n if (numericValue - numericStep >= min) {\n value = numericValue - numericStep;\n } else {\n value = min;\n }\n };\n</script>\n\n<div\n class={[\n 'mc-quantity-selector',\n `mc-quantity-selector--${size}`,\n isinvalid && 'is-invalid',\n ]}\n>\n <input\n type=\"number\"\n {id}\n {name}\n bind:value\n oninput={onValue}\n class=\"mc-quantity-selector__control\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-invalid={`${isinvalid}`}\n {readonly}\n {disabled}\n />\n <button\n type=\"button\"\n aria-controls={id}\n class=\"mc-quantity-selector__button mc-quantity-selector__button--increase\"\n tabindex=\"-1\"\n disabled={value === max || disabled}\n onclick={onIncrement}\n >\n <span class=\"mc-quantity-selector__icon\">\n <More24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{incrementlabel}</span>\n </button>\n <button\n type=\"button\"\n aria-controls={id}\n class=\"mc-quantity-selector__button mc-quantity-selector__button--decrease\"\n tabindex=\"-1\"\n disabled={value === min || disabled}\n onclick={onDecrement}\n >\n <span class=\"mc-quantity-selector__icon\">\n <Less24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{decrementlabel}</span>\n </button>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/quantity-selector';\n</style>\n"],"names":["id","style","className","fill","size","onValue","_","value","max","min","numericValue","onIncrement","__1","step","numericStep","onDecrement","__2","$.prop","$$props","disabled","isinvalid","name","readonly","decrementlabel","incrementlabel","customElementForwardEvents"],"mappings":"wiBAAA,SAEa,IAAAA,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,gRAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,6VCPA,SAEa,IAAAH,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,gRAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,8FCyEQ,MAAAE,GAAO,CAAAC,EAAAC,EAAAC,EAAAC,IAAe,OACpBC,EAAe,OAAOH,GAAK,EAC7BG,EAAeF,IACjBD,EAAQC,EAAG,CAAA,EACFE,EAAeD,IACxBF,EAAQE,EAAG,CAAA,EAEXF,EAAQG,CAAY,CAExB,EAEMC,GAAW,CAAAC,EAAAL,EAAAM,EAAAL,IAAe,OACxBE,EAAe,OAAOH,GAAK,EAC3BO,EAAc,OAAOD,GAAI,EAE3BH,EAAeI,GAAeN,IAChCD,EAAQG,EAAeI,CAAW,EAElCP,EAAQC,EAAG,CAAA,CAEf,EAEMO,GAAW,CAAAC,EAAAT,EAAAM,EAAAJ,IAAe,OACxBC,EAAe,OAAOH,GAAK,EAC3BO,EAAc,OAAOD,GAAI,EAE3BH,EAAeI,GAAeL,IAChCF,EAAQG,EAAeI,CAAW,EAElCP,EAAQE,EAAG,CAAA,CAEf;;;osHA/GF,qBAkEIT,EAAEiB,EAAAC,EAAA,KAAA,CAAA,EACFX,iBAAkB,CAAC,EACnBE,cAAM,CAAC,EACPD,cAAM,GAAG,EACTK,eAAO,CAAC,EACRT,eAAO,GAAG,EACVe,EAAQF,EAAAC,EAAA,WAAA,CAAA,EACRE,oBAAY,EAAK,EACjBC,eAAO,yBAAyB,EAChCC,EAAQL,EAAAC,EAAA,WAAA,CAAA,EACRK,yBAAiB,WAAW,EAC5BC,yBAAiB,WAAW,sFAVV,EAAC,2CACb,EAAC,2CACD,IAAG,6CACF,EAAC,6CACD,IAAG,4GAEE,GAAK,6CACV,0BAAyB,sHAEf,YAAW,iEACX,YAAW,0CAiDnBnB,GAAOE,EAAAC,EAAAC,CAAA,0BAePE,GAAWJ,EAAAM,EAAAL,CAAA,0FAaXO,GAAWR,EAAAM,EAAAJ,CAAA,8FAtCpB,gDACyBL,EAAI,CAAA,GAC7BgB,KAAa,kFAUEX,GAAG,sBACHD,GAAG,sBACHD,GAAK,wBACHa,EAAS,CAAA,EAAA,oDAMXpB,GAAE,aAGPO,EAAK,IAAKC,EAAG,GAAIW,EAAQ,MAMQK,GAAc,sBAI1CxB,GAAE,aAGPO,EAAK,IAAKE,EAAG,GAAIU,EAAQ,MAMQI,GAAc,sBA/C7D,+MA7GYE","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { render, fireEvent } from '@testing-library/svelte';
|
|
3
|
+
import QuantitySelector from './QuantitySelector.svelte';
|
|
4
|
+
describe('m-quantityselector component', () => {
|
|
5
|
+
const baseProps = {
|
|
6
|
+
id: 'test-qty',
|
|
7
|
+
value: 2,
|
|
8
|
+
min: 1,
|
|
9
|
+
max: 5,
|
|
10
|
+
step: 1,
|
|
11
|
+
incrementlabel: 'Add one',
|
|
12
|
+
decrementlabel: 'Remove one',
|
|
13
|
+
};
|
|
14
|
+
let input;
|
|
15
|
+
let increaseBtn;
|
|
16
|
+
let decreaseBtn;
|
|
17
|
+
const getElements = (container) => {
|
|
18
|
+
input = container.querySelector('input');
|
|
19
|
+
const buttons = container.querySelectorAll('button');
|
|
20
|
+
increaseBtn = buttons[0];
|
|
21
|
+
decreaseBtn = buttons[1];
|
|
22
|
+
};
|
|
23
|
+
it('renders input and two buttons', () => {
|
|
24
|
+
const { container } = render(QuantitySelector, { props: baseProps });
|
|
25
|
+
const inputs = container.querySelectorAll('input');
|
|
26
|
+
const buttons = container.querySelectorAll('button');
|
|
27
|
+
expect(inputs.length).toBe(1);
|
|
28
|
+
expect(buttons.length).toBe(2);
|
|
29
|
+
});
|
|
30
|
+
it('displays initial value correctly', () => {
|
|
31
|
+
const { container } = render(QuantitySelector, { props: baseProps });
|
|
32
|
+
getElements(container);
|
|
33
|
+
expect(input.value).toBe('2');
|
|
34
|
+
});
|
|
35
|
+
it('increments value when increment button is clicked', async () => {
|
|
36
|
+
const { container } = render(QuantitySelector, { props: baseProps });
|
|
37
|
+
getElements(container);
|
|
38
|
+
await fireEvent.click(increaseBtn);
|
|
39
|
+
expect(input.value).toBe('3');
|
|
40
|
+
});
|
|
41
|
+
it('decrements value when decrement button is clicked', async () => {
|
|
42
|
+
const { container } = render(QuantitySelector, { props: baseProps });
|
|
43
|
+
getElements(container);
|
|
44
|
+
await fireEvent.click(decreaseBtn);
|
|
45
|
+
expect(input.value).toBe('1');
|
|
46
|
+
});
|
|
47
|
+
it('does not exceed max value on increment', async () => {
|
|
48
|
+
const { container } = render(QuantitySelector, {
|
|
49
|
+
props: { ...baseProps, value: 5 },
|
|
50
|
+
});
|
|
51
|
+
getElements(container);
|
|
52
|
+
await fireEvent.click(increaseBtn);
|
|
53
|
+
expect(input.value).toBe('5');
|
|
54
|
+
expect(increaseBtn).toBeDisabled();
|
|
55
|
+
});
|
|
56
|
+
it('does not go below min value on decrement', async () => {
|
|
57
|
+
const { container } = render(QuantitySelector, {
|
|
58
|
+
props: { ...baseProps, value: 1 },
|
|
59
|
+
});
|
|
60
|
+
getElements(container);
|
|
61
|
+
await fireEvent.click(decreaseBtn);
|
|
62
|
+
expect(input.value).toBe('1');
|
|
63
|
+
expect(decreaseBtn).toBeDisabled();
|
|
64
|
+
});
|
|
65
|
+
it('applies disabled prop to input and buttons', () => {
|
|
66
|
+
const { container } = render(QuantitySelector, {
|
|
67
|
+
props: { ...baseProps, disabled: true },
|
|
68
|
+
});
|
|
69
|
+
getElements(container);
|
|
70
|
+
expect(input).toBeDisabled();
|
|
71
|
+
expect(increaseBtn).toBeDisabled();
|
|
72
|
+
expect(decreaseBtn).toBeDisabled();
|
|
73
|
+
});
|
|
74
|
+
it('applies readonly prop to input', () => {
|
|
75
|
+
const { container } = render(QuantitySelector, {
|
|
76
|
+
props: { ...baseProps, readonly: true },
|
|
77
|
+
});
|
|
78
|
+
getElements(container);
|
|
79
|
+
expect(input).toHaveAttribute('readonly');
|
|
80
|
+
});
|
|
81
|
+
it('adds invalid class when isinvalid is true', () => {
|
|
82
|
+
const { container } = render(QuantitySelector, {
|
|
83
|
+
props: { ...baseProps, isinvalid: true },
|
|
84
|
+
});
|
|
85
|
+
const wrapper = container.querySelector('.mc-quantity-selector');
|
|
86
|
+
expect(wrapper.classList.contains('is-invalid')).toBe(true);
|
|
87
|
+
});
|
|
88
|
+
it('clamps value on manual input above max', async () => {
|
|
89
|
+
const { container } = render(QuantitySelector, {
|
|
90
|
+
props: { ...baseProps, value: 4 },
|
|
91
|
+
});
|
|
92
|
+
getElements(container);
|
|
93
|
+
await fireEvent.input(input, { target: { value: '10' } });
|
|
94
|
+
expect(input.value).toBe('5');
|
|
95
|
+
});
|
|
96
|
+
it('clamps value on manual input below min', async () => {
|
|
97
|
+
const { container } = render(QuantitySelector, {
|
|
98
|
+
props: { ...baseProps, value: 2 },
|
|
99
|
+
});
|
|
100
|
+
getElements(container);
|
|
101
|
+
await fireEvent.input(input, { target: { value: '0' } });
|
|
102
|
+
expect(input.value).toBe('1');
|
|
103
|
+
});
|
|
104
|
+
});
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import type { Meta } from '@storybook/
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
declare const
|
|
10
|
-
export
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const Small: any;
|
|
13
|
-
export declare const Disabled: any;
|
|
14
|
-
export declare const Invalid: any;
|
|
15
|
-
export declare const Required: 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 Default: Story;
|
|
6
|
+
export declare const Step: Story;
|
|
7
|
+
export declare const Small: Story;
|
|
8
|
+
export declare const Disabled: Story;
|
|
9
|
+
export declare const ReadOnly: Story;
|
|
10
|
+
export declare const Invalid: Story;
|
|
11
|
+
export declare const readOnly: Story;
|
|
16
12
|
//# sourceMappingURL=QuantitySelector.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantitySelector.stories.d.ts","sourceRoot":"","sources":["../../../src/components/quantityselector/QuantitySelector.stories.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QuantitySelector.stories.d.ts","sourceRoot":"","sources":["../../../src/components/quantityselector/QuantitySelector.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IAkDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,KAKlB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC"}
|