@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,13 +1,9 @@
1
- import{x as X,y as re,n as se,c as oe,p as le,a as ae,b as n,f as N,t as Q,m as x,z as W,e as ce,h as p,i as de,j as i,d as h,s as H,r as f,g as ve,A as R,B as U}from"../../custom-element.js";import{s as ue}from"../../snippet.js";import{i as J}from"../../if.js";import{s as me}from"../../slot.js";import{b as be,r as pe}from"../../attributes.js";import{c as he}from"../../input.js";function fe(v,t,s){X(()=>{var r=re(()=>t(v,s==null?void 0:s())||{});if(r!=null&&r.destroy)return()=>r.destroy()})}function ge(v,t,s){var r;t(""),(r=s())==null||r("onclear")}var _e=N('<span class="mc-text-input__icon svelte-nvbisr"><!></span>'),xe=N('<div class="mc-controls-options js-control-options svelte-nvbisr"><button type="button" class="mc-controls-options__button svelte-nvbisr"><svg class="mc-controls-options__icon svelte-nvbisr" aria-hidden="true"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2ZM8.293 8.293a1 1 0 0 1 1.414 0L12 10.586l2.293-2.293a1 1 0 1 1 1.414 1.414L13.414 12l2.293 2.293a1 1 0 0 1-1.414 1.414L12 13.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L10.586 12 8.293 9.707a1 1 0 0 1 0-1.414Z" class="svelte-nvbisr"></path></svg> <span class="mc-controls-options__label svelte-nvbisr"> </span></button></div>'),we=N("<div><!> <input/> <!></div>");const ye={hash:"svelte-nvbisr",code:`/**
1
+ import{v as G,c as O,p as T,a as V,b as n,f as j,d as l,s as z,t as C,i as E,j as q,k as o,r as s,h as A,e as B,g as H}from"../../custom-element.js";import{i as I}from"../../if.js";import{s as J}from"../../slot.js";import{r as K,s as c}from"../../attributes.js";import{c as N}from"../../input.js";import{c as P}from"../../custom-element-forward-events.js";const Q=(v,t)=>t("");var R=j('<div class="mc-controls-options svelte-5c9enb"><button type="button" class="mc-controls-options__button svelte-5c9enb"><svg class="mc-controls-options__icon svelte-5c9enb" aria-hidden="true"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2ZM8.293 8.293a1 1 0 0 1 1.414 0L12 10.586l2.293-2.293a1 1 0 1 1 1.414 1.414L13.414 12l2.293 2.293a1 1 0 0 1-1.414 1.414L12 13.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L10.586 12 8.293 9.707a1 1 0 0 1 0-1.414Z" class="svelte-5c9enb"></path></svg> <span class="mc-controls-options__label svelte-5c9enb"> </span></button></div>'),U=j('<div><span class="mc-text-input__icon svelte-5c9enb"><!></span> <input class="mc-text-input__control svelte-5c9enb"/> <!></div>');const W={hash:"svelte-5c9enb",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-controls-options.svelte-nvbisr {align-items:center;display:inline-flex;justify-content:center;gap:0.5rem;}.mc-controls-options__button.svelte-nvbisr {background-color:transparent;border-width:0;color:initial;font-family:inherit;outline:none;appearance:none;cursor:pointer;padding:0;border-radius:100%;}.mc-controls-options__button.svelte-nvbisr:hover .mc-controls-options__icon:where(.svelte-nvbisr) {fill:#4d4d4d;}.mc-controls-options__button.svelte-nvbisr:focus-visible {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-controls-options__icon.svelte-nvbisr {fill:#666666;}.mc-controls-options__button.svelte-nvbisr, .mc-controls-options__icon.svelte-nvbisr {height:1.5rem;width:1.5rem;}.mc-controls-options__label.svelte-nvbisr {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}.mc-controls-options__unit.svelte-nvbisr {font-size:1rem;line-height:1.3;font-weight:600;color:#000000;}
3
+ */.mc-controls-options.svelte-5c9enb {align-items:center;display:inline-flex;justify-content:center;gap:0.5rem;}.mc-controls-options__button.svelte-5c9enb {background-color:transparent;border-width:0;color:initial;font-family:inherit;outline:none;appearance:none;cursor:pointer;padding:0;border-radius:var(--radius-full, 100%);}.mc-controls-options__button.svelte-5c9enb:hover .mc-controls-options__icon:where(.svelte-5c9enb) {fill:var(--forms-color-icon-clear-hover, #4d4d4d);}.mc-controls-options__button.svelte-5c9enb:focus-visible {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-controls-options__icon.svelte-5c9enb {fill:var(--forms-color-icon-clear, #666666);}.mc-controls-options__button.svelte-5c9enb, .mc-controls-options__icon.svelte-5c9enb {height:1.5rem;width:1.5rem;}.mc-controls-options__label.svelte-5c9enb {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}.mc-controls-options__unit.svelte-5c9enb {font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-semi-bold, 600);color:var(--forms-color-text-default, #000000);}
7
4
 
8
- /* stylelint-disable string-no-newline */.mc-text-input.svelte-nvbisr {transition:box-shadow 200ms ease;background-color:#ffffff;border:1px solid #666666;border-radius:0.25rem;transition:all ease 200ms;color:#000000;display:block;width:100%;height:3rem;box-sizing:border-box;display:flex;align-items:center;gap:0.5rem;}.mc-text-input__control.svelte-nvbisr {background-color:transparent;border-width:0;font-family:inherit;outline:none;padding:0.75rem 0.6875rem;font-size:1rem;line-height:1.3;font-weight:400;flex-grow:1;}.mc-text-input__control[type=number].svelte-nvbisr {
9
- /* For Blink & WebKit rendering engines */
10
- /* For Gecko rendering engine */appearance:textfield;}.mc-text-input__control[type=number].svelte-nvbisr::-webkit-inner-spin-button, .mc-text-input__control[type=number].svelte-nvbisr::-webkit-outer-spin-button {appearance:none;margin:0;}.mc-text-input__control[type=search].svelte-nvbisr::-webkit-search-decoration, .mc-text-input__control[type=search].svelte-nvbisr::-webkit-search-cancel-button {appearance:none;}.mc-text-input__control.svelte-nvbisr::placeholder {color:#666666;}.mc-text-input__icon.svelte-nvbisr {fill:#666666;height:1.5rem;width:1.5rem;flex-shrink:0;}.mc-text-input.svelte-nvbisr:focus-within {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-text-input.svelte-nvbisr:hover:not(:focus-within) {border-color:#4d4d4d;box-shadow:0 0 0 1px #4d4d4d;}.mc-text-input.svelte-nvbisr:has(input:where(.svelte-nvbisr):disabled) {background-color:#d9d9d9;cursor:not-allowed;border-color:transparent;box-shadow:none;color:#737373;pointer-events:none;}.mc-text-input.svelte-nvbisr:has(input[readonly]:where(.svelte-nvbisr)) {border-color:#cccccc;pointer-events:none;}.mc-text-input.svelte-nvbisr:has(.mc-text-input__icon:where(.svelte-nvbisr)) {padding-inline-start:0.6875rem;}.mc-text-input.svelte-nvbisr:has(.mc-text-input__icon:where(.svelte-nvbisr)) .mc-text-input__control:where(.svelte-nvbisr) {padding-inline-start:0;}.mc-text-input.svelte-nvbisr:has(.mc-controls-options:where(.svelte-nvbisr)) {padding-inline-end:0.6875rem;}.mc-text-input.svelte-nvbisr:has(.mc-controls-options:where(.svelte-nvbisr)) .mc-text-input__control:where(.svelte-nvbisr) {padding-inline-end:0;}.mc-text-input--s.svelte-nvbisr {height:2rem;}.mc-text-input--s.svelte-nvbisr .mc-text-input__control:where(.svelte-nvbisr) {padding:0.375rem 0.6875rem;font-size:0.875rem;line-height:1.3;}.mc-text-input--s.svelte-nvbisr:has(.mc-text-input__icon:where(.svelte-nvbisr)) {padding-inline-start:0.4375rem;}.mc-text-input--s.svelte-nvbisr:has(.mc-controls-options:where(.svelte-nvbisr)) {padding-inline-end:0.4375rem;}.mc-text-input.is-invalid.svelte-nvbisr {border-color:#ea302d;box-shadow:0 0 0 1px #ea302d;}.mc-text-input.is-invalid.svelte-nvbisr:hover:not(:focus-within) {border-color:#c61112;box-shadow:0 0 0 1px #c61112;}.mc-text-input.svelte-nvbisr :where(.svelte-nvbisr) {box-sizing:border-box;}
5
+ /* stylelint-disable string-no-newline */.mc-text-input.svelte-5c9enb {transition:box-shadow 200ms ease;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;box-sizing:border-box;display:flex;align-items:center;gap:0.5rem;}.mc-text-input__control.svelte-5c9enb {background-color:transparent;border-width:0;font-family:inherit;outline:none;}.mc-text-input__control[type=number].svelte-5c9enb::-webkit-inner-spin-button, .mc-text-input__control[type=number].svelte-5c9enb::-webkit-outer-spin-button {appearance:none;margin:0;}.mc-text-input__control[type=number].svelte-5c9enb {
6
+ /* For Gecko rendering engine */appearance:textfield;}.mc-text-input__control[type=search].svelte-5c9enb::-webkit-search-decoration, .mc-text-input__control[type=search].svelte-5c9enb::-webkit-search-cancel-button {appearance:none;}.mc-text-input__control.svelte-5c9enb {padding:0.75rem 0.6875rem;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-regular, 400);flex-grow:1;}.mc-text-input__control.svelte-5c9enb::placeholder {color:var(--forms-color-placeholder, #666666);}.mc-text-input__icon.svelte-5c9enb {fill:var(--forms-color-icon-default, #666666);height:1.5rem;width:1.5rem;flex-shrink:0;}.mc-text-input.svelte-5c9enb:focus-within {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-text-input.svelte-5c9enb: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-text-input.svelte-5c9enb:has(input:where(.svelte-5c9enb):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-text-input.svelte-5c9enb:has(input[readonly]:where(.svelte-5c9enb)) {border-color:var(--forms-color-border-read-only, #cccccc);pointer-events:none;}.mc-text-input.svelte-5c9enb:has(.mc-text-input__icon:where(.svelte-5c9enb)) {padding-inline-start:0.6875rem;}.mc-text-input.svelte-5c9enb:has(.mc-text-input__icon:where(.svelte-5c9enb)) .mc-text-input__control:where(.svelte-5c9enb) {padding-inline-start:0;}.mc-text-input.svelte-5c9enb:has(.mc-controls-options:where(.svelte-5c9enb)) {padding-inline-end:0.6875rem;}.mc-text-input.svelte-5c9enb:has(.mc-controls-options:where(.svelte-5c9enb)) .mc-text-input__control:where(.svelte-5c9enb) {padding-inline-end:0;}.mc-text-input--s.svelte-5c9enb {height:2rem;}.mc-text-input--s.svelte-5c9enb .mc-text-input__control:where(.svelte-5c9enb) {padding:0.375rem 0.6875rem;font-size:var(--font-size-100, 0.875rem);line-height:var(--line-height-s, 1.3);}.mc-text-input--s.svelte-5c9enb:has(.mc-text-input__icon:where(.svelte-5c9enb)) {padding-inline-start:0.4375rem;}.mc-text-input--s.svelte-5c9enb:has(.mc-controls-options:where(.svelte-5c9enb)) {padding-inline-end:0.4375rem;}.mc-text-input.is-invalid.svelte-5c9enb {border-color:var(--forms-color-border-invalid, #ea302d);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid, #ea302d);}.mc-text-input.is-invalid.svelte-5c9enb: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-text-input.svelte-5c9enb :where(.svelte-5c9enb) {box-sizing:border-box;}
11
7
 
12
- /* stylelint-enable string-no-newline */.right-align.svelte-nvbisr {text-align:right;}`};function ke(v,t){le(t,!0),ae(v,ye);let s=n(t,"name",7),r=n(t,"value",7),w=n(t,"placeholder",7),y=n(t,"inputtype",7,"text"),k=n(t,"isvalid",7),g=n(t,"isinvalid",7),z=n(t,"disabled",7,!1),q=n(t,"readonly",7,!1),C=n(t,"size",7,"m"),j=n(t,"hasicon",7,!1),u=n(t,"icon",7),L=n(t,"rightalign",7),B=n(t,"min",7),D=n(t,"max",7),F=n(t,"minlength",7),M=n(t,"maxlength",7),S=n(t,"required",7,!1),Z=n(t,"clearlabel",7,"Clear content"),A=n(t,"isclearable",7,!1),E=n(t,"onclear",7),G=n(t,"oninput",7),I=n(t,"onchange",7),K=n(t,"onblur",7),Y=W(y),$=W(()=>!!(A()&&r())),O=W(()=>!!j()||!!u());function ee(e,l,a,c){const o=["mc-text-input","mc-field__input"];return e&&o.push("is-valid"),l&&o.push("is-invalid"),a==="s"&&o.push("mc-text-input--s"),c&&o.push("mc-left-icon-input__input"),L()&&o.push("right-align"),o.join(" ")}const T=e=>{e.type=x(Y)};var _=we(),P=h(_);{var te=e=>{var l=_e(),a=h(l);{var c=d=>{var b=R(),V=U(b);ue(V,u),p(d,b)},o=d=>{var b=R(),V=U(b);me(V,t,"icon",{}),p(d,b)};J(a,d=>{u()?d(c):d(o,!1)})}f(l),p(e,l)};J(P,e=>{x(O)&&e(te)})}var m=H(P,2);pe(m),be(m,()=>({class:"mc-text-input__control","aria-invalid":g(),name:s(),id:s(),placeholder:w(),disabled:z(),min:B(),max:D(),minlength:F(),maxlength:M(),spellcheck:"false",required:S(),...q()?{readonly:!0}:{},oninput:G(),onchange:I(),onblur:K()}),void 0,void 0,"svelte-nvbisr"),X(()=>he(m,r)),fe(m,e=>T==null?void 0:T(e));var ne=H(m,2);{var ie=e=>{var l=xe(),a=h(l);a.__click=[ge,r,E];var c=H(h(a),2),o=h(c,!0);f(c),f(a),f(l),Q(()=>ve(o,Z())),p(e,l)};J(ne,e=>{x($)&&e(ie)})}return f(_),Q(e=>ce(_,1,`${e??""} `,"svelte-nvbisr"),[()=>ee(k(),g(),C(),x(O))]),p(v,_),de({get name(){return s()},set name(e){s(e),i()},get value(){return r()},set value(e){r(e),i()},get placeholder(){return w()},set placeholder(e){w(e),i()},get inputtype(){return y()},set inputtype(e="text"){y(e),i()},get isvalid(){return k()},set isvalid(e){k(e),i()},get isinvalid(){return g()},set isinvalid(e){g(e),i()},get disabled(){return z()},set disabled(e=!1){z(e),i()},get readonly(){return q()},set readonly(e=!1){q(e),i()},get size(){return C()},set size(e="m"){C(e),i()},get hasicon(){return j()},set hasicon(e=!1){j(e),i()},get icon(){return u()},set icon(e){u(e),i()},get rightalign(){return L()},set rightalign(e){L(e),i()},get min(){return B()},set min(e){B(e),i()},get max(){return D()},set max(e){D(e),i()},get minlength(){return F()},set minlength(e){F(e),i()},get maxlength(){return M()},set maxlength(e){M(e),i()},get required(){return S()},set required(e=!1){S(e),i()},get clearlabel(){return Z()},set clearlabel(e="Clear content"){Z(e),i()},get isclearable(){return A()},set isclearable(e=!1){A(e),i()},get onclear(){return E()},set onclear(e){E(e),i()},get oninput(){return G()},set oninput(e){G(e),i()},get onchange(){return I()},set onchange(e){I(e),i()},get onblur(){return K()},set onblur(e){K(e),i()}})}se(["click"]);customElements.define("m-textinput",oe(ke,{name:{},value:{},placeholder:{},inputtype:{},isvalid:{},isinvalid:{},disabled:{},readonly:{},size:{},hasicon:{},icon:{},rightalign:{},min:{},max:{},minlength:{},maxlength:{},required:{},clearlabel:{},isclearable:{},onclear:{},oninput:{},onchange:{},onblur:{}},["icon"],[],!0));
8
+ /* stylelint-enable string-no-newline */.mc-text-input__icon.svelte-5c9enb:empty {display:none;}`};function X(v,t){T(t,!0),V(v,W);let b=n(t,"id",7),m=n(t,"name",7),i=n(t,"value",7),u=n(t,"placeholder",7),p=n(t,"inputtype",7,"text"),a=n(t,"isinvalid",7),f=n(t,"disabled",7),h=n(t,"readonly",7),_=n(t,"size",7,"m"),x=n(t,"clearlabel",7,"Clear content"),g=n(t,"isclearable",7);var F={get id(){return b()},set id(e){b(e),o()},get name(){return m()},set name(e){m(e),o()},get value(){return i()},set value(e){i(e),o()},get placeholder(){return u()},set placeholder(e){u(e),o()},get inputtype(){return p()},set inputtype(e="text"){p(e),o()},get isinvalid(){return a()},set isinvalid(e){a(e),o()},get disabled(){return f()},set disabled(e){f(e),o()},get readonly(){return h()},set readonly(e){h(e),o()},get size(){return _()},set size(e="m"){_(e),o()},get clearlabel(){return x()},set clearlabel(e="Clear content"){x(e),o()},get isclearable(){return g()},set isclearable(e){g(e),o()}},d=U(),w=l(d),M=l(w);J(M,t,"icon",{}),s(w);var r=z(w,2);K(r);var S=z(r,2);{var Z=e=>{var y=R(),k=l(y);k.__click=[Q,i];var L=z(l(k),2),D=l(L,!0);s(L),s(k),s(y),C(()=>A(D,x())),E(e,y)};I(S,e=>{g()&&i()&&e(Z)})}return s(d),C(()=>{B(d,1,H(["mc-text-input",`mc-text-input--${_()}`,a()&&"is-invalid"]),"svelte-5c9enb"),c(r,"aria-invalid",a()),c(r,"name",m()),c(r,"id",b()),c(r,"type",p()),c(r,"placeholder",u()),r.disabled=f(),r.readOnly=h()}),N(r,i),E(v,d),q(F)}G(["click"]);customElements.define("m-textinput",O(X,{id:{},name:{},value:{},placeholder:{},inputtype:{},isinvalid:{},disabled:{},readonly:{},size:{},clearlabel:{},isclearable:{}},["icon"],[],!0,P));
13
9
  //# sourceMappingURL=Textinput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textinput.js","sources":["../../../node_modules/svelte/src/internal/client/dom/elements/actions.js","../../../src/components/textinput/Textinput.svelte"],"sourcesContent":["/** @import { ActionPayload } from '#client' */\nimport { effect, render_effect } from '../../reactivity/effects.js';\nimport { safe_not_equal } from '../../reactivity/equality.js';\nimport { deep_read_state, untrack } from '../../runtime.js';\n\n/**\n * @template P\n * @param {Element} dom\n * @param {(dom: Element, value?: P) => ActionPayload<P>} action\n * @param {() => P} [get_value]\n * @returns {void}\n */\nexport function action(dom, action, get_value) {\n\teffect(() => {\n\t\tvar payload = untrack(() => action(dom, get_value?.()) || {});\n\n\t\tif (get_value && payload?.update) {\n\t\t\tvar inited = false;\n\t\t\t/** @type {P} */\n\t\t\tvar prev = /** @type {any} */ ({}); // initialize with something so it's never equal on first run\n\n\t\t\trender_effect(() => {\n\t\t\t\tvar value = get_value();\n\n\t\t\t\t// Action's update method is coarse-grained, i.e. when anything in the passed value changes, update.\n\t\t\t\t// This works in legacy mode because of mutable_source being updated as a whole, but when using $state\n\t\t\t\t// together with actions and mutation, it wouldn't notice the change without a deep read.\n\t\t\t\tdeep_read_state(value);\n\n\t\t\t\tif (inited && safe_not_equal(prev, value)) {\n\t\t\t\t\tprev = value;\n\t\t\t\t\t/** @type {Function} */ (payload.update)(value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tinited = true;\n\t\t}\n\n\t\tif (payload?.destroy) {\n\t\t\treturn () => /** @type {Function} */ (payload.destroy)();\n\t\t}\n\t});\n}\n","<svelte:options customElement=\"m-textinput\" />\n\n<script lang=\"ts\">\n import type { TextInputSize, TextInputType } from './textinput.types';\n import type { Snippet } from 'svelte';\n\n interface Props {\n name: string;\n value: string;\n placeholder: string;\n inputtype?: TextInputType;\n isvalid: boolean;\n isinvalid: boolean;\n disabled?: boolean;\n readonly?: boolean;\n size?: TextInputSize;\n hasicon?: boolean;\n icon?: Snippet;\n rightalign: boolean;\n min: string;\n max: string;\n minlength: number;\n maxlength: number;\n required?: boolean;\n clearlabel?: string;\n isclearable?: boolean;\n onclear?: (arg: string) => void;\n oninput?: (event: Event) => void;\n onchange?: (event: Event) => void;\n onblur?: (event: FocusEvent) => void;\n }\n\n let {\n name,\n value,\n placeholder,\n inputtype = 'text',\n isvalid,\n isinvalid,\n disabled = false,\n readonly = false,\n size = 'm',\n hasicon = false,\n icon,\n rightalign,\n min,\n max,\n minlength,\n maxlength,\n required = false,\n clearlabel = 'Clear content',\n isclearable = false,\n onclear,\n oninput,\n onchange,\n onblur,\n }: Props = $props();\n\n let inputType = $derived(inputtype);\n let displayClear = $derived(isclearable && value ? true : false);\n let hasIcon = $derived(!!hasicon || !!icon)\n\n function getClasses(\n isValid: boolean,\n isInvalid: boolean,\n size: TextInputSize,\n hasIcon: boolean,\n ): string {\n const classes = ['mc-text-input', 'mc-field__input'];\n\n if (isValid) {\n classes.push('is-valid');\n }\n\n if (isInvalid) {\n classes.push('is-invalid');\n }\n\n if (size === 's') {\n classes.push('mc-text-input--s');\n }\n\n if (hasIcon) {\n classes.push('mc-left-icon-input__input');\n }\n\n if (rightalign) {\n classes.push('right-align');\n }\n\n return classes.join(' ');\n }\n\n const setType = (node: any) => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n node.type = inputType;\n };\n\n function resetValue() {\n value = '';\n onclear?.('onclear');\n }\n</script>\n\n<div class=\"{getClasses(isvalid, isinvalid, size, hasIcon)} \">\n {#if hasIcon}\n <span class=\"mc-text-input__icon\">\n {#if icon}\n {@render icon()}\n {:else}\n <slot name=\"icon\" />\n {/if}\n </span>\n {/if}\n <input\n bind:value\n use:setType\n class=\"mc-text-input__control\"\n aria-invalid={isinvalid}\n {name}\n id={name}\n {placeholder}\n {disabled}\n {min}\n {max}\n {minlength}\n {maxlength}\n spellcheck=\"false\"\n {required}\n {...readonly ? { readonly: true } : {}}\n {oninput}\n {onchange}\n {onblur}\n />\n <!-- Control options -->\n {#if displayClear}\n <div class=\"mc-controls-options js-control-options\">\n <!-- Clear Button -->\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n onclick={resetValue}\n >\n <svg class=\"mc-controls-options__icon\" aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2ZM8.293 8.293a1 1 0 0 1 1.414 0L12 10.586l2.293-2.293a1 1 0 1 1 1.414 1.414L13.414 12l2.293 2.293a1 1 0 0 1-1.414 1.414L12 13.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L10.586 12 8.293 9.707a1 1 0 0 1 0-1.414Z\"\n />\n </svg>\n <span class=\"mc-controls-options__label\">{clearlabel}</span>\n </button>\n </div>\n {/if}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/controls-options';\n @use '@mozaic-ds/styles/components/text-input';\n\n .right-align {\n text-align: right;\n }\n</style>\n"],"names":["action","dom","get_value","effect","payload","untrack","resetValue","_","value","onclear","_a","name","$.prop","$$props","placeholder","inputtype","isvalid","isinvalid","disabled","readonly","size","hasicon","icon","rightalign","min","max","minlength","maxlength","required","clearlabel","isclearable","oninput","onchange","onblur","inputType","displayClear","hasIcon","$.derived","getClasses","isValid","isInvalid","classes","setType","node","$.get","$$render","consequent","alternate","consequent_1","consequent_2"],"mappings":"8XAYO,SAASA,GAAOC,EAAKD,EAAQE,EAAW,CAC9CC,EAAO,IAAM,CACZ,IAAIC,EAAUC,GAAQ,IAAML,EAAOC,EAAKC,GAAA,YAAAA,GAAa,GAAK,EAAE,EAwB5D,GAAIE,GAAA,MAAAA,EAAS,QACZ,MAAO,IAA+BA,EAAQ,QAAU,CAE3D,CAAE,CACF,CCwDW,SAAAE,GAAaC,EAAAC,EAAAC,EAAA,OACpBD,EAAQ,EAAE,GACVE,EAAAD,EAAO,IAAP,MAAAC,EAAU,UACZ;;;;;;;;;;;yGArGF,uBAiCIC,EAAIC,EAAAC,EAAA,OAAA,CAAA,EACJL,EAAKI,EAAAC,EAAA,QAAA,CAAA,EACLC,EAAWF,EAAAC,EAAA,cAAA,CAAA,EACXE,oBAAY,MAAM,EAClBC,EAAOJ,EAAAC,EAAA,UAAA,CAAA,EACPI,EAASL,EAAAC,EAAA,YAAA,CAAA,EACTK,mBAAW,EAAK,EAChBC,mBAAW,EAAK,EAChBC,eAAO,GAAG,EACVC,kBAAU,EAAK,EACfC,EAAIV,EAAAC,EAAA,OAAA,CAAA,EACJU,EAAUX,EAAAC,EAAA,aAAA,CAAA,EACVW,EAAGZ,EAAAC,EAAA,MAAA,CAAA,EACHY,EAAGb,EAAAC,EAAA,MAAA,CAAA,EACHa,EAASd,EAAAC,EAAA,YAAA,CAAA,EACTc,EAASf,EAAAC,EAAA,YAAA,CAAA,EACTe,mBAAW,EAAK,EAChBC,qBAAa,eAAe,EAC5BC,sBAAc,EAAK,EACnBrB,EAAOG,EAAAC,EAAA,UAAA,CAAA,EACPkB,EAAOnB,EAAAC,EAAA,UAAA,CAAA,EACPmB,EAAQpB,EAAAC,EAAA,WAAA,CAAA,EACRoB,EAAMrB,EAAAC,EAAA,SAAA,CAAA,EAGJqB,IAAqBnB,CAAS,EAC9BoB,QAAwB,GAAAL,EAAW,GAAItB,EAAQ,EAAY,EAC3D4B,EAAOC,EAAA,IAAA,CAAA,CAAchB,KAAO,CAAA,CAAMC,GAAI,WAEjCgB,GACPC,EACAC,EACApB,EACAgB,EACQ,OACFK,EAAO,CAAI,gBAAiB,iBAAiB,EAE/C,OAAAF,GACFE,EAAQ,KAAK,UAAU,EAGrBD,GACFC,EAAQ,KAAK,YAAY,EAGvBrB,IAAS,KACXqB,EAAQ,KAAK,kBAAkB,EAG7BL,GACFK,EAAQ,KAAK,2BAA2B,EAGtClB,EAAU,GACZkB,EAAQ,KAAK,aAAa,EAGrBA,EAAQ,KAAK,GAAG,CACzB,OAEMC,EAAWC,GAAc,CAE7BA,EAAK,KAAIC,EAAGV,CAAS,CACtB,mFAYaZ,CAAI,mEADTA,EAAI,EAAAuB,EAAAC,CAAA,EAAAD,EAAAE,EAAA,EAAA,2BAFRX,CAAO,GAAAS,EAAAG,EAAA,gFAaI/B,EAAS,cAEnBN,EAAI,8GASJQ,EAAQ,EAAA,CAAK,SAAU,EAAI,EAAA,CAAA,0KAYlBb,GAAUE,EAAAC,CAAA,sDAQuBoB,EAAU,CAAA,CAAA,qBAdrDM,CAAY,GAAAU,EAAAI,EAAA,0DA/BN,IAAAX,GAAWtB,IAASC,EAAW,EAAAG,MAAMgB,CAAO,CAAA,kNApEzC,OAAM,+JAGP,GAAK,qDACL,GAAK,6CACT,IAAG,mDACA,GAAK,+VAOJ,GAAK,yDACH,gBAAe,2DACd,GAAK,wNAmDvB","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Textinput.js","sources":["../../../src/components/textinput/Textinput.svelte"],"sourcesContent":["<svelte:options\n customElement={{ tag: 'm-textinput', extend: customElementForwardEvents }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A text input is a single-line input that allows users to enter and edit short text-based content. It is commonly used for names, email addresses, search queries, and form entries. Text Inputs often include placeholders, validation rules, and assistive text to guide users and ensure accurate data entry.\n *\n * @slot icon - Use this slot to insert an icon in the input.\n */\n interface Props {\n /**\n * A unique identifier for the input element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the input element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the input field.\n */\n value?: string | number;\n /**\n * A placeholder text to show in the input when it is empty.\n */\n placeholder?: string;\n /**\n * Defines the type of input.\n */\n inputtype?: 'date' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text';\n /**\n * If `true`, applies an invalid state to the input.\n */\n isinvalid?: boolean;\n /**\n * If `true`, disables the input, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the input.\n */\n size?: 's' | 'm';\n /**\n * If `true`, the input is read-only (cannot be edited).\n */\n readonly?: boolean;\n /**\n * If `true`, a clear button will appear when the input has a value.\n */\n isclearable?: boolean;\n /**\n * The label text for the clear button.\n */\n clearlabel?: string;\n }\n\n let {\n id,\n name,\n value,\n placeholder,\n inputtype = 'text',\n isinvalid,\n disabled,\n readonly,\n size = 'm',\n clearlabel = 'Clear content',\n isclearable,\n }: Props = $props();\n\n const resetValue = () => (value = '');\n</script>\n\n<div\n class={['mc-text-input', `mc-text-input--${size}`, isinvalid && 'is-invalid']}\n>\n <span class=\"mc-text-input__icon\">\n <slot name=\"icon\" />\n </span>\n\n <input\n bind:value\n class=\"mc-text-input__control\"\n aria-invalid={isinvalid}\n {name}\n {id}\n type={inputtype}\n {placeholder}\n {disabled}\n {readonly}\n />\n\n {#if isclearable && value}\n <div class=\"mc-controls-options\">\n <button\n type=\"button\"\n class=\"mc-controls-options__button\"\n onclick={resetValue}\n >\n <svg class=\"mc-controls-options__icon\" aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2ZM8.293 8.293a1 1 0 0 1 1.414 0L12 10.586l2.293-2.293a1 1 0 1 1 1.414 1.414L13.414 12l2.293 2.293a1 1 0 0 1-1.414 1.414L12 13.414l-2.293 2.293a1 1 0 0 1-1.414-1.414L10.586 12 8.293 9.707a1 1 0 0 1 0-1.414Z\"\n />\n </svg>\n <span class=\"mc-controls-options__label\">{clearlabel}</span>\n </button>\n </div>\n {/if}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/controls-options';\n @use '@mozaic-ds/styles/components/text-input';\n\n .mc-text-input__icon:empty {\n display: none;\n }\n</style>\n"],"names":["resetValue","_","value","id","$.prop","$$props","name","placeholder","inputtype","isinvalid","disabled","readonly","size","clearlabel","isclearable","$$render","consequent","customElementForwardEvents"],"mappings":"0WAwEQA,EAAU,CAAAC,EAAAC,IAAUA,EAAQ,EAAE;;;;;;;kHAxEtC,oBA2DIC,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJH,EAAKE,EAAAC,EAAA,QAAA,CAAA,EACLE,EAAWH,EAAAC,EAAA,cAAA,CAAA,EACXG,oBAAY,MAAM,EAClBC,EAASL,EAAAC,EAAA,YAAA,CAAA,EACTK,EAAQN,EAAAC,EAAA,WAAA,CAAA,EACRM,EAAQP,EAAAC,EAAA,WAAA,CAAA,EACRO,eAAO,GAAG,EACVC,qBAAa,eAAe,EAC5BC,EAAWV,EAAAC,EAAA,cAAA,CAAA,qPANC,OAAM,8MAIX,IAAG,yDACG,gBAAe,uLA+BfL,EAAUE,CAAA,qDAQuBW,EAAU,CAAA,CAAA,kBAbrDC,EAAW,GAAIZ,KAAKa,EAAAC,CAAA,gCAlBjB,kCAAmCJ,EAAI,CAAA,GAAIH,KAAa,mDAShDA,GAAS,2CAGjBD,GAAS,2EAfnB,oMAxE+CS"}
@@ -0,0 +1,89 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render, fireEvent } from '@testing-library/svelte';
3
+ import Textinput from './Textinput.svelte';
4
+ describe('m-textinput component', () => {
5
+ const baseProps = {
6
+ id: 'textinput-id',
7
+ name: 'username',
8
+ value: 'JohnDoe',
9
+ };
10
+ it('renders input with correct attributes and value', () => {
11
+ const { container } = render(Textinput, { props: baseProps });
12
+ const input = container.querySelector('input');
13
+ expect(input).toBeTruthy();
14
+ expect(input.id).toBe('textinput-id');
15
+ expect(input.name).toBe('username');
16
+ expect(input.value).toBe('JohnDoe');
17
+ expect(input.type).toBe('text');
18
+ });
19
+ it('updates value on user input', async () => {
20
+ const { container } = render(Textinput, { props: baseProps });
21
+ const input = container.querySelector('input');
22
+ await fireEvent.input(input, { target: { value: 'JaneDoe' } });
23
+ expect(input.value).toBe('JaneDoe');
24
+ });
25
+ it('renders placeholder if provided', () => {
26
+ const { container } = render(Textinput, {
27
+ props: { ...baseProps, placeholder: 'Enter your name' },
28
+ });
29
+ const input = container.querySelector('input');
30
+ expect(input.placeholder).toBe('Enter your name');
31
+ });
32
+ it('applies disabled and readonly props', () => {
33
+ const { container } = render(Textinput, {
34
+ props: { ...baseProps, disabled: true, readonly: true },
35
+ });
36
+ const input = container.querySelector('input');
37
+ expect(input.disabled).toBe(true);
38
+ expect(input.readOnly).toBe(true);
39
+ });
40
+ it('applies is-invalid class when isinvalid is true', () => {
41
+ const { container } = render(Textinput, {
42
+ props: { ...baseProps, isinvalid: true },
43
+ });
44
+ const wrapper = container.querySelector('.mc-text-input');
45
+ const input = container.querySelector('input');
46
+ expect(wrapper.classList.contains('is-invalid')).toBe(true);
47
+ expect(input.getAttribute('aria-invalid')).toBe('true');
48
+ });
49
+ it('applies correct input type and size class', () => {
50
+ const { container } = render(Textinput, {
51
+ props: { ...baseProps, inputtype: 'email', size: 's' },
52
+ });
53
+ const input = container.querySelector('input');
54
+ const wrapper = container.querySelector('.mc-text-input');
55
+ expect(input.type).toBe('email');
56
+ expect(wrapper.classList.contains('mc-text-input--s')).toBe(true);
57
+ });
58
+ it('shows and works clear button when isclearable is true and value exists', async () => {
59
+ const { container } = render(Textinput, {
60
+ props: { ...baseProps, isclearable: true, clearlabel: 'Clear input' },
61
+ });
62
+ const button = container.querySelector('button');
63
+ const input = container.querySelector('input');
64
+ expect(button).toBeTruthy();
65
+ expect(button.textContent).toContain('Clear input');
66
+ await fireEvent.click(button);
67
+ expect(input.value).toBe('');
68
+ });
69
+ it('does not show clear button when isclearable is false', () => {
70
+ const { container } = render(Textinput, {
71
+ props: { ...baseProps, isclearable: false },
72
+ });
73
+ const button = container.querySelector('button');
74
+ expect(button).toBeFalsy();
75
+ });
76
+ it('does not show clear button when value is empty', () => {
77
+ const { container } = render(Textinput, {
78
+ props: { ...baseProps, isclearable: true, value: '' },
79
+ });
80
+ const button = container.querySelector('button');
81
+ expect(button).toBeFalsy();
82
+ });
83
+ it('hides icon slot container if slot is empty', () => {
84
+ const { container } = render(Textinput, { props: baseProps });
85
+ const iconContainer = container.querySelector('.mc-text-input__icon');
86
+ expect(iconContainer.innerHTML.trim()).toBe('<!---->');
87
+ expect(getComputedStyle(iconContainer).display).toBe('none');
88
+ });
89
+ });
@@ -1,13 +1,12 @@
1
- import type { Meta } from '@storybook/html-vite';
2
- /**
3
- * Inputs are used to create input fields with text on a single line. Their states depend on the user interaction or the context.
4
- *
5
- * The `MTextInput` component is the **Svelte / WebComponent** implementation of the **Text Input** component of Mozaic Design System.
6
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/form/text-input/).
7
- */
8
- declare const _default: Meta;
9
- export default _default;
10
- export declare const Default: any;
11
- export declare const Invalid: any;
12
- export declare const Disabled: 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 WithValue: Story;
6
+ export declare const Default: Story;
7
+ export declare const Small: Story;
8
+ export declare const minValue: Story;
9
+ export declare const Disabled: Story;
10
+ export declare const ReadOnly: Story;
11
+ export declare const Invalid: Story;
13
12
  //# sourceMappingURL=Textinput.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textinput.stories.d.ts","sourceRoot":"","sources":["../../../src/components/textinput/Textinput.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;GAKG;wBA2EE,IAAI;AA1ET,wBA0EU;AAyBV,eAAO,MAAM,OAAO,KAAoB,CAAC;AA4BzC,eAAO,MAAM,OAAO,KAAoB,CAAC;AAUzC,eAAO,MAAM,QAAQ,KAAoB,CAAC"}
1
+ {"version":3,"file":"Textinput.stories.d.ts","sourceRoot":"","sources":["../../../src/components/textinput/Textinput.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IAmDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,SAAS,EAAE,KAMvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAOtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC"}
@@ -1,154 +1,95 @@
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
1
3
  import { action } from 'storybook/actions';
2
- import { userEvent, expect } from 'storybook/test';
3
- /**
4
- * Inputs are used to create input fields with text on a single line. Their states depend on the user interaction or the context.
5
- *
6
- * The `MTextInput` component is the **Svelte / WebComponent** implementation of the **Text Input** component of Mozaic Design System.
7
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/form/text-input/).
8
- */
9
- export default {
4
+ const meta = {
10
5
  title: 'Form Elements/TextInput',
11
- tags: ['autodocs', 'beta'],
6
+ component: 'm-textinput',
12
7
  argTypes: {
13
- name: {
14
- description: 'Specify the text input name',
15
- control: 'text',
16
- },
17
- value: {
18
- description: 'Specify the text input value',
19
- control: 'text',
20
- },
21
- placeholder: {
22
- description: 'Specify the text input placeholder',
23
- control: 'text',
24
- },
25
8
  inputtype: {
26
- description: 'Specify the text input type',
27
- control: { type: 'radio' },
9
+ control: 'radio',
28
10
  options: ['date', 'email', 'number', 'password', 'search', 'tel', 'text'],
29
11
  },
30
- isinvalid: {
31
- description: 'Specify whether the text input is invalid',
32
- control: 'boolean',
33
- },
34
- required: {
35
- description: 'Specify whether the text input is required',
36
- control: 'boolean',
37
- },
38
- readonly: {
39
- description: 'Specify whether the text input is readonly',
40
- control: 'boolean',
41
- },
42
- disabled: {
43
- description: 'Specify whether the text input is disabled',
44
- control: 'boolean',
45
- },
46
- isclearable: {
47
- description: 'Specify whether the text input is clearable',
48
- control: 'boolean',
49
- },
50
- rightalign: {
51
- description: 'Specify whether the text input has the text is align on the right',
52
- control: 'boolean',
53
- },
54
- min: {
55
- description: 'Specify the min value for the imput',
56
- control: 'boolean',
57
- },
58
- max: {
59
- description: 'Specify the max value for the imput',
60
- control: 'boolean',
61
- },
62
- minLength: {
63
- description: 'Minimum number of characters required for the input (used with text type).',
64
- control: 'boolean',
65
- },
66
- maxLength: {
67
- description: 'Maximum number of characters allowed in the input (used with text type).',
68
- control: 'boolean',
69
- },
70
- clearlabel: {
71
- description: 'The label text for the clear button',
72
- control: 'text',
73
- },
74
12
  size: {
75
- description: 'Specify the text input size',
76
- control: { type: 'radio' },
13
+ control: 'radio',
77
14
  options: ['s', 'm'],
78
15
  },
79
16
  },
17
+ args: {
18
+ id: 'textInputId',
19
+ placeholder: 'Placeholder',
20
+ },
21
+ render: (args) => {
22
+ const onInput = action('input');
23
+ const onChange = action('change');
24
+ const onFocus = action('focus');
25
+ const onBlur = action('blur');
26
+ return html `
27
+ <m-textinput
28
+ id=${ifDefined(args.id)}
29
+ name=${ifDefined(args.name)}
30
+ value=${ifDefined(args.value)}
31
+ placeholder=${ifDefined(args.placeholder)}
32
+ inputtype=${ifDefined(args.inputtype)}
33
+ isinvalid=${ifDefined(args.isinvalid)}
34
+ disabled=${ifDefined(args.disabled)}
35
+ size=${ifDefined(args.size)}
36
+ readonly=${ifDefined(args.readonly)}
37
+ isclearable=${ifDefined(args.isclearable)}
38
+ clearlabel=${ifDefined(args.clearlabel)}
39
+ @input=${(event) => {
40
+ onInput(event);
41
+ }}
42
+ @change=${(event) => {
43
+ onChange(event);
44
+ }}
45
+ @focus=${(event) => {
46
+ onFocus(event);
47
+ }}
48
+ @blur=${(event) => {
49
+ onBlur(event);
50
+ }}
51
+ ></m-textinput>
52
+ `;
53
+ },
80
54
  };
81
- // Function to emulate pausing between interactions
82
- function sleep(ms) {
83
- return new Promise((resolve) => setTimeout(resolve, ms));
84
- }
85
- const Template = (args) => {
86
- const MTextInput = document.createElement('m-textinput');
87
- MTextInput.setAttribute('inputtype', args.inputtype || 'text');
88
- if (args.name)
89
- MTextInput.setAttribute('name', args.name);
90
- if (args.value)
91
- MTextInput.setAttribute('value', args.value);
92
- if (args.placeholder)
93
- MTextInput.setAttribute('placeholder', args.placeholder);
94
- if (args.isinvalid)
95
- MTextInput.setAttribute('isinvalid', 'true');
96
- if (args.require)
97
- MTextInput.setAttribute('require', 'true');
98
- if (args.disabled)
99
- MTextInput.setAttribute('disabled', 'true');
100
- if (args.readonly)
101
- MTextInput.setAttribute('readonly', 'true');
102
- if (args.isclearable)
103
- MTextInput.setAttribute('isclearable', 'true');
104
- if (args.size)
105
- MTextInput.setAttribute('size', args.size);
106
- MTextInput.addEventListener('input', action('input'));
107
- MTextInput.onkeyup = action('onkeyup');
108
- return MTextInput;
55
+ export default meta;
56
+ export const WithValue = {
57
+ args: {
58
+ id: 'withValueId',
59
+ value: 'Value of the input component',
60
+ isclearable: true,
61
+ },
109
62
  };
110
- export const Default = Template.bind({});
111
- Default.args = { placeholder: 'This is a default text input' };
112
- Default.play = async ({ canvasElement, step }) => {
113
- const textinput = canvasElement.querySelector('m-textinput');
114
- const input = textinput?.shadowRoot.querySelector('input');
115
- await sleep(1500);
116
- await step('Focus input', async () => {
117
- await userEvent.click(input);
118
- await sleep(1500);
119
- expect(input).not.toBeNull();
120
- await sleep(1500);
121
- await expect(input).toBeVisible();
122
- await sleep(1500);
123
- });
124
- await step('Fill out input', async () => {
125
- await userEvent.type(input, 'Testing input');
126
- await sleep(1500);
127
- expect(input).toHaveValue('Testing input');
128
- await sleep(1500);
129
- });
130
- await step('Clear input', async () => {
131
- await userEvent.keyboard('{Backspace>15}');
132
- await sleep(1500);
133
- expect(input).toHaveValue('');
134
- await sleep(1500);
135
- });
63
+ export const Default = {};
64
+ export const Small = {
65
+ args: {
66
+ id: 'smallId',
67
+ size: 's',
68
+ },
136
69
  };
137
- export const Invalid = Template.bind({});
138
- Invalid.args = {
139
- isinvalid: true,
140
- placeholder: 'This is an invalid text input',
70
+ export const minValue = {
71
+ args: {
72
+ id: 'minValueId',
73
+ inputtype: 'number',
74
+ value: '4',
75
+ min: '3',
76
+ },
141
77
  };
142
- Invalid.play = async ({ canvasElement }) => {
143
- const textinput = canvasElement.querySelector('m-textinput');
144
- expect(textinput).toHaveAttribute('isinvalid', 'true');
78
+ export const Disabled = {
79
+ args: {
80
+ id: 'disableId',
81
+ disabled: true,
82
+ },
145
83
  };
146
- export const Disabled = Template.bind({});
147
- Disabled.args = {
148
- disabled: true,
149
- placeholder: 'This is a disabled text input',
84
+ export const ReadOnly = {
85
+ args: {
86
+ id: 'readonlyId',
87
+ readonly: true,
88
+ },
150
89
  };
151
- Disabled.play = async ({ canvasElement }) => {
152
- const textinput = canvasElement.querySelector('m-textinput');
153
- expect(textinput).toBeDisabled();
90
+ export const Invalid = {
91
+ args: {
92
+ id: 'invalidId',
93
+ isinvalid: true,
94
+ },
154
95
  };