@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.
Files changed (482) hide show
  1. package/README.md +36 -68
  2. package/dist/Cross20.js +1 -1
  3. package/dist/Cross20.js.map +1 -1
  4. package/dist/Cross24.js +1 -1
  5. package/dist/Cross24.js.map +1 -1
  6. package/dist/CrossCircleFilled24.js +1 -1
  7. package/dist/CrossCircleFilled24.js.map +1 -1
  8. package/dist/attributes.js +1 -1
  9. package/dist/attributes.js.map +1 -1
  10. package/dist/bundle.d.ts +24 -23
  11. package/dist/bundle.d.ts.map +1 -1
  12. package/dist/bundle.js +24 -23
  13. package/dist/components/avatar/Avatar.js +2 -5
  14. package/dist/components/avatar/Avatar.js.map +1 -1
  15. package/dist/components/avatar/Avatar.spec.js +17 -0
  16. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  17. package/dist/components/avatar/Avatar.stories.js +3 -29
  18. package/dist/components/avatar/Avatar.svelte +9 -10
  19. package/dist/components/avatar/Avatar.svelte.d.ts +2 -0
  20. package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -1
  21. package/dist/components/avatar/README.md +16 -0
  22. package/dist/components/breadcrumb/Breadcrumb.js +6 -9
  23. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  24. package/dist/components/breadcrumb/Breadcrumb.spec.js +42 -0
  25. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  26. package/dist/components/breadcrumb/Breadcrumb.stories.js +6 -35
  27. package/dist/components/breadcrumb/Breadcrumb.svelte +26 -34
  28. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  29. package/dist/components/breadcrumb/README.md +11 -0
  30. package/dist/components/button/Button.js +3 -6
  31. package/dist/components/button/Button.js.map +1 -1
  32. package/dist/components/button/Button.spec.js +74 -0
  33. package/dist/components/button/Button.stories.d.ts +9 -13
  34. package/dist/components/button/Button.stories.d.ts.map +1 -1
  35. package/dist/components/button/Button.stories.js +46 -146
  36. package/dist/components/button/Button.svelte +186 -168
  37. package/dist/components/button/Button.svelte.d.ts +36 -8
  38. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  39. package/dist/components/button/README.md +26 -0
  40. package/dist/components/callout/Callout.js +2 -5
  41. package/dist/components/callout/Callout.js.map +1 -1
  42. package/dist/components/callout/Callout.spec.js +33 -0
  43. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  44. package/dist/components/callout/Callout.stories.js +2 -55
  45. package/dist/components/callout/Callout.svelte +15 -14
  46. package/dist/components/callout/Callout.svelte.d.ts +4 -0
  47. package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
  48. package/dist/components/callout/README.md +20 -0
  49. package/dist/components/checkbox/Checkbox.js +3 -6
  50. package/dist/components/checkbox/Checkbox.js.map +1 -1
  51. package/dist/components/checkbox/Checkbox.spec.js +70 -0
  52. package/dist/components/checkbox/Checkbox.stories.d.ts +11 -16
  53. package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
  54. package/dist/components/checkbox/Checkbox.stories.js +67 -124
  55. package/dist/components/checkbox/Checkbox.svelte +75 -58
  56. package/dist/components/checkbox/Checkbox.svelte.d.ts +31 -6
  57. package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
  58. package/dist/components/checkbox/README.md +17 -0
  59. package/dist/components/checkboxgroup/CheckboxGroup.js +4 -7
  60. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  61. package/dist/components/checkboxgroup/CheckboxGroup.spec.js +113 -0
  62. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +5 -13
  63. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
  64. package/dist/components/checkboxgroup/CheckboxGroup.stories.js +56 -140
  65. package/dist/components/checkboxgroup/CheckboxGroup.svelte +89 -81
  66. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts +30 -6
  67. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
  68. package/dist/components/checkboxgroup/README.md +14 -0
  69. package/dist/components/circularprogressbar/CircularProgressbar.js +4 -7
  70. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  71. package/dist/components/circularprogressbar/CircularProgressbar.spec.js +74 -0
  72. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +6 -6
  73. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
  74. package/dist/components/circularprogressbar/CircularProgressbar.stories.js +29 -68
  75. package/dist/components/circularprogressbar/CircularProgressbar.svelte +46 -30
  76. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +18 -0
  77. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
  78. package/dist/components/circularprogressbar/README.md +14 -0
  79. package/dist/components/datepicker/Datepicker.js +3 -6
  80. package/dist/components/datepicker/Datepicker.js.map +1 -1
  81. package/dist/components/datepicker/Datepicker.spec.js +95 -0
  82. package/dist/components/datepicker/Datepicker.stories.d.ts +7 -6
  83. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  84. package/dist/components/datepicker/Datepicker.stories.js +58 -75
  85. package/dist/components/datepicker/Datepicker.svelte +103 -79
  86. package/dist/components/datepicker/Datepicker.svelte.d.ts +30 -1
  87. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  88. package/dist/components/datepicker/README.md +18 -0
  89. package/dist/components/drawer/Drawer.js +12 -15
  90. package/dist/components/drawer/Drawer.js.map +1 -1
  91. package/dist/components/drawer/Drawer.spec.js +101 -0
  92. package/dist/components/drawer/Drawer.stories.d.ts +29 -8
  93. package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
  94. package/dist/components/drawer/Drawer.stories.js +86 -87
  95. package/dist/components/drawer/Drawer.svelte +185 -161
  96. package/dist/components/drawer/Drawer.svelte.d.ts +26 -3
  97. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  98. package/dist/components/drawer/README.md +29 -0
  99. package/dist/components/field/Field.js +3 -6
  100. package/dist/components/field/Field.js.map +1 -1
  101. package/dist/components/field/Field.spec.js +51 -0
  102. package/dist/components/field/Field.stories.d.ts +9 -15
  103. package/dist/components/field/Field.stories.d.ts.map +1 -1
  104. package/dist/components/field/Field.stories.js +86 -142
  105. package/dist/components/field/Field.svelte +63 -30
  106. package/dist/components/field/Field.svelte.d.ts +38 -7
  107. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  108. package/dist/components/field/README.md +24 -0
  109. package/dist/components/flag/Flag.js +2 -5
  110. package/dist/components/flag/Flag.js.map +1 -1
  111. package/dist/components/flag/Flag.spec.js +30 -0
  112. package/dist/components/flag/Flag.stories.d.ts +8 -18
  113. package/dist/components/flag/Flag.stories.d.ts.map +1 -1
  114. package/dist/components/flag/Flag.stories.js +28 -106
  115. package/dist/components/flag/Flag.svelte +23 -24
  116. package/dist/components/flag/Flag.svelte.d.ts +10 -28
  117. package/dist/components/flag/Flag.svelte.d.ts.map +1 -1
  118. package/dist/components/flag/README.md +11 -0
  119. package/dist/components/iconbutton/IconButton.js +2 -5
  120. package/dist/components/iconbutton/IconButton.js.map +1 -1
  121. package/dist/components/iconbutton/IconButton.stories.d.ts +11 -11
  122. package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
  123. package/dist/components/iconbutton/IconButton.stories.js +51 -67
  124. package/dist/components/iconbutton/IconButton.svelte +157 -152
  125. package/dist/components/iconbutton/IconButton.svelte.d.ts +28 -7
  126. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  127. package/dist/components/iconbutton/README.md +21 -0
  128. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -5
  129. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  130. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.spec.js +28 -0
  131. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +5 -7
  132. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
  133. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +18 -49
  134. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +19 -12
  135. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts +10 -1
  136. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
  137. package/dist/components/linearprogressbarbuffer/README.md +11 -0
  138. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -5
  139. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  140. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.spec.js +26 -0
  141. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +4 -5
  142. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
  143. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +15 -33
  144. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +19 -16
  145. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts +6 -0
  146. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts.map +1 -1
  147. package/dist/components/linearprogressbarpercentage/README.md +10 -0
  148. package/dist/components/link/Link.js +2 -5
  149. package/dist/components/link/Link.js.map +1 -1
  150. package/dist/components/link/Link.spec.js +51 -0
  151. package/dist/components/link/Link.stories.d.ts +12 -12
  152. package/dist/components/link/Link.stories.d.ts.map +1 -1
  153. package/dist/components/link/Link.stories.js +61 -74
  154. package/dist/components/link/Link.svelte +54 -52
  155. package/dist/components/link/Link.svelte.d.ts +29 -8
  156. package/dist/components/link/Link.svelte.d.ts.map +1 -1
  157. package/dist/components/link/README.md +23 -0
  158. package/dist/components/loader/Loader.js +7 -10
  159. package/dist/components/loader/Loader.js.map +1 -1
  160. package/dist/components/loader/Loader.spec.js +54 -0
  161. package/dist/components/loader/Loader.stories.d.ts +8 -10
  162. package/dist/components/loader/Loader.stories.d.ts.map +1 -1
  163. package/dist/components/loader/Loader.stories.js +27 -43
  164. package/dist/components/loader/Loader.svelte +42 -43
  165. package/dist/components/loader/Loader.svelte.d.ts +14 -3
  166. package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
  167. package/dist/components/loader/README.md +12 -0
  168. package/dist/components/loadingoverlay/LoadingOverlay.js +4 -0
  169. package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -0
  170. package/dist/components/loadingoverlay/LoadingOverlay.spec.js +38 -0
  171. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +7 -0
  172. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -0
  173. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +39 -0
  174. package/dist/components/loadingoverlay/LoadingOverlay.svelte +50 -0
  175. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts +17 -0
  176. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts.map +1 -0
  177. package/dist/components/loadingoverlay/README.md +11 -0
  178. package/dist/components/modal/Modal.js +14 -17
  179. package/dist/components/modal/Modal.js.map +1 -1
  180. package/dist/components/modal/Modal.spec.js +50 -0
  181. package/dist/components/modal/Modal.stories.d.ts +36 -9
  182. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  183. package/dist/components/modal/Modal.stories.js +54 -83
  184. package/dist/components/modal/Modal.svelte +167 -166
  185. package/dist/components/modal/Modal.svelte.d.ts +22 -5
  186. package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
  187. package/dist/components/modal/README.md +28 -0
  188. package/dist/components/numberbadge/NumberBadge.js +2 -5
  189. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  190. package/dist/components/numberbadge/NumberBadge.spec.js +28 -0
  191. package/dist/components/numberbadge/NumberBadge.stories.d.ts +9 -13
  192. package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
  193. package/dist/components/numberbadge/NumberBadge.stories.js +28 -56
  194. package/dist/components/numberbadge/NumberBadge.svelte +36 -35
  195. package/dist/components/numberbadge/NumberBadge.svelte.d.ts +15 -4
  196. package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
  197. package/dist/components/numberbadge/README.md +12 -0
  198. package/dist/components/overlay/Overlay.js +2 -5
  199. package/dist/components/overlay/Overlay.js.map +1 -1
  200. package/dist/components/overlay/Overlay.spec.js +29 -0
  201. package/dist/components/overlay/Overlay.stories.d.ts +5 -7
  202. package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
  203. package/dist/components/overlay/Overlay.stories.js +32 -40
  204. package/dist/components/overlay/Overlay.svelte +21 -12
  205. package/dist/components/overlay/Overlay.svelte.d.ts +11 -0
  206. package/dist/components/overlay/Overlay.svelte.d.ts.map +1 -1
  207. package/dist/components/overlay/README.md +17 -0
  208. package/dist/components/pagination/Pagination.js +8 -11
  209. package/dist/components/pagination/Pagination.js.map +1 -1
  210. package/dist/components/pagination/Pagination.spec.js +65 -0
  211. package/dist/components/pagination/Pagination.stories.d.ts +8 -11
  212. package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
  213. package/dist/components/pagination/Pagination.stories.js +37 -91
  214. package/dist/components/pagination/Pagination.svelte +53 -35
  215. package/dist/components/pagination/Pagination.svelte.d.ts +27 -4
  216. package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
  217. package/dist/components/pagination/README.md +16 -0
  218. package/dist/components/passwordinput/PasswordInput.js +4 -9
  219. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  220. package/dist/components/passwordinput/PasswordInput.spec.js +84 -0
  221. package/dist/components/passwordinput/PasswordInput.stories.d.ts +10 -13
  222. package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
  223. package/dist/components/passwordinput/PasswordInput.stories.js +67 -124
  224. package/dist/components/passwordinput/PasswordInput.svelte +424 -60
  225. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +34 -2
  226. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  227. package/dist/components/passwordinput/README.md +19 -0
  228. package/dist/components/pincode/Pincode.js +4 -7
  229. package/dist/components/pincode/Pincode.js.map +1 -1
  230. package/dist/components/pincode/Pincode.spec.js +99 -0
  231. package/dist/components/pincode/Pincode.stories.d.ts +9 -13
  232. package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
  233. package/dist/components/pincode/Pincode.stories.js +62 -127
  234. package/dist/components/pincode/Pincode.svelte +72 -60
  235. package/dist/components/pincode/Pincode.svelte.d.ts +30 -24
  236. package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
  237. package/dist/components/pincode/README.md +22 -0
  238. package/dist/components/quantityselector/QuantitySelector.js +3 -7
  239. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  240. package/dist/components/quantityselector/QuantitySelector.spec.js +104 -0
  241. package/dist/components/quantityselector/QuantitySelector.stories.d.ts +11 -15
  242. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  243. package/dist/components/quantityselector/QuantitySelector.stories.js +77 -145
  244. package/dist/components/quantityselector/QuantitySelector.svelte +136 -112
  245. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts +49 -17
  246. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  247. package/dist/components/quantityselector/README.md +21 -0
  248. package/dist/components/radio/README.md +15 -0
  249. package/dist/components/radio/Radio.js +2 -5
  250. package/dist/components/radio/Radio.js.map +1 -1
  251. package/dist/components/radio/Radio.spec.js +60 -0
  252. package/dist/components/radio/Radio.stories.d.ts +9 -13
  253. package/dist/components/radio/Radio.stories.d.ts.map +1 -1
  254. package/dist/components/radio/Radio.stories.js +54 -70
  255. package/dist/components/radio/Radio.svelte +58 -39
  256. package/dist/components/radio/Radio.svelte.d.ts +27 -5
  257. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  258. package/dist/components/radiogroup/README.md +14 -0
  259. package/dist/components/radiogroup/RadioGroup.js +4 -7
  260. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  261. package/dist/components/radiogroup/RadioGroup.spec.js +65 -0
  262. package/dist/components/radiogroup/RadioGroup.stories.d.ts +5 -12
  263. package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
  264. package/dist/components/radiogroup/RadioGroup.stories.js +56 -151
  265. package/dist/components/radiogroup/RadioGroup.svelte +81 -77
  266. package/dist/components/radiogroup/RadioGroup.svelte.d.ts +28 -9
  267. package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
  268. package/dist/components/select/README.md +18 -0
  269. package/dist/components/select/Select.js +3 -6
  270. package/dist/components/select/Select.js.map +1 -1
  271. package/dist/components/select/Select.spec.js +76 -0
  272. package/dist/components/select/Select.stories.d.ts +10 -14
  273. package/dist/components/select/Select.stories.d.ts.map +1 -1
  274. package/dist/components/select/Select.stories.js +87 -92
  275. package/dist/components/select/Select.svelte +77 -67
  276. package/dist/components/select/Select.svelte.d.ts +41 -10
  277. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  278. package/dist/components/statusbadge/README.md +11 -0
  279. package/dist/components/statusbadge/StatusBadge.js +2 -5
  280. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  281. package/dist/components/statusbadge/StatusBadge.spec.js +31 -0
  282. package/dist/components/statusbadge/StatusBadge.stories.d.ts +9 -12
  283. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  284. package/dist/components/statusbadge/StatusBadge.stories.js +21 -44
  285. package/dist/components/statusbadge/StatusBadge.svelte +34 -29
  286. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +13 -28
  287. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  288. package/dist/components/statusdot/README.md +11 -0
  289. package/dist/components/statusdot/StatusDot.js +2 -5
  290. package/dist/components/statusdot/StatusDot.js.map +1 -1
  291. package/dist/components/statusdot/StatusDot.spec.js +42 -0
  292. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  293. package/dist/components/statusdot/StatusDot.stories.js +9 -37
  294. package/dist/components/statusdot/StatusDot.svelte +15 -16
  295. package/dist/components/statusdot/StatusDot.svelte.d.ts +2 -2
  296. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  297. package/dist/components/statusnotification/README.md +25 -0
  298. package/dist/components/statusnotification/StatusNotification.js +3 -6
  299. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  300. package/dist/components/statusnotification/StatusNotification.spec.js +54 -0
  301. package/dist/components/statusnotification/StatusNotification.stories.d.ts +16 -14
  302. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  303. package/dist/components/statusnotification/StatusNotification.stories.js +53 -86
  304. package/dist/components/statusnotification/StatusNotification.svelte +186 -187
  305. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +21 -18
  306. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  307. package/dist/components/tab/README.md +20 -0
  308. package/dist/components/tab/Tab.js +4 -0
  309. package/dist/components/tab/Tab.js.map +1 -0
  310. package/dist/components/tab/Tab.spec.js +58 -0
  311. package/dist/components/tab/Tab.svelte +154 -0
  312. package/dist/components/{tabs → tab}/Tab.svelte.d.ts +20 -3
  313. package/dist/components/tab/Tab.svelte.d.ts.map +1 -0
  314. package/dist/components/tabs/README.md +18 -0
  315. package/dist/components/tabs/Tabs.js +2 -5
  316. package/dist/components/tabs/Tabs.js.map +1 -1
  317. package/dist/components/tabs/Tabs.spec.js +51 -0
  318. package/dist/components/tabs/Tabs.stories.d.ts +9 -6
  319. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  320. package/dist/components/tabs/Tabs.stories.js +59 -115
  321. package/dist/components/tabs/Tabs.svelte +46 -29
  322. package/dist/components/tabs/Tabs.svelte.d.ts +21 -7
  323. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  324. package/dist/components/tags/README.md +9 -0
  325. package/dist/components/tags/Tag.js +2 -5
  326. package/dist/components/tags/Tag.js.map +1 -1
  327. package/dist/components/tags/Tag.svelte +35 -38
  328. package/dist/components/tags/TagContextualised.js +2 -5
  329. package/dist/components/tags/TagContextualised.js.map +1 -1
  330. package/dist/components/tags/TagContextualised.svelte +35 -38
  331. package/dist/components/tags/TagInteractive.js +2 -5
  332. package/dist/components/tags/TagInteractive.js.map +1 -1
  333. package/dist/components/tags/TagInteractive.svelte +35 -38
  334. package/dist/components/tags/TagRemovable.js +2 -5
  335. package/dist/components/tags/TagRemovable.js.map +1 -1
  336. package/dist/components/tags/TagRemovable.svelte +35 -38
  337. package/dist/components/tags/TagSelectable.js +2 -5
  338. package/dist/components/tags/TagSelectable.js.map +1 -1
  339. package/dist/components/tags/TagSelectable.svelte +35 -38
  340. package/dist/components/tags/Tags.stories.d.ts.map +1 -1
  341. package/dist/components/tags/Tags.stories.js +7 -1
  342. package/dist/components/tags/TagsContextualised.stories.d.ts.map +1 -1
  343. package/dist/components/tags/TagsContextualised.stories.js +7 -1
  344. package/dist/components/tags/TagsInteractive.stories.d.ts.map +1 -1
  345. package/dist/components/tags/TagsInteractive.stories.js +7 -1
  346. package/dist/components/tags/TagsRemovable.stories.d.ts.map +1 -1
  347. package/dist/components/tags/TagsRemovable.stories.js +7 -1
  348. package/dist/components/tags/TagsSelectable.stories.d.ts.map +1 -1
  349. package/dist/components/tags/TagsSelectable.stories.js +7 -1
  350. package/dist/components/textarea/README.md +19 -0
  351. package/dist/components/textarea/Textarea.js +2 -8
  352. package/dist/components/textarea/Textarea.js.map +1 -1
  353. package/dist/components/textarea/Textarea.spec.js +67 -0
  354. package/dist/components/textarea/Textarea.stories.d.ts +9 -13
  355. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  356. package/dist/components/textarea/Textarea.stories.js +61 -92
  357. package/dist/components/textarea/Textarea.svelte +70 -117
  358. package/dist/components/textarea/Textarea.svelte.d.ts +43 -13
  359. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  360. package/dist/components/textinput/README.md +26 -0
  361. package/dist/components/textinput/Textinput.js +5 -9
  362. package/dist/components/textinput/Textinput.js.map +1 -1
  363. package/dist/components/textinput/Textinput.spec.js +89 -0
  364. package/dist/components/textinput/Textinput.stories.d.ts +11 -12
  365. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  366. package/dist/components/textinput/Textinput.stories.js +78 -137
  367. package/dist/components/textinput/Textinput.svelte +107 -148
  368. package/dist/components/textinput/Textinput.svelte.d.ts +46 -22
  369. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  370. package/dist/components/toaster/README.md +28 -0
  371. package/dist/components/toaster/Toaster.js +5 -8
  372. package/dist/components/toaster/Toaster.js.map +1 -1
  373. package/dist/components/toaster/Toaster.spec.js +100 -0
  374. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  375. package/dist/components/toaster/Toaster.stories.js +5 -73
  376. package/dist/components/toaster/Toaster.svelte +157 -146
  377. package/dist/components/toaster/Toaster.svelte.d.ts +3 -0
  378. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  379. package/dist/components/toggle/README.md +15 -0
  380. package/dist/components/toggle/Toggle.js +2 -5
  381. package/dist/components/toggle/Toggle.js.map +1 -1
  382. package/dist/components/toggle/Toggle.spec.js +69 -0
  383. package/dist/components/toggle/Toggle.stories.d.ts +9 -14
  384. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  385. package/dist/components/toggle/Toggle.stories.js +55 -64
  386. package/dist/components/toggle/Toggle.svelte +59 -48
  387. package/dist/components/toggle/Toggle.svelte.d.ts +26 -7
  388. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  389. package/dist/components/togglegroup/README.md +13 -0
  390. package/dist/components/togglegroup/ToggleGroup.js +3 -6
  391. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  392. package/dist/components/togglegroup/ToggleGroup.spec.js +50 -0
  393. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +5 -13
  394. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  395. package/dist/components/togglegroup/ToggleGroup.stories.js +56 -104
  396. package/dist/components/togglegroup/ToggleGroup.svelte +91 -97
  397. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +25 -14
  398. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  399. package/dist/components/tooltip/README.md +19 -0
  400. package/dist/components/tooltip/Tooltip.js +4 -7
  401. package/dist/components/tooltip/Tooltip.js.map +1 -1
  402. package/dist/components/tooltip/Tooltip.spec.js +38 -0
  403. package/dist/components/tooltip/Tooltip.stories.d.ts +6 -7
  404. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  405. package/dist/components/tooltip/Tooltip.stories.js +45 -59
  406. package/dist/components/tooltip/Tooltip.svelte +31 -25
  407. package/dist/components/tooltip/Tooltip.svelte.d.ts +17 -0
  408. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  409. package/dist/custom-element-forward-events.js.map +1 -1
  410. package/dist/custom-element.js +3 -3
  411. package/dist/custom-element.js.map +1 -1
  412. package/dist/documentation/Contributing.mdx +1 -1
  413. package/dist/documentation/Introduction.mdx +45 -11
  414. package/dist/documentation/SupportAndOnboarding.mdx +2 -2
  415. package/dist/each.js +1 -1
  416. package/dist/each.js.map +1 -1
  417. package/dist/if.js +1 -1
  418. package/dist/if.js.map +1 -1
  419. package/dist/input.js +1 -1
  420. package/dist/input.js.map +1 -1
  421. package/dist/legacy.js +1 -1
  422. package/dist/legacy.js.map +1 -1
  423. package/dist/main.d.ts +24 -23
  424. package/dist/main.d.ts.map +1 -1
  425. package/dist/main.js +24 -23
  426. package/dist/slot.js +1 -1
  427. package/dist/slot.js.map +1 -1
  428. package/dist/this.js +2 -0
  429. package/dist/this.js.map +1 -0
  430. package/package.json +12 -4
  431. package/dist/components/button/button.types.d.ts +0 -13
  432. package/dist/components/button/button.types.d.ts.map +0 -1
  433. package/dist/components/button/button.types.js +0 -1
  434. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts +0 -9
  435. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts.map +0 -1
  436. package/dist/components/checkboxgroup/checkboxgroup.types.js +0 -1
  437. package/dist/components/link/link.types.d.ts +0 -4
  438. package/dist/components/link/link.types.d.ts.map +0 -1
  439. package/dist/components/link/link.types.js +0 -1
  440. package/dist/components/loader/loader.types.d.ts +0 -3
  441. package/dist/components/loader/loader.types.d.ts.map +0 -1
  442. package/dist/components/loader/loader.types.js +0 -1
  443. package/dist/components/numberbadge/NumberBadge.types.d.ts +0 -3
  444. package/dist/components/numberbadge/NumberBadge.types.d.ts.map +0 -1
  445. package/dist/components/numberbadge/NumberBadge.types.js +0 -1
  446. package/dist/components/overlayloader/OverlayLoader.js +0 -30
  447. package/dist/components/overlayloader/OverlayLoader.js.map +0 -1
  448. package/dist/components/overlayloader/OverlayLoader.stories.d.ts +0 -8
  449. package/dist/components/overlayloader/OverlayLoader.stories.d.ts.map +0 -1
  450. package/dist/components/overlayloader/OverlayLoader.stories.js +0 -50
  451. package/dist/components/overlayloader/OverlayLoader.svelte +0 -159
  452. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts +0 -9
  453. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts.map +0 -1
  454. package/dist/components/quantityselector/quantitySelector.types.d.ts +0 -2
  455. package/dist/components/quantityselector/quantitySelector.types.d.ts.map +0 -1
  456. package/dist/components/quantityselector/quantitySelector.types.js +0 -1
  457. package/dist/components/radiogroup/radioGroup.types.d.ts +0 -9
  458. package/dist/components/radiogroup/radioGroup.types.d.ts.map +0 -1
  459. package/dist/components/radiogroup/radioGroup.types.js +0 -1
  460. package/dist/components/select/select.types.d.ts +0 -9
  461. package/dist/components/select/select.types.d.ts.map +0 -1
  462. package/dist/components/select/select.types.js +0 -1
  463. package/dist/components/statusbadge/StatusBadge.types.d.ts +0 -2
  464. package/dist/components/statusbadge/StatusBadge.types.d.ts.map +0 -1
  465. package/dist/components/statusbadge/StatusBadge.types.js +0 -1
  466. package/dist/components/statusdot/StatusDot.types.d.ts +0 -3
  467. package/dist/components/statusdot/StatusDot.types.d.ts.map +0 -1
  468. package/dist/components/statusdot/StatusDot.types.js +0 -1
  469. package/dist/components/tabs/Tab.js +0 -7
  470. package/dist/components/tabs/Tab.js.map +0 -1
  471. package/dist/components/tabs/Tab.svelte +0 -137
  472. package/dist/components/tabs/Tab.svelte.d.ts.map +0 -1
  473. package/dist/components/textinput/textinput.types.d.ts +0 -3
  474. package/dist/components/textinput/textinput.types.d.ts.map +0 -1
  475. package/dist/components/textinput/textinput.types.js +0 -1
  476. package/dist/components/toggle/toggle.types.d.ts +0 -2
  477. package/dist/components/toggle/toggle.types.d.ts.map +0 -1
  478. package/dist/components/toggle/toggle.types.js +0 -1
  479. package/dist/index-client.js +0 -2
  480. package/dist/index-client.js.map +0 -1
  481. package/dist/snippet.js +0 -2
  482. 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
- import { createEventDispatcher } from 'svelte';
5
-
6
- type PincodeLen = 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
- length?: PincodeLen | string; // <- peut arriver en string via l'attribut
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
- isInvalid?: boolean;
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
- isInvalid = false,
26
- disabled = false,
27
- readonly = false,
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
- function focusInput(i: number) {
63
+ const focusInput = (i: number) => {
47
64
  queueMicrotask(() => inputs?.[i]?.focus());
48
- }
65
+ };
49
66
 
50
- function emit() {
67
+ const emitInput = () => {
51
68
  const joined = otp.join('');
52
- dispatch('input', { value: joined });
53
- dispatch('change', { value: joined });
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
- function onInput(e: Event, index: number) {
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
- emit();
81
+ emitInput();
61
82
  if (digit && index + 1 < L) focusInput(index + 1);
62
- }
83
+ };
63
84
 
64
- function onKeyDown(e: KeyboardEvent, index: number) {
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
- emit();
94
+ emitInput();
74
95
  focusInput(index - 1);
75
96
  }
76
- }
97
+ };
77
98
 
78
- function onPaste(e: ClipboardEvent) {
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
- emit();
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="mc-pincode-input__control"
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
- on:input={(e) => onInput(e, i)}
111
- on:keydown={(e) => onKeyDown(e as KeyboardEvent, i)}
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
- type PincodeLen = 4 | 5 | 6;
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
- length?: PincodeLen | string;
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
- isInvalid?: boolean;
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
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
13
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
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":"AAME,KAAK,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5B,UAAU,KAAK;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAyFH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,OAAO;;;;;cAA+E,CAAC;AAC3E,KAAK,OAAO,GAAG,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC;AAC9C,eAAe,OAAO,CAAC"}
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 F,p as H,b as n,q as J,t as C,h as G,i as K,j as i,e as L,u as O,n as ee,a as te,f as ne,d as f,s as w,g as A,o as ie,r as v}from"../../custom-element.js";import{s as d,a as P,r as re}from"../../attributes.js";import{c as se}from"../../input.js";import"../../legacy.js";var le=J('<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 R(b,e){H(e,!1);let l=n(e,"id",12,void 0),r=n(e,"style",12,void 0),o=n(e,"className",12,void 0),a=n(e,"fill",12,void 0),m=n(e,"size",12,"1.5rem");var c=le();return C(()=>{d(c,"id",l()),P(c,r()),L(c,0,O(o())),d(c,"fill",a())}),G(b,c),K({get id(){return l()},set id(s){l(s),i()},get style(){return r()},set style(s){r(s),i()},get className(){return o()},set className(s){o(s),i()},get fill(){return a()},set fill(s){a(s),i()},get size(){return m()},set size(s){m(s),i()}})}customElements.define("less-24",F(R,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var ae=J('<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 T(b,e){H(e,!1);let l=n(e,"id",12,void 0),r=n(e,"style",12,void 0),o=n(e,"className",12,void 0),a=n(e,"fill",12,void 0),m=n(e,"size",12,"1.5rem");var c=ae();return C(()=>{d(c,"id",l()),P(c,r()),L(c,0,O(o())),d(c,"fill",a())}),G(b,c),K({get id(){return l()},set id(s){l(s),i()},get style(){return r()},set style(s){r(s),i()},get className(){return o()},set className(s){o(s),i()},get fill(){return a()},set fill(s){a(s),i()},get size(){return m()},set size(s){m(s),i()}})}customElements.define("more-24",F(T,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));function oe(b,e,l,r,o,a){var m,c;e()>l()&&e(l()),e()<r()&&e(r()),(m=o())==null||m(e()),(c=a())==null||c(b)}function ce(b,e,l,r,o){var a;e()-Number(l())>r()&&e(e()-Number(l())),(a=o())==null||a(e())}function ue(b,e,l,r,o){var a;e()+Number(l())<r()&&e(e()+Number(l())),(a=o())==null||a(e())}var de=ne('<div><input type="number" class="mc-quantity-selector__control svelte-529exj" spellcheck="false"/> <button type="button" class="mc-quantity-selector__button mc-quantity-selector__button--increase svelte-529exj" tabindex="-1"><span class="mc-quantity-selector__icon svelte-529exj"><!></span> <span class="mc-quantity-selector__label svelte-529exj"> </span></button> <button type="button" class="mc-quantity-selector__button mc-quantity-selector__button--decrease svelte-529exj" tabindex="-1"><span class="mc-quantity-selector__icon svelte-529exj"><!></span> <span class="mc-quantity-selector__label svelte-529exj"> </span></button></div>');const me={hash:"svelte-529exj",code:`/**
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 import type { QuantitySelectorSize } from './quantitySelector.types';\n interface Props {\n id?: string | undefined;\n quantity?: number;\n min?: number;\n max?: number;\n size?: QuantitySelectorSize;\n decrementlabel?: string;\n inputarialabel?: string;\n incrementlabel?: string;\n disabled?: boolean;\n isinvalid?: boolean;\n required?: boolean;\n name?: string;\n step?: number;\n increment?: (qty: number) => void;\n decrement?: (qty: number) => void;\n inputqty?: (qty: number) => void;\n oninput?: (event: Event) => void;\n onblur?: (event: FocusEvent) => void;\n }\n\n let {\n id = undefined,\n quantity = $bindable(1),\n min = 1,\n max = 100,\n size = 'm',\n decrementlabel = 'Decrement',\n inputarialabel = 'Quantity Selector',\n incrementlabel = 'Increment',\n disabled = false,\n isinvalid = false,\n required = false,\n name = 'quantity-selector-input',\n step = 1,\n increment,\n decrement,\n inputqty,\n oninput,\n onblur,\n }: Props = $props();\n\n function handleValue(event: Event): void {\n if (quantity > max) {\n quantity = max;\n }\n if (quantity < min) {\n quantity = min;\n }\n inputqty?.(quantity);\n oninput?.(event);\n }\n\n function handleDecrement(): void {\n if (quantity - Number(step) > min) {\n quantity = quantity - Number(step);\n }\n decrement?.(quantity);\n }\n\n function handleIncrement(): void {\n if (quantity + Number(step) < max) {\n quantity = quantity + Number(step);\n }\n increment?.(quantity);\n }\n\n function getClasses(\n isInvalid: boolean,\n size: QuantitySelectorSize,\n ): string {\n const classes = ['mc-quantity-selector'];\n if (isInvalid) {\n classes.push('is-invalid');\n }\n\n if (size === 's') {\n classes.push('mc-quantity-selector--s');\n }\n\n return classes.join(' ');\n }\n</script>\n\n<div class=\"{getClasses(isinvalid, size)}\">\n <input\n type=\"number\"\n {id}\n {name}\n bind:value={quantity}\n oninput={handleValue}\n {onblur}\n class=\"mc-quantity-selector__control\"\n aria-label={inputarialabel}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={quantity}\n aria-invalid={isinvalid}\n spellcheck=\"false\"\n {disabled}\n {required}\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 onclick={handleIncrement}\n disabled={quantity === max || disabled}\n >\n <span class=\"mc-quantity-selector__icon\">\n <More24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{decrementlabel}</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 onclick={handleDecrement}\n disabled={quantity === min || disabled}\n >\n <span class=\"mc-quantity-selector__icon\">\n <Less24 />\n </span>\n <span class=\"mc-quantity-selector__label\">{incrementlabel}</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","handleValue","event","quantity","max","min","inputqty","oninput","_a","_b","handleDecrement","_","step","decrement","handleIncrement","__1","increment","decrementlabel","inputarialabel","incrementlabel","disabled","isinvalid","required","name","$.prop","$$props","onblur","getClasses","isInvalid","classes"],"mappings":"ggBAAA,SAEa,IAAAA,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,oCAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,wPAF3E,8VCPA,SAEa,IAAAH,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,oCAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,wPAF3E,uGC6CWE,GAAYC,EAAoBC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,SACnCJ,EAAQ,EAAGC,KACbD,EAAWC,EAAG,CAAA,EAEZD,EAAQ,EAAGE,KACbF,EAAWE,EAAG,CAAA,GAEhBG,EAAAF,EAAQ,IAAR,MAAAE,EAAWL,MACXM,EAAAF,EAAO,IAAP,MAAAE,EAAUP,EACZ,CAES,SAAAQ,GAAwBC,EAAAR,EAAAS,EAAAP,EAAAQ,EAAA,OAC3BV,IAAW,OAAOS,EAAI,CAAA,EAAIP,EAAG,GAC/BF,EAAWA,EAAW,EAAA,OAAOS,EAAI,CAAA,CAAA,GAEnCJ,EAAAK,EAAS,IAAT,MAAAL,EAAYL,IACd,CAES,SAAAW,GAAwBC,EAAAZ,EAAAS,EAAAR,EAAAY,EAAA,OAC3Bb,IAAW,OAAOS,EAAI,CAAA,EAAIR,EAAG,GAC/BD,EAAWA,EAAW,EAAA,OAAOS,EAAI,CAAA,CAAA,GAEnCJ,EAAAQ,EAAS,IAAT,MAAAR,EAAYL,IACd;;;;;;;qqFA3EF,kBAgCI,IAAAP,aAAK,MAAS,EACdO,oBAAqB,CAAC,EACtBE,cAAM,CAAC,EACPD,cAAM,GAAG,EACTJ,eAAO,GAAG,EACViB,yBAAiB,WAAW,EAC5BC,yBAAiB,mBAAmB,EACpCC,yBAAiB,WAAW,EAC5BC,mBAAW,EAAK,EAChBC,oBAAY,EAAK,EACjBC,mBAAW,EAAK,EAChBC,eAAO,yBAAyB,EAChCX,eAAO,CAAC,EACRI,EAASQ,EAAAC,EAAA,YAAA,CAAA,EACTZ,EAASW,EAAAC,EAAA,YAAA,CAAA,EACTnB,EAAQkB,EAAAC,EAAA,WAAA,CAAA,EACRlB,EAAOiB,EAAAC,EAAA,UAAA,CAAA,EACPC,EAAMF,EAAAC,EAAA,SAAA,CAAA,EA4BC,SAAAE,EACPC,EACA5B,EACQ,CACF,MAAA6B,GAAW,sBAAsB,EACnC,OAAAD,GACFC,EAAQ,KAAK,YAAY,EAGvB7B,IAAS,KACX6B,EAAQ,KAAK,yBAAyB,EAGjCA,EAAQ,KAAK,GAAG,CACzB,oCASW5B,GAAWE,EAAAC,EAAAC,EAAAC,EAAAC,CAAA,0BAiBXO,GAAeX,EAAAS,EAAAR,EAAAY,CAAA,0FAafN,GAAeP,EAAAS,EAAAP,EAAAQ,CAAA,4JA3BZK,GAAc,sBACXb,GAAG,sBACHD,GAAG,sBACHD,GAAQ,qBACTkB,GAAS,oDAORzB,GAAE,aAIPO,EAAQ,IAAKC,EAAG,GAAIgB,EAAQ,MAKKH,GAAc,sBAI1CrB,GAAE,aAIPO,EAAQ,IAAKE,EAAG,GAAIe,EAAQ,MAKKD,GAAc,QA1ChDQ,EAAWN,EAAS,EAAErB,EAAI,CAAA,CAAA,0EAKvBG,CAAQ,0CAnEf,OAAS,qDACO,EAAC,2CAChB,EAAC,2CACD,IAAG,6CACF,IAAG,iEACO,YAAW,iEACX,oBAAmB,iEACnB,YAAW,qDACjB,GAAK,uDACJ,GAAK,qDACN,GAAK,6CACT,0BAAyB,6CACzB,EAAC,mRAgDZ","x_google_ignoreList":[0,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 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/html-vite';
2
- /**
3
- * The quantity selector is a form element used to enter or select a number.
4
- * This type of input is best used when the user needs to choose the quantity of a selected item, like a product before adding to cart.
5
- *
6
- * The `MQuantitySelector` component is the **Svelte / WebComponent** implementation of the **Quantity Selector** component of Mozaic Design System.
7
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/form/quantity-selector/).
8
- */
9
- declare const _default: Meta;
10
- export default _default;
11
- export declare const Default: any;
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":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;;GAMG;wBAmFE,IAAI;AAjFT,wBAiFU;AAqBV,eAAO,MAAM,OAAO,KAAoB,CAAC;AAczC,eAAO,MAAM,KAAK,KAAoB,CAAC;AASvC,eAAO,MAAM,QAAQ,KAAoB,CAAC;AAU1C,eAAO,MAAM,OAAO,KAAoB,CAAC;AAUzC,eAAO,MAAM,QAAQ,KAAoB,CAAC"}
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"}