@mozaic-ds/web-components 1.0.0-beta.7 → 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 (467) 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/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 +24 -23
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +24 -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 +3 -29
  16. package/dist/components/avatar/Avatar.svelte +2 -0
  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 +6 -35
  25. package/dist/components/breadcrumb/Breadcrumb.svelte +11 -16
  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 +1 -1
  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 +4 -0
  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 +113 -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 +56 -45
  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 +25 -6
  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 +48 -25
  84. package/dist/components/datepicker/Datepicker.svelte.d.ts +30 -1
  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 +86 -87
  93. package/dist/components/drawer/Drawer.svelte +61 -38
  94. package/dist/components/drawer/Drawer.svelte.d.ts +26 -3
  95. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  96. package/dist/components/drawer/README.md +29 -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 +51 -0
  100. package/dist/components/field/Field.stories.d.ts +9 -15
  101. package/dist/components/field/Field.stories.d.ts.map +1 -1
  102. package/dist/components/field/Field.stories.js +86 -142
  103. package/dist/components/field/Field.svelte +48 -12
  104. package/dist/components/field/Field.svelte.d.ts +38 -7
  105. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  106. package/dist/components/field/README.md +24 -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 +28 -106
  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 +15 -5
  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 +54 -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 +27 -43
  162. package/dist/components/loader/Loader.svelte +31 -31
  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 +54 -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 +24 -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 +32 -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 +33 -12
  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 -24
  223. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +34 -2
  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 -41
  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 +11 -15
  240. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  241. package/dist/components/quantityselector/QuantitySelector.stories.js +77 -145
  242. package/dist/components/quantityselector/QuantitySelector.svelte +100 -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 +42 -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 +50 -43
  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/select/README.md +18 -0
  267. package/dist/components/select/Select.js +2 -2
  268. package/dist/components/select/Select.js.map +1 -1
  269. package/dist/components/select/Select.spec.js +76 -0
  270. package/dist/components/select/Select.stories.d.ts +10 -14
  271. package/dist/components/select/Select.stories.d.ts.map +1 -1
  272. package/dist/components/select/Select.stories.js +87 -92
  273. package/dist/components/select/Select.svelte +57 -44
  274. package/dist/components/select/Select.svelte.d.ts +41 -10
  275. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  276. package/dist/components/statusbadge/README.md +11 -0
  277. package/dist/components/statusbadge/StatusBadge.js +2 -2
  278. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  279. package/dist/components/statusbadge/StatusBadge.spec.js +31 -0
  280. package/dist/components/statusbadge/StatusBadge.stories.d.ts +9 -12
  281. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  282. package/dist/components/statusbadge/StatusBadge.stories.js +21 -44
  283. package/dist/components/statusbadge/StatusBadge.svelte +14 -6
  284. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +13 -28
  285. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  286. package/dist/components/statusdot/README.md +11 -0
  287. package/dist/components/statusdot/StatusDot.js +2 -2
  288. package/dist/components/statusdot/StatusDot.js.map +1 -1
  289. package/dist/components/statusdot/StatusDot.spec.js +42 -0
  290. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  291. package/dist/components/statusdot/StatusDot.stories.js +9 -37
  292. package/dist/components/statusdot/StatusDot.svelte +9 -7
  293. package/dist/components/statusdot/StatusDot.svelte.d.ts +2 -2
  294. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  295. package/dist/components/statusnotification/README.md +25 -0
  296. package/dist/components/statusnotification/StatusNotification.js +3 -3
  297. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  298. package/dist/components/statusnotification/StatusNotification.spec.js +54 -0
  299. package/dist/components/statusnotification/StatusNotification.stories.d.ts +16 -14
  300. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  301. package/dist/components/statusnotification/StatusNotification.stories.js +53 -86
  302. package/dist/components/statusnotification/StatusNotification.svelte +49 -51
  303. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +21 -18
  304. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  305. package/dist/components/tab/README.md +20 -0
  306. package/dist/components/tab/Tab.js +4 -0
  307. package/dist/components/tab/Tab.js.map +1 -0
  308. package/dist/components/tab/Tab.spec.js +58 -0
  309. package/dist/components/{tabs → tab}/Tab.svelte +46 -26
  310. package/dist/components/{tabs → tab}/Tab.svelte.d.ts +20 -3
  311. package/dist/components/tab/Tab.svelte.d.ts.map +1 -0
  312. package/dist/components/tabs/README.md +18 -0
  313. package/dist/components/tabs/Tabs.js +2 -2
  314. package/dist/components/tabs/Tabs.js.map +1 -1
  315. package/dist/components/tabs/Tabs.spec.js +51 -0
  316. package/dist/components/tabs/Tabs.stories.d.ts +9 -6
  317. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  318. package/dist/components/tabs/Tabs.stories.js +59 -115
  319. package/dist/components/tabs/Tabs.svelte +27 -7
  320. package/dist/components/tabs/Tabs.svelte.d.ts +21 -7
  321. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  322. package/dist/components/tags/README.md +9 -0
  323. package/dist/components/tags/Tag.js +1 -1
  324. package/dist/components/tags/TagContextualised.js +2 -2
  325. package/dist/components/tags/TagInteractive.js +1 -1
  326. package/dist/components/tags/TagRemovable.js +2 -2
  327. package/dist/components/tags/TagSelectable.js +2 -2
  328. package/dist/components/tags/Tags.stories.d.ts.map +1 -1
  329. package/dist/components/tags/Tags.stories.js +7 -1
  330. package/dist/components/tags/TagsContextualised.stories.d.ts.map +1 -1
  331. package/dist/components/tags/TagsContextualised.stories.js +7 -1
  332. package/dist/components/tags/TagsInteractive.stories.d.ts.map +1 -1
  333. package/dist/components/tags/TagsInteractive.stories.js +7 -1
  334. package/dist/components/tags/TagsRemovable.stories.d.ts.map +1 -1
  335. package/dist/components/tags/TagsRemovable.stories.js +7 -1
  336. package/dist/components/tags/TagsSelectable.stories.d.ts.map +1 -1
  337. package/dist/components/tags/TagsSelectable.stories.js +7 -1
  338. package/dist/components/textarea/README.md +19 -0
  339. package/dist/components/textarea/Textarea.js +2 -5
  340. package/dist/components/textarea/Textarea.js.map +1 -1
  341. package/dist/components/textarea/Textarea.spec.js +67 -0
  342. package/dist/components/textarea/Textarea.stories.d.ts +9 -13
  343. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  344. package/dist/components/textarea/Textarea.stories.js +61 -92
  345. package/dist/components/textarea/Textarea.svelte +53 -97
  346. package/dist/components/textarea/Textarea.svelte.d.ts +43 -13
  347. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  348. package/dist/components/textinput/README.md +26 -0
  349. package/dist/components/textinput/Textinput.js +2 -2
  350. package/dist/components/textinput/Textinput.js.map +1 -1
  351. package/dist/components/textinput/Textinput.spec.js +89 -0
  352. package/dist/components/textinput/Textinput.stories.d.ts +11 -12
  353. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  354. package/dist/components/textinput/Textinput.stories.js +78 -137
  355. package/dist/components/textinput/Textinput.svelte +70 -112
  356. package/dist/components/textinput/Textinput.svelte.d.ts +46 -22
  357. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  358. package/dist/components/toaster/README.md +28 -0
  359. package/dist/components/toaster/Toaster.js +2 -2
  360. package/dist/components/toaster/Toaster.js.map +1 -1
  361. package/dist/components/toaster/Toaster.spec.js +100 -0
  362. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  363. package/dist/components/toaster/Toaster.stories.js +5 -73
  364. package/dist/components/toaster/Toaster.svelte +17 -7
  365. package/dist/components/toaster/Toaster.svelte.d.ts +3 -0
  366. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  367. package/dist/components/toggle/README.md +15 -0
  368. package/dist/components/toggle/Toggle.js +2 -2
  369. package/dist/components/toggle/Toggle.js.map +1 -1
  370. package/dist/components/toggle/Toggle.spec.js +69 -0
  371. package/dist/components/toggle/Toggle.stories.d.ts +9 -14
  372. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  373. package/dist/components/toggle/Toggle.stories.js +55 -64
  374. package/dist/components/toggle/Toggle.svelte +38 -24
  375. package/dist/components/toggle/Toggle.svelte.d.ts +26 -7
  376. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  377. package/dist/components/togglegroup/README.md +13 -0
  378. package/dist/components/togglegroup/ToggleGroup.js +3 -3
  379. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  380. package/dist/components/togglegroup/ToggleGroup.spec.js +50 -0
  381. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +5 -13
  382. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  383. package/dist/components/togglegroup/ToggleGroup.stories.js +56 -104
  384. package/dist/components/togglegroup/ToggleGroup.svelte +55 -58
  385. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +25 -14
  386. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  387. package/dist/components/tooltip/README.md +19 -0
  388. package/dist/components/tooltip/Tooltip.js +2 -2
  389. package/dist/components/tooltip/Tooltip.js.map +1 -1
  390. package/dist/components/tooltip/Tooltip.spec.js +38 -0
  391. package/dist/components/tooltip/Tooltip.stories.d.ts +6 -7
  392. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  393. package/dist/components/tooltip/Tooltip.stories.js +45 -59
  394. package/dist/components/tooltip/Tooltip.svelte +23 -14
  395. package/dist/components/tooltip/Tooltip.svelte.d.ts +17 -0
  396. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  397. package/dist/custom-element.js +3 -3
  398. package/dist/custom-element.js.map +1 -1
  399. package/dist/documentation/Contributing.mdx +1 -1
  400. package/dist/documentation/Introduction.mdx +45 -11
  401. package/dist/documentation/SupportAndOnboarding.mdx +2 -2
  402. package/dist/each.js +1 -1
  403. package/dist/each.js.map +1 -1
  404. package/dist/if.js +1 -1
  405. package/dist/if.js.map +1 -1
  406. package/dist/input.js +1 -1
  407. package/dist/input.js.map +1 -1
  408. package/dist/legacy.js +1 -1
  409. package/dist/main.d.ts +24 -23
  410. package/dist/main.d.ts.map +1 -1
  411. package/dist/main.js +24 -23
  412. package/dist/slot.js +1 -1
  413. package/dist/slot.js.map +1 -1
  414. package/dist/this.js +2 -0
  415. package/dist/this.js.map +1 -0
  416. package/package.json +11 -3
  417. package/dist/components/button/button.types.d.ts +0 -13
  418. package/dist/components/button/button.types.d.ts.map +0 -1
  419. package/dist/components/button/button.types.js +0 -1
  420. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts +0 -9
  421. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts.map +0 -1
  422. package/dist/components/checkboxgroup/checkboxgroup.types.js +0 -1
  423. package/dist/components/link/link.types.d.ts +0 -4
  424. package/dist/components/link/link.types.d.ts.map +0 -1
  425. package/dist/components/link/link.types.js +0 -1
  426. package/dist/components/loader/loader.types.d.ts +0 -3
  427. package/dist/components/loader/loader.types.d.ts.map +0 -1
  428. package/dist/components/loader/loader.types.js +0 -1
  429. package/dist/components/numberbadge/NumberBadge.types.d.ts +0 -3
  430. package/dist/components/numberbadge/NumberBadge.types.d.ts.map +0 -1
  431. package/dist/components/numberbadge/NumberBadge.types.js +0 -1
  432. package/dist/components/overlayloader/OverlayLoader.js +0 -27
  433. package/dist/components/overlayloader/OverlayLoader.js.map +0 -1
  434. package/dist/components/overlayloader/OverlayLoader.stories.d.ts +0 -8
  435. package/dist/components/overlayloader/OverlayLoader.stories.d.ts.map +0 -1
  436. package/dist/components/overlayloader/OverlayLoader.stories.js +0 -50
  437. package/dist/components/overlayloader/OverlayLoader.svelte +0 -160
  438. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts +0 -9
  439. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts.map +0 -1
  440. package/dist/components/quantityselector/quantitySelector.types.d.ts +0 -2
  441. package/dist/components/quantityselector/quantitySelector.types.d.ts.map +0 -1
  442. package/dist/components/quantityselector/quantitySelector.types.js +0 -1
  443. package/dist/components/radiogroup/radioGroup.types.d.ts +0 -9
  444. package/dist/components/radiogroup/radioGroup.types.d.ts.map +0 -1
  445. package/dist/components/radiogroup/radioGroup.types.js +0 -1
  446. package/dist/components/select/select.types.d.ts +0 -9
  447. package/dist/components/select/select.types.d.ts.map +0 -1
  448. package/dist/components/select/select.types.js +0 -1
  449. package/dist/components/statusbadge/StatusBadge.types.d.ts +0 -2
  450. package/dist/components/statusbadge/StatusBadge.types.d.ts.map +0 -1
  451. package/dist/components/statusbadge/StatusBadge.types.js +0 -1
  452. package/dist/components/statusdot/StatusDot.types.d.ts +0 -3
  453. package/dist/components/statusdot/StatusDot.types.d.ts.map +0 -1
  454. package/dist/components/statusdot/StatusDot.types.js +0 -1
  455. package/dist/components/tabs/Tab.js +0 -4
  456. package/dist/components/tabs/Tab.js.map +0 -1
  457. package/dist/components/tabs/Tab.svelte.d.ts.map +0 -1
  458. package/dist/components/textinput/textinput.types.d.ts +0 -3
  459. package/dist/components/textinput/textinput.types.d.ts.map +0 -1
  460. package/dist/components/textinput/textinput.types.js +0 -1
  461. package/dist/components/toggle/toggle.types.d.ts +0 -2
  462. package/dist/components/toggle/toggle.types.d.ts.map +0 -1
  463. package/dist/components/toggle/toggle.types.js +0 -1
  464. package/dist/index-client.js +0 -2
  465. package/dist/index-client.js.map +0 -1
  466. package/dist/snippet.js +0 -2
  467. package/dist/snippet.js.map +0 -1
@@ -0,0 +1,60 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render, fireEvent } from '@testing-library/svelte';
3
+ import Radio from './Radio.svelte';
4
+ describe('m-radio component', () => {
5
+ const baseProps = {
6
+ id: 'test-radio',
7
+ name: 'group1',
8
+ label: 'Option 1',
9
+ };
10
+ it('renders radio input and label correctly', () => {
11
+ const { container } = render(Radio, { props: baseProps });
12
+ const input = container.querySelector('input[type="radio"]');
13
+ const label = container.querySelector('label');
14
+ expect(input).toBeTruthy();
15
+ expect(label).toBeTruthy();
16
+ expect(label?.textContent).toBe('Option 1');
17
+ expect(label?.getAttribute('for')).toBe('test-radio');
18
+ });
19
+ it('sets the checked prop when true', () => {
20
+ const { container } = render(Radio, {
21
+ props: { ...baseProps, checked: true },
22
+ });
23
+ const input = container.querySelector('input');
24
+ expect(input.checked).toBe(true);
25
+ });
26
+ it('responds to click and toggles checked state', async () => {
27
+ const { container } = render(Radio, {
28
+ props: { ...baseProps, checked: false },
29
+ });
30
+ const input = container.querySelector('input');
31
+ expect(input.checked).toBe(false);
32
+ await fireEvent.click(input);
33
+ });
34
+ it('applies disabled prop', () => {
35
+ const { container } = render(Radio, {
36
+ props: { ...baseProps, disabled: true },
37
+ });
38
+ const input = container.querySelector('input');
39
+ expect(input.disabled).toBe(true);
40
+ });
41
+ it('applies invalid class when isinvalid is true', () => {
42
+ const { container } = render(Radio, {
43
+ props: { ...baseProps, isinvalid: true },
44
+ });
45
+ const input = container.querySelector('input');
46
+ expect(input.classList.contains('is-invalid')).toBe(true);
47
+ });
48
+ it('sets name attribute correctly', () => {
49
+ const { container } = render(Radio, { props: baseProps });
50
+ const input = container.querySelector('input');
51
+ expect(input.getAttribute('name')).toBe('group1');
52
+ });
53
+ it('reflects checked as an attribute on the custom element', () => {
54
+ const { container } = render(Radio, {
55
+ props: { ...baseProps, checked: true },
56
+ });
57
+ const input = container.querySelector('input');
58
+ expect(input.checked).toBe(true);
59
+ });
60
+ });
@@ -1,14 +1,10 @@
1
- import type { Meta } from '@storybook/html-vite';
2
- /**
3
- * > A radio button is used to offer a unique choice to your user in a form. Unlike checkboxes, it can not be used alone.
4
- *
5
- * The `MRadio` component is the **Svelte / WebComponent** implementation of the **Radio** component of Mozaic Design System.<br/>
6
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/form/radio/).
7
- */
8
- declare const _default: Meta<unknown>;
9
- export default _default;
10
- export declare const Default: any;
11
- export declare const Checked: any;
12
- export declare const Disabled: any;
13
- export declare const Invalid: any;
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
6
+ export declare const Checked: Story;
7
+ export declare const Invalid: Story;
8
+ export declare const Disabled: Story;
9
+ export declare const CheckedDisabled: Story;
14
10
  //# sourceMappingURL=Radio.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.stories.d.ts","sourceRoot":"","sources":["../../../src/components/radio/Radio.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;GAKG;wBA2CE,IAAI,CAAC,OAAO,CAAC;AAzClB,wBAyCmB;AAgBnB,eAAO,MAAM,OAAO,KAAoB,CAAC;AAEzC,eAAO,MAAM,OAAO,KAAoB,CAAC;AAKzC,eAAO,MAAM,QAAQ,KAAoB,CAAC;AAK1C,eAAO,MAAM,OAAO,KAAoB,CAAC"}
1
+ {"version":3,"file":"Radio.stories.d.ts","sourceRoot":"","sources":["../../../src/components/radio/Radio.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IAgCX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAM7B,CAAC"}
@@ -1,78 +1,62 @@
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
1
3
  import { action } from 'storybook/actions';
2
- /**
3
- * > A radio button is used to offer a unique choice to your user in a form. Unlike checkboxes, it can not be used alone.
4
- *
5
- * The `MRadio` component is the **Svelte / WebComponent** implementation of the **Radio** component of Mozaic Design System.<br/>
6
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/form/radio/).
7
- */
8
- export default {
4
+ const meta = {
9
5
  title: 'Form Elements/Radio',
10
- tags: ['autodocs', 'beta'],
11
- argTypes: {
12
- id: {
13
- description: 'Specifiy the readio id',
14
- control: 'text',
15
- },
16
- name: {
17
- description: 'Specifiy the radio button name',
18
- control: 'text',
19
- },
20
- label: {
21
- description: 'Specifiy the radio button label',
22
- control: 'text',
23
- },
24
- checked: {
25
- description: 'Specifiy wether the radio button is selected',
26
- control: 'text',
27
- },
28
- isvalid: {
29
- description: 'Specifiy wether the text input is valid',
30
- control: 'boolean',
31
- },
32
- isinvalid: {
33
- description: 'Specifiy wether the text input is invalid',
34
- control: 'boolean',
35
- },
36
- disabled: {
37
- description: 'Specifiy wether the text input is disabled',
38
- control: 'boolean',
39
- },
40
- onClick: {
41
- name: 'click',
42
- description: 'On radio change',
43
- action: 'click',
44
- table: {
45
- category: 'Events',
46
- },
47
- },
6
+ component: 'm-radio',
7
+ args: {
8
+ id: 'RadioId',
9
+ label: 'Label',
10
+ },
11
+ render: (args) => {
12
+ const onChange = action('change');
13
+ const onFocus = action('focus');
14
+ const onBlur = action('blur');
15
+ return html `
16
+ <m-radio
17
+ id=${ifDefined(args.id)}
18
+ name=${ifDefined(args.name)}
19
+ label=${ifDefined(args.label)}
20
+ checked=${ifDefined(args.checked)}
21
+ isinvalid=${ifDefined(args.isinvalid)}
22
+ disabled=${ifDefined(args.disabled)}
23
+ @change=${(event) => {
24
+ onChange(event);
25
+ }}
26
+ @focus=${(event) => {
27
+ onFocus(event);
28
+ }}
29
+ @blur=${(event) => {
30
+ onBlur(event);
31
+ }}
32
+ ></m-radio>
33
+ `;
48
34
  },
49
35
  };
50
- const Template = (args) => {
51
- const component = document.createElement('m-radio');
52
- component.setAttribute('label', 'This is a radio');
53
- component.setAttribute('id', 'radio');
54
- component.setAttribute('name', 'Radio');
55
- if (args.checked)
56
- component.setAttribute('checked', args.checked);
57
- if (args.isvalid)
58
- component.setAttribute('isvalid', args.isvalid);
59
- if (args.isinvalid)
60
- component.setAttribute('isinvalid', args.isinvalid);
61
- if (args.disabled)
62
- component.setAttribute('disabled', args.disabled);
63
- component.addEventListener('click', action('onClick'));
64
- return component;
36
+ export default meta;
37
+ export const Default = {};
38
+ export const Checked = {
39
+ args: {
40
+ checked: true,
41
+ id: 'checkedId',
42
+ },
65
43
  };
66
- export const Default = Template.bind({});
67
- export const Checked = Template.bind({});
68
- Checked.args = {
69
- checked: true,
44
+ export const Invalid = {
45
+ args: {
46
+ isinvalid: true,
47
+ id: 'invalidId',
48
+ },
70
49
  };
71
- export const Disabled = Template.bind({});
72
- Disabled.args = {
73
- disabled: true,
50
+ export const Disabled = {
51
+ args: {
52
+ disabled: true,
53
+ id: 'disabledId',
54
+ },
74
55
  };
75
- export const Invalid = Template.bind({});
76
- Invalid.args = {
77
- isinvalid: true,
56
+ export const CheckedDisabled = {
57
+ args: {
58
+ checked: true,
59
+ disabled: true,
60
+ id: 'checkedDisabledId',
61
+ },
78
62
  };
@@ -1,41 +1,63 @@
1
1
  <svelte:options
2
2
  customElement={{
3
3
  tag: 'm-radio',
4
+ props: {
5
+ checked: { reflect: true, type: 'Boolean', attribute: 'checked' },
6
+ },
4
7
  extend: customElementForwardEvents,
5
8
  }}
6
9
  />
7
10
 
8
11
  <script lang="ts">
9
12
  import { customElementForwardEvents } from '../../utils';
10
- let {
11
- id = '',
12
- name = '',
13
- checked = false,
14
- disabled = false,
15
- isinvalid = false,
16
- label = '',
17
- ...events
18
- } = $props();
19
-
20
- function getClasses(isInvalid: boolean): string {
21
- const classes = ['mc-radio__input'];
22
- if (isInvalid) {
23
- classes.push('is-invalid');
24
- }
25
- return classes.join(' ');
13
+ /**
14
+ * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.
15
+ */
16
+ interface Props {
17
+ /**
18
+ * A unique identifier for the radio, used to associate the label with the form element.
19
+ */
20
+ id: string;
21
+ /**
22
+ * The name attribute for the radio element, typically used for form submission.
23
+ */
24
+ name?: string;
25
+ /**
26
+ * The text label displayed next to the radio.
27
+ */
28
+ label?: string;
29
+ /**
30
+ * The radio's checked state.
31
+ */
32
+ checked?: boolean;
33
+ /**
34
+ * If `true`, applies an invalid state to the radio.
35
+ */
36
+ isinvalid?: boolean;
37
+ /**
38
+ * If `true`, disables the radio, making it non-interactive.
39
+ */
40
+ disabled?: boolean;
26
41
  }
42
+
43
+ let {
44
+ id,
45
+ name,
46
+ label,
47
+ checked = $bindable(false),
48
+ disabled,
49
+ isinvalid,
50
+ }: Props = $props();
27
51
  </script>
28
52
 
29
- <!-- svelte-ignore a11y_click_events_have_key_events -->
30
53
  <div class="mc-radio">
31
54
  <input
32
55
  {id}
33
56
  type="radio"
34
- class={getClasses(isinvalid)}
57
+ class={['mc-radio__input', isinvalid && 'is-invalid']}
35
58
  {name}
36
- {checked}
37
59
  {disabled}
38
- {...events}
60
+ {checked}
39
61
  />
40
62
  <label for={id} class="mc-radio__label">{label}</label>
41
63
  </div>
@@ -1,11 +1,33 @@
1
- declare const Radio: import("svelte").Component<{
2
- id?: string;
1
+ /**
2
+ * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.
3
+ */
4
+ interface Props {
5
+ /**
6
+ * A unique identifier for the radio, used to associate the label with the form element.
7
+ */
8
+ id: string;
9
+ /**
10
+ * The name attribute for the radio element, typically used for form submission.
11
+ */
3
12
  name?: string;
13
+ /**
14
+ * The text label displayed next to the radio.
15
+ */
16
+ label?: string;
17
+ /**
18
+ * The radio's checked state.
19
+ */
4
20
  checked?: boolean;
5
- disabled?: boolean;
21
+ /**
22
+ * If `true`, applies an invalid state to the radio.
23
+ */
6
24
  isinvalid?: boolean;
7
- label?: string;
8
- } & Record<string, any>, {}, "">;
25
+ /**
26
+ * If `true`, disables the radio, making it non-interactive.
27
+ */
28
+ disabled?: boolean;
29
+ }
30
+ declare const Radio: import("svelte").Component<Props, {}, "checked">;
9
31
  type Radio = ReturnType<typeof Radio>;
10
32
  export default Radio;
11
33
  //# sourceMappingURL=Radio.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/radio/Radio.svelte.ts"],"names":[],"mappings":"AAyCA,QAAA,MAAM,KAAK;SAnCyC,MAAM;WAAS,MAAM;cAAY,OAAO;eAAa,OAAO;gBAAc,OAAO;YAAU,MAAM;gCAmClG,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Radio.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/radio/Radio.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,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgCH,QAAA,MAAM,KAAK,kDAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
@@ -0,0 +1,14 @@
1
+ # `m-radio-group`
2
+
3
+ A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `name*` | The name attribute for the radio element, typically used for form submission. | `string` | |
10
+ | `value` | The current value of the radio group. | `string` | `$bindable()` |
11
+ | `options*` | list of properties of each radio button of the radio group | `Array<{ id: string; label: string; value: string; disabled?: boolean; }>` | |
12
+ | `isinvalid` | If `true`, applies an invalid state to the radio group. | `boolean` | |
13
+ | `inline` | If `true`, make the form element of the group inline. | `boolean` | |
14
+
@@ -1,8 +1,8 @@
1
- import{n as K,c as L,p as M,a as N,b as i,f as j,s as S,d as u,t as z,h as E,i as O,j as t,r as n,e as q,g as B,m as a,o as P}from"../../custom-element.js";import{i as Q}from"../../if.js";import{e as T}from"../../each.js";import{s as _,r as U}from"../../attributes.js";import{b as V}from"../../input.js";import{c as W}from"../../custom-element-forward-events.js";var X=j('<legend class="mc-field__legend svelte-clvmul"> </legend>'),Y=j('<div class="mc-radio mc-field__item svelte-clvmul"><input type="radio"/> <label class="mc-radio__label svelte-clvmul"> </label></div>'),Z=j('<div class="radio-group-container"><fieldset class="mc-field mc-field--group svelte-clvmul"><!> <div></div></fieldset></div>');const $={hash:"svelte-clvmul",code:`/**
1
+ import{c as D,p as F,a as G,b as i,f as E,t as g,i as k,j as R,k as t,r as _,e as w,g as x,d as y,s as S,m as o,h as q}from"../../custom-element.js";import{e as B,i as C}from"../../each.js";import{r as H,s as b}from"../../attributes.js";import{b as I}from"../../input.js";import{c as J}from"../../custom-element-forward-events.js";var K=E('<div class="mc-radio mc-field__item svelte-clvmul"><input type="radio"/> <label class="mc-radio__label svelte-clvmul"> </label></div>'),L=E("<div></div>");const M={hash:"svelte-clvmul",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */.mc-radio.svelte-clvmul {align-items:center;display:flex;gap:0.5rem;padding:0.375rem;}.mc-radio__label.svelte-clvmul {font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);color:var(--forms-color-text-default, #000000);cursor:pointer;}.mc-radio__input.svelte-clvmul {appearance:none;margin:0;cursor:pointer;flex-shrink:0;transition:box-shadow 200ms ease;background-color:var(--forms-color-background-default, #ffffff);border:var(--border-m, 0.125rem) solid var(--forms-color-border-default, #666666);border-radius:100%;transition:all ease 200ms;height:1.25rem;width:1.25rem;position:relative;}.mc-radio__input.svelte-clvmul::before {border-radius:var(--radius-full, 100%);content:"";display:block;height:0.5rem;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:0.5rem;}.mc-radio__input.svelte-clvmul:hover {border-color:var(--forms-color-border-hover, #4d4d4d);}.mc-radio__input.svelte-clvmul: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-radio__input.svelte-clvmul:checked {background-color:var(--forms-color-background-checked, #117f03);}.mc-radio__input.svelte-clvmul:checked::before {background-color:var(--forms-color-background-default, #ffffff);}.mc-radio__input.svelte-clvmul:checked, .mc-radio__input.svelte-clvmul:disabled {border-color:transparent;}.mc-radio__input.svelte-clvmul:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;}.mc-radio__input.svelte-clvmul:disabled:checked::before {background-color:var(--forms-color-icon-disabled, #737373);}.mc-radio__input.svelte-clvmul:disabled + .mc-radio__label:where(.svelte-clvmul) {color:var(--forms-color-text-disabled, #737373);cursor:not-allowed;}.mc-radio__input.svelte-clvmul:not(:disabled):checked:hover {background-color:var(--forms-color-background-checked-hover, #006902);}.mc-radio__input.is-invalid.svelte-clvmul:not(:checked) {border-color:var(--forms-color-border-invalid, #ea302d);}.mc-radio__input.is-invalid.svelte-clvmul:not(:checked):hover {border-color:var(--forms-color-border-invalid-hover, #c61112);}
4
4
 
5
- /* stylelint-disable string-no-newline */ .mc-field__legend.svelte-clvmul {font-size:var(--font-size-100, 0.875rem);line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-regular, 400);color:var(--field-color-label, #000000);}.mc-field__legend.svelte-clvmul {padding-inline:0;}.mc-field__content.svelte-clvmul {margin-top:0.5rem;}.mc-field--group.svelte-clvmul {border-width:0;margin-inline:0;padding:0;}.mc-field--group.svelte-clvmul .mc-field__content:where(.svelte-clvmul) {display:flex;flex-direction:column;flex-shrink:0;gap:0.25rem;}.mc-field--group.svelte-clvmul .mc-field__content:where(.svelte-clvmul):where(.mc-field__content--inline:where(.svelte-clvmul)) {flex-flow:row wrap;gap:0.25rem 1rem;}
5
+ /* stylelint-disable string-no-newline */.mc-field__content.svelte-clvmul {margin-top:0.5rem;}
6
6
 
7
- /* stylelint-enable string-no-newline */`};function ee(A,o){M(o,!0),N(A,$);const C=[];let g=i(o,"id",7),m=i(o,"selectedvalue",15),b=i(o,"options",7),d=i(o,"legend",7),h=i(o,"inline",7),p=i(o,"isinvalid",7,!1),k=i(o,"onchange",7),w=i(o,"onblur",7);var H={get id(){return g()},set id(e){g(e),t()},get selectedvalue(){return m()},set selectedvalue(e){m(e),t()},get options(){return b()},set options(e){b(e),t()},get legend(){return d()},set legend(e){d(e),t()},get inline(){return h()},set inline(e){h(e),t()},get isinvalid(){return p()},set isinvalid(e=!1){p(e),t()},get onchange(){return k()},set onchange(e){k(e),t()},get onblur(){return w()},set onblur(e){w(e),t()}},f=Z(),D=u(f),F=u(D);{var I=e=>{var l=X(),s=u(l,!0);n(l),z(()=>B(s,d())),E(e,l)};Q(F,e=>{d()&&d().length&&e(I)})}var x=S(F,2);return T(x,21,b,e=>e.id,(e,l)=>{var s=Y(),r=u(s);U(r);let G;r.__change=function(...c){var v;(v=k())==null||v.apply(this,c)};var R,y=S(r,2),J=u(y,!0);n(y),n(s),z(c=>{G=q(r,1,"mc-radio__input svelte-clvmul",null,G,c),_(r,"id",a(l).id),_(r,"name",a(l).name),r.disabled=a(l).disabled,R!==(R=a(l).value)&&(r.value=(r.__value=a(l).value)??""),_(y,"for",a(l).id),B(J,a(l).label)},[()=>({"is-invalid":p()})]),P("blur",r,function(...c){var v;(v=w())==null||v.apply(this,c)}),V(C,[],r,()=>(a(l).value,m()),m),E(e,s)}),n(x),n(D),n(f),z(()=>{_(f,"id",g()),q(x,1,`mc-field__content ${h()?"mc-field__content--inline":""}`,"svelte-clvmul")}),E(A,f),O(H)}K(["change"]);customElements.define("m-radio-group",L(ee,{options:{attribute:"options",type:"Array"},id:{},selectedvalue:{},legend:{},inline:{},isinvalid:{},onchange:{},onblur:{}},[],[],!0,W));
7
+ /* stylelint-enable string-no-newline */.mc-field__content.svelte-clvmul:where(.mc-field__content--inline:where(.svelte-clvmul)) {display:flex;flex-flow:row wrap;gap:0.25rem 1rem;}`};function N(p,a){F(a,!0),G(p,M);const z=[];let s=i(a,"value",15),c=i(a,"name",7),d=i(a,"options",7),m=i(a,"inline",7),v=i(a,"isinvalid",7);var j={get value(){return s()},set value(e){s(e),t()},get name(){return c()},set name(e){c(e),t()},get options(){return d()},set options(e){d(e),t()},get inline(){return m()},set inline(e){m(e),t()},get isinvalid(){return v()},set isinvalid(e){v(e),t()}},n=L();return B(n,21,d,C,(e,l)=>{var u=K(),r=y(u);H(r);var h,f=S(r,2),A=y(f,!0);_(f),_(u),g(()=>{w(r,1,x(["mc-radio__input",v()&&"is-invalid"]),"svelte-clvmul"),b(r,"id",o(l).id),b(r,"name",c()),r.disabled=o(l).disabled,h!==(h=o(l).value)&&(r.value=(r.__value=o(l).value)??""),b(f,"for",o(l).id),q(A,o(l).label)}),I(z,[],r,()=>(o(l).value,s()),s),k(e,u)}),_(n),g(()=>w(n,1,x(["mc-field__content",m()&&"mc-field__content--inline"]),"svelte-clvmul")),k(p,n),R(j)}customElements.define("m-radio-group",D(N,{options:{attribute:"options",type:"Array"},value:{},name:{},inline:{},isinvalid:{}},[],[],!0,J));
8
8
  //# sourceMappingURL=RadioGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../src/components/radiogroup/RadioGroup.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio-group',\n props: {\n options: { type: 'Array', attribute: 'options' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n import type { RadioGroupOption } from './radioGroup.types';\n\n interface Props {\n id: string;\n selectedvalue?: string;\n options: Array<RadioGroupOption>;\n legend: string;\n inline: boolean;\n isinvalid?: boolean;\n onchange?: (event: Event) => void;\n onblur?: (event: FocusEvent) => void;\n }\n\n let {\n id,\n selectedvalue = $bindable(),\n options,\n legend,\n inline,\n isinvalid = false,\n onchange,\n onblur,\n }: Props = $props();\n</script>\n\n<div {id} class=\"radio-group-container\">\n <fieldset class=\"mc-field mc-field--group\">\n {#if legend && legend.length}\n <legend class=\"mc-field__legend\">\n {legend}\n </legend>\n {/if}\n\n <div class=\"mc-field__content {inline ? 'mc-field__content--inline' : ''}\">\n {#each options as opt (opt.id)}\n <div class=\"mc-radio mc-field__item\">\n <input\n type=\"radio\"\n class=\"mc-radio__input\"\n class:is-invalid={isinvalid}\n id={opt.id}\n name={opt.name}\n bind:group={selectedvalue}\n value={opt.value}\n disabled={opt.disabled}\n {onchange}\n {onblur}\n />\n <label for={opt.id} class=\"mc-radio__label\">{opt.label}</label>\n </div>\n {/each}\n </div>\n </fieldset>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n @use '@mozaic-ds/styles/components/field';\n</style>\n"],"names":["id","$.prop","$$props","selectedvalue","options","legend","inline","isinvalid","onchange","onblur","$$render","consequent","$.each","div_1","opt","$.set_attribute","input","$.get","input_value","label","$.set_text","text_1","customElementForwardEvents"],"mappings":";;;;;;2DAAA,+BA0BIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAaF,EAAAC,EAAA,gBAAA,EAAA,EACbE,EAAOH,EAAAC,EAAA,UAAA,CAAA,EACPG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EACNI,EAAML,EAAAC,EAAA,SAAA,CAAA,EACNK,oBAAY,EAAK,EACjBC,EAAQP,EAAAC,EAAA,WAAA,CAAA,EACRO,EAAMR,EAAAC,EAAA,SAAA,CAAA,kTAFM,GAAK,oLAUZG,EAAM,CAAA,CAAA,kBAFNA,EAAM,GAAIA,EAAM,EAAC,QAAMK,EAAAC,CAAA,iBAOnBC,OAAAA,EAAAC,EAAA,GAAAT,EAAWU,GAAKA,EAAI,MAATA,IAAG,wLAMXC,EAAAC,EAAA,KAAAC,EAAAH,CAAG,EAAC,EAAE,EACJC,EAAAC,EAAA,OAAAC,EAAAH,CAAG,EAAC,IAAI,EAGJE,EAAA,SAAAC,EAAAH,CAAG,EAAC,SADPI,KAAAA,EAAAD,EAAAH,CAAG,EAAC,SAAJE,EAAA,OAAAA,EAAA,QAAAC,EAAAH,CAAG,EAAC,QAAK,IAKNC,EAAAI,EAAA,MAAAF,EAAAH,CAAG,EAAC,EAAE,EAA2BM,EAAAC,EAAAJ,EAAAH,CAAG,EAAC,KAAK,uBATlCP,EAAS,GAAA,kFAIpBU,EAAAH,CAAG,EAAC,MADCX,EAAa,GAAbA,2EATWG,EAAM,EAAG,4BAA8B,EAAE,GAAA,eAAA,eAV5E,8LA7BYgB"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../src/components/radiogroup/RadioGroup.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio-group',\n props: {\n options: { type: 'Array', attribute: 'options' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.\n */\n interface Props {\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name: string;\n /**\n * The current value of the radio group.\n */\n value?: string;\n /**\n * list of properties of each radio button of the radio group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n }>;\n /**\n * If `true`, applies an invalid state to the radio group.\n */\n isinvalid?: boolean;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n }\n\n let {\n value = $bindable(),\n name,\n options,\n inline,\n isinvalid,\n }: Props = $props();\n</script>\n\n<div class={['mc-field__content', inline && 'mc-field__content--inline']}>\n {#each options as option}\n <div class=\"mc-radio mc-field__item\">\n <input\n type=\"radio\"\n class={['mc-radio__input', isinvalid && 'is-invalid']}\n id={option.id}\n {name}\n bind:group={value}\n value={option.value}\n disabled={option.disabled}\n />\n <label for={option.id} class=\"mc-radio__label\">{option.label}</label>\n </div>\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n @use '@mozaic-ds/styles/components/field';\n\n .mc-field__content:where(.mc-field__content--inline) {\n display: flex;\n flex-flow: row wrap;\n gap: 0.25rem 1rem;\n }\n</style>\n"],"names":["value","$.prop","$$props","name","options","inline","isinvalid","$.each","div","option","$.set_attribute","input","$.get","input_value","label","$.set_text","text","customElementForwardEvents"],"mappings":";;;;;;sMAAA,+BA4CIA,EAAKC,EAAAC,EAAA,QAAA,EAAA,EACLC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJE,EAAOH,EAAAC,EAAA,UAAA,CAAA,EACPG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EACNI,EAASL,EAAAC,EAAA,YAAA,CAAA,uQAKJK,OAAAA,EAAAC,EAAA,GAAAJ,OAAWK,IAAM,0EAIV,kBAAmBH,KAAa,YAAY,CAAA,EAAA,eAAA,EAChDI,EAAAC,EAAA,KAAAC,EAAAH,CAAM,EAAC,EAAE,kBAIHE,EAAA,SAAAC,EAAAH,CAAM,EAAC,SADVI,KAAAA,EAAAD,EAAAH,CAAM,EAAC,SAAPE,EAAA,OAAAA,EAAA,QAAAC,EAAAH,CAAM,EAAC,QAAK,IAGTC,EAAAI,EAAA,MAAAF,EAAAH,CAAM,EAAC,EAAE,EAA2BM,EAAAC,EAAAJ,EAAAH,CAAM,EAAC,KAAK,kBAHnDG,EAAAH,CAAM,EAAC,MADFT,EAAK,GAALA,gCARP,oBAAqBK,EAAM,GAAI,2BAA2B,CAAA,EAAA,eAAA,CAAA,aAFvE,yIA5CYY"}
@@ -0,0 +1,65 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render, fireEvent } from '@testing-library/svelte';
3
+ import RadioGroup from './RadioGroup.svelte';
4
+ describe('m-radio-group component', () => {
5
+ const baseProps = {
6
+ name: 'test-group',
7
+ options: [
8
+ { id: 'radio-1', label: 'Option 1', value: '1' },
9
+ { id: 'radio-2', label: 'Option 2', value: '2' },
10
+ { id: 'radio-3', label: 'Option 3', value: '3', disabled: true },
11
+ ],
12
+ };
13
+ it('renders all radio options', () => {
14
+ const { container } = render(RadioGroup, { props: baseProps });
15
+ const radios = container.querySelectorAll('input[type="radio"]');
16
+ const labels = container.querySelectorAll('label');
17
+ expect(radios.length).toBe(3);
18
+ expect(labels.length).toBe(3);
19
+ baseProps.options.forEach((option, index) => {
20
+ expect(radios[index].getAttribute('id')).toBe(option.id);
21
+ expect(radios[index].getAttribute('value')).toBe(option.value);
22
+ expect(labels[index].textContent).toBe(option.label);
23
+ });
24
+ });
25
+ it('sets initial value as checked', () => {
26
+ const { container } = render(RadioGroup, {
27
+ props: { ...baseProps, value: '2' },
28
+ });
29
+ const radios = container.querySelectorAll('input[type="radio"]');
30
+ expect(radios[1].checked).toBe(true);
31
+ });
32
+ it('only one radio is checked at a time (bind:group behavior)', async () => {
33
+ const { container } = render(RadioGroup, {
34
+ props: { ...baseProps, value: '1' },
35
+ });
36
+ const radios = container.querySelectorAll('input[type="radio"]');
37
+ expect(radios[0].checked).toBe(true);
38
+ expect(radios[1].checked).toBe(false);
39
+ await fireEvent.click(radios[1]);
40
+ expect(radios[1].checked).toBe(true);
41
+ expect(radios[0].checked).toBe(false);
42
+ });
43
+ it('applies disabled prop to correct radio', () => {
44
+ const { container } = render(RadioGroup, { props: baseProps });
45
+ const radios = container.querySelectorAll('input[type="radio"]');
46
+ expect(radios[2].disabled).toBe(true);
47
+ expect(radios[0].disabled).toBe(false);
48
+ });
49
+ it('adds is-invalid class when isinvalid is true', () => {
50
+ const { container } = render(RadioGroup, {
51
+ props: { ...baseProps, isinvalid: true },
52
+ });
53
+ const radios = container.querySelectorAll('input[type="radio"]');
54
+ radios.forEach((radio) => {
55
+ expect(radio.classList.contains('is-invalid')).toBe(true);
56
+ });
57
+ });
58
+ it('applies inline class to container when inline is true', () => {
59
+ const { container } = render(RadioGroup, {
60
+ props: { ...baseProps, inline: true },
61
+ });
62
+ const wrapper = container.querySelector('.mc-field__content');
63
+ expect(wrapper?.classList.contains('mc-field__content--inline')).toBe(true);
64
+ });
65
+ });
@@ -1,13 +1,6 @@
1
- import type { Meta } from '@storybook/html-vite';
2
- /**
3
- * > A radio button is used to offer a unique choice to your user in a form. Unlike checkboxes, it can not be used alone.
4
- *
5
- * The `MRadioGroup` component is the **Svelte / WebComponent** implementation of the **Radio** component of Mozaic Design System.<br/>
6
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/form/radio/code/#implement-as-a-group).
7
- */
8
- declare const _default: Meta<unknown>;
9
- export default _default;
10
- export declare const Default: any;
11
- export declare const Inline: any;
12
- export declare const Invalid: any;
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
13
6
  //# sourceMappingURL=RadioGroup.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.stories.d.ts","sourceRoot":"","sources":["../../../src/components/radiogroup/RadioGroup.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;GAKG;wBA+CE,IAAI,CAAC,OAAO,CAAC;AA7ClB,wBA6CmB;AAoBnB,eAAO,MAAM,OAAO,KAAoB,CAAC;AA8BzC,eAAO,MAAM,MAAM,KAAoB,CAAC;AAgCxC,eAAO,MAAM,OAAO,KAAoB,CAAC"}
1
+ {"version":3,"file":"RadioGroup.stories.d.ts","sourceRoot":"","sources":["../../../src/components/radiogroup/RadioGroup.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IAyDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}