@mozaic-ds/web-components 1.0.0-beta.7 → 1.1.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 (491) hide show
  1. package/README.md +38 -70
  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/CrossCircleFilled24.js +1 -1
  6. package/dist/attributes.js +1 -1
  7. package/dist/attributes.js.map +1 -1
  8. package/dist/bundle.d.ts +25 -23
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +25 -23
  11. package/dist/components/avatar/Avatar.js +2 -2
  12. package/dist/components/avatar/Avatar.js.map +1 -1
  13. package/dist/components/avatar/Avatar.spec.js +17 -0
  14. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  15. package/dist/components/avatar/Avatar.stories.js +4 -32
  16. package/dist/components/avatar/Avatar.svelte +7 -5
  17. package/dist/components/avatar/Avatar.svelte.d.ts +2 -0
  18. package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -1
  19. package/dist/components/avatar/README.md +16 -0
  20. package/dist/components/breadcrumb/Breadcrumb.js +2 -2
  21. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  22. package/dist/components/breadcrumb/Breadcrumb.spec.js +42 -0
  23. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  24. package/dist/components/breadcrumb/Breadcrumb.stories.js +7 -39
  25. package/dist/components/breadcrumb/Breadcrumb.svelte +12 -20
  26. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  27. package/dist/components/breadcrumb/README.md +11 -0
  28. package/dist/components/button/Button.js +2 -2
  29. package/dist/components/button/Button.js.map +1 -1
  30. package/dist/components/button/Button.spec.js +74 -0
  31. package/dist/components/button/Button.stories.d.ts +9 -13
  32. package/dist/components/button/Button.stories.d.ts.map +1 -1
  33. package/dist/components/button/Button.stories.js +46 -146
  34. package/dist/components/button/Button.svelte +70 -53
  35. package/dist/components/button/Button.svelte.d.ts +36 -8
  36. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  37. package/dist/components/button/README.md +26 -0
  38. package/dist/components/callout/Callout.js +2 -5
  39. package/dist/components/callout/Callout.js.map +1 -1
  40. package/dist/components/callout/Callout.spec.js +33 -0
  41. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  42. package/dist/components/callout/Callout.stories.js +2 -55
  43. package/dist/components/callout/Callout.svelte +12 -15
  44. package/dist/components/callout/Callout.svelte.d.ts +4 -0
  45. package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
  46. package/dist/components/callout/README.md +20 -0
  47. package/dist/components/checkbox/Checkbox.js +3 -3
  48. package/dist/components/checkbox/Checkbox.js.map +1 -1
  49. package/dist/components/checkbox/Checkbox.spec.js +70 -0
  50. package/dist/components/checkbox/Checkbox.stories.d.ts +11 -16
  51. package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
  52. package/dist/components/checkbox/Checkbox.stories.js +67 -124
  53. package/dist/components/checkbox/Checkbox.svelte +42 -22
  54. package/dist/components/checkbox/Checkbox.svelte.d.ts +31 -6
  55. package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
  56. package/dist/components/checkbox/README.md +17 -0
  57. package/dist/components/checkboxgroup/CheckboxGroup.js +3 -3
  58. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  59. package/dist/components/checkboxgroup/CheckboxGroup.spec.js +111 -0
  60. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +5 -13
  61. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
  62. package/dist/components/checkboxgroup/CheckboxGroup.stories.js +56 -140
  63. package/dist/components/checkboxgroup/CheckboxGroup.svelte +54 -49
  64. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts +30 -6
  65. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
  66. package/dist/components/checkboxgroup/README.md +14 -0
  67. package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
  68. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  69. package/dist/components/circularprogressbar/CircularProgressbar.spec.js +74 -0
  70. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +6 -6
  71. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
  72. package/dist/components/circularprogressbar/CircularProgressbar.stories.js +29 -68
  73. package/dist/components/circularprogressbar/CircularProgressbar.svelte +20 -10
  74. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +18 -0
  75. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
  76. package/dist/components/circularprogressbar/README.md +14 -0
  77. package/dist/components/datepicker/Datepicker.js +3 -3
  78. package/dist/components/datepicker/Datepicker.js.map +1 -1
  79. package/dist/components/datepicker/Datepicker.spec.js +95 -0
  80. package/dist/components/datepicker/Datepicker.stories.d.ts +7 -6
  81. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  82. package/dist/components/datepicker/Datepicker.stories.js +58 -75
  83. package/dist/components/datepicker/Datepicker.svelte +47 -33
  84. package/dist/components/datepicker/Datepicker.svelte.d.ts +31 -2
  85. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  86. package/dist/components/datepicker/README.md +18 -0
  87. package/dist/components/drawer/Drawer.js +2 -2
  88. package/dist/components/drawer/Drawer.js.map +1 -1
  89. package/dist/components/drawer/Drawer.spec.js +101 -0
  90. package/dist/components/drawer/Drawer.stories.d.ts +29 -8
  91. package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
  92. package/dist/components/drawer/Drawer.stories.js +85 -87
  93. package/dist/components/drawer/Drawer.svelte +74 -38
  94. package/dist/components/drawer/Drawer.svelte.d.ts +34 -3
  95. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  96. package/dist/components/drawer/README.md +31 -0
  97. package/dist/components/field/Field.js +2 -2
  98. package/dist/components/field/Field.js.map +1 -1
  99. package/dist/components/field/Field.spec.js +98 -0
  100. package/dist/components/field/Field.stories.d.ts +10 -15
  101. package/dist/components/field/Field.stories.d.ts.map +1 -1
  102. package/dist/components/field/Field.stories.js +100 -141
  103. package/dist/components/field/Field.svelte +55 -13
  104. package/dist/components/field/Field.svelte.d.ts +42 -7
  105. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  106. package/dist/components/field/README.md +25 -0
  107. package/dist/components/flag/Flag.js +2 -2
  108. package/dist/components/flag/Flag.js.map +1 -1
  109. package/dist/components/flag/Flag.spec.js +30 -0
  110. package/dist/components/flag/Flag.stories.d.ts +8 -18
  111. package/dist/components/flag/Flag.stories.d.ts.map +1 -1
  112. package/dist/components/flag/Flag.stories.js +22 -103
  113. package/dist/components/flag/Flag.svelte +11 -9
  114. package/dist/components/flag/Flag.svelte.d.ts +10 -28
  115. package/dist/components/flag/Flag.svelte.d.ts.map +1 -1
  116. package/dist/components/flag/README.md +11 -0
  117. package/dist/components/iconbutton/IconButton.js +2 -2
  118. package/dist/components/iconbutton/IconButton.js.map +1 -1
  119. package/dist/components/iconbutton/IconButton.stories.d.ts +11 -11
  120. package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
  121. package/dist/components/iconbutton/IconButton.stories.js +51 -67
  122. package/dist/components/iconbutton/IconButton.svelte +41 -37
  123. package/dist/components/iconbutton/IconButton.svelte.d.ts +28 -7
  124. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  125. package/dist/components/iconbutton/README.md +21 -0
  126. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
  127. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  128. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.spec.js +28 -0
  129. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +5 -7
  130. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
  131. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +18 -49
  132. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +12 -7
  133. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts +10 -1
  134. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
  135. package/dist/components/linearprogressbarbuffer/README.md +11 -0
  136. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
  137. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  138. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.spec.js +26 -0
  139. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +4 -5
  140. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
  141. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +15 -33
  142. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +6 -0
  143. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts +6 -0
  144. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts.map +1 -1
  145. package/dist/components/linearprogressbarpercentage/README.md +10 -0
  146. package/dist/components/link/Link.js +2 -2
  147. package/dist/components/link/Link.js.map +1 -1
  148. package/dist/components/link/Link.spec.js +51 -0
  149. package/dist/components/link/Link.stories.d.ts +12 -12
  150. package/dist/components/link/Link.stories.d.ts.map +1 -1
  151. package/dist/components/link/Link.stories.js +61 -74
  152. package/dist/components/link/Link.svelte +45 -40
  153. package/dist/components/link/Link.svelte.d.ts +29 -8
  154. package/dist/components/link/Link.svelte.d.ts.map +1 -1
  155. package/dist/components/link/README.md +23 -0
  156. package/dist/components/loader/Loader.js +2 -2
  157. package/dist/components/loader/Loader.js.map +1 -1
  158. package/dist/components/loader/Loader.spec.js +73 -0
  159. package/dist/components/loader/Loader.stories.d.ts +8 -10
  160. package/dist/components/loader/Loader.stories.d.ts.map +1 -1
  161. package/dist/components/loader/Loader.stories.js +26 -42
  162. package/dist/components/loader/Loader.svelte +37 -35
  163. package/dist/components/loader/Loader.svelte.d.ts +14 -3
  164. package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
  165. package/dist/components/loader/README.md +12 -0
  166. package/dist/components/loadingoverlay/LoadingOverlay.js +4 -0
  167. package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -0
  168. package/dist/components/loadingoverlay/LoadingOverlay.spec.js +38 -0
  169. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +7 -0
  170. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -0
  171. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +39 -0
  172. package/dist/components/loadingoverlay/LoadingOverlay.svelte +50 -0
  173. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts +17 -0
  174. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts.map +1 -0
  175. package/dist/components/loadingoverlay/README.md +11 -0
  176. package/dist/components/modal/Modal.js +2 -2
  177. package/dist/components/modal/Modal.js.map +1 -1
  178. package/dist/components/modal/Modal.spec.js +50 -0
  179. package/dist/components/modal/Modal.stories.d.ts +36 -9
  180. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  181. package/dist/components/modal/Modal.stories.js +52 -83
  182. package/dist/components/modal/Modal.svelte +42 -41
  183. package/dist/components/modal/Modal.svelte.d.ts +22 -5
  184. package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
  185. package/dist/components/modal/README.md +28 -0
  186. package/dist/components/numberbadge/NumberBadge.js +2 -2
  187. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  188. package/dist/components/numberbadge/NumberBadge.spec.js +28 -0
  189. package/dist/components/numberbadge/NumberBadge.stories.d.ts +9 -13
  190. package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
  191. package/dist/components/numberbadge/NumberBadge.stories.js +28 -56
  192. package/dist/components/numberbadge/NumberBadge.svelte +18 -20
  193. package/dist/components/numberbadge/NumberBadge.svelte.d.ts +15 -4
  194. package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
  195. package/dist/components/numberbadge/README.md +12 -0
  196. package/dist/components/overlay/Overlay.js +2 -2
  197. package/dist/components/overlay/Overlay.js.map +1 -1
  198. package/dist/components/overlay/Overlay.spec.js +29 -0
  199. package/dist/components/overlay/Overlay.stories.d.ts +5 -7
  200. package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
  201. package/dist/components/overlay/Overlay.stories.js +29 -40
  202. package/dist/components/overlay/Overlay.svelte +14 -4
  203. package/dist/components/overlay/Overlay.svelte.d.ts +11 -0
  204. package/dist/components/overlay/Overlay.svelte.d.ts.map +1 -1
  205. package/dist/components/overlay/README.md +17 -0
  206. package/dist/components/pagination/Pagination.js +6 -6
  207. package/dist/components/pagination/Pagination.js.map +1 -1
  208. package/dist/components/pagination/Pagination.spec.js +65 -0
  209. package/dist/components/pagination/Pagination.stories.d.ts +8 -11
  210. package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
  211. package/dist/components/pagination/Pagination.stories.js +37 -91
  212. package/dist/components/pagination/Pagination.svelte +37 -34
  213. package/dist/components/pagination/Pagination.svelte.d.ts +27 -4
  214. package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
  215. package/dist/components/pagination/README.md +16 -0
  216. package/dist/components/passwordinput/PasswordInput.js +3 -4
  217. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  218. package/dist/components/passwordinput/PasswordInput.spec.js +84 -0
  219. package/dist/components/passwordinput/PasswordInput.stories.d.ts +10 -13
  220. package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
  221. package/dist/components/passwordinput/PasswordInput.stories.js +67 -124
  222. package/dist/components/passwordinput/PasswordInput.svelte +387 -28
  223. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +33 -1
  224. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  225. package/dist/components/passwordinput/README.md +19 -0
  226. package/dist/components/pincode/Pincode.js +2 -2
  227. package/dist/components/pincode/Pincode.js.map +1 -1
  228. package/dist/components/pincode/Pincode.spec.js +99 -0
  229. package/dist/components/pincode/Pincode.stories.d.ts +9 -13
  230. package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
  231. package/dist/components/pincode/Pincode.stories.js +62 -127
  232. package/dist/components/pincode/Pincode.svelte +56 -53
  233. package/dist/components/pincode/Pincode.svelte.d.ts +30 -24
  234. package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
  235. package/dist/components/pincode/README.md +22 -0
  236. package/dist/components/quantityselector/QuantitySelector.js +2 -2
  237. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  238. package/dist/components/quantityselector/QuantitySelector.spec.js +104 -0
  239. package/dist/components/quantityselector/QuantitySelector.stories.d.ts +10 -15
  240. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  241. package/dist/components/quantityselector/QuantitySelector.stories.js +72 -146
  242. package/dist/components/quantityselector/QuantitySelector.svelte +94 -77
  243. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts +49 -17
  244. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  245. package/dist/components/quantityselector/README.md +21 -0
  246. package/dist/components/radio/README.md +15 -0
  247. package/dist/components/radio/Radio.js +2 -2
  248. package/dist/components/radio/Radio.js.map +1 -1
  249. package/dist/components/radio/Radio.spec.js +60 -0
  250. package/dist/components/radio/Radio.stories.d.ts +9 -13
  251. package/dist/components/radio/Radio.stories.d.ts.map +1 -1
  252. package/dist/components/radio/Radio.stories.js +54 -70
  253. package/dist/components/radio/Radio.svelte +35 -20
  254. package/dist/components/radio/Radio.svelte.d.ts +27 -5
  255. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  256. package/dist/components/radiogroup/README.md +14 -0
  257. package/dist/components/radiogroup/RadioGroup.js +3 -3
  258. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  259. package/dist/components/radiogroup/RadioGroup.spec.js +65 -0
  260. package/dist/components/radiogroup/RadioGroup.stories.d.ts +5 -12
  261. package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
  262. package/dist/components/radiogroup/RadioGroup.stories.js +56 -151
  263. package/dist/components/radiogroup/RadioGroup.svelte +48 -47
  264. package/dist/components/radiogroup/RadioGroup.svelte.d.ts +28 -9
  265. package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
  266. package/dist/components/segmentedcontrol/README.md +19 -0
  267. package/dist/components/segmentedcontrol/SegmentedControl.js +4 -0
  268. package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -0
  269. package/dist/components/segmentedcontrol/SegmentedControl.spec.js +52 -0
  270. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts +8 -0
  271. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -0
  272. package/dist/components/segmentedcontrol/SegmentedControl.stories.js +54 -0
  273. package/dist/components/segmentedcontrol/SegmentedControl.svelte +125 -0
  274. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts +32 -0
  275. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -0
  276. package/dist/components/select/README.md +18 -0
  277. package/dist/components/select/Select.js +2 -2
  278. package/dist/components/select/Select.js.map +1 -1
  279. package/dist/components/select/Select.spec.js +76 -0
  280. package/dist/components/select/Select.stories.d.ts +10 -14
  281. package/dist/components/select/Select.stories.d.ts.map +1 -1
  282. package/dist/components/select/Select.stories.js +87 -92
  283. package/dist/components/select/Select.svelte +57 -44
  284. package/dist/components/select/Select.svelte.d.ts +42 -11
  285. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  286. package/dist/components/statusbadge/README.md +11 -0
  287. package/dist/components/statusbadge/StatusBadge.js +2 -2
  288. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  289. package/dist/components/statusbadge/StatusBadge.spec.js +31 -0
  290. package/dist/components/statusbadge/StatusBadge.stories.d.ts +9 -12
  291. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  292. package/dist/components/statusbadge/StatusBadge.stories.js +21 -44
  293. package/dist/components/statusbadge/StatusBadge.svelte +14 -6
  294. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +13 -28
  295. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  296. package/dist/components/statusdot/README.md +11 -0
  297. package/dist/components/statusdot/StatusDot.js +2 -2
  298. package/dist/components/statusdot/StatusDot.js.map +1 -1
  299. package/dist/components/statusdot/StatusDot.spec.js +36 -0
  300. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  301. package/dist/components/statusdot/StatusDot.stories.js +9 -37
  302. package/dist/components/statusdot/StatusDot.svelte +5 -9
  303. package/dist/components/statusdot/StatusDot.svelte.d.ts +2 -2
  304. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  305. package/dist/components/statusnotification/README.md +25 -0
  306. package/dist/components/statusnotification/StatusNotification.js +2 -6
  307. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  308. package/dist/components/statusnotification/StatusNotification.spec.js +54 -0
  309. package/dist/components/statusnotification/StatusNotification.stories.d.ts +16 -14
  310. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  311. package/dist/components/statusnotification/StatusNotification.stories.js +53 -86
  312. package/dist/components/statusnotification/StatusNotification.svelte +53 -64
  313. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +21 -18
  314. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  315. package/dist/components/tab/README.md +20 -0
  316. package/dist/components/tab/Tab.js +4 -0
  317. package/dist/components/tab/Tab.js.map +1 -0
  318. package/dist/components/tab/Tab.spec.js +58 -0
  319. package/dist/components/{tabs → tab}/Tab.svelte +44 -30
  320. package/dist/components/{tabs → tab}/Tab.svelte.d.ts +20 -3
  321. package/dist/components/tab/Tab.svelte.d.ts.map +1 -0
  322. package/dist/components/tabs/README.md +18 -0
  323. package/dist/components/tabs/Tabs.js +2 -2
  324. package/dist/components/tabs/Tabs.js.map +1 -1
  325. package/dist/components/tabs/Tabs.spec.js +51 -0
  326. package/dist/components/tabs/Tabs.stories.d.ts +9 -6
  327. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  328. package/dist/components/tabs/Tabs.stories.js +59 -115
  329. package/dist/components/tabs/Tabs.svelte +27 -7
  330. package/dist/components/tabs/Tabs.svelte.d.ts +21 -7
  331. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  332. package/dist/components/tags/README.md +9 -0
  333. package/dist/components/tags/Tag.js +1 -1
  334. package/dist/components/tags/TagContextualised.js +2 -2
  335. package/dist/components/tags/TagContextualised.js.map +1 -1
  336. package/dist/components/tags/TagContextualised.svelte +1 -5
  337. package/dist/components/tags/TagInteractive.js +1 -1
  338. package/dist/components/tags/TagRemovable.js +2 -2
  339. package/dist/components/tags/TagRemovable.js.map +1 -1
  340. package/dist/components/tags/TagRemovable.svelte +2 -12
  341. package/dist/components/tags/TagRemovable.svelte.d.ts.map +1 -1
  342. package/dist/components/tags/TagSelectable.js +2 -2
  343. package/dist/components/tags/TagSelectable.js.map +1 -1
  344. package/dist/components/tags/TagSelectable.svelte +1 -5
  345. package/dist/components/tags/Tags.stories.d.ts.map +1 -1
  346. package/dist/components/tags/Tags.stories.js +7 -1
  347. package/dist/components/tags/TagsContextualised.stories.d.ts.map +1 -1
  348. package/dist/components/tags/TagsContextualised.stories.js +7 -1
  349. package/dist/components/tags/TagsInteractive.stories.d.ts.map +1 -1
  350. package/dist/components/tags/TagsInteractive.stories.js +7 -1
  351. package/dist/components/tags/TagsRemovable.stories.d.ts.map +1 -1
  352. package/dist/components/tags/TagsRemovable.stories.js +8 -4
  353. package/dist/components/tags/TagsSelectable.stories.d.ts.map +1 -1
  354. package/dist/components/tags/TagsSelectable.stories.js +7 -1
  355. package/dist/components/textarea/README.md +19 -0
  356. package/dist/components/textarea/Textarea.js +2 -5
  357. package/dist/components/textarea/Textarea.js.map +1 -1
  358. package/dist/components/textarea/Textarea.spec.js +67 -0
  359. package/dist/components/textarea/Textarea.stories.d.ts +9 -13
  360. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  361. package/dist/components/textarea/Textarea.stories.js +61 -92
  362. package/dist/components/textarea/Textarea.svelte +51 -97
  363. package/dist/components/textarea/Textarea.svelte.d.ts +43 -13
  364. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  365. package/dist/components/textinput/README.md +26 -0
  366. package/dist/components/textinput/Textinput.js +2 -2
  367. package/dist/components/textinput/Textinput.js.map +1 -1
  368. package/dist/components/textinput/Textinput.spec.js +89 -0
  369. package/dist/components/textinput/Textinput.stories.d.ts +11 -12
  370. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  371. package/dist/components/textinput/Textinput.stories.js +78 -137
  372. package/dist/components/textinput/Textinput.svelte +68 -118
  373. package/dist/components/textinput/Textinput.svelte.d.ts +47 -23
  374. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  375. package/dist/components/toaster/README.md +29 -0
  376. package/dist/components/toaster/Toaster.js +3 -7
  377. package/dist/components/toaster/Toaster.js.map +1 -1
  378. package/dist/components/toaster/Toaster.spec.js +100 -0
  379. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  380. package/dist/components/toaster/Toaster.stories.js +5 -73
  381. package/dist/components/toaster/Toaster.svelte +21 -14
  382. package/dist/components/toaster/Toaster.svelte.d.ts +7 -0
  383. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  384. package/dist/components/toggle/README.md +15 -0
  385. package/dist/components/toggle/Toggle.js +2 -2
  386. package/dist/components/toggle/Toggle.js.map +1 -1
  387. package/dist/components/toggle/Toggle.spec.js +69 -0
  388. package/dist/components/toggle/Toggle.stories.d.ts +9 -14
  389. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  390. package/dist/components/toggle/Toggle.stories.js +55 -64
  391. package/dist/components/toggle/Toggle.svelte +33 -33
  392. package/dist/components/toggle/Toggle.svelte.d.ts +26 -7
  393. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  394. package/dist/components/togglegroup/README.md +13 -0
  395. package/dist/components/togglegroup/ToggleGroup.js +3 -3
  396. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  397. package/dist/components/togglegroup/ToggleGroup.spec.js +50 -0
  398. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +5 -13
  399. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  400. package/dist/components/togglegroup/ToggleGroup.stories.js +56 -104
  401. package/dist/components/togglegroup/ToggleGroup.svelte +55 -58
  402. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +25 -14
  403. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  404. package/dist/components/tooltip/README.md +19 -0
  405. package/dist/components/tooltip/Tooltip.js +2 -2
  406. package/dist/components/tooltip/Tooltip.js.map +1 -1
  407. package/dist/components/tooltip/Tooltip.spec.js +38 -0
  408. package/dist/components/tooltip/Tooltip.stories.d.ts +6 -7
  409. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  410. package/dist/components/tooltip/Tooltip.stories.js +45 -59
  411. package/dist/components/tooltip/Tooltip.svelte +19 -14
  412. package/dist/components/tooltip/Tooltip.svelte.d.ts +17 -0
  413. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  414. package/dist/custom-element-forward-events.js.map +1 -1
  415. package/dist/custom-element.js +3 -3
  416. package/dist/custom-element.js.map +1 -1
  417. package/dist/documentation/Contributing.mdx +1 -1
  418. package/dist/documentation/Introduction.mdx +54 -11
  419. package/dist/documentation/SupportAndOnboarding.mdx +2 -2
  420. package/dist/documentation/Svelte/Introduction.mdx +1 -1
  421. package/dist/documentation/Svelte/usingPresets.mdx +5 -6
  422. package/dist/documentation/WebComponents/Introduction.mdx +0 -1
  423. package/dist/documentation/WebComponents/usingIcons.mdx +2 -3
  424. package/dist/documentation/WebComponents/usingPresets.mdx +3 -4
  425. package/dist/each.js +1 -1
  426. package/dist/each.js.map +1 -1
  427. package/dist/if.js +1 -1
  428. package/dist/if.js.map +1 -1
  429. package/dist/input.js +1 -1
  430. package/dist/input.js.map +1 -1
  431. package/dist/legacy.js +1 -1
  432. package/dist/main.d.ts +25 -23
  433. package/dist/main.d.ts.map +1 -1
  434. package/dist/main.js +25 -23
  435. package/dist/slot.js +1 -1
  436. package/dist/slot.js.map +1 -1
  437. package/dist/this.js +2 -0
  438. package/dist/this.js.map +1 -0
  439. package/dist/utils/custom-element-forward-events.d.ts.map +1 -1
  440. package/package.json +32 -22
  441. package/dist/components/button/button.types.d.ts +0 -13
  442. package/dist/components/button/button.types.d.ts.map +0 -1
  443. package/dist/components/button/button.types.js +0 -1
  444. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts +0 -9
  445. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts.map +0 -1
  446. package/dist/components/checkboxgroup/checkboxgroup.types.js +0 -1
  447. package/dist/components/link/link.types.d.ts +0 -4
  448. package/dist/components/link/link.types.d.ts.map +0 -1
  449. package/dist/components/link/link.types.js +0 -1
  450. package/dist/components/loader/loader.types.d.ts +0 -3
  451. package/dist/components/loader/loader.types.d.ts.map +0 -1
  452. package/dist/components/loader/loader.types.js +0 -1
  453. package/dist/components/numberbadge/NumberBadge.types.d.ts +0 -3
  454. package/dist/components/numberbadge/NumberBadge.types.d.ts.map +0 -1
  455. package/dist/components/numberbadge/NumberBadge.types.js +0 -1
  456. package/dist/components/overlayloader/OverlayLoader.js +0 -27
  457. package/dist/components/overlayloader/OverlayLoader.js.map +0 -1
  458. package/dist/components/overlayloader/OverlayLoader.stories.d.ts +0 -8
  459. package/dist/components/overlayloader/OverlayLoader.stories.d.ts.map +0 -1
  460. package/dist/components/overlayloader/OverlayLoader.stories.js +0 -50
  461. package/dist/components/overlayloader/OverlayLoader.svelte +0 -160
  462. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts +0 -9
  463. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts.map +0 -1
  464. package/dist/components/quantityselector/quantitySelector.types.d.ts +0 -2
  465. package/dist/components/quantityselector/quantitySelector.types.d.ts.map +0 -1
  466. package/dist/components/quantityselector/quantitySelector.types.js +0 -1
  467. package/dist/components/radiogroup/radioGroup.types.d.ts +0 -9
  468. package/dist/components/radiogroup/radioGroup.types.d.ts.map +0 -1
  469. package/dist/components/radiogroup/radioGroup.types.js +0 -1
  470. package/dist/components/select/select.types.d.ts +0 -9
  471. package/dist/components/select/select.types.d.ts.map +0 -1
  472. package/dist/components/select/select.types.js +0 -1
  473. package/dist/components/statusbadge/StatusBadge.types.d.ts +0 -2
  474. package/dist/components/statusbadge/StatusBadge.types.d.ts.map +0 -1
  475. package/dist/components/statusbadge/StatusBadge.types.js +0 -1
  476. package/dist/components/statusdot/StatusDot.types.d.ts +0 -3
  477. package/dist/components/statusdot/StatusDot.types.d.ts.map +0 -1
  478. package/dist/components/statusdot/StatusDot.types.js +0 -1
  479. package/dist/components/tabs/Tab.js +0 -4
  480. package/dist/components/tabs/Tab.js.map +0 -1
  481. package/dist/components/tabs/Tab.svelte.d.ts.map +0 -1
  482. package/dist/components/textinput/textinput.types.d.ts +0 -3
  483. package/dist/components/textinput/textinput.types.d.ts.map +0 -1
  484. package/dist/components/textinput/textinput.types.js +0 -1
  485. package/dist/components/toggle/toggle.types.d.ts +0 -2
  486. package/dist/components/toggle/toggle.types.d.ts.map +0 -1
  487. package/dist/components/toggle/toggle.types.js +0 -1
  488. package/dist/index-client.js +0 -2
  489. package/dist/index-client.js.map +0 -1
  490. package/dist/snippet.js +0 -2
  491. package/dist/snippet.js.map +0 -1
@@ -1,130 +1,84 @@
1
- <svelte:options customElement="m-textarea" />
1
+ <svelte:options customElement={{ tag: 'm-textarea', extend: customElementForwardEvents }} />
2
2
 
3
3
  <script lang="ts">
4
+ import { customElementForwardEvents } from '../../utils';
5
+ /**
6
+ * A text area is an input designed for multi-line text entry, allowing users to input longer content compared to a standard text input. It is commonly used for comments, feedback, descriptions, and messaging. Text areas can be resizable or fixed in height, depending on the context, and often include placeholder text, character limits, and validation messages to guide users.
7
+ */
4
8
  interface Props {
5
- name: string;
6
- value: string;
7
- placeholder: string;
8
- rows?: number;
9
- isvalid: boolean;
10
- isinvalid: boolean;
9
+ /**
10
+ * A unique identifier for the textarea, used to associate the label with the form element.
11
+ */
12
+ id: string;
13
+ /**
14
+ * The name attribute for the textarea element, used for form submission.
15
+ */
16
+ name?: string;
17
+ /**
18
+ * The current value of the textarea field.
19
+ */
20
+ value?: string | number;
21
+ /**
22
+ * Text displayed when the textarea is empty.
23
+ */
24
+ placeholder?: string;
25
+ /**
26
+ * If `true`, the textarea is marked as invalid.
27
+ */
28
+ isinvalid?: boolean;
29
+ /**
30
+ * If `true`, the textarea is disabled and non-interactive.
31
+ */
11
32
  disabled?: boolean;
12
- minlength: number;
13
- maxlength: number;
14
- readonly: boolean;
15
- oninput?: (event: Event) => void;
16
- onchange?: (event: Event) => void;
17
- onblur?: (event: FocusEvent) => void;
33
+ /**
34
+ * The number of visible text lines in the textarea.
35
+ */
36
+ rows?: number;
37
+ /**
38
+ * Minimum number of characters required for the textarea.
39
+ */
40
+ minlength?: number;
41
+ /**
42
+ * Maximum number of characters allowed in the textarea.
43
+ */
44
+ maxlength?: number;
45
+ /**
46
+ * If `true`, the textarea is read-only (cannot be edited).
47
+ */
48
+ readonly?: boolean;
18
49
  }
19
50
 
20
51
  let {
52
+ id,
21
53
  name,
22
- value = $bindable(),
54
+ value,
23
55
  placeholder,
24
- rows = 2,
25
- isvalid,
26
56
  isinvalid,
27
- disabled = false,
57
+ disabled,
58
+ rows = 2,
28
59
  minlength,
29
60
  maxlength,
30
61
  readonly,
31
- oninput,
32
- onchange,
33
- onblur,
34
62
  }: Props = $props();
35
63
  </script>
36
64
 
37
65
  <textarea
38
66
  bind:value
39
- class="mc-textarea"
40
- class:is-invalid={isinvalid}
41
- class:is-valid={isvalid}
67
+ class={['mc-textarea', isinvalid && 'is-invalid']}
42
68
  aria-invalid={isinvalid}
43
69
  {name}
44
- id={name}
70
+ {id}
45
71
  {placeholder}
46
72
  {rows}
47
73
  {disabled}
48
74
  {minlength}
49
75
  {maxlength}
50
- {...readonly ? { readonly: true } : {}}
51
- spellcheck="false"
52
- {oninput}
53
- {onchange}
54
- {onblur}
76
+ {readonly}
55
77
  ></textarea>
56
78
 
57
79
  <style>/**
58
80
  * Do not edit directly, this file was auto-generated.
59
81
  */
60
- /* stylelint-disable string-no-newline */
61
- .mc-field__label, .mc-field__legend {
62
- font-size: var(--font-size-100, 0.875rem);
63
- line-height: var(--line-height-s, 1.3);
64
- font-weight: var(--font-weight-regular, 400);
65
- color: var(--field-color-label, #000000);
66
- }
67
- .mc-field__legend {
68
- padding-inline: 0;
69
- }
70
- .mc-field__requirement, .mc-field__help {
71
- font-size: var(--font-size-50, 0.75rem);
72
- line-height: var(--line-height-m, 1.5);
73
- font-weight: var(--font-weight-regular, 400);
74
- vertical-align: top;
75
- color: var(--field-color-requirement, #666666);
76
- }
77
- .mc-field__help {
78
- display: block;
79
- margin-top: 0.125rem;
80
- }
81
- .mc-field__content {
82
- margin-top: 0.5rem;
83
- }
84
- .mc-field__validation-message {
85
- font-size: var(--font-size-100, 0.875rem);
86
- line-height: var(--line-height-m, 1.5);
87
- display: inline-flex;
88
- gap: 0.25rem;
89
- margin-top: 0.25rem;
90
- }
91
- .mc-field__validation-message.is-valid::before, .mc-field__validation-message.is-invalid::before {
92
- content: "";
93
- height: 1.25rem;
94
- width: 1.25rem;
95
- }
96
- .mc-field__validation-message.is-valid {
97
- color: var(--field-color-validation-valid, #117f03);
98
- }
99
- .mc-field__validation-message.is-valid::before {
100
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' fill='var(--field-color-validation-valid, %23117f03)' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M3.25 10c0-3.72792 3.02208-6.75 6.75-6.75 3.7279 0 6.75 3.02208 6.75 6.75 0 3.7279-3.0221 6.75-6.75 6.75-3.72792 0-6.75-3.0221-6.75-6.75ZM10 1.75c-4.55635 0-8.25 3.69365-8.25 8.25 0 4.5563 3.69365 8.25 8.25 8.25 4.5563 0 8.25-3.6937 8.25-8.25 0-4.55635-3.6937-8.25-8.25-8.25Zm4.2803 6.697c.2929-.2929.2929-.76777 0-1.06066-.2929-.2929-.7677-.2929-1.0606 0L9.16667 11.4393 7.197 9.46967c-.2929-.29289-.76777-.29289-1.06066 0-.2929.29289-.2929.76773 0 1.06063l2.5 2.5c.29289.2929.76776.2929 1.06066 0l4.5833-4.5833Z'/%3E%3C/svg%3E");
101
- }
102
- .mc-field__validation-message.is-invalid {
103
- color: var(--field-color-validation-invalid, #c61112);
104
- }
105
- .mc-field__validation-message.is-invalid::before {
106
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' fill='var(--field-color-validation-invalid, %23c61112)' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 3.25c-3.72792 0-6.75 3.02208-6.75 6.75 0 3.7279 3.02208 6.75 6.75 6.75 3.7279 0 6.75-3.0221 6.75-6.75 0-3.72792-3.0221-6.75-6.75-6.75ZM1.75 10c0-4.55635 3.69365-8.25 8.25-8.25 4.5563 0 8.25 3.69365 8.25 8.25 0 4.5563-3.6937 8.25-8.25 8.25-4.55635 0-8.25-3.6937-8.25-8.25ZM10 5.91667c.4142 0 .75.33578.75.75v4.16663c0 .4142-.3358.75-.75.75-.41421 0-.75-.3358-.75-.75V6.66667c0-.41422.33579-.75.75-.75Zm0 8.25003c.4602 0 .8333-.3731.8333-.8334 0-.4602-.3731-.8333-.8333-.8333-.46024 0-.83333.3731-.83333.8333 0 .4603.37309.8334.83333.8334Z'/%3E%3C/svg%3E");
107
- }
108
- .mc-field__validation-message.is-loading {
109
- color: var(--field-color-validation-loading, #666666);
110
- }
111
- .mc-field--group {
112
- border-width: 0;
113
- margin-inline: 0;
114
- padding: 0;
115
- }
116
- .mc-field--group .mc-field__content {
117
- display: flex;
118
- flex-direction: column;
119
- flex-shrink: 0;
120
- gap: 0.25rem;
121
- }
122
- .mc-field--group .mc-field__content:where(.mc-field__content--inline) {
123
- flex-flow: row wrap;
124
- gap: 0.25rem 1rem;
125
- }
126
-
127
- /* stylelint-enable string-no-newline */
128
82
  .mc-textarea {
129
83
  font-family: inherit;
130
84
  transition: box-shadow 200ms ease;
@@ -1,19 +1,49 @@
1
+ /**
2
+ * A text area is an input designed for multi-line text entry, allowing users to input longer content compared to a standard text input. It is commonly used for comments, feedback, descriptions, and messaging. Text areas can be resizable or fixed in height, depending on the context, and often include placeholder text, character limits, and validation messages to guide users.
3
+ */
1
4
  interface Props {
2
- name: string;
3
- value: string;
4
- placeholder: string;
5
- rows?: number;
6
- isvalid: boolean;
7
- isinvalid: boolean;
5
+ /**
6
+ * A unique identifier for the textarea, used to associate the label with the form element.
7
+ */
8
+ id: string;
9
+ /**
10
+ * The name attribute for the textarea element, used for form submission.
11
+ */
12
+ name?: string;
13
+ /**
14
+ * The current value of the textarea field.
15
+ */
16
+ value?: string | number;
17
+ /**
18
+ * Text displayed when the textarea is empty.
19
+ */
20
+ placeholder?: string;
21
+ /**
22
+ * If `true`, the textarea is marked as invalid.
23
+ */
24
+ isinvalid?: boolean;
25
+ /**
26
+ * If `true`, the textarea is disabled and non-interactive.
27
+ */
8
28
  disabled?: boolean;
9
- minlength: number;
10
- maxlength: number;
11
- readonly: boolean;
12
- oninput?: (event: Event) => void;
13
- onchange?: (event: Event) => void;
14
- onblur?: (event: FocusEvent) => void;
29
+ /**
30
+ * The number of visible text lines in the textarea.
31
+ */
32
+ rows?: number;
33
+ /**
34
+ * Minimum number of characters required for the textarea.
35
+ */
36
+ minlength?: number;
37
+ /**
38
+ * Maximum number of characters allowed in the textarea.
39
+ */
40
+ maxlength?: number;
41
+ /**
42
+ * If `true`, the textarea is read-only (cannot be edited).
43
+ */
44
+ readonly?: boolean;
15
45
  }
16
- declare const Textarea: import("svelte").Component<Props, {}, "value">;
46
+ declare const Textarea: import("svelte").Component<Props, {}, "">;
17
47
  type Textarea = ReturnType<typeof Textarea>;
18
48
  export default Textarea;
19
49
  //# sourceMappingURL=Textarea.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.svelte.ts"],"names":[],"mappings":"AAGE,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AA6BH,QAAA,MAAM,QAAQ,gDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Textarea.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.svelte.ts"],"names":[],"mappings":"AAKE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2BH,QAAA,MAAM,QAAQ,2CAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,26 @@
1
+ # `m-textinput`
2
+
3
+ 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.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `id*` | A unique identifier for the input element, used to associate the label with the form element. | `string` | |
10
+ | `name` | The name attribute for the input element, typically used for form submission. | `string` | |
11
+ | `value` | The current value of the input field. | `string` `number` | `$bindable()` |
12
+ | `placeholder` | A placeholder text to show in the input when it is empty. | `string` | |
13
+ | `inputtype` | Defines the type of input. | `'date'` `'email'` `'number'` `'password'` `'search'` `'tel'` `'text'` | `text` |
14
+ | `isinvalid` | If `true`, applies an invalid state to the input. | `boolean` | |
15
+ | `disabled` | If `true`, disables the input, making it non-interactive. | `boolean` | |
16
+ | `size` | Determines the size of the input. | `'s'` `'m'` | `m` |
17
+ | `readonly` | If `true`, the input is read-only (cannot be edited). | `boolean` | |
18
+ | `isclearable` | If `true`, a clear button will appear when the input has a value. | `boolean` | |
19
+ | `clearlabel` | The label text for the clear button. | `string` | `Clear content` |
20
+
21
+ ## Slots
22
+
23
+ | Name | Description |
24
+ |------|-------------|
25
+ | `icon` | Use this slot to insert an icon in the input. |
26
+
@@ -1,9 +1,9 @@
1
- import{x as X,y as ie,n as le,c as ae,p as se,a as ce,b as n,f as O,t as R,m as _,z as J,e as de,h as b,i as ue,j as r,d as h,s as K,r as f,g as me,A as U,B as W}from"../../custom-element.js";import{s as ve}from"../../snippet.js";import{i as N}from"../../if.js";import{s as be}from"../../slot.js";import{b as he}from"../../attributes.js";import{c as fe}from"../../input.js";function pe(u,t,i){X(()=>{var o=ie(()=>t(u,i==null?void 0:i())||{});if(o!=null&&o.destroy)return()=>o.destroy()})}function ge(u,t,i){var o;t(""),(o=i())==null||o("onclear")}var xe=O('<span class="mc-text-input__icon svelte-5c9enb"><!></span>'),_e=O('<div class="mc-controls-options js-control-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>'),we=O("<div><!> <input/> <!></div>");const ye={hash:"svelte-5c9enb",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
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);}
4
4
 
5
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
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;}
7
7
 
8
- /* stylelint-enable string-no-newline */.right-align.svelte-5c9enb {text-align:right;}`};function ke(u,t){se(t,!0),ce(u,ye);let i=n(t,"name",7),o=n(t,"value",7),w=n(t,"placeholder",7),y=n(t,"inputtype",7,"text"),k=n(t,"isvalid",7),p=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),m=n(t,"icon",7),L=n(t,"rightalign",7),M=n(t,"min",7),S=n(t,"max",7),Z=n(t,"minlength",7),A=n(t,"maxlength",7),B=n(t,"required",7,!1),D=n(t,"clearlabel",7,"Clear content"),E=n(t,"isclearable",7,!1),F=n(t,"onclear",7),G=n(t,"oninput",7),I=n(t,"onchange",7),T=n(t,"onblur",7),Y=J(y),$=J(()=>!!(E()&&o())),P=J(()=>!!j()||!!m());function ee(e,a,s,c){const l=["mc-text-input","mc-field__input"];return e&&l.push("is-valid"),a&&l.push("is-invalid"),s==="s"&&l.push("mc-text-input--s"),c&&l.push("mc-left-icon-input__input"),L()&&l.push("right-align"),l.join(" ")}const V=e=>{e.type=_(Y)};var te={get name(){return i()},set name(e){i(e),r()},get value(){return o()},set value(e){o(e),r()},get placeholder(){return w()},set placeholder(e){w(e),r()},get inputtype(){return y()},set inputtype(e="text"){y(e),r()},get isvalid(){return k()},set isvalid(e){k(e),r()},get isinvalid(){return p()},set isinvalid(e){p(e),r()},get disabled(){return z()},set disabled(e=!1){z(e),r()},get readonly(){return q()},set readonly(e=!1){q(e),r()},get size(){return C()},set size(e="m"){C(e),r()},get hasicon(){return j()},set hasicon(e=!1){j(e),r()},get icon(){return m()},set icon(e){m(e),r()},get rightalign(){return L()},set rightalign(e){L(e),r()},get min(){return M()},set min(e){M(e),r()},get max(){return S()},set max(e){S(e),r()},get minlength(){return Z()},set minlength(e){Z(e),r()},get maxlength(){return A()},set maxlength(e){A(e),r()},get required(){return B()},set required(e=!1){B(e),r()},get clearlabel(){return D()},set clearlabel(e="Clear content"){D(e),r()},get isclearable(){return E()},set isclearable(e=!1){E(e),r()},get onclear(){return F()},set onclear(e){F(e),r()},get oninput(){return G()},set oninput(e){G(e),r()},get onchange(){return I()},set onchange(e){I(e),r()},get onblur(){return T()},set onblur(e){T(e),r()}},g=we(),Q=h(g);{var ne=e=>{var a=xe(),s=h(a);{var c=d=>{var v=U(),H=W(v);ve(H,m),b(d,v)},l=d=>{var v=U(),H=W(v);be(H,t,"icon",{}),b(d,v)};N(s,d=>{m()?d(c):d(l,!1)})}f(a),b(e,a)};N(Q,e=>{_(P)&&e(ne)})}var x=K(Q,2);he(x,()=>({class:"mc-text-input__control","aria-invalid":p(),name:i(),id:i(),placeholder:w(),disabled:z(),min:M(),max:S(),minlength:Z(),maxlength:A(),spellcheck:"false",required:B(),...q()?{readonly:!0}:{},oninput:G(),onchange:I(),onblur:T()}),void 0,void 0,"svelte-5c9enb",!0),X(()=>fe(x,o)),pe(x,e=>V==null?void 0:V(e));var re=K(x,2);{var oe=e=>{var a=_e(),s=h(a);s.__click=[ge,o,F];var c=K(h(s),2),l=h(c,!0);f(c),f(s),f(a),R(()=>me(l,D())),b(e,a)};N(re,e=>{_($)&&e(oe)})}return f(g),R(e=>de(g,1,`${e??""} `,"svelte-5c9enb"),[()=>ee(k(),p(),C(),_(P))]),b(u,g),ue(te)}le(["click"]);customElements.define("m-textinput",ae(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",15),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));
9
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":"sXAYO,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,QAAO,CAEvD,CAAC,CACF,CCwDW,SAAAE,GAAUC,EAAAC,EAAAC,EAAG,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,EAAK,EAAe,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,CACvB,6MA5Dc,OAAM,+JAGP,GAAK,qDACL,GAAK,6CACT,IAAG,mDACA,GAAK,+VAOJ,GAAK,yDACH,gBAAe,2DACd,GAAK,qSAyDPZ,CAAI,mEADTA,EAAI,EAAAuB,EAAAC,CAAA,EAAAD,EAAAE,EAAA,EAAA,2BAFRX,CAAO,GAAAS,EAAAG,EAAA,0EAaI/B,EAAS,cAEnBN,EAAI,8GASJQ,EAAQ,EAAA,CAAK,SAAU,EAAI,EAAA,CAAA,6KAYlBb,GAAUE,EAAAC,CAAA,sDAQuBoB,EAAU,CAAA,CAAA,qBAdrDM,CAAY,GAAAU,EAAAI,EAAA,0DA/BN,IAAAX,GAAWtB,IAASC,EAAS,EAAEG,EAAI,IAAEgB,CAAO,CAAA,iBAFzD","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Textinput.js","sources":["../../../src/components/textinput/Textinput.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-textinput', extend: customElementForwardEvents }} />\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 = $bindable(),\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 class={['mc-text-input', `mc-text-input--${size}`, isinvalid && 'is-invalid']}>\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 type=\"button\" class=\"mc-controls-options__button\" onclick={resetValue}>\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":"0WAsEQA,EAAU,CAAAC,EAAAC,IAAUA,EAAQ,EAAE;;;;;;;kHAtEtC,oBAyDIC,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJH,EAAKE,EAAAC,EAAA,QAAA,EAAA,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,uLA0ByCL,EAAUE,CAAA,qDAOjCW,EAAU,CAAA,CAAA,kBATrDC,EAAW,GAAIZ,KAAKa,EAAAC,CAAA,gCAjBd,kCAAmCJ,EAAI,CAAA,GAAIH,KAAa,mDAQnDA,GAAS,2CAGjBD,GAAS,2EAbnB,oMAvE6DS"}
@@ -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"}