@mozaic-ds/web-components 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Cross20.js +1 -1
- package/dist/Cross24.js +1 -1
- package/dist/CrossCircleFilled24.js +1 -1
- package/dist/Less24.js +2 -0
- package/dist/Less24.js.map +1 -0
- package/dist/attributes.js +1 -1
- package/dist/attributes.js.map +1 -1
- package/dist/bundle.d.ts +3 -0
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +3 -0
- package/dist/components/avatar/Avatar.js +2 -2
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/Avatar.stories.d.ts +2 -1
- package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.stories.js +2 -1
- package/dist/components/avatar/Avatar.svelte +2 -2
- package/dist/components/breadcrumb/Breadcrumb.js +2 -2
- package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.stories.d.ts +1 -0
- package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
- package/dist/components/breadcrumb/Breadcrumb.stories.js +1 -0
- package/dist/components/breadcrumb/Breadcrumb.svelte +2 -2
- package/dist/components/button/Button.js +2 -2
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/button/Button.stories.d.ts +2 -0
- package/dist/components/button/Button.stories.d.ts.map +1 -1
- package/dist/components/button/Button.stories.js +2 -0
- package/dist/components/button/Button.svelte +0 -1
- package/dist/components/button/Button.svelte.d.ts +0 -1
- package/dist/components/button/Button.svelte.d.ts.map +1 -1
- package/dist/components/callout/Callout.js +2 -2
- package/dist/components/callout/Callout.js.map +1 -1
- package/dist/components/callout/Callout.stories.d.ts +5 -2
- package/dist/components/callout/Callout.stories.d.ts.map +1 -1
- package/dist/components/callout/Callout.stories.js +5 -2
- package/dist/components/callout/Callout.svelte +2 -2
- package/dist/components/carousel/Carousel.js +4 -0
- package/dist/components/carousel/Carousel.js.map +1 -0
- package/dist/components/carousel/Carousel.spec.js +49 -0
- package/dist/components/carousel/Carousel.stories.d.ts +9 -0
- package/dist/components/carousel/Carousel.stories.d.ts.map +1 -0
- package/dist/components/carousel/Carousel.stories.js +72 -0
- package/dist/components/carousel/Carousel.svelte +187 -0
- package/dist/components/carousel/Carousel.svelte.d.ts +46 -0
- package/dist/components/carousel/Carousel.svelte.d.ts.map +1 -0
- package/dist/components/carousel/README.md +18 -0
- package/dist/components/checkbox/Checkbox.js +3 -3
- package/dist/components/checkbox/Checkbox.js.map +1 -1
- package/dist/components/checkbox/Checkbox.stories.d.ts +1 -0
- package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
- package/dist/components/checkbox/Checkbox.stories.js +1 -0
- package/dist/components/checkbox/Checkbox.svelte +2 -0
- package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
- package/dist/components/checkboxgroup/CheckboxGroup.js +4 -4
- package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
- package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +1 -0
- package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
- package/dist/components/checkboxgroup/CheckboxGroup.stories.js +1 -0
- package/dist/components/checkboxgroup/CheckboxGroup.svelte +2 -2
- package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
- package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
- package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +1 -0
- package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
- package/dist/components/circularprogressbar/CircularProgressbar.stories.js +1 -0
- package/dist/components/circularprogressbar/CircularProgressbar.svelte +0 -1
- package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +0 -1
- package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
- package/dist/components/container/Container.js +2 -2
- package/dist/components/container/Container.stories.d.ts +1 -0
- package/dist/components/container/Container.stories.d.ts.map +1 -1
- package/dist/components/container/Container.stories.js +1 -0
- package/dist/components/datepicker/Datepicker.js +3 -3
- package/dist/components/datepicker/Datepicker.js.map +1 -1
- package/dist/components/datepicker/Datepicker.stories.d.ts +1 -0
- package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
- package/dist/components/datepicker/Datepicker.stories.js +1 -0
- package/dist/components/datepicker/Datepicker.svelte +2 -0
- package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
- package/dist/components/divider/Divider.js +1 -1
- package/dist/components/divider/Divider.stories.d.ts +1 -0
- package/dist/components/divider/Divider.stories.d.ts.map +1 -1
- package/dist/components/divider/Divider.stories.js +1 -0
- package/dist/components/drawer/Drawer.js +2 -2
- package/dist/components/drawer/Drawer.js.map +1 -1
- package/dist/components/drawer/Drawer.stories.d.ts +2 -0
- package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
- package/dist/components/drawer/Drawer.stories.js +2 -0
- package/dist/components/drawer/Drawer.svelte +12 -2
- package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
- package/dist/components/field/Field.js +2 -2
- package/dist/components/field/Field.stories.d.ts +2 -0
- package/dist/components/field/Field.stories.d.ts.map +1 -1
- package/dist/components/field/Field.stories.js +2 -0
- package/dist/components/flag/Flag.js +2 -2
- package/dist/components/flag/Flag.js.map +1 -1
- package/dist/components/flag/Flag.stories.d.ts +1 -0
- package/dist/components/flag/Flag.stories.d.ts.map +1 -1
- package/dist/components/flag/Flag.stories.js +1 -0
- package/dist/components/flag/Flag.svelte +2 -2
- 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 +4 -2
- package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
- package/dist/components/iconbutton/IconButton.stories.js +4 -2
- package/dist/components/iconbutton/IconButton.svelte +0 -1
- package/dist/components/iconbutton/IconButton.svelte.d.ts +0 -1
- package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
- package/dist/components/kpiitem/KpiItem.js +2 -2
- package/dist/components/kpiitem/KpiItem.js.map +1 -1
- package/dist/components/kpiitem/KpiItem.stories.d.ts +1 -0
- package/dist/components/kpiitem/KpiItem.stories.d.ts.map +1 -1
- package/dist/components/kpiitem/KpiItem.stories.js +1 -0
- package/dist/components/kpiitem/KpiItem.svelte +2 -2
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +1 -0
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +1 -0
- package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +2 -1
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +1 -0
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +1 -0
- package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +2 -1
- package/dist/components/link/Link.js +2 -2
- package/dist/components/link/Link.js.map +1 -1
- package/dist/components/link/Link.stories.d.ts +3 -0
- package/dist/components/link/Link.stories.d.ts.map +1 -1
- package/dist/components/link/Link.stories.js +3 -0
- package/dist/components/link/Link.svelte +2 -0
- package/dist/components/link/Link.svelte.d.ts.map +1 -1
- package/dist/components/loader/Loader.js +2 -2
- package/dist/components/loader/Loader.js.map +1 -1
- package/dist/components/loader/Loader.stories.d.ts +1 -0
- package/dist/components/loader/Loader.stories.d.ts.map +1 -1
- package/dist/components/loader/Loader.stories.js +1 -0
- package/dist/components/loader/Loader.svelte +2 -1
- package/dist/components/loadingoverlay/LoadingOverlay.js +2 -2
- package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -1
- package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +1 -0
- package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -1
- package/dist/components/loadingoverlay/LoadingOverlay.stories.js +1 -0
- package/dist/components/loadingoverlay/LoadingOverlay.svelte +2 -2
- package/dist/components/modal/Modal.js +2 -2
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/Modal.stories.d.ts +5 -2
- package/dist/components/modal/Modal.stories.d.ts.map +1 -1
- package/dist/components/modal/Modal.stories.js +5 -2
- package/dist/components/modal/Modal.svelte +2 -1
- package/dist/components/numberbadge/NumberBadge.js +2 -2
- package/dist/components/numberbadge/NumberBadge.js.map +1 -1
- package/dist/components/numberbadge/NumberBadge.stories.d.ts +1 -0
- package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
- package/dist/components/numberbadge/NumberBadge.stories.js +1 -0
- package/dist/components/numberbadge/NumberBadge.svelte +5 -2
- package/dist/components/overlay/Overlay.js +2 -2
- package/dist/components/overlay/Overlay.stories.d.ts +1 -0
- package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
- package/dist/components/overlay/Overlay.stories.js +1 -0
- package/dist/components/pagination/Pagination.js +3 -3
- package/dist/components/pagination/Pagination.js.map +1 -1
- package/dist/components/pagination/Pagination.stories.d.ts +1 -0
- package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.stories.js +1 -0
- package/dist/components/passwordinput/PasswordInput.js +4 -3
- package/dist/components/passwordinput/PasswordInput.js.map +1 -1
- package/dist/components/passwordinput/PasswordInput.stories.d.ts +1 -0
- package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
- package/dist/components/passwordinput/PasswordInput.stories.js +1 -0
- package/dist/components/passwordinput/PasswordInput.svelte +2 -0
- package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
- package/dist/components/phonenumber/PhoneNumber.js +22 -0
- package/dist/components/phonenumber/PhoneNumber.js.map +1 -0
- package/dist/components/phonenumber/PhoneNumber.spec.js +103 -0
- package/dist/components/phonenumber/PhoneNumber.stories.d.ts +14 -0
- package/dist/components/phonenumber/PhoneNumber.stories.d.ts.map +1 -0
- package/dist/components/phonenumber/PhoneNumber.stories.js +116 -0
- package/dist/components/phonenumber/PhoneNumber.svelte +896 -0
- package/dist/components/phonenumber/PhoneNumber.svelte.d.ts +60 -0
- package/dist/components/phonenumber/PhoneNumber.svelte.d.ts.map +1 -0
- package/dist/components/phonenumber/README.md +27 -0
- package/dist/components/pincode/Pincode.js +2 -2
- package/dist/components/pincode/Pincode.stories.d.ts +1 -0
- package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
- package/dist/components/pincode/Pincode.stories.js +1 -0
- package/dist/components/quantityselector/QuantitySelector.js +2 -2
- package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
- package/dist/components/quantityselector/QuantitySelector.stories.d.ts +1 -0
- package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
- package/dist/components/quantityselector/QuantitySelector.stories.js +1 -0
- package/dist/components/quantityselector/QuantitySelector.svelte +6 -2
- package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
- package/dist/components/radio/Radio.js +2 -2
- package/dist/components/radio/Radio.js.map +1 -1
- package/dist/components/radio/Radio.stories.d.ts +1 -0
- package/dist/components/radio/Radio.stories.d.ts.map +1 -1
- package/dist/components/radio/Radio.stories.js +1 -0
- package/dist/components/radio/Radio.svelte +10 -1
- package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
- package/dist/components/radiogroup/RadioGroup.js +1 -1
- package/dist/components/radiogroup/RadioGroup.stories.d.ts +1 -0
- package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
- package/dist/components/radiogroup/RadioGroup.stories.js +1 -0
- package/dist/components/segmentedcontrol/SegmentedControl.js +2 -2
- package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts +1 -0
- package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -1
- package/dist/components/segmentedcontrol/SegmentedControl.stories.js +1 -0
- package/dist/components/select/Select.js +2 -2
- package/dist/components/select/Select.js.map +1 -1
- package/dist/components/select/Select.stories.d.ts +1 -0
- package/dist/components/select/Select.stories.d.ts.map +1 -1
- package/dist/components/select/Select.stories.js +1 -0
- package/dist/components/select/Select.svelte +2 -0
- package/dist/components/select/Select.svelte.d.ts.map +1 -1
- package/dist/components/starrating/README.md +22 -0
- package/dist/components/starrating/StarRating.js +4 -0
- package/dist/components/starrating/StarRating.js.map +1 -0
- package/dist/components/starrating/StarRating.spec.js +108 -0
- package/dist/components/starrating/StarRating.stories.d.ts +13 -0
- package/dist/components/starrating/StarRating.stories.d.ts.map +1 -0
- package/dist/components/starrating/StarRating.stories.js +82 -0
- package/dist/components/starrating/StarRating.svelte +227 -0
- package/dist/components/starrating/StarRating.svelte.d.ts +46 -0
- package/dist/components/starrating/StarRating.svelte.d.ts.map +1 -0
- package/dist/components/statusbadge/StatusBadge.js +2 -2
- package/dist/components/statusbadge/StatusBadge.js.map +1 -1
- package/dist/components/statusbadge/StatusBadge.stories.d.ts +1 -0
- package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
- package/dist/components/statusbadge/StatusBadge.stories.js +1 -0
- package/dist/components/statusbadge/StatusBadge.svelte +2 -2
- package/dist/components/statusdot/StatusDot.js +2 -2
- package/dist/components/statusdot/StatusDot.js.map +1 -1
- package/dist/components/statusdot/StatusDot.stories.d.ts +1 -0
- package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
- package/dist/components/statusdot/StatusDot.stories.js +1 -0
- package/dist/components/statusdot/StatusDot.svelte +5 -2
- package/dist/components/statusmessage/StatusMessage.js +2 -2
- package/dist/components/statusmessage/StatusMessage.js.map +1 -1
- package/dist/components/statusmessage/StatusMessage.stories.d.ts +1 -0
- package/dist/components/statusmessage/StatusMessage.stories.d.ts.map +1 -1
- package/dist/components/statusmessage/StatusMessage.stories.js +1 -0
- package/dist/components/statusmessage/StatusMessage.svelte +2 -2
- package/dist/components/statusnotification/StatusNotification.js +2 -2
- package/dist/components/statusnotification/StatusNotification.js.map +1 -1
- package/dist/components/statusnotification/StatusNotification.stories.d.ts +4 -0
- package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
- package/dist/components/statusnotification/StatusNotification.stories.js +4 -0
- package/dist/components/statusnotification/StatusNotification.svelte +2 -1
- package/dist/components/steppercompact/StepperCompact.js +2 -2
- package/dist/components/steppercompact/StepperCompact.stories.d.ts +1 -0
- package/dist/components/steppercompact/StepperCompact.stories.d.ts.map +1 -1
- package/dist/components/steppercompact/StepperCompact.stories.js +1 -0
- package/dist/components/tab/Tab.js +1 -1
- package/dist/components/tab/Tab.js.map +1 -1
- package/dist/components/tab/Tab.svelte +0 -1
- package/dist/components/tab/Tab.svelte.d.ts +0 -1
- package/dist/components/tab/Tab.svelte.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +2 -2
- package/dist/components/tabs/Tabs.stories.d.ts +3 -0
- package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.stories.js +3 -0
- package/dist/components/tag/Tag.js +2 -2
- package/dist/components/tag/Tag.js.map +1 -1
- package/dist/components/tag/Tag.stories.d.ts +1 -0
- package/dist/components/tag/Tag.stories.d.ts.map +1 -1
- package/dist/components/tag/Tag.stories.js +1 -0
- package/dist/components/tag/Tag.svelte +15 -4
- package/dist/components/tag/Tag.svelte.d.ts.map +1 -1
- package/dist/components/textarea/Textarea.js +2 -2
- package/dist/components/textarea/Textarea.js.map +1 -1
- package/dist/components/textarea/Textarea.stories.d.ts +1 -0
- package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
- package/dist/components/textarea/Textarea.stories.js +1 -0
- package/dist/components/textarea/Textarea.svelte +2 -0
- package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
- package/dist/components/textinput/Textinput.js +2 -2
- package/dist/components/textinput/Textinput.js.map +1 -1
- package/dist/components/textinput/Textinput.stories.d.ts +1 -0
- package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
- package/dist/components/textinput/Textinput.stories.js +1 -0
- package/dist/components/textinput/Textinput.svelte +2 -0
- package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
- package/dist/components/toaster/Toaster.js +2 -2
- package/dist/components/toaster/Toaster.js.map +1 -1
- package/dist/components/toaster/Toaster.stories.d.ts +3 -0
- package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
- package/dist/components/toaster/Toaster.stories.js +3 -0
- package/dist/components/toaster/Toaster.svelte +2 -0
- package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.js +2 -2
- package/dist/components/toggle/Toggle.js.map +1 -1
- package/dist/components/toggle/Toggle.stories.d.ts +1 -0
- package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
- package/dist/components/toggle/Toggle.stories.js +1 -0
- package/dist/components/toggle/Toggle.svelte +18 -2
- package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
- package/dist/components/togglegroup/ToggleGroup.js +2 -2
- package/dist/components/togglegroup/ToggleGroup.stories.d.ts +1 -0
- package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/components/togglegroup/ToggleGroup.stories.js +1 -0
- package/dist/components/tooltip/Tooltip.js +2 -2
- package/dist/components/tooltip/Tooltip.js.map +1 -1
- package/dist/components/tooltip/Tooltip.stories.d.ts +1 -0
- package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/components/tooltip/Tooltip.stories.js +1 -0
- package/dist/components/tooltip/Tooltip.svelte +2 -1
- package/dist/custom-element.js +3 -3
- package/dist/custom-element.js.map +1 -1
- 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 +4 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +4 -1
- package/dist/slot.js +1 -1
- package/dist/svelte-component.js +1 -1
- package/dist/this.js +1 -1
- package/dist/this.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
2
|
+
import { render, fireEvent } from '@testing-library/svelte';
|
|
3
|
+
import PhoneNumber from './PhoneNumber.svelte';
|
|
4
|
+
describe('m-phone-number component', () => {
|
|
5
|
+
const baseProps = {
|
|
6
|
+
id: 'phone-id',
|
|
7
|
+
value: '',
|
|
8
|
+
defaultcountry: 'FR',
|
|
9
|
+
};
|
|
10
|
+
it('renders component root and input', () => {
|
|
11
|
+
const { container } = render(PhoneNumber, { props: baseProps });
|
|
12
|
+
const root = container.querySelector('#mc-phone-number-input');
|
|
13
|
+
const input = container.querySelector('input[type="tel"]');
|
|
14
|
+
expect(root).toBeTruthy();
|
|
15
|
+
expect(input).toBeTruthy();
|
|
16
|
+
expect(input?.id).toBe('phone-id');
|
|
17
|
+
});
|
|
18
|
+
it('renders prefix when prefix=true', () => {
|
|
19
|
+
const { container } = render(PhoneNumber, { props: { ...baseProps, prefix: true } });
|
|
20
|
+
const prefix = container.querySelector('.mc-phone-number-input__country-code');
|
|
21
|
+
expect(prefix).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
it('hides prefix when prefix=false', () => {
|
|
24
|
+
const { container } = render(PhoneNumber, { props: { ...baseProps, prefix: false } });
|
|
25
|
+
const prefix = container.querySelector('.mc-phone-number-input__country-code');
|
|
26
|
+
expect(prefix).toBeFalsy();
|
|
27
|
+
});
|
|
28
|
+
it('renders flag selector when flag=true', () => {
|
|
29
|
+
const { container } = render(PhoneNumber, { props: { ...baseProps, flag: true } });
|
|
30
|
+
const selectWrapper = container.querySelector('.mc-phone-number-input__select-wrapper');
|
|
31
|
+
expect(selectWrapper).toBeTruthy();
|
|
32
|
+
expect(selectWrapper?.classList.contains('mc-phone-number-input__select-wrapper--hidden')).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
it('hides flag selector when flag=false', () => {
|
|
35
|
+
const { container } = render(PhoneNumber, { props: { ...baseProps, flag: false } });
|
|
36
|
+
const selectWrapper = container.querySelector('.mc-phone-number-input__select-wrapper');
|
|
37
|
+
expect(selectWrapper?.classList.contains('mc-phone-number-input__select-wrapper--hidden')).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
it('applies disabled and readonly props to input', () => {
|
|
40
|
+
const { container } = render(PhoneNumber, {
|
|
41
|
+
props: { ...baseProps, disabled: true, readonly: true },
|
|
42
|
+
});
|
|
43
|
+
const input = container.querySelector('input');
|
|
44
|
+
expect(input.disabled).toBe(true);
|
|
45
|
+
expect(input.readOnly).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
it('updates internal value when typing', async () => {
|
|
48
|
+
const { container } = render(PhoneNumber, { props: baseProps });
|
|
49
|
+
const input = container.querySelector('input[type="tel"]');
|
|
50
|
+
await fireEvent.input(input, { target: { value: '012345' } });
|
|
51
|
+
expect(input.value).toBe('012345');
|
|
52
|
+
});
|
|
53
|
+
it('sanitizes invalid characters', async () => {
|
|
54
|
+
const { container } = render(PhoneNumber, { props: baseProps });
|
|
55
|
+
const input = container.querySelector('input[type="tel"]');
|
|
56
|
+
await fireEvent.input(input, { target: { value: '12a3#4' } });
|
|
57
|
+
expect(input.value).toBe('1234');
|
|
58
|
+
});
|
|
59
|
+
it('emits valid event with true when value becomes valid', async () => {
|
|
60
|
+
const { container } = render(PhoneNumber, {
|
|
61
|
+
props: { id: 'phone', defaultcountry: 'FR' },
|
|
62
|
+
});
|
|
63
|
+
const root = container.querySelector('#mc-phone-number-input');
|
|
64
|
+
const input = container.querySelector('input[type="tel"]');
|
|
65
|
+
const validHandler = vi.fn();
|
|
66
|
+
root.addEventListener('valid', validHandler);
|
|
67
|
+
await fireEvent.input(input, { target: { value: '0601020304' } });
|
|
68
|
+
expect(validHandler).toHaveBeenCalledOnce();
|
|
69
|
+
expect(validHandler.mock.calls[0][0].detail).toBe(true);
|
|
70
|
+
});
|
|
71
|
+
it('applies is-invalid class when isinvalid=true', () => {
|
|
72
|
+
const { container } = render(PhoneNumber, {
|
|
73
|
+
props: { ...baseProps, isinvalid: true },
|
|
74
|
+
});
|
|
75
|
+
const wrapper = container.querySelector('.mc-phone-number-input__input');
|
|
76
|
+
expect(wrapper.classList.contains('is-invalid')).toBe(true);
|
|
77
|
+
});
|
|
78
|
+
it('renders dynamic placeholder when no placeholder is passed', () => {
|
|
79
|
+
const { container } = render(PhoneNumber, {
|
|
80
|
+
props: { ...baseProps, placeholder: '' },
|
|
81
|
+
});
|
|
82
|
+
const input = container.querySelector('input[type="tel"]');
|
|
83
|
+
expect(input.placeholder.length).toBeGreaterThan(0);
|
|
84
|
+
});
|
|
85
|
+
it('renders provided placeholder over dynamic one', () => {
|
|
86
|
+
const { container } = render(PhoneNumber, {
|
|
87
|
+
props: { ...baseProps, placeholder: 'Enter your phone' },
|
|
88
|
+
});
|
|
89
|
+
const input = container.querySelector('input[type="tel"]');
|
|
90
|
+
expect(input.placeholder).toBe('Enter your phone');
|
|
91
|
+
});
|
|
92
|
+
it('renders only allowed countries when countrycodes is provided', () => {
|
|
93
|
+
const { container } = render(PhoneNumber, {
|
|
94
|
+
props: { ...baseProps, countrycodes: ['FR', 'US'] },
|
|
95
|
+
});
|
|
96
|
+
const options = Array.from(container.querySelectorAll('select option'))
|
|
97
|
+
.map((opt) => opt.getAttribute('value'))
|
|
98
|
+
.filter(Boolean);
|
|
99
|
+
expect(options).toContain('FR');
|
|
100
|
+
expect(options).toContain('US');
|
|
101
|
+
expect(options.length).toBe(2);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import './PhoneNumber.svelte';
|
|
3
|
+
declare const meta: Meta;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Size: Story;
|
|
8
|
+
export declare const IsInvalid: Story;
|
|
9
|
+
export declare const NoPrefix: Story;
|
|
10
|
+
export declare const NoFlag: Story;
|
|
11
|
+
export declare const Disabled: Story;
|
|
12
|
+
export declare const ReadOnly: Story;
|
|
13
|
+
export declare const LimitedCountries: Story;
|
|
14
|
+
//# sourceMappingURL=PhoneNumber.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhoneNumber.stories.d.ts","sourceRoot":"","sources":["../../../src/components/phonenumber/PhoneNumber.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,sBAAsB,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,IAmDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAY9B,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { ifDefined } from 'lit-html/directives/if-defined.js';
|
|
3
|
+
import { action } from 'storybook/actions';
|
|
4
|
+
import './PhoneNumber.svelte';
|
|
5
|
+
const meta = {
|
|
6
|
+
title: 'Form Elements/Phone Number',
|
|
7
|
+
component: 'm-phone-number',
|
|
8
|
+
argTypes: {
|
|
9
|
+
size: {
|
|
10
|
+
control: 'inline-radio',
|
|
11
|
+
options: ['s', 'm'],
|
|
12
|
+
},
|
|
13
|
+
valid: {
|
|
14
|
+
control: false,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
render: (args) => {
|
|
18
|
+
const onInput = action('input');
|
|
19
|
+
const onChange = action('change');
|
|
20
|
+
const onFocus = action('focus');
|
|
21
|
+
const onBlur = action('blur');
|
|
22
|
+
const onValid = action('valid');
|
|
23
|
+
return html `
|
|
24
|
+
<m-phone-number
|
|
25
|
+
id=${ifDefined(args.id)}
|
|
26
|
+
value=${ifDefined(args.value)}
|
|
27
|
+
defaultcountry=${ifDefined(args.defaultcountry)}
|
|
28
|
+
placeholder=${ifDefined(args.placeholder)}
|
|
29
|
+
size=${ifDefined(args.size)}
|
|
30
|
+
isinvalid=${ifDefined(args.isinvalid)}
|
|
31
|
+
disabled=${ifDefined(args.disabled)}
|
|
32
|
+
readonly=${ifDefined(args.readonly)}
|
|
33
|
+
.prefix=${args.prefix}
|
|
34
|
+
.flag=${ifDefined(args.flag)}
|
|
35
|
+
locale=${ifDefined(args.locale)}
|
|
36
|
+
.countrycodes=${ifDefined(args.countrycodes)}
|
|
37
|
+
@input=${(event) => {
|
|
38
|
+
onInput(event);
|
|
39
|
+
}}
|
|
40
|
+
@change=${(event) => {
|
|
41
|
+
onChange(event);
|
|
42
|
+
}}
|
|
43
|
+
@focus=${(event) => {
|
|
44
|
+
onFocus(event);
|
|
45
|
+
}}
|
|
46
|
+
@blur=${(event) => {
|
|
47
|
+
onBlur(event);
|
|
48
|
+
}}
|
|
49
|
+
@valid=${(event) => {
|
|
50
|
+
onValid(event.detail);
|
|
51
|
+
}}
|
|
52
|
+
></m-phone-number>
|
|
53
|
+
`;
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
export default meta;
|
|
57
|
+
export const Default = {};
|
|
58
|
+
export const Size = {
|
|
59
|
+
args: {
|
|
60
|
+
size: 's',
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
export const IsInvalid = {
|
|
64
|
+
args: {
|
|
65
|
+
isinvalid: true,
|
|
66
|
+
value: '1912',
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
export const NoPrefix = {
|
|
70
|
+
args: {
|
|
71
|
+
prefix: false,
|
|
72
|
+
},
|
|
73
|
+
parameters: {
|
|
74
|
+
docs: {
|
|
75
|
+
source: {
|
|
76
|
+
code: `<m-phone-number prefix="false"></m-phone-number>`,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
export const NoFlag = {
|
|
82
|
+
args: {
|
|
83
|
+
flag: false,
|
|
84
|
+
},
|
|
85
|
+
parameters: {
|
|
86
|
+
docs: {
|
|
87
|
+
source: {
|
|
88
|
+
code: `<m-phone-number flag="false"></m-phone-number>`,
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
export const Disabled = {
|
|
94
|
+
args: {
|
|
95
|
+
value: '0103948374',
|
|
96
|
+
disabled: true,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
export const ReadOnly = {
|
|
100
|
+
args: {
|
|
101
|
+
value: '0103948374',
|
|
102
|
+
readonly: true,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
export const LimitedCountries = {
|
|
106
|
+
args: {
|
|
107
|
+
countrycodes: ['FR', 'US', 'GB', 'DE', 'ES', 'IT'],
|
|
108
|
+
},
|
|
109
|
+
parameters: {
|
|
110
|
+
docs: {
|
|
111
|
+
description: {
|
|
112
|
+
story: 'Limit the country selector to only specific countries instead of showing all available countries.',
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
},
|
|
116
|
+
};
|