@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,138 +1,107 @@
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
3
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
1
4
  import { action } from 'storybook/actions';
2
- import HelpCircle32 from '@mozaic-ds/icons-svelte/custom-elements/HelpCircle32/HelpCircle32.js';
3
- export default {
5
+ import '@mozaic-ds/icons-svelte/custom-elements/InfoCircle32/InfoCircle32.js';
6
+ import '@mozaic-ds/icons-svelte/custom-elements/ExternalLink24/ExternalLink24.js';
7
+ const meta = {
4
8
  title: 'Overlay/Modal',
5
- tags: ['autodocs', 'beta'],
9
+ component: 'm-modal',
6
10
  parameters: {
7
11
  layout: 'fullscreen',
8
12
  docs: {
9
13
  story: { height: '400px' },
10
- description: {
11
- component: 'A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.',
12
- },
13
14
  },
14
15
  },
15
16
  args: {
16
17
  open: true,
17
18
  title: 'Modal title',
18
- description: 'A short description',
19
+ description: `A modal is a dialog window allowing you to focus the user's attention on a specific task, a piece of information or a mandatory action. It must be used for single action only and must have a call to action button in the bottom.`,
19
20
  footer: `
20
- <m-button ghost="true">Cancel</m-button>
21
- <m-button>Primary action</m-button>
21
+ <m-button ghost="true" slot="footer">Cancel</m-button>
22
+ <m-button slot="footer">Primary action</m-button>
22
23
  `,
23
24
  },
24
25
  argTypes: {
25
- $slots: { table: { disable: true } },
26
+ 'update:open': {
27
+ control: false,
28
+ },
29
+ '--modal-z-index': {
30
+ description: 'Customise the z-index of the modal',
31
+ control: false,
32
+ table: {
33
+ category: 'Custom Properties',
34
+ type: { summary: 'number' },
35
+ defaultValue: { summary: '3' },
36
+ },
37
+ },
38
+ },
39
+ render: (args) => {
40
+ const handleUpdateOpen = action('update:open');
41
+ return html `
42
+ <m-modal
43
+ open=${ifDefined(args.open)}
44
+ title=${ifDefined(args.title)}
45
+ description=${ifDefined(args.description)}
46
+ closable=${ifDefined(args.closable)}
47
+ @update:open=${handleUpdateOpen}
48
+ >
49
+ ${unsafeHTML(ifDefined(args.icon))} ${unsafeHTML(ifDefined(args.default))}
50
+ ${unsafeHTML(ifDefined(args.link))} ${unsafeHTML(ifDefined(args.footer))}
51
+ </m-modal>
52
+ `;
26
53
  },
27
54
  };
28
- const createModalTemplate = (args) => {
29
- const wrapper = document.createElement('div');
30
- const button = document.createElement('m-button');
31
- button.textContent = 'Open Modal';
32
- const modal = document.createElement('m-modal');
33
- modal.setAttribute('title', args.title);
34
- modal.setAttribute('description', args.description);
35
- modal.setAttribute('open', 'true');
36
- modal.addEventListener('update:open', (e) => {
37
- if (!e.detail)
38
- modal.removeAttribute('open');
39
- action('update:open')(e.detail);
40
- });
41
- // Inject default slot content
42
- const contentSlot = document.createElement('div');
43
- contentSlot.innerHTML =
44
- args.default ??
45
- '<p>A modal is a dialog window allowing you to focus the users attention on a specific task, a piece of information or a mandatory action. It must be used for single action only and must have a call to action button in the bottom.</p>';
46
- modal.appendChild(contentSlot);
47
- // Inject icon
48
- if (args.icon) {
49
- const iconSlot = document.createElement('div');
50
- iconSlot.slot = 'icon';
51
- iconSlot.innerHTML = args.icon;
52
- modal.appendChild(iconSlot);
53
- }
54
- // Inject footer
55
- if (args.footer) {
56
- modal.setAttribute('footer', 'true');
57
- const footerSlot = document.createElement('div');
58
- footerSlot.setAttribute('slot', 'footer');
59
- footerSlot.innerHTML = args.footer;
60
- modal.appendChild(footerSlot);
61
- }
62
- // Inject link
63
- if (args.link) {
64
- const linkSlot = document.createElement('div');
65
- modal.setAttribute('link', 'true');
66
- linkSlot.setAttribute('slot', 'link');
67
- linkSlot.innerHTML = args.link;
68
- modal.appendChild(linkSlot);
69
- }
70
- // Inject icon
71
- if (args.icon) {
72
- modal.setAttribute('icon', 'true');
73
- }
74
- // Open modal on button click
75
- button.onclick = () => modal.setAttribute('open', 'true');
76
- wrapper.appendChild(button);
77
- wrapper.appendChild(modal);
78
- return wrapper;
79
- };
80
- export const Default = {
81
- render: (args) => createModalTemplate(args),
82
- };
55
+ export default meta;
56
+ export const Default = {};
83
57
  export const Icon = {
84
58
  args: {
85
- icon: '<help-circle-32 />',
59
+ icon: '<info-circle-32 slot="icon"/>',
86
60
  },
87
- render: (args) => createModalTemplate(args),
88
61
  };
89
62
  export const ValidationOnly = {
90
63
  args: {
91
64
  footer: `
92
- <m-button>Primary action</m-button>
65
+ <m-button slot="footer">Primary action</m-button>
93
66
  `,
94
67
  },
95
- render: (args) => createModalTemplate(args),
96
68
  };
97
69
  export const TwoOptions = {
98
70
  args: {
99
71
  footer: `
100
- <m-button outlined="true">Secondary action</m-button>
101
- <m-button>Primary action</m-button>
72
+ <m-button outlined="true" slot="footer">Secondary action</m-button>
73
+ <m-button slot="footer">Primary action</m-button>
102
74
  `,
103
75
  },
104
- render: (args) => createModalTemplate(args),
105
76
  };
106
77
  export const Cancel = {
107
78
  args: {
108
79
  footer: `
109
- <m-button ghost="true">Cancel</m-button>
110
- <m-button outlined="true">Secondary action</m-button>
111
- <m-button>Primary action</m-button>
80
+ <m-button ghost="true" slot="footer">Cancel</m-button>
81
+ <m-button outlined="true" slot="footer">Secondary action</m-button>
82
+ <m-button slot="footer">Primary action</m-button>
112
83
  `,
113
84
  },
114
- render: (args) => createModalTemplate(args),
115
85
  };
116
86
  export const Link = {
117
87
  args: {
118
88
  link: `
119
- <m-link href="#" size="m">
89
+ <m-link href="#" size="m" iconPosition="right" slot="link">
120
90
  Learn more
91
+ <external-link-24 slot="icon"></external-link-24>
121
92
  </m-link>
122
93
  `,
123
94
  footer: `
124
- <m-button ghost="true">Cancel</m-button>
125
- <m-button>Primary action</m-button>
95
+ <m-button ghost="true" slot="footer">Cancel</m-button>
96
+ <m-button slot="footer">Primary action</m-button>
126
97
  `,
127
98
  },
128
- render: (args) => createModalTemplate(args),
129
99
  };
130
100
  export const Danger = {
131
101
  args: {
132
102
  footer: `
133
- <m-button ghost="true">Cancel</m-button>
134
- <m-button appearance="danger">Primary action</m-button>
103
+ <m-button ghost="true" slot="footer">Cancel</m-button>
104
+ <m-button appearance="danger" slot="footer">Primary action</m-button>
135
105
  `,
136
106
  },
137
- render: (args) => createModalTemplate(args),
138
107
  };
@@ -3,58 +3,61 @@
3
3
  <script lang="ts">
4
4
  import Cross24 from '@mozaic-ds/icons-svelte/svelte/Cross24/Cross24.svelte';
5
5
  import MOverlay from '../overlay/Overlay.svelte';
6
-
6
+ /**
7
+ * A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.
8
+ *
9
+ * @slot icon - Use this slot to insert an icon next to the title of the modal.
10
+ * @slot default - Use this slot to insert the content of the modal.
11
+ * @slot link - Use this slot to insert a link in the footer.
12
+ * @slot footer - Use this slot to insert buttons in the footer.
13
+ * @event update:open {CustomEvent<boolean>} - Fired when the open state changes.
14
+ */
7
15
  interface Props {
16
+ /**
17
+ * if `true`, display the modal.
18
+ */
8
19
  open?: boolean;
9
- title?: string;
20
+ /**
21
+ * Title of the modal.
22
+ */
23
+ title: string;
24
+ /**
25
+ * Description of the modal.
26
+ */
10
27
  description?: string;
28
+ /**
29
+ * if `true`, display the close button.
30
+ */
11
31
  closable?: boolean;
12
- icon?: any;
13
- footer?: any;
14
- link?: any;
15
- [key: string]: any;
16
32
  }
17
33
 
18
- let {
19
- open = false,
20
- title = '',
21
- description = '',
22
- closable = true,
23
- icon = undefined,
24
- footer = undefined,
25
- link = undefined,
26
- }: Props = $props();
34
+ let { open, title, description, closable = true }: Props = $props();
35
+ let element: HTMLElement;
27
36
 
28
37
  function onClose() {
29
38
  open = false;
30
- // Manually emit event from the custom element
39
+
31
40
  const event = new CustomEvent('update:open', {
32
41
  detail: open,
33
42
  bubbles: true,
34
43
  composed: true,
35
44
  });
36
- // @ts-ignore: `this` is the custom element instance
37
- this.dispatchEvent(event);
45
+ element.dispatchEvent(event);
38
46
  }
39
- // afterUpdate(() => {
40
- // dispatch('update:open', open);
41
- // });
42
47
  </script>
43
48
 
44
49
  <section
45
- class="mc-modal"
46
- class:is-open={open}
50
+ class={['mc-modal', open && 'is-open']}
47
51
  tabindex="-1"
48
52
  aria-labelledby="modalTitle"
49
53
  aria-hidden={!open}
54
+ bind:this={element}
50
55
  >
51
56
  <div class="mc-modal__dialog" role="document">
52
57
  <header class="mc-modal__header">
53
- {#if icon}
54
- <span class="mc-modal__icon">
55
- <slot name="icon" />
56
- </span>
57
- {/if}
58
+ <span class="mc-modal__icon">
59
+ <slot name="icon" />
60
+ </span>
58
61
  <h2 class="mc-modal__title" id="modalTitle">{title}</h2>
59
62
  {#if closable}
60
63
  <button
@@ -63,9 +66,7 @@
63
66
  aria-label="Close"
64
67
  onclick={onClose}
65
68
  >
66
- <span class="mc-modal__icon">
67
- <Cross24 aria-hidden="true" />
68
- </span>
69
+ <Cross24 class="mc-modal__close" aria-hidden="true" />
69
70
  </button>
70
71
  {/if}
71
72
  </header>
@@ -77,16 +78,12 @@
77
78
  <slot />
78
79
  </main>
79
80
 
80
- {#if footer}
81
- <footer class="mc-modal__footer">
82
- {#if link}
83
- <span class="mc-modal__link">
84
- <slot name="link" />
85
- </span>
86
- {/if}
87
- <slot name="footer" />
88
- </footer>
89
- {/if}
81
+ <footer class="mc-modal__footer">
82
+ <span class="mc-modal__link">
83
+ <slot name="link" />
84
+ </span>
85
+ <slot name="footer" />
86
+ </footer>
90
87
  </div>
91
88
 
92
89
  <MOverlay isvisible={open} dialoglabel="modal" />
@@ -547,4 +544,8 @@
547
544
  border-color: transparent;
548
545
  color: var(--button-state-disabled-color, #737373);
549
546
  cursor: not-allowed;
547
+ }
548
+
549
+ .mc-modal__icon:empty {
550
+ display: none;
550
551
  }</style>
@@ -1,12 +1,29 @@
1
+ /**
2
+ * A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.
3
+ *
4
+ * @slot icon - Use this slot to insert an icon next to the title of the modal.
5
+ * @slot default - Use this slot to insert the content of the modal.
6
+ * @slot link - Use this slot to insert a link in the footer.
7
+ * @slot footer - Use this slot to insert buttons in the footer.
8
+ * @event update:open {CustomEvent<boolean>} - Fired when the open state changes.
9
+ */
1
10
  interface Props {
11
+ /**
12
+ * if `true`, display the modal.
13
+ */
2
14
  open?: boolean;
3
- title?: string;
15
+ /**
16
+ * Title of the modal.
17
+ */
18
+ title: string;
19
+ /**
20
+ * Description of the modal.
21
+ */
4
22
  description?: string;
23
+ /**
24
+ * if `true`, display the close button.
25
+ */
5
26
  closable?: boolean;
6
- icon?: any;
7
- footer?: any;
8
- link?: any;
9
- [key: string]: any;
10
27
  }
11
28
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
12
29
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.svelte.ts"],"names":[],"mappings":"AAOE,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AA8EH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,KAAK;;;;;;;;;;;;UAAqF,CAAC;AAC/E,KAAK,KAAK,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC;AAC1C,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Modal.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.svelte.ts"],"names":[],"mappings":"AAME;;;;;;;;GAQG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2DH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,KAAK;;;;;;;;;;;;UAAqF,CAAC;AAC/E,KAAK,KAAK,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC;AAC1C,eAAe,KAAK,CAAC"}
@@ -0,0 +1,28 @@
1
+ # `m-modal`
2
+
3
+ A modal is a dialog window that appears on top of the main content, requiring user interaction before returning to the main interface. It is used to focus attention on a specific task, provide important information, or request confirmation for an action. Modals typically include a title, description, and primary/secondary actions and should be used for single, focused tasks to avoid disrupting the user experience.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `open` | if `true`, display the modal. | `boolean` | |
10
+ | `title*` | Title of the modal. | `string` | |
11
+ | `description` | Description of the modal. | `string` | |
12
+ | `closable` | if `true`, display the close button. | `boolean` | `true` |
13
+
14
+ ## Slots
15
+
16
+ | Name | Description |
17
+ |------|-------------|
18
+ | `icon` | Use this slot to insert an icon next to the title of the modal. |
19
+ | `default` | Use this slot to insert the content of the modal. |
20
+ | `link` | Use this slot to insert a link in the footer. |
21
+ | `footer` | Use this slot to insert buttons in the footer. |
22
+
23
+ ## Events
24
+
25
+ | Name | Description | Type |
26
+ |------|------|-------------|
27
+ | `update:open` | Fired when the open state changes. | `CustomEvent<boolean>` |
28
+
@@ -1,4 +1,4 @@
1
- import{c as u,p as f,a as g,b as c,f as v,t as p,u as h,e as x,g as z,h as k,i as _,d as y,j as b,r as w}from"../../custom-element.js";var j=v("<div> </div>");const N={hash:"svelte-sb883",code:`/**
1
+ import{c as i,p as m,a as g,b as o,f,t as u,i as v,j as p,k as b,d as h,r as x,e as z,g as k,h as _}from"../../custom-element.js";var w=f("<div> </div>");const y={hash:"svelte-sb883",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */.mc-number-badge.svelte-sb883 {color:var(--number-badge-color-text-standard, #ffffff);background-color:var(--number-badge-color-background-standard, #464e63);height:1rem;min-width:1rem;padding-inline:0.125rem;font-size:var(--font-size-25, 0.625rem);border-radius:var(--radius-l, 1rem);font-weight:var(--font-weight-semi-bold, 600);display:inline-flex;align-items:center;box-sizing:border-box;justify-content:center;line-height:1;}.mc-number-badge--m.svelte-sb883 {height:1.5rem;min-width:1.5rem;padding-inline:0.25rem;font-size:var(--font-size-50, 0.75rem);}.mc-number-badge--accent.svelte-sb883 {color:var(--number-badge-color-text-accent, #ffffff);background-color:var(--number-badge-color-background-accent, #117f03);}.mc-number-badge--danger.svelte-sb883 {color:var(--number-badge-color-text-danger, #ffffff);background-color:var(--number-badge-color-background-danger, #c61112);}.mc-number-badge--inverse.svelte-sb883 {color:var(--number-badge-color-text-inverse, #464e63);background-color:var(--number-badge-color-background-inverse, #ffffff);}`};function B(d,a){f(a,!0),g(d,N);let s=c(a,"label",7,""),r=c(a,"appearance",7,"standard"),t=c(a,"size",7,"s");function l(e){const o=["mc-number-badge"];return r()&&o.push(`mc-number-badge--${r()}`),t()&&o.push(`mc-number-badge--${t()}`),o.join(" ")}var i={get label(){return s()},set label(e=""){s(e),b()},get appearance(){return r()},set appearance(e="standard"){r(e),b()},get size(){return t()},set size(e="s"){t(e),b()}},n=j(),m=y(n,!0);return w(n),p(e=>{x(n,1,e,"svelte-sb883"),z(m,s())},[()=>h(l(r()))]),k(d,n),_(i)}customElements.define("m-number-badge",u(B,{label:{},appearance:{},size:{}},[],[],!0));export{B as N};
3
+ */.mc-number-badge.svelte-sb883 {color:var(--number-badge-color-text-standard, #ffffff);background-color:var(--number-badge-color-background-standard, #464e63);height:1rem;min-width:1rem;padding-inline:0.125rem;font-size:var(--font-size-25, 0.625rem);border-radius:var(--radius-l, 1rem);font-weight:var(--font-weight-semi-bold, 600);display:inline-flex;align-items:center;box-sizing:border-box;justify-content:center;line-height:1;}.mc-number-badge--m.svelte-sb883 {height:1.5rem;min-width:1.5rem;padding-inline:0.25rem;font-size:var(--font-size-50, 0.75rem);}.mc-number-badge--accent.svelte-sb883 {color:var(--number-badge-color-text-accent, #ffffff);background-color:var(--number-badge-color-background-accent, #117f03);}.mc-number-badge--danger.svelte-sb883 {color:var(--number-badge-color-text-danger, #ffffff);background-color:var(--number-badge-color-background-danger, #c61112);}.mc-number-badge--inverse.svelte-sb883 {color:var(--number-badge-color-text-inverse, #464e63);background-color:var(--number-badge-color-background-inverse, #ffffff);}`};function j(d,r){m(r,!0),g(d,y);let t=o(r,"label",7),n=o(r,"appearance",7,"standard"),s=o(r,"size",7,"s");var c={get label(){return t()},set label(e){t(e),b()},get appearance(){return n()},set appearance(e="standard"){n(e),b()},get size(){return s()},set size(e="s"){s(e),b()}},a=w(),l=h(a,!0);return x(a),u(()=>{z(a,1,k(["mc-number-badge",`mc-number-badge--${n()}`,`mc-number-badge--${s()}`]),"svelte-sb883"),_(l,t())}),v(d,a),p(c)}customElements.define("m-number-badge",i(j,{label:{},appearance:{},size:{}},[],[],!0));export{j as N};
4
4
  //# sourceMappingURL=NumberBadge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberBadge.js","sources":["../../../src/components/numberbadge/NumberBadge.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-number-badge' }} />\n\n<script lang=\"ts\">\n import type { BadgeStyle, BadgeSize } from './NumberBadge.types';\n interface Props {\n label: string;\n appearance: BadgeStyle;\n size: BadgeSize;\n }\n\n let { label = '', appearance = 'standard', size = 's' }: Props = $props();\n\n function setClasses(style: BadgeStyle) {\n const classes = ['mc-number-badge'];\n\n if (appearance) {\n classes.push(`mc-number-badge--${appearance}`);\n }\n\n if (size) {\n classes.push(`mc-number-badge--${size}`);\n }\n\n return classes.join(' ');\n }\n</script>\n\n<div class={setClasses(appearance)}>\n {label}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/number-badge';\n</style>\n"],"names":["label","appearance","size","setClasses","style","classes","$.clsx"],"mappings":";;+iCAAA,gBAUQ,IAAAA,gBAAQ,EAAE,EAAEC,qBAAa,UAAU,EAAEC,eAAO,GAAG,WAE5CC,EAAWC,EAAmB,CAC/B,MAAAC,GAAW,iBAAiB,EAE9B,OAAAJ,EAAU,GACZI,EAAQ,KAAI,oBAAqBJ,EAAU,CAAA,EAAA,EAGzCC,EAAI,GACNG,EAAQ,KAAI,oBAAqBH,EAAI,CAAA,EAAA,EAGhCG,EAAQ,KAAK,GAAG,CACzB,4CAdc,GAAE,yDAAe,WAAU,6CAAS,IAAG,0EAkBpDL,GAAK,GADI,CAAA,IAAAM,EAAAH,EAAWF,EAAU,CAAA,CAAA,CAAA,cAFjC"}
1
+ {"version":3,"file":"NumberBadge.js","sources":["../../../src/components/numberbadge/NumberBadge.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-number-badge' }} />\n\n<script lang=\"ts\">\n /**\n * A Number Badge represents a numeric count, often used to indicate notifications, updates, or items requiring attention. Its distinct appearance makes it easy to spot changes at a glance, ensuring users stay informed without breaking their workflow. Badges are commonly attached to icons, buttons, or tabs to provide contextual awareness.\n */\n interface Props {\n /**\n * Content of the badge.\n */\n label: number;\n /**\n * Allows to define the badge appearance.\n */\n appearance?: 'danger' | 'accent' | 'inverse' | 'standard';\n\n /**\n * Allows to define the badge size.\n */\n size?: 's' | 'm';\n }\n\n let { label, appearance = 'standard', size = 's' }: Props = $props();\n</script>\n\n<div class={['mc-number-badge', `mc-number-badge--${appearance}`, `mc-number-badge--${size}`]}>\n {label}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/number-badge';\n</style>\n"],"names":["label","$.prop","$$props","appearance","size"],"mappings":";;+iCAAA,oBAsBQA,EAAKC,EAAAC,EAAA,QAAA,CAAA,EAAEC,qBAAa,UAAU,EAAEC,eAAO,GAAG,sGAAtB,WAAU,6CAAS,IAAG,wDAGrC,sCAAuCD,EAAU,CAAA,uBAAwBC,GAAI,yBACvFJ,GAAK,eAHR"}
@@ -0,0 +1,28 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render } from '@testing-library/svelte';
3
+ import NumberBadge from './NumberBadge.svelte';
4
+ describe('m-number-badge component', () => {
5
+ it('renders the label correctly', () => {
6
+ const { container } = render(NumberBadge, { props: { label: 42 } });
7
+ expect(container.textContent).toContain('42');
8
+ });
9
+ it('applies the default appearance and size classes', () => {
10
+ const { container } = render(NumberBadge, { props: { label: 1 } });
11
+ const badge = container.querySelector('.mc-number-badge');
12
+ expect(badge).toHaveClass('mc-number-badge--standard');
13
+ expect(badge).toHaveClass('mc-number-badge--s');
14
+ });
15
+ it('applies custom appearance and size classes', () => {
16
+ const { container } = render(NumberBadge, {
17
+ props: { label: 99, appearance: 'danger', size: 'm' },
18
+ });
19
+ const badge = container.querySelector('.mc-number-badge');
20
+ expect(badge).toHaveClass('mc-number-badge--danger');
21
+ expect(badge).toHaveClass('mc-number-badge--m');
22
+ });
23
+ it('renders numeric label as text content', () => {
24
+ const { container } = render(NumberBadge, { props: { label: 0 } });
25
+ const badge = container.querySelector('.mc-number-badge');
26
+ expect(badge?.textContent).toBe('0');
27
+ });
28
+ });
@@ -1,14 +1,10 @@
1
- import type { Meta } from '@storybook/html-vite';
2
- /**
3
- * A Number badge indicates the status of an entity and can evolve at any time.
4
- *
5
- * The `NumberBadge` component is the **Svelte / WebComponent** implementation of the **Number Badge** component of Mozaic Design System.
6
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/badge/).
7
- */
8
- declare const _default: Meta;
9
- export default _default;
10
- export declare const Default: any;
11
- export declare const CustomLabel: any;
12
- export declare const AccentStyle: any;
13
- export declare const SmallSize: 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 Standard: Story;
6
+ export declare const Accent: Story;
7
+ export declare const Danger: Story;
8
+ export declare const Inverse: Story;
9
+ export declare const Size: Story;
14
10
  //# sourceMappingURL=NumberBadge.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberBadge.stories.d.ts","sourceRoot":"","sources":["../../../src/components/numberbadge/NumberBadge.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;GAKG;wBA6BE,IAAI;AA3BT,wBA2BU;AAWV,eAAO,MAAM,OAAO,KAAoB,CAAC;AAOzC,eAAO,MAAM,WAAW,KAAoB,CAAC;AAO7C,eAAO,MAAM,WAAW,KAAoB,CAAC;AAO7C,eAAO,MAAM,SAAS,KAAoB,CAAC"}
1
+ {"version":3,"file":"NumberBadge.stories.d.ts","sourceRoot":"","sources":["../../../src/components/numberbadge/NumberBadge.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,QAAA,MAAM,IAAI,EAAE,IAqBX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAAU,CAAC;AAElC,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC"}
@@ -1,69 +1,41 @@
1
- import { action } from 'storybook/actions';
2
- import { userEvent, within, expect } from 'storybook/test';
3
- /**
4
- * A Number badge indicates the status of an entity and can evolve at any time.
5
- *
6
- * The `NumberBadge` component is the **Svelte / WebComponent** implementation of the **Number Badge** component of Mozaic Design System.
7
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/badge/).
8
- */
9
- export default {
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
3
+ const meta = {
10
4
  title: 'Indicators/Number Badge',
11
- tags: ['autodocs', 'new', 'rc', 'version:1.0.0-beta4'],
5
+ component: 'm-number-badge',
12
6
  argTypes: {
13
- label: {
14
- description: 'Specify the badge label',
15
- control: 'text',
16
- },
17
7
  appearance: {
18
- description: 'Specify the badge type',
19
- control: { type: 'radio' },
20
- options: ['standard', 'accent', 'danger', 'inverse'],
8
+ control: 'radio',
9
+ options: ['danger', 'accent', 'inverse', 'standard'],
21
10
  },
22
11
  size: {
23
- description: 'Specify the size of the badge, available sizes are `s`, `m`',
24
- control: { type: 'radio' },
12
+ control: 'radio',
25
13
  options: ['s', 'm'],
26
14
  },
27
- change: {
28
- name: 'click',
29
- action: 'click',
30
- table: {
31
- category: 'Events',
32
- },
33
- },
34
15
  },
16
+ args: { label: 99 },
17
+ render: (args) => html `
18
+ <m-number-badge
19
+ label=${ifDefined(args.label)}
20
+ appearance=${ifDefined(args.appearance)}
21
+ size=${ifDefined(args.size)}
22
+ ></m-number-badge>
23
+ `,
35
24
  };
36
- const Template = (args) => {
37
- const primary = document.createElement('m-number-badge');
38
- primary.setAttribute('label', args.label || '99');
39
- if (args.appearance)
40
- primary.setAttribute('appearance', args.appearance);
41
- if (args.size)
42
- primary.setAttribute('size', args.size || 'm');
43
- primary.addEventListener('click', action('click'));
44
- return primary;
25
+ export default meta;
26
+ export const Standard = {};
27
+ export const Accent = {
28
+ args: { appearance: 'accent' },
45
29
  };
46
- export const Default = Template.bind({});
47
- Default.args = {};
48
- Default.play = async ({ canvasElement }) => {
49
- const badge = canvasElement.querySelector('m-number-badge');
50
- expect(badge).toHaveAttribute('label', '99');
30
+ export const Danger = {
31
+ args: { appearance: 'danger' },
51
32
  };
52
- export const CustomLabel = Template.bind({});
53
- CustomLabel.args = { label: 'X' };
54
- CustomLabel.play = async ({ canvasElement }) => {
55
- const badge = canvasElement.querySelector('m-number-badge');
56
- expect(badge).toHaveAttribute('label', 'X');
57
- };
58
- export const AccentStyle = Template.bind({});
59
- AccentStyle.args = { appearance: 'accent' };
60
- AccentStyle.play = async ({ canvasElement }) => {
61
- const badge = canvasElement.querySelector('m-number-badge');
62
- expect(badge).toHaveAttribute('appearance', 'accent');
33
+ export const Inverse = {
34
+ globals: {
35
+ backgrounds: { value: 'inverse' },
36
+ },
37
+ args: { appearance: 'inverse' },
63
38
  };
64
- export const SmallSize = Template.bind({});
65
- SmallSize.args = { size: 's' };
66
- SmallSize.play = async ({ canvasElement }) => {
67
- const badge = canvasElement.querySelector('m-number-badge');
68
- expect(badge).toHaveAttribute('size', 's');
39
+ export const Size = {
40
+ args: { size: 'm' },
69
41
  };
@@ -1,31 +1,29 @@
1
1
  <svelte:options customElement={{ tag: 'm-number-badge' }} />
2
2
 
3
3
  <script lang="ts">
4
- import type { BadgeStyle, BadgeSize } from './NumberBadge.types';
4
+ /**
5
+ * A Number Badge represents a numeric count, often used to indicate notifications, updates, or items requiring attention. Its distinct appearance makes it easy to spot changes at a glance, ensuring users stay informed without breaking their workflow. Badges are commonly attached to icons, buttons, or tabs to provide contextual awareness.
6
+ */
5
7
  interface Props {
6
- label: string;
7
- appearance: BadgeStyle;
8
- size: BadgeSize;
9
- }
10
-
11
- let { label = '', appearance = 'standard', size = 's' }: Props = $props();
12
-
13
- function setClasses(style: BadgeStyle) {
14
- const classes = ['mc-number-badge'];
8
+ /**
9
+ * Content of the badge.
10
+ */
11
+ label: number;
12
+ /**
13
+ * Allows to define the badge appearance.
14
+ */
15
+ appearance?: 'danger' | 'accent' | 'inverse' | 'standard';
15
16
 
16
- if (appearance) {
17
- classes.push(`mc-number-badge--${appearance}`);
18
- }
19
-
20
- if (size) {
21
- classes.push(`mc-number-badge--${size}`);
22
- }
23
-
24
- return classes.join(' ');
17
+ /**
18
+ * Allows to define the badge size.
19
+ */
20
+ size?: 's' | 'm';
25
21
  }
22
+
23
+ let { label, appearance = 'standard', size = 's' }: Props = $props();
26
24
  </script>
27
25
 
28
- <div class={setClasses(appearance)}>
26
+ <div class={['mc-number-badge', `mc-number-badge--${appearance}`, `mc-number-badge--${size}`]}>
29
27
  {label}
30
28
  </div>
31
29