@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.
Files changed (324) hide show
  1. package/dist/Cross20.js +1 -1
  2. package/dist/Cross24.js +1 -1
  3. package/dist/CrossCircleFilled24.js +1 -1
  4. package/dist/Less24.js +2 -0
  5. package/dist/Less24.js.map +1 -0
  6. package/dist/attributes.js +1 -1
  7. package/dist/attributes.js.map +1 -1
  8. package/dist/bundle.d.ts +3 -0
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +3 -0
  11. package/dist/components/avatar/Avatar.js +2 -2
  12. package/dist/components/avatar/Avatar.js.map +1 -1
  13. package/dist/components/avatar/Avatar.stories.d.ts +2 -1
  14. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  15. package/dist/components/avatar/Avatar.stories.js +2 -1
  16. package/dist/components/avatar/Avatar.svelte +2 -2
  17. package/dist/components/breadcrumb/Breadcrumb.js +2 -2
  18. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  19. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts +1 -0
  20. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  21. package/dist/components/breadcrumb/Breadcrumb.stories.js +1 -0
  22. package/dist/components/breadcrumb/Breadcrumb.svelte +2 -2
  23. package/dist/components/button/Button.js +2 -2
  24. package/dist/components/button/Button.js.map +1 -1
  25. package/dist/components/button/Button.stories.d.ts +2 -0
  26. package/dist/components/button/Button.stories.d.ts.map +1 -1
  27. package/dist/components/button/Button.stories.js +2 -0
  28. package/dist/components/button/Button.svelte +0 -1
  29. package/dist/components/button/Button.svelte.d.ts +0 -1
  30. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  31. package/dist/components/callout/Callout.js +2 -2
  32. package/dist/components/callout/Callout.js.map +1 -1
  33. package/dist/components/callout/Callout.stories.d.ts +5 -2
  34. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  35. package/dist/components/callout/Callout.stories.js +5 -2
  36. package/dist/components/callout/Callout.svelte +2 -2
  37. package/dist/components/carousel/Carousel.js +4 -0
  38. package/dist/components/carousel/Carousel.js.map +1 -0
  39. package/dist/components/carousel/Carousel.spec.js +49 -0
  40. package/dist/components/carousel/Carousel.stories.d.ts +9 -0
  41. package/dist/components/carousel/Carousel.stories.d.ts.map +1 -0
  42. package/dist/components/carousel/Carousel.stories.js +72 -0
  43. package/dist/components/carousel/Carousel.svelte +187 -0
  44. package/dist/components/carousel/Carousel.svelte.d.ts +46 -0
  45. package/dist/components/carousel/Carousel.svelte.d.ts.map +1 -0
  46. package/dist/components/carousel/README.md +18 -0
  47. package/dist/components/checkbox/Checkbox.js +3 -3
  48. package/dist/components/checkbox/Checkbox.js.map +1 -1
  49. package/dist/components/checkbox/Checkbox.stories.d.ts +1 -0
  50. package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
  51. package/dist/components/checkbox/Checkbox.stories.js +1 -0
  52. package/dist/components/checkbox/Checkbox.svelte +2 -0
  53. package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
  54. package/dist/components/checkboxgroup/CheckboxGroup.js +4 -4
  55. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  56. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +1 -0
  57. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
  58. package/dist/components/checkboxgroup/CheckboxGroup.stories.js +1 -0
  59. package/dist/components/checkboxgroup/CheckboxGroup.svelte +2 -2
  60. package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
  61. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  62. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +1 -0
  63. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
  64. package/dist/components/circularprogressbar/CircularProgressbar.stories.js +1 -0
  65. package/dist/components/circularprogressbar/CircularProgressbar.svelte +0 -1
  66. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +0 -1
  67. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
  68. package/dist/components/container/Container.js +2 -2
  69. package/dist/components/container/Container.stories.d.ts +1 -0
  70. package/dist/components/container/Container.stories.d.ts.map +1 -1
  71. package/dist/components/container/Container.stories.js +1 -0
  72. package/dist/components/datepicker/Datepicker.js +3 -3
  73. package/dist/components/datepicker/Datepicker.js.map +1 -1
  74. package/dist/components/datepicker/Datepicker.stories.d.ts +1 -0
  75. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  76. package/dist/components/datepicker/Datepicker.stories.js +1 -0
  77. package/dist/components/datepicker/Datepicker.svelte +2 -0
  78. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  79. package/dist/components/divider/Divider.js +1 -1
  80. package/dist/components/divider/Divider.stories.d.ts +1 -0
  81. package/dist/components/divider/Divider.stories.d.ts.map +1 -1
  82. package/dist/components/divider/Divider.stories.js +1 -0
  83. package/dist/components/drawer/Drawer.js +2 -2
  84. package/dist/components/drawer/Drawer.js.map +1 -1
  85. package/dist/components/drawer/Drawer.stories.d.ts +2 -0
  86. package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
  87. package/dist/components/drawer/Drawer.stories.js +2 -0
  88. package/dist/components/drawer/Drawer.svelte +12 -2
  89. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  90. package/dist/components/field/Field.js +2 -2
  91. package/dist/components/field/Field.stories.d.ts +2 -0
  92. package/dist/components/field/Field.stories.d.ts.map +1 -1
  93. package/dist/components/field/Field.stories.js +2 -0
  94. package/dist/components/flag/Flag.js +2 -2
  95. package/dist/components/flag/Flag.js.map +1 -1
  96. package/dist/components/flag/Flag.stories.d.ts +1 -0
  97. package/dist/components/flag/Flag.stories.d.ts.map +1 -1
  98. package/dist/components/flag/Flag.stories.js +1 -0
  99. package/dist/components/flag/Flag.svelte +2 -2
  100. package/dist/components/iconbutton/IconButton.js +2 -2
  101. package/dist/components/iconbutton/IconButton.js.map +1 -1
  102. package/dist/components/iconbutton/IconButton.stories.d.ts +4 -2
  103. package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
  104. package/dist/components/iconbutton/IconButton.stories.js +4 -2
  105. package/dist/components/iconbutton/IconButton.svelte +0 -1
  106. package/dist/components/iconbutton/IconButton.svelte.d.ts +0 -1
  107. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  108. package/dist/components/kpiitem/KpiItem.js +2 -2
  109. package/dist/components/kpiitem/KpiItem.js.map +1 -1
  110. package/dist/components/kpiitem/KpiItem.stories.d.ts +1 -0
  111. package/dist/components/kpiitem/KpiItem.stories.d.ts.map +1 -1
  112. package/dist/components/kpiitem/KpiItem.stories.js +1 -0
  113. package/dist/components/kpiitem/KpiItem.svelte +2 -2
  114. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
  115. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  116. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +1 -0
  117. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
  118. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +1 -0
  119. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +2 -1
  120. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
  121. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  122. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +1 -0
  123. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
  124. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +1 -0
  125. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +2 -1
  126. package/dist/components/link/Link.js +2 -2
  127. package/dist/components/link/Link.js.map +1 -1
  128. package/dist/components/link/Link.stories.d.ts +3 -0
  129. package/dist/components/link/Link.stories.d.ts.map +1 -1
  130. package/dist/components/link/Link.stories.js +3 -0
  131. package/dist/components/link/Link.svelte +2 -0
  132. package/dist/components/link/Link.svelte.d.ts.map +1 -1
  133. package/dist/components/loader/Loader.js +2 -2
  134. package/dist/components/loader/Loader.js.map +1 -1
  135. package/dist/components/loader/Loader.stories.d.ts +1 -0
  136. package/dist/components/loader/Loader.stories.d.ts.map +1 -1
  137. package/dist/components/loader/Loader.stories.js +1 -0
  138. package/dist/components/loader/Loader.svelte +2 -1
  139. package/dist/components/loadingoverlay/LoadingOverlay.js +2 -2
  140. package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -1
  141. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +1 -0
  142. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -1
  143. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +1 -0
  144. package/dist/components/loadingoverlay/LoadingOverlay.svelte +2 -2
  145. package/dist/components/modal/Modal.js +2 -2
  146. package/dist/components/modal/Modal.js.map +1 -1
  147. package/dist/components/modal/Modal.stories.d.ts +5 -2
  148. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  149. package/dist/components/modal/Modal.stories.js +5 -2
  150. package/dist/components/modal/Modal.svelte +2 -1
  151. package/dist/components/numberbadge/NumberBadge.js +2 -2
  152. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  153. package/dist/components/numberbadge/NumberBadge.stories.d.ts +1 -0
  154. package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
  155. package/dist/components/numberbadge/NumberBadge.stories.js +1 -0
  156. package/dist/components/numberbadge/NumberBadge.svelte +5 -2
  157. package/dist/components/overlay/Overlay.js +2 -2
  158. package/dist/components/overlay/Overlay.stories.d.ts +1 -0
  159. package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
  160. package/dist/components/overlay/Overlay.stories.js +1 -0
  161. package/dist/components/pagination/Pagination.js +3 -3
  162. package/dist/components/pagination/Pagination.js.map +1 -1
  163. package/dist/components/pagination/Pagination.stories.d.ts +1 -0
  164. package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
  165. package/dist/components/pagination/Pagination.stories.js +1 -0
  166. package/dist/components/passwordinput/PasswordInput.js +4 -3
  167. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  168. package/dist/components/passwordinput/PasswordInput.stories.d.ts +1 -0
  169. package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
  170. package/dist/components/passwordinput/PasswordInput.stories.js +1 -0
  171. package/dist/components/passwordinput/PasswordInput.svelte +2 -0
  172. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  173. package/dist/components/phonenumber/PhoneNumber.js +22 -0
  174. package/dist/components/phonenumber/PhoneNumber.js.map +1 -0
  175. package/dist/components/phonenumber/PhoneNumber.spec.js +103 -0
  176. package/dist/components/phonenumber/PhoneNumber.stories.d.ts +14 -0
  177. package/dist/components/phonenumber/PhoneNumber.stories.d.ts.map +1 -0
  178. package/dist/components/phonenumber/PhoneNumber.stories.js +116 -0
  179. package/dist/components/phonenumber/PhoneNumber.svelte +896 -0
  180. package/dist/components/phonenumber/PhoneNumber.svelte.d.ts +60 -0
  181. package/dist/components/phonenumber/PhoneNumber.svelte.d.ts.map +1 -0
  182. package/dist/components/phonenumber/README.md +27 -0
  183. package/dist/components/pincode/Pincode.js +2 -2
  184. package/dist/components/pincode/Pincode.stories.d.ts +1 -0
  185. package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
  186. package/dist/components/pincode/Pincode.stories.js +1 -0
  187. package/dist/components/quantityselector/QuantitySelector.js +2 -2
  188. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  189. package/dist/components/quantityselector/QuantitySelector.stories.d.ts +1 -0
  190. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  191. package/dist/components/quantityselector/QuantitySelector.stories.js +1 -0
  192. package/dist/components/quantityselector/QuantitySelector.svelte +6 -2
  193. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  194. package/dist/components/radio/Radio.js +2 -2
  195. package/dist/components/radio/Radio.js.map +1 -1
  196. package/dist/components/radio/Radio.stories.d.ts +1 -0
  197. package/dist/components/radio/Radio.stories.d.ts.map +1 -1
  198. package/dist/components/radio/Radio.stories.js +1 -0
  199. package/dist/components/radio/Radio.svelte +10 -1
  200. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  201. package/dist/components/radiogroup/RadioGroup.js +1 -1
  202. package/dist/components/radiogroup/RadioGroup.stories.d.ts +1 -0
  203. package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
  204. package/dist/components/radiogroup/RadioGroup.stories.js +1 -0
  205. package/dist/components/segmentedcontrol/SegmentedControl.js +2 -2
  206. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts +1 -0
  207. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -1
  208. package/dist/components/segmentedcontrol/SegmentedControl.stories.js +1 -0
  209. package/dist/components/select/Select.js +2 -2
  210. package/dist/components/select/Select.js.map +1 -1
  211. package/dist/components/select/Select.stories.d.ts +1 -0
  212. package/dist/components/select/Select.stories.d.ts.map +1 -1
  213. package/dist/components/select/Select.stories.js +1 -0
  214. package/dist/components/select/Select.svelte +2 -0
  215. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  216. package/dist/components/starrating/README.md +22 -0
  217. package/dist/components/starrating/StarRating.js +4 -0
  218. package/dist/components/starrating/StarRating.js.map +1 -0
  219. package/dist/components/starrating/StarRating.spec.js +108 -0
  220. package/dist/components/starrating/StarRating.stories.d.ts +13 -0
  221. package/dist/components/starrating/StarRating.stories.d.ts.map +1 -0
  222. package/dist/components/starrating/StarRating.stories.js +82 -0
  223. package/dist/components/starrating/StarRating.svelte +227 -0
  224. package/dist/components/starrating/StarRating.svelte.d.ts +46 -0
  225. package/dist/components/starrating/StarRating.svelte.d.ts.map +1 -0
  226. package/dist/components/statusbadge/StatusBadge.js +2 -2
  227. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  228. package/dist/components/statusbadge/StatusBadge.stories.d.ts +1 -0
  229. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  230. package/dist/components/statusbadge/StatusBadge.stories.js +1 -0
  231. package/dist/components/statusbadge/StatusBadge.svelte +2 -2
  232. package/dist/components/statusdot/StatusDot.js +2 -2
  233. package/dist/components/statusdot/StatusDot.js.map +1 -1
  234. package/dist/components/statusdot/StatusDot.stories.d.ts +1 -0
  235. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  236. package/dist/components/statusdot/StatusDot.stories.js +1 -0
  237. package/dist/components/statusdot/StatusDot.svelte +5 -2
  238. package/dist/components/statusmessage/StatusMessage.js +2 -2
  239. package/dist/components/statusmessage/StatusMessage.js.map +1 -1
  240. package/dist/components/statusmessage/StatusMessage.stories.d.ts +1 -0
  241. package/dist/components/statusmessage/StatusMessage.stories.d.ts.map +1 -1
  242. package/dist/components/statusmessage/StatusMessage.stories.js +1 -0
  243. package/dist/components/statusmessage/StatusMessage.svelte +2 -2
  244. package/dist/components/statusnotification/StatusNotification.js +2 -2
  245. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  246. package/dist/components/statusnotification/StatusNotification.stories.d.ts +4 -0
  247. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  248. package/dist/components/statusnotification/StatusNotification.stories.js +4 -0
  249. package/dist/components/statusnotification/StatusNotification.svelte +2 -1
  250. package/dist/components/steppercompact/StepperCompact.js +2 -2
  251. package/dist/components/steppercompact/StepperCompact.stories.d.ts +1 -0
  252. package/dist/components/steppercompact/StepperCompact.stories.d.ts.map +1 -1
  253. package/dist/components/steppercompact/StepperCompact.stories.js +1 -0
  254. package/dist/components/tab/Tab.js +1 -1
  255. package/dist/components/tab/Tab.js.map +1 -1
  256. package/dist/components/tab/Tab.svelte +0 -1
  257. package/dist/components/tab/Tab.svelte.d.ts +0 -1
  258. package/dist/components/tab/Tab.svelte.d.ts.map +1 -1
  259. package/dist/components/tabs/Tabs.js +2 -2
  260. package/dist/components/tabs/Tabs.stories.d.ts +3 -0
  261. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  262. package/dist/components/tabs/Tabs.stories.js +3 -0
  263. package/dist/components/tag/Tag.js +2 -2
  264. package/dist/components/tag/Tag.js.map +1 -1
  265. package/dist/components/tag/Tag.stories.d.ts +1 -0
  266. package/dist/components/tag/Tag.stories.d.ts.map +1 -1
  267. package/dist/components/tag/Tag.stories.js +1 -0
  268. package/dist/components/tag/Tag.svelte +15 -4
  269. package/dist/components/tag/Tag.svelte.d.ts.map +1 -1
  270. package/dist/components/textarea/Textarea.js +2 -2
  271. package/dist/components/textarea/Textarea.js.map +1 -1
  272. package/dist/components/textarea/Textarea.stories.d.ts +1 -0
  273. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  274. package/dist/components/textarea/Textarea.stories.js +1 -0
  275. package/dist/components/textarea/Textarea.svelte +2 -0
  276. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  277. package/dist/components/textinput/Textinput.js +2 -2
  278. package/dist/components/textinput/Textinput.js.map +1 -1
  279. package/dist/components/textinput/Textinput.stories.d.ts +1 -0
  280. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  281. package/dist/components/textinput/Textinput.stories.js +1 -0
  282. package/dist/components/textinput/Textinput.svelte +2 -0
  283. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  284. package/dist/components/toaster/Toaster.js +2 -2
  285. package/dist/components/toaster/Toaster.js.map +1 -1
  286. package/dist/components/toaster/Toaster.stories.d.ts +3 -0
  287. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  288. package/dist/components/toaster/Toaster.stories.js +3 -0
  289. package/dist/components/toaster/Toaster.svelte +2 -0
  290. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  291. package/dist/components/toggle/Toggle.js +2 -2
  292. package/dist/components/toggle/Toggle.js.map +1 -1
  293. package/dist/components/toggle/Toggle.stories.d.ts +1 -0
  294. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  295. package/dist/components/toggle/Toggle.stories.js +1 -0
  296. package/dist/components/toggle/Toggle.svelte +18 -2
  297. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  298. package/dist/components/togglegroup/ToggleGroup.js +2 -2
  299. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +1 -0
  300. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  301. package/dist/components/togglegroup/ToggleGroup.stories.js +1 -0
  302. package/dist/components/tooltip/Tooltip.js +2 -2
  303. package/dist/components/tooltip/Tooltip.js.map +1 -1
  304. package/dist/components/tooltip/Tooltip.stories.d.ts +1 -0
  305. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  306. package/dist/components/tooltip/Tooltip.stories.js +1 -0
  307. package/dist/components/tooltip/Tooltip.svelte +2 -1
  308. package/dist/custom-element.js +3 -3
  309. package/dist/custom-element.js.map +1 -1
  310. package/dist/each.js +1 -1
  311. package/dist/each.js.map +1 -1
  312. package/dist/if.js +1 -1
  313. package/dist/if.js.map +1 -1
  314. package/dist/input.js +1 -1
  315. package/dist/input.js.map +1 -1
  316. package/dist/legacy.js +1 -1
  317. package/dist/main.d.ts +4 -1
  318. package/dist/main.d.ts.map +1 -1
  319. package/dist/main.js +4 -1
  320. package/dist/slot.js +1 -1
  321. package/dist/svelte-component.js +1 -1
  322. package/dist/this.js +1 -1
  323. package/dist/this.js.map +1 -1
  324. 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
+ };