@mozaic-ds/web-components 1.0.0-beta.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/README.md +36 -68
  2. package/dist/Cross20.js +1 -1
  3. package/dist/Cross20.js.map +1 -1
  4. package/dist/Cross24.js +1 -1
  5. package/dist/Cross24.js.map +1 -1
  6. package/dist/CrossCircleFilled24.js +1 -1
  7. package/dist/CrossCircleFilled24.js.map +1 -1
  8. package/dist/attributes.js +1 -1
  9. package/dist/attributes.js.map +1 -1
  10. package/dist/bundle.d.ts +24 -23
  11. package/dist/bundle.d.ts.map +1 -1
  12. package/dist/bundle.js +24 -23
  13. package/dist/components/avatar/Avatar.js +2 -5
  14. package/dist/components/avatar/Avatar.js.map +1 -1
  15. package/dist/components/avatar/Avatar.spec.js +17 -0
  16. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  17. package/dist/components/avatar/Avatar.stories.js +3 -29
  18. package/dist/components/avatar/Avatar.svelte +9 -10
  19. package/dist/components/avatar/Avatar.svelte.d.ts +2 -0
  20. package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -1
  21. package/dist/components/avatar/README.md +16 -0
  22. package/dist/components/breadcrumb/Breadcrumb.js +6 -9
  23. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  24. package/dist/components/breadcrumb/Breadcrumb.spec.js +42 -0
  25. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  26. package/dist/components/breadcrumb/Breadcrumb.stories.js +6 -35
  27. package/dist/components/breadcrumb/Breadcrumb.svelte +26 -34
  28. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  29. package/dist/components/breadcrumb/README.md +11 -0
  30. package/dist/components/button/Button.js +3 -6
  31. package/dist/components/button/Button.js.map +1 -1
  32. package/dist/components/button/Button.spec.js +74 -0
  33. package/dist/components/button/Button.stories.d.ts +9 -13
  34. package/dist/components/button/Button.stories.d.ts.map +1 -1
  35. package/dist/components/button/Button.stories.js +46 -146
  36. package/dist/components/button/Button.svelte +186 -168
  37. package/dist/components/button/Button.svelte.d.ts +36 -8
  38. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  39. package/dist/components/button/README.md +26 -0
  40. package/dist/components/callout/Callout.js +2 -5
  41. package/dist/components/callout/Callout.js.map +1 -1
  42. package/dist/components/callout/Callout.spec.js +33 -0
  43. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  44. package/dist/components/callout/Callout.stories.js +2 -55
  45. package/dist/components/callout/Callout.svelte +15 -14
  46. package/dist/components/callout/Callout.svelte.d.ts +4 -0
  47. package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
  48. package/dist/components/callout/README.md +20 -0
  49. package/dist/components/checkbox/Checkbox.js +3 -6
  50. package/dist/components/checkbox/Checkbox.js.map +1 -1
  51. package/dist/components/checkbox/Checkbox.spec.js +70 -0
  52. package/dist/components/checkbox/Checkbox.stories.d.ts +11 -16
  53. package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
  54. package/dist/components/checkbox/Checkbox.stories.js +67 -124
  55. package/dist/components/checkbox/Checkbox.svelte +75 -58
  56. package/dist/components/checkbox/Checkbox.svelte.d.ts +31 -6
  57. package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
  58. package/dist/components/checkbox/README.md +17 -0
  59. package/dist/components/checkboxgroup/CheckboxGroup.js +4 -7
  60. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  61. package/dist/components/checkboxgroup/CheckboxGroup.spec.js +113 -0
  62. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +5 -13
  63. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
  64. package/dist/components/checkboxgroup/CheckboxGroup.stories.js +56 -140
  65. package/dist/components/checkboxgroup/CheckboxGroup.svelte +89 -81
  66. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts +30 -6
  67. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
  68. package/dist/components/checkboxgroup/README.md +14 -0
  69. package/dist/components/circularprogressbar/CircularProgressbar.js +4 -7
  70. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  71. package/dist/components/circularprogressbar/CircularProgressbar.spec.js +74 -0
  72. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +6 -6
  73. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
  74. package/dist/components/circularprogressbar/CircularProgressbar.stories.js +29 -68
  75. package/dist/components/circularprogressbar/CircularProgressbar.svelte +46 -30
  76. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +18 -0
  77. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
  78. package/dist/components/circularprogressbar/README.md +14 -0
  79. package/dist/components/datepicker/Datepicker.js +3 -6
  80. package/dist/components/datepicker/Datepicker.js.map +1 -1
  81. package/dist/components/datepicker/Datepicker.spec.js +95 -0
  82. package/dist/components/datepicker/Datepicker.stories.d.ts +7 -6
  83. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  84. package/dist/components/datepicker/Datepicker.stories.js +58 -75
  85. package/dist/components/datepicker/Datepicker.svelte +103 -79
  86. package/dist/components/datepicker/Datepicker.svelte.d.ts +30 -1
  87. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  88. package/dist/components/datepicker/README.md +18 -0
  89. package/dist/components/drawer/Drawer.js +12 -15
  90. package/dist/components/drawer/Drawer.js.map +1 -1
  91. package/dist/components/drawer/Drawer.spec.js +101 -0
  92. package/dist/components/drawer/Drawer.stories.d.ts +29 -8
  93. package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
  94. package/dist/components/drawer/Drawer.stories.js +86 -87
  95. package/dist/components/drawer/Drawer.svelte +185 -161
  96. package/dist/components/drawer/Drawer.svelte.d.ts +26 -3
  97. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  98. package/dist/components/drawer/README.md +29 -0
  99. package/dist/components/field/Field.js +3 -6
  100. package/dist/components/field/Field.js.map +1 -1
  101. package/dist/components/field/Field.spec.js +51 -0
  102. package/dist/components/field/Field.stories.d.ts +9 -15
  103. package/dist/components/field/Field.stories.d.ts.map +1 -1
  104. package/dist/components/field/Field.stories.js +86 -142
  105. package/dist/components/field/Field.svelte +63 -30
  106. package/dist/components/field/Field.svelte.d.ts +38 -7
  107. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  108. package/dist/components/field/README.md +24 -0
  109. package/dist/components/flag/Flag.js +2 -5
  110. package/dist/components/flag/Flag.js.map +1 -1
  111. package/dist/components/flag/Flag.spec.js +30 -0
  112. package/dist/components/flag/Flag.stories.d.ts +8 -18
  113. package/dist/components/flag/Flag.stories.d.ts.map +1 -1
  114. package/dist/components/flag/Flag.stories.js +28 -106
  115. package/dist/components/flag/Flag.svelte +23 -24
  116. package/dist/components/flag/Flag.svelte.d.ts +10 -28
  117. package/dist/components/flag/Flag.svelte.d.ts.map +1 -1
  118. package/dist/components/flag/README.md +11 -0
  119. package/dist/components/iconbutton/IconButton.js +2 -5
  120. package/dist/components/iconbutton/IconButton.js.map +1 -1
  121. package/dist/components/iconbutton/IconButton.stories.d.ts +11 -11
  122. package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
  123. package/dist/components/iconbutton/IconButton.stories.js +51 -67
  124. package/dist/components/iconbutton/IconButton.svelte +157 -152
  125. package/dist/components/iconbutton/IconButton.svelte.d.ts +28 -7
  126. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  127. package/dist/components/iconbutton/README.md +21 -0
  128. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -5
  129. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  130. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.spec.js +28 -0
  131. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +5 -7
  132. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
  133. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +18 -49
  134. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +19 -12
  135. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts +10 -1
  136. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
  137. package/dist/components/linearprogressbarbuffer/README.md +11 -0
  138. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -5
  139. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  140. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.spec.js +26 -0
  141. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +4 -5
  142. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
  143. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +15 -33
  144. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +19 -16
  145. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts +6 -0
  146. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts.map +1 -1
  147. package/dist/components/linearprogressbarpercentage/README.md +10 -0
  148. package/dist/components/link/Link.js +2 -5
  149. package/dist/components/link/Link.js.map +1 -1
  150. package/dist/components/link/Link.spec.js +51 -0
  151. package/dist/components/link/Link.stories.d.ts +12 -12
  152. package/dist/components/link/Link.stories.d.ts.map +1 -1
  153. package/dist/components/link/Link.stories.js +61 -74
  154. package/dist/components/link/Link.svelte +54 -52
  155. package/dist/components/link/Link.svelte.d.ts +29 -8
  156. package/dist/components/link/Link.svelte.d.ts.map +1 -1
  157. package/dist/components/link/README.md +23 -0
  158. package/dist/components/loader/Loader.js +7 -10
  159. package/dist/components/loader/Loader.js.map +1 -1
  160. package/dist/components/loader/Loader.spec.js +54 -0
  161. package/dist/components/loader/Loader.stories.d.ts +8 -10
  162. package/dist/components/loader/Loader.stories.d.ts.map +1 -1
  163. package/dist/components/loader/Loader.stories.js +27 -43
  164. package/dist/components/loader/Loader.svelte +42 -43
  165. package/dist/components/loader/Loader.svelte.d.ts +14 -3
  166. package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
  167. package/dist/components/loader/README.md +12 -0
  168. package/dist/components/loadingoverlay/LoadingOverlay.js +4 -0
  169. package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -0
  170. package/dist/components/loadingoverlay/LoadingOverlay.spec.js +38 -0
  171. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +7 -0
  172. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -0
  173. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +39 -0
  174. package/dist/components/loadingoverlay/LoadingOverlay.svelte +50 -0
  175. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts +17 -0
  176. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts.map +1 -0
  177. package/dist/components/loadingoverlay/README.md +11 -0
  178. package/dist/components/modal/Modal.js +14 -17
  179. package/dist/components/modal/Modal.js.map +1 -1
  180. package/dist/components/modal/Modal.spec.js +50 -0
  181. package/dist/components/modal/Modal.stories.d.ts +36 -9
  182. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  183. package/dist/components/modal/Modal.stories.js +54 -83
  184. package/dist/components/modal/Modal.svelte +167 -166
  185. package/dist/components/modal/Modal.svelte.d.ts +22 -5
  186. package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
  187. package/dist/components/modal/README.md +28 -0
  188. package/dist/components/numberbadge/NumberBadge.js +2 -5
  189. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  190. package/dist/components/numberbadge/NumberBadge.spec.js +28 -0
  191. package/dist/components/numberbadge/NumberBadge.stories.d.ts +9 -13
  192. package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
  193. package/dist/components/numberbadge/NumberBadge.stories.js +28 -56
  194. package/dist/components/numberbadge/NumberBadge.svelte +36 -35
  195. package/dist/components/numberbadge/NumberBadge.svelte.d.ts +15 -4
  196. package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
  197. package/dist/components/numberbadge/README.md +12 -0
  198. package/dist/components/overlay/Overlay.js +2 -5
  199. package/dist/components/overlay/Overlay.js.map +1 -1
  200. package/dist/components/overlay/Overlay.spec.js +29 -0
  201. package/dist/components/overlay/Overlay.stories.d.ts +5 -7
  202. package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
  203. package/dist/components/overlay/Overlay.stories.js +32 -40
  204. package/dist/components/overlay/Overlay.svelte +21 -12
  205. package/dist/components/overlay/Overlay.svelte.d.ts +11 -0
  206. package/dist/components/overlay/Overlay.svelte.d.ts.map +1 -1
  207. package/dist/components/overlay/README.md +17 -0
  208. package/dist/components/pagination/Pagination.js +8 -11
  209. package/dist/components/pagination/Pagination.js.map +1 -1
  210. package/dist/components/pagination/Pagination.spec.js +65 -0
  211. package/dist/components/pagination/Pagination.stories.d.ts +8 -11
  212. package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
  213. package/dist/components/pagination/Pagination.stories.js +37 -91
  214. package/dist/components/pagination/Pagination.svelte +53 -35
  215. package/dist/components/pagination/Pagination.svelte.d.ts +27 -4
  216. package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
  217. package/dist/components/pagination/README.md +16 -0
  218. package/dist/components/passwordinput/PasswordInput.js +4 -9
  219. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  220. package/dist/components/passwordinput/PasswordInput.spec.js +84 -0
  221. package/dist/components/passwordinput/PasswordInput.stories.d.ts +10 -13
  222. package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
  223. package/dist/components/passwordinput/PasswordInput.stories.js +67 -124
  224. package/dist/components/passwordinput/PasswordInput.svelte +424 -60
  225. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +34 -2
  226. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  227. package/dist/components/passwordinput/README.md +19 -0
  228. package/dist/components/pincode/Pincode.js +4 -7
  229. package/dist/components/pincode/Pincode.js.map +1 -1
  230. package/dist/components/pincode/Pincode.spec.js +99 -0
  231. package/dist/components/pincode/Pincode.stories.d.ts +9 -13
  232. package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
  233. package/dist/components/pincode/Pincode.stories.js +62 -127
  234. package/dist/components/pincode/Pincode.svelte +72 -60
  235. package/dist/components/pincode/Pincode.svelte.d.ts +30 -24
  236. package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
  237. package/dist/components/pincode/README.md +22 -0
  238. package/dist/components/quantityselector/QuantitySelector.js +3 -7
  239. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  240. package/dist/components/quantityselector/QuantitySelector.spec.js +104 -0
  241. package/dist/components/quantityselector/QuantitySelector.stories.d.ts +11 -15
  242. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  243. package/dist/components/quantityselector/QuantitySelector.stories.js +77 -145
  244. package/dist/components/quantityselector/QuantitySelector.svelte +136 -112
  245. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts +49 -17
  246. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  247. package/dist/components/quantityselector/README.md +21 -0
  248. package/dist/components/radio/README.md +15 -0
  249. package/dist/components/radio/Radio.js +2 -5
  250. package/dist/components/radio/Radio.js.map +1 -1
  251. package/dist/components/radio/Radio.spec.js +60 -0
  252. package/dist/components/radio/Radio.stories.d.ts +9 -13
  253. package/dist/components/radio/Radio.stories.d.ts.map +1 -1
  254. package/dist/components/radio/Radio.stories.js +54 -70
  255. package/dist/components/radio/Radio.svelte +58 -39
  256. package/dist/components/radio/Radio.svelte.d.ts +27 -5
  257. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  258. package/dist/components/radiogroup/README.md +14 -0
  259. package/dist/components/radiogroup/RadioGroup.js +4 -7
  260. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  261. package/dist/components/radiogroup/RadioGroup.spec.js +65 -0
  262. package/dist/components/radiogroup/RadioGroup.stories.d.ts +5 -12
  263. package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
  264. package/dist/components/radiogroup/RadioGroup.stories.js +56 -151
  265. package/dist/components/radiogroup/RadioGroup.svelte +81 -77
  266. package/dist/components/radiogroup/RadioGroup.svelte.d.ts +28 -9
  267. package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
  268. package/dist/components/select/README.md +18 -0
  269. package/dist/components/select/Select.js +3 -6
  270. package/dist/components/select/Select.js.map +1 -1
  271. package/dist/components/select/Select.spec.js +76 -0
  272. package/dist/components/select/Select.stories.d.ts +10 -14
  273. package/dist/components/select/Select.stories.d.ts.map +1 -1
  274. package/dist/components/select/Select.stories.js +87 -92
  275. package/dist/components/select/Select.svelte +77 -67
  276. package/dist/components/select/Select.svelte.d.ts +41 -10
  277. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  278. package/dist/components/statusbadge/README.md +11 -0
  279. package/dist/components/statusbadge/StatusBadge.js +2 -5
  280. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  281. package/dist/components/statusbadge/StatusBadge.spec.js +31 -0
  282. package/dist/components/statusbadge/StatusBadge.stories.d.ts +9 -12
  283. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  284. package/dist/components/statusbadge/StatusBadge.stories.js +21 -44
  285. package/dist/components/statusbadge/StatusBadge.svelte +34 -29
  286. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +13 -28
  287. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  288. package/dist/components/statusdot/README.md +11 -0
  289. package/dist/components/statusdot/StatusDot.js +2 -5
  290. package/dist/components/statusdot/StatusDot.js.map +1 -1
  291. package/dist/components/statusdot/StatusDot.spec.js +42 -0
  292. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  293. package/dist/components/statusdot/StatusDot.stories.js +9 -37
  294. package/dist/components/statusdot/StatusDot.svelte +15 -16
  295. package/dist/components/statusdot/StatusDot.svelte.d.ts +2 -2
  296. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  297. package/dist/components/statusnotification/README.md +25 -0
  298. package/dist/components/statusnotification/StatusNotification.js +3 -6
  299. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  300. package/dist/components/statusnotification/StatusNotification.spec.js +54 -0
  301. package/dist/components/statusnotification/StatusNotification.stories.d.ts +16 -14
  302. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  303. package/dist/components/statusnotification/StatusNotification.stories.js +53 -86
  304. package/dist/components/statusnotification/StatusNotification.svelte +186 -187
  305. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +21 -18
  306. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  307. package/dist/components/tab/README.md +20 -0
  308. package/dist/components/tab/Tab.js +4 -0
  309. package/dist/components/tab/Tab.js.map +1 -0
  310. package/dist/components/tab/Tab.spec.js +58 -0
  311. package/dist/components/tab/Tab.svelte +154 -0
  312. package/dist/components/{tabs → tab}/Tab.svelte.d.ts +20 -3
  313. package/dist/components/tab/Tab.svelte.d.ts.map +1 -0
  314. package/dist/components/tabs/README.md +18 -0
  315. package/dist/components/tabs/Tabs.js +2 -5
  316. package/dist/components/tabs/Tabs.js.map +1 -1
  317. package/dist/components/tabs/Tabs.spec.js +51 -0
  318. package/dist/components/tabs/Tabs.stories.d.ts +9 -6
  319. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  320. package/dist/components/tabs/Tabs.stories.js +59 -115
  321. package/dist/components/tabs/Tabs.svelte +46 -29
  322. package/dist/components/tabs/Tabs.svelte.d.ts +21 -7
  323. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  324. package/dist/components/tags/README.md +9 -0
  325. package/dist/components/tags/Tag.js +2 -5
  326. package/dist/components/tags/Tag.js.map +1 -1
  327. package/dist/components/tags/Tag.svelte +35 -38
  328. package/dist/components/tags/TagContextualised.js +2 -5
  329. package/dist/components/tags/TagContextualised.js.map +1 -1
  330. package/dist/components/tags/TagContextualised.svelte +35 -38
  331. package/dist/components/tags/TagInteractive.js +2 -5
  332. package/dist/components/tags/TagInteractive.js.map +1 -1
  333. package/dist/components/tags/TagInteractive.svelte +35 -38
  334. package/dist/components/tags/TagRemovable.js +2 -5
  335. package/dist/components/tags/TagRemovable.js.map +1 -1
  336. package/dist/components/tags/TagRemovable.svelte +35 -38
  337. package/dist/components/tags/TagSelectable.js +2 -5
  338. package/dist/components/tags/TagSelectable.js.map +1 -1
  339. package/dist/components/tags/TagSelectable.svelte +35 -38
  340. package/dist/components/tags/Tags.stories.d.ts.map +1 -1
  341. package/dist/components/tags/Tags.stories.js +7 -1
  342. package/dist/components/tags/TagsContextualised.stories.d.ts.map +1 -1
  343. package/dist/components/tags/TagsContextualised.stories.js +7 -1
  344. package/dist/components/tags/TagsInteractive.stories.d.ts.map +1 -1
  345. package/dist/components/tags/TagsInteractive.stories.js +7 -1
  346. package/dist/components/tags/TagsRemovable.stories.d.ts.map +1 -1
  347. package/dist/components/tags/TagsRemovable.stories.js +7 -1
  348. package/dist/components/tags/TagsSelectable.stories.d.ts.map +1 -1
  349. package/dist/components/tags/TagsSelectable.stories.js +7 -1
  350. package/dist/components/textarea/README.md +19 -0
  351. package/dist/components/textarea/Textarea.js +2 -8
  352. package/dist/components/textarea/Textarea.js.map +1 -1
  353. package/dist/components/textarea/Textarea.spec.js +67 -0
  354. package/dist/components/textarea/Textarea.stories.d.ts +9 -13
  355. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  356. package/dist/components/textarea/Textarea.stories.js +61 -92
  357. package/dist/components/textarea/Textarea.svelte +70 -117
  358. package/dist/components/textarea/Textarea.svelte.d.ts +43 -13
  359. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  360. package/dist/components/textinput/README.md +26 -0
  361. package/dist/components/textinput/Textinput.js +5 -9
  362. package/dist/components/textinput/Textinput.js.map +1 -1
  363. package/dist/components/textinput/Textinput.spec.js +89 -0
  364. package/dist/components/textinput/Textinput.stories.d.ts +11 -12
  365. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  366. package/dist/components/textinput/Textinput.stories.js +78 -137
  367. package/dist/components/textinput/Textinput.svelte +107 -148
  368. package/dist/components/textinput/Textinput.svelte.d.ts +46 -22
  369. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  370. package/dist/components/toaster/README.md +28 -0
  371. package/dist/components/toaster/Toaster.js +5 -8
  372. package/dist/components/toaster/Toaster.js.map +1 -1
  373. package/dist/components/toaster/Toaster.spec.js +100 -0
  374. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  375. package/dist/components/toaster/Toaster.stories.js +5 -73
  376. package/dist/components/toaster/Toaster.svelte +157 -146
  377. package/dist/components/toaster/Toaster.svelte.d.ts +3 -0
  378. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  379. package/dist/components/toggle/README.md +15 -0
  380. package/dist/components/toggle/Toggle.js +2 -5
  381. package/dist/components/toggle/Toggle.js.map +1 -1
  382. package/dist/components/toggle/Toggle.spec.js +69 -0
  383. package/dist/components/toggle/Toggle.stories.d.ts +9 -14
  384. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  385. package/dist/components/toggle/Toggle.stories.js +55 -64
  386. package/dist/components/toggle/Toggle.svelte +59 -48
  387. package/dist/components/toggle/Toggle.svelte.d.ts +26 -7
  388. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  389. package/dist/components/togglegroup/README.md +13 -0
  390. package/dist/components/togglegroup/ToggleGroup.js +3 -6
  391. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  392. package/dist/components/togglegroup/ToggleGroup.spec.js +50 -0
  393. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +5 -13
  394. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  395. package/dist/components/togglegroup/ToggleGroup.stories.js +56 -104
  396. package/dist/components/togglegroup/ToggleGroup.svelte +91 -97
  397. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +25 -14
  398. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  399. package/dist/components/tooltip/README.md +19 -0
  400. package/dist/components/tooltip/Tooltip.js +4 -7
  401. package/dist/components/tooltip/Tooltip.js.map +1 -1
  402. package/dist/components/tooltip/Tooltip.spec.js +38 -0
  403. package/dist/components/tooltip/Tooltip.stories.d.ts +6 -7
  404. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  405. package/dist/components/tooltip/Tooltip.stories.js +45 -59
  406. package/dist/components/tooltip/Tooltip.svelte +31 -25
  407. package/dist/components/tooltip/Tooltip.svelte.d.ts +17 -0
  408. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  409. package/dist/custom-element-forward-events.js.map +1 -1
  410. package/dist/custom-element.js +3 -3
  411. package/dist/custom-element.js.map +1 -1
  412. package/dist/documentation/Contributing.mdx +1 -1
  413. package/dist/documentation/Introduction.mdx +45 -11
  414. package/dist/documentation/SupportAndOnboarding.mdx +2 -2
  415. package/dist/each.js +1 -1
  416. package/dist/each.js.map +1 -1
  417. package/dist/if.js +1 -1
  418. package/dist/if.js.map +1 -1
  419. package/dist/input.js +1 -1
  420. package/dist/input.js.map +1 -1
  421. package/dist/legacy.js +1 -1
  422. package/dist/legacy.js.map +1 -1
  423. package/dist/main.d.ts +24 -23
  424. package/dist/main.d.ts.map +1 -1
  425. package/dist/main.js +24 -23
  426. package/dist/slot.js +1 -1
  427. package/dist/slot.js.map +1 -1
  428. package/dist/this.js +2 -0
  429. package/dist/this.js.map +1 -0
  430. package/package.json +12 -4
  431. package/dist/components/button/button.types.d.ts +0 -13
  432. package/dist/components/button/button.types.d.ts.map +0 -1
  433. package/dist/components/button/button.types.js +0 -1
  434. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts +0 -9
  435. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts.map +0 -1
  436. package/dist/components/checkboxgroup/checkboxgroup.types.js +0 -1
  437. package/dist/components/link/link.types.d.ts +0 -4
  438. package/dist/components/link/link.types.d.ts.map +0 -1
  439. package/dist/components/link/link.types.js +0 -1
  440. package/dist/components/loader/loader.types.d.ts +0 -3
  441. package/dist/components/loader/loader.types.d.ts.map +0 -1
  442. package/dist/components/loader/loader.types.js +0 -1
  443. package/dist/components/numberbadge/NumberBadge.types.d.ts +0 -3
  444. package/dist/components/numberbadge/NumberBadge.types.d.ts.map +0 -1
  445. package/dist/components/numberbadge/NumberBadge.types.js +0 -1
  446. package/dist/components/overlayloader/OverlayLoader.js +0 -30
  447. package/dist/components/overlayloader/OverlayLoader.js.map +0 -1
  448. package/dist/components/overlayloader/OverlayLoader.stories.d.ts +0 -8
  449. package/dist/components/overlayloader/OverlayLoader.stories.d.ts.map +0 -1
  450. package/dist/components/overlayloader/OverlayLoader.stories.js +0 -50
  451. package/dist/components/overlayloader/OverlayLoader.svelte +0 -159
  452. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts +0 -9
  453. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts.map +0 -1
  454. package/dist/components/quantityselector/quantitySelector.types.d.ts +0 -2
  455. package/dist/components/quantityselector/quantitySelector.types.d.ts.map +0 -1
  456. package/dist/components/quantityselector/quantitySelector.types.js +0 -1
  457. package/dist/components/radiogroup/radioGroup.types.d.ts +0 -9
  458. package/dist/components/radiogroup/radioGroup.types.d.ts.map +0 -1
  459. package/dist/components/radiogroup/radioGroup.types.js +0 -1
  460. package/dist/components/select/select.types.d.ts +0 -9
  461. package/dist/components/select/select.types.d.ts.map +0 -1
  462. package/dist/components/select/select.types.js +0 -1
  463. package/dist/components/statusbadge/StatusBadge.types.d.ts +0 -2
  464. package/dist/components/statusbadge/StatusBadge.types.d.ts.map +0 -1
  465. package/dist/components/statusbadge/StatusBadge.types.js +0 -1
  466. package/dist/components/statusdot/StatusDot.types.d.ts +0 -3
  467. package/dist/components/statusdot/StatusDot.types.d.ts.map +0 -1
  468. package/dist/components/statusdot/StatusDot.types.js +0 -1
  469. package/dist/components/tabs/Tab.js +0 -7
  470. package/dist/components/tabs/Tab.js.map +0 -1
  471. package/dist/components/tabs/Tab.svelte +0 -137
  472. package/dist/components/tabs/Tab.svelte.d.ts.map +0 -1
  473. package/dist/components/textinput/textinput.types.d.ts +0 -3
  474. package/dist/components/textinput/textinput.types.d.ts.map +0 -1
  475. package/dist/components/textinput/textinput.types.js +0 -1
  476. package/dist/components/toggle/toggle.types.d.ts +0 -2
  477. package/dist/components/toggle/toggle.types.d.ts.map +0 -1
  478. package/dist/components/toggle/toggle.types.js +0 -1
  479. package/dist/index-client.js +0 -2
  480. package/dist/index-client.js.map +0 -1
  481. package/dist/snippet.js +0 -2
  482. package/dist/snippet.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sources":["../../../src/components/link/Link.svelte"],"sourcesContent":["<svelte:options customElement=\"m-link\" />\n\n<script lang=\"ts\">\n import type { LinkIconPosition, LinkSize, LinkStyle } from './link.types';\n interface Props {\n href: string;\n target: string;\n appearance?: LinkStyle;\n disabled?: boolean;\n size?: LinkSize;\n inline?: boolean;\n iconposition?: LinkIconPosition | undefined;\n [key: string]: any;\n }\n\n let {\n href,\n target,\n appearance = undefined,\n disabled = false,\n size = 'm',\n inline = false,\n iconposition = undefined,\n ...events\n }: Props = $props();\n\n function setClasses(\n appearance: LinkStyle,\n size: LinkSize,\n inline: boolean,\n ): string {\n const classes = ['mc-link'];\n\n if (appearance) {\n classes.push(`mc-link--${appearance}`);\n }\n if (size) {\n classes.push(`mc-link--${size}`);\n }\n if (inline) {\n classes.push('mc-link--inline');\n } else {\n classes.push('mc-link--stand-alone');\n }\n return classes.join(' ');\n }\n</script>\n\n<a\n {href}\n {target}\n class=\"{setClasses(appearance, size, inline)} {disabled\n ? 'is-disabled'\n : ''} \"\n {...events}\n>\n {#if iconposition === 'left'}\n <span class=\"mc-link__icon\">\n <slot name=\"icon\" />\n </span>\n {/if}\n <span class=\"mc-link__label\">\n <slot />\n </span>\n {#if iconposition === 'right'}\n <span class=\"mc-link__icon\">\n <slot name=\"icon\" />\n </span>\n {/if}\n</a>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/link';\n</style>\n"],"names":["href","$.prop","$$props","target","appearance","disabled","size","inline","iconposition","events","$.rest_props","setClasses","classes","$$render","consequent","consequent_1"],"mappings":";;;;;k9CAAA,oBAgBIA,EAAIC,EAAAC,EAAA,OAAA,CAAA,EACJC,EAAMF,EAAAC,EAAA,SAAA,CAAA,EACNE,qBAAa,MAAS,EACtBC,mBAAW,EAAK,EAChBC,eAAO,GAAG,EACVC,iBAAS,EAAK,EACdC,uBAAe,MAAS,EACrBC,EAAAC,EAAAR,EAAA,mHAGI,SAAAS,EACPP,EACAE,EACAC,EACQ,CACF,MAAAK,GAAW,SAAS,EAEtB,OAAAR,GACFQ,EAAQ,KAAI,YAAaR,CAAU,EAAA,EAEjCE,GACFM,EAAQ,KAAI,YAAaN,CAAI,EAAA,EAE3BC,EACFK,EAAQ,KAAK,iBAAiB,EAE9BA,EAAQ,KAAK,sBAAsB,EAE9BA,EAAQ,KAAK,GAAG,CACzB,0DAM+CP,IAC3C,cACA,EAAE,OACFI,IAHI,CAAA,IAAAE,EAAWP,EAAU,EAAEE,IAAMC,EAAM,CAAA,CAAA,uGAKtCC,MAAiB,QAAMK,EAAAC,CAAA,gIAQvBN,MAAiB,SAAOK,EAAAE,CAAA,sKA9Cd,OAAS,qDACX,GAAK,6CACT,IAAG,iDACD,GAAK,6DACC,OAAS,YAwB5B"}
1
+ {"version":3,"file":"Link.js","sources":["../../../src/components/link/Link.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-link' }} />\n\n<script lang=\"ts\">\n /**\n * A link is an interactive text element used to navigate between pages, sections, or external resources. It is typically underlined and styled to indicate its clickable nature. Links can be standalone or embedded within text, and they may include icons to reinforce their purpose. They are essential for navigation and content referencing in web and application interfaces.\n *\n * @slot default - Use this slot to insert the textual content of the Link.\n * @slot icon - Use this slot to insert an icon for the Link.\n */\n interface Props {\n /**\n * Position of the icon relative to the text.\n */\n iconposition?: 'left' | 'right';\n /**\n * Allows to define the link appearance.\n */\n appearance?: 'secondary' | 'accent' | 'inverse' | 'standard';\n /**\n * Allows to define the link size.\n */\n size?: 's' | 'm';\n /**\n * URL for the link.\n */\n href?: string;\n /**\n * Where to open the link.\n */\n target?: '_self' | '_blank' | '_parent' | '_top';\n /**\n * Specify wether the link is inline.\n */\n inline?: boolean;\n }\n\n let {\n href,\n target,\n inline,\n appearance = 'standard',\n size = 's',\n iconposition = 'left',\n }: Props = $props();\n</script>\n\n<a\n class={[\n 'mc-link',\n `mc-link--${appearance}`,\n `mc-link--${size}`,\n inline && 'mc-link--inline',\n !inline && 'mc-link--stand-alone',\n ]}\n {href}\n {target}\n>\n {#if iconposition === 'left'}\n <span class=\"mc-link__icon\">\n <slot name=\"icon\" />\n </span>\n {/if}\n <span class=\"mc-link__label\">\n <slot />\n </span>\n {#if iconposition === 'right'}\n <span class=\"mc-link__icon\">\n <slot name=\"icon\" />\n </span>\n {/if}\n</a>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/link';\n\n .mc-link__icon:empty {\n display: none;\n }\n</style>\n"],"names":["href","$.prop","$$props","target","inline","appearance","size","iconposition","$$render","consequent","consequent_1"],"mappings":";;mzDAAA,oBAqCIA,EAAIC,EAAAC,EAAA,OAAA,CAAA,EACJC,EAAMF,EAAAC,EAAA,SAAA,CAAA,EACNE,EAAMH,EAAAC,EAAA,SAAA,CAAA,EACNG,qBAAa,UAAU,EACvBC,eAAO,GAAG,EACVC,uBAAe,MAAM,sMAFR,WAAU,6CAChB,IAAG,6DACK,OAAM,2FAelBA,EAAY,IAAK,QAAMC,EAAAC,CAAA,gIAQvBF,EAAY,IAAK,SAAOC,EAAAE,CAAA,gCAjB3B,sBACYL,EAAU,CAAA,eACVC,EAAI,CAAA,GAChBF,EAAM,GAAI,kBACT,CAAAA,EAAM,GAAI,yFARf"}
@@ -0,0 +1,51 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render } from '@testing-library/svelte';
3
+ import Link from './Link.svelte';
4
+ describe('m-link component', () => {
5
+ it('renders with default props and correct classes', () => {
6
+ const { container } = render(Link, {
7
+ props: {
8
+ href: 'https://example.com',
9
+ },
10
+ });
11
+ const link = container.querySelector('a.mc-link');
12
+ expect(link).toBeTruthy();
13
+ expect(link).toHaveAttribute('href', 'https://example.com');
14
+ expect(link.classList.contains('mc-link--standard')).toBe(true);
15
+ expect(link.classList.contains('mc-link--s')).toBe(true);
16
+ expect(link.classList.contains('mc-link--stand-alone')).toBe(true);
17
+ });
18
+ it('renders with inline class when inline prop is true', () => {
19
+ const { container } = render(Link, {
20
+ props: {
21
+ href: 'https://example.com',
22
+ inline: true,
23
+ },
24
+ });
25
+ const link = container.querySelector('a.mc-link');
26
+ expect(link.classList.contains('mc-link--inline')).toBe(true);
27
+ expect(link.classList.contains('mc-link--stand-alone')).toBe(false);
28
+ });
29
+ it('applies appearance and size classes correctly', () => {
30
+ const { container } = render(Link, {
31
+ props: {
32
+ href: 'https://example.com',
33
+ appearance: 'accent',
34
+ size: 'm',
35
+ },
36
+ });
37
+ const link = container.querySelector('a.mc-link');
38
+ expect(link.classList.contains('mc-link--accent')).toBe(true);
39
+ expect(link.classList.contains('mc-link--m')).toBe(true);
40
+ });
41
+ it('sets target attribute correctly', () => {
42
+ const { container } = render(Link, {
43
+ props: {
44
+ href: 'https://example.com',
45
+ target: '_blank',
46
+ },
47
+ });
48
+ const link = container.querySelector('a.mc-link');
49
+ expect(link).toHaveAttribute('target', '_blank');
50
+ });
51
+ });
@@ -1,13 +1,13 @@
1
- import type { Meta } from '@storybook/html-vite';
2
- /**
3
- * > A link is a component used exclusively to navigate to internal or external webpages or to anchors in the current page.
4
- *
5
- * The `MLink` component is the **Svelte / WebComponent** implementation of the **Link** component of Mozaic Design System.<br/>
6
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/links/).
7
- */
8
- declare const _default: Meta<unknown>;
9
- export default _default;
10
- export declare const Default: any;
11
- export declare const IconLeft: any;
12
- export declare const IconRight: 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 Secondary: Story;
7
+ export declare const Accent: Story;
8
+ export declare const Inverse: Story;
9
+ export declare const Size: Story;
10
+ export declare const Inline: Story;
11
+ export declare const IconLeft: Story;
12
+ export declare const IconRight: Story;
13
13
  //# sourceMappingURL=Link.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.stories.d.ts","sourceRoot":"","sources":["../../../src/components/link/Link.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;GAKG;wBAkDE,IAAI,CAAC,OAAO,CAAC;AAhDlB,wBAgDmB;AA0BnB,eAAO,MAAM,OAAO,KAAoB,CAAC;AAEzC,eAAO,MAAM,QAAQ,KAAoB,CAAC;AAK1C,eAAO,MAAM,SAAS,KAAoB,CAAC"}
1
+ {"version":3,"file":"Link.stories.d.ts","sourceRoot":"","sources":["../../../src/components/link/Link.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IAqCX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAAU,CAAC;AAElC,eAAO,MAAM,SAAS,EAAE,KAEvB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC"}
@@ -1,86 +1,73 @@
1
- /**
2
- * > A link is a component used exclusively to navigate to internal or external webpages or to anchors in the current page.
3
- *
4
- * The `MLink` component is the **Svelte / WebComponent** implementation of the **Link** component of Mozaic Design System.<br/>
5
- * The full specification of this component is available in [the associated documentation](https://mozaic.adeo.cloud/components/links/).
6
- */
7
- export default {
8
- title: 'Navigation/Link (stand alone)',
9
- tags: ['autodocs', 'beta'],
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
3
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
4
+ const meta = {
5
+ title: 'Navigation/Link',
6
+ component: 'm-link',
10
7
  argTypes: {
11
- label: {
12
- description: 'Specify the link label',
13
- control: 'text',
8
+ iconposition: {
9
+ control: 'radio',
10
+ options: ['left', 'right'],
14
11
  },
15
- href: {
16
- description: 'Specify the link href',
17
- control: 'text',
18
- },
19
- target: {
20
- description: 'Specify the href target',
21
- control: {
22
- type: 'select',
23
- options: ['_blank', '_self', '_parent', '_top'],
24
- },
25
- defaultValue: '_blank',
26
- if: { arg: 'href' },
12
+ appearance: {
13
+ control: 'radio',
14
+ options: ['secondary', 'accent', 'inverse', 'standard'],
27
15
  },
28
16
  size: {
29
- description: 'Specify the link size',
30
- control: { type: 'select' },
17
+ control: 'radio',
31
18
  options: ['s', 'm'],
32
19
  },
33
- disabled: {
34
- description: 'Specify wether the link is disabled',
35
- control: 'boolean',
36
- },
37
- inline: {
38
- description: 'Specify wether the link is inline',
39
- control: 'boolean',
40
- },
41
- style: {
42
- description: 'Specify which theme to display for the link',
43
- control: {
44
- type: 'select',
45
- },
46
- options: ['primary', 'secondary', 'accent', 'inverse'],
47
- },
48
- iconposition: {
49
- description: 'Specify wether the icon is on the right or left ot the link',
50
- control: { type: 'radio' },
51
- options: ['left', 'right'],
20
+ target: {
21
+ control: 'radio',
22
+ options: ['_self', '_blank', '_parent', '_top'],
52
23
  },
53
24
  },
25
+ args: {
26
+ default: 'Stand-alone link',
27
+ href: '#',
28
+ },
29
+ render: (args) => html `
30
+ <m-link
31
+ iconposition=${ifDefined(args.iconposition)}
32
+ appearance=${ifDefined(args.appearance)}
33
+ size=${ifDefined(args.size)}
34
+ href=${ifDefined(args.href)}
35
+ target=${ifDefined(args.target)}
36
+ inline=${ifDefined(args.inline)}
37
+ >
38
+ ${unsafeHTML(ifDefined(args.icon))} ${unsafeHTML(ifDefined(args.default))}
39
+ </m-link>
40
+ `,
41
+ };
42
+ export default meta;
43
+ export const Standard = {};
44
+ export const Secondary = {
45
+ args: { appearance: 'secondary' },
54
46
  };
55
- const Template = (args) => {
56
- const label = document.createElement('span');
57
- label.innerText = 'Stand alone link';
58
- const icon = document.createElement('chevron-left-24');
59
- icon.setAttribute('slot', 'icon');
60
- icon.setAttribute('style', 'height: 100%');
61
- const primary = document.createElement('m-link');
62
- primary.setAttribute('label', 'Primary');
63
- if (args.style)
64
- primary.setAttribute('style', args.style);
65
- if (args.inline)
66
- primary.setAttribute('inline', args.inline);
67
- if (args.disabled)
68
- primary.setAttribute('disabled', args.disabled);
69
- if (args.iconposition)
70
- primary.setAttribute('iconposition', args.iconposition);
71
- primary.setAttribute('size', args.size);
72
- primary.setAttribute('href', args.href);
73
- primary.setAttribute('target', args.target);
74
- primary.appendChild(label);
75
- primary.appendChild(icon);
76
- return primary;
47
+ export const Accent = {
48
+ args: { appearance: 'accent' },
49
+ };
50
+ export const Inverse = {
51
+ globals: {
52
+ backgrounds: { value: 'inverse' },
53
+ },
54
+ args: { appearance: 'inverse' },
77
55
  };
78
- export const Default = Template.bind({});
79
- export const IconLeft = Template.bind({});
80
- IconLeft.args = {
81
- iconposition: 'left',
56
+ export const Size = {
57
+ args: { size: 'm' },
82
58
  };
83
- export const IconRight = Template.bind({});
84
- IconRight.args = {
85
- iconposition: 'right',
59
+ export const Inline = {
60
+ args: { inline: true },
61
+ };
62
+ export const IconLeft = {
63
+ args: {
64
+ iconPosition: 'left',
65
+ icon: '<chevron-left-24 slot="icon"></chevron-left-24>',
66
+ },
67
+ };
68
+ export const IconRight = {
69
+ args: {
70
+ iconPosition: 'right',
71
+ icon: '<chevron-right-24 slot="icon"></chevron-right-24>',
72
+ },
86
73
  };
@@ -1,58 +1,59 @@
1
- <svelte:options customElement="m-link" />
1
+ <svelte:options customElement={{ tag: 'm-link' }} />
2
2
 
3
3
  <script lang="ts">
4
- import type { LinkIconPosition, LinkSize, LinkStyle } from './link.types';
4
+ /**
5
+ * A link is an interactive text element used to navigate between pages, sections, or external resources. It is typically underlined and styled to indicate its clickable nature. Links can be standalone or embedded within text, and they may include icons to reinforce their purpose. They are essential for navigation and content referencing in web and application interfaces.
6
+ *
7
+ * @slot default - Use this slot to insert the textual content of the Link.
8
+ * @slot icon - Use this slot to insert an icon for the Link.
9
+ */
5
10
  interface Props {
6
- href: string;
7
- target: string;
8
- appearance?: LinkStyle;
9
- disabled?: boolean;
10
- size?: LinkSize;
11
+ /**
12
+ * Position of the icon relative to the text.
13
+ */
14
+ iconposition?: 'left' | 'right';
15
+ /**
16
+ * Allows to define the link appearance.
17
+ */
18
+ appearance?: 'secondary' | 'accent' | 'inverse' | 'standard';
19
+ /**
20
+ * Allows to define the link size.
21
+ */
22
+ size?: 's' | 'm';
23
+ /**
24
+ * URL for the link.
25
+ */
26
+ href?: string;
27
+ /**
28
+ * Where to open the link.
29
+ */
30
+ target?: '_self' | '_blank' | '_parent' | '_top';
31
+ /**
32
+ * Specify wether the link is inline.
33
+ */
11
34
  inline?: boolean;
12
- iconposition?: LinkIconPosition | undefined;
13
- [key: string]: any;
14
35
  }
15
36
 
16
37
  let {
17
38
  href,
18
39
  target,
19
- appearance = undefined,
20
- disabled = false,
21
- size = 'm',
22
- inline = false,
23
- iconposition = undefined,
24
- ...events
40
+ inline,
41
+ appearance = 'standard',
42
+ size = 's',
43
+ iconposition = 'left',
25
44
  }: Props = $props();
26
-
27
- function setClasses(
28
- appearance: LinkStyle,
29
- size: LinkSize,
30
- inline: boolean,
31
- ): string {
32
- const classes = ['mc-link'];
33
-
34
- if (appearance) {
35
- classes.push(`mc-link--${appearance}`);
36
- }
37
- if (size) {
38
- classes.push(`mc-link--${size}`);
39
- }
40
- if (inline) {
41
- classes.push('mc-link--inline');
42
- } else {
43
- classes.push('mc-link--stand-alone');
44
- }
45
- return classes.join(' ');
46
- }
47
45
  </script>
48
46
 
49
47
  <a
48
+ class={[
49
+ 'mc-link',
50
+ `mc-link--${appearance}`,
51
+ `mc-link--${size}`,
52
+ inline && 'mc-link--inline',
53
+ !inline && 'mc-link--stand-alone',
54
+ ]}
50
55
  {href}
51
56
  {target}
52
- class="{setClasses(appearance, size, inline)} {disabled
53
- ? 'is-disabled'
54
- : ''} "
55
- {...events}
56
57
  >
57
58
  {#if iconposition === 'left'}
58
59
  <span class="mc-link__icon">
@@ -72,9 +73,6 @@
72
73
  <style>/**
73
74
  * Do not edit directly, this file was auto-generated.
74
75
  */
75
- /**
76
- * Do not edit directly, this file was auto-generated.
77
- */
78
76
  .mc-link {
79
77
  transition: box-shadow 200ms ease;
80
78
  display: inline-flex;
@@ -83,7 +81,7 @@
83
81
  gap: 0.25rem;
84
82
  min-height: 1.5rem;
85
83
  text-decoration: none;
86
- color: #000000;
84
+ color: var(--link-color-text-primary, #000000);
87
85
  font-size: 0.875rem;
88
86
  }
89
87
  .mc-link__label {
@@ -100,7 +98,7 @@
100
98
  text-decoration: underline;
101
99
  }
102
100
  .mc-link:focus {
103
- box-shadow: 0 0 0 0.125rem var(--focus-color-mid, #ffffff), 0 0 0 0.25rem var(--focus-color-outer, #000000);
101
+ 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));
104
102
  outline: 0.125rem solid transparent;
105
103
  outline-offset: 0.125rem;
106
104
  }
@@ -109,22 +107,22 @@
109
107
  font-size: 1rem;
110
108
  }
111
109
  .mc-link--secondary {
112
- color: #666666;
110
+ color: var(--link-color-text-secondary, #666666);
113
111
  }
114
112
  .mc-link--accent {
115
- color: #117f03;
113
+ color: var(--link-color-text-accent, #117f03);
116
114
  }
117
115
  .mc-link--inverse {
118
- --focus-color-mid: #000000;
119
- --focus-color-outer: #ffffff;
120
- color: #ffffff;
116
+ --focus-color-mid: var(--focus-color-outline-outer, #000000);
117
+ --focus-color-outer: var(--focus-color-outline-mid, #ffffff);
118
+ color: var(--link-color-text-inverse, #ffffff);
121
119
  }
122
120
  .mc-link--stand-alone {
123
121
  min-height: 2rem;
124
- font-weight: 600;
122
+ font-weight: var(--link-font-weight, 600);
125
123
  }
126
124
  .mc-link--stand-alone .mc-link__label {
127
- border-bottom: 1px solid currentColor;
125
+ border-bottom: var(--border-s, 1px) solid currentColor;
128
126
  }
129
127
  .mc-link--stand-alone:hover .mc-link__label {
130
128
  border-color: transparent;
@@ -138,4 +136,8 @@
138
136
  }
139
137
  .mc-link--inline:hover {
140
138
  text-decoration: none;
139
+ }
140
+
141
+ .mc-link__icon:empty {
142
+ display: none;
141
143
  }</style>
@@ -1,13 +1,34 @@
1
- import type { LinkIconPosition, LinkSize, LinkStyle } from './link.types';
1
+ /**
2
+ * A link is an interactive text element used to navigate between pages, sections, or external resources. It is typically underlined and styled to indicate its clickable nature. Links can be standalone or embedded within text, and they may include icons to reinforce their purpose. They are essential for navigation and content referencing in web and application interfaces.
3
+ *
4
+ * @slot default - Use this slot to insert the textual content of the Link.
5
+ * @slot icon - Use this slot to insert an icon for the Link.
6
+ */
2
7
  interface Props {
3
- href: string;
4
- target: string;
5
- appearance?: LinkStyle;
6
- disabled?: boolean;
7
- size?: LinkSize;
8
+ /**
9
+ * Position of the icon relative to the text.
10
+ */
11
+ iconposition?: 'left' | 'right';
12
+ /**
13
+ * Allows to define the link appearance.
14
+ */
15
+ appearance?: 'secondary' | 'accent' | 'inverse' | 'standard';
16
+ /**
17
+ * Allows to define the link size.
18
+ */
19
+ size?: 's' | 'm';
20
+ /**
21
+ * URL for the link.
22
+ */
23
+ href?: string;
24
+ /**
25
+ * Where to open the link.
26
+ */
27
+ target?: '_self' | '_blank' | '_parent' | '_top';
28
+ /**
29
+ * Specify wether the link is inline.
30
+ */
8
31
  inline?: boolean;
9
- iconposition?: LinkIconPosition | undefined;
10
- [key: string]: any;
11
32
  }
12
33
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
13
34
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -1 +1 @@
1
- {"version":3,"file":"Link.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/link/Link.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAExE,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AA8DH,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,IAAI;;;;;;;;UAAqF,CAAC;AAC9E,KAAK,IAAI,GAAG,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;AACxC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Link.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/link/Link.svelte.ts"],"names":[],"mappings":"AAGE;;;;;GAKG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC;;OAEG;IACH,UAAU,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IAC7D;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACjD;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA0CH,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,IAAI;;;;;;;;UAAqF,CAAC;AAC9E,KAAK,IAAI,GAAG,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;AACxC,eAAe,IAAI,CAAC"}
@@ -0,0 +1,23 @@
1
+ # `m-link`
2
+
3
+ A link is an interactive text element used to navigate between pages, sections, or external resources. It is typically underlined and styled to indicate its clickable nature. Links can be standalone or embedded within text, and they may include icons to reinforce their purpose. They are essential for navigation and content referencing in web and application interfaces.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `iconposition` | Position of the icon relative to the text. | `'left'` `'right'` | `left` |
10
+ | `appearance` | Allows to define the link appearance. | `'secondary'` `'accent'` `'inverse'` `'standard'` | `standard` |
11
+ | `size` | Allows to define the link size. | `'s'` `'m'` | `s` |
12
+ | `href` | URL for the link. | `string` | |
13
+ | `target` | Where to open the link. | `'_self'` `'_blank'` `'_parent'` `'_top'` | |
14
+ | `inline` | Specify wether the link is inline. | `boolean` | |
15
+
16
+ ## Slots
17
+
18
+ | Name | Description |
19
+ |------|-------------|
20
+ | `icon` | Use this slot to insert an icon for the Link. |
21
+ | `default` | Use this slot to insert the textual content of the Link. |
22
+ | `icon` | Use this slot to insert an icon for the Link. |
23
+
@@ -1,13 +1,10 @@
1
- import{c as C,p as B,a as j,b as h,f as u,s as D,d as n,t as _,u as L,e as R,h as p,i as E,j as k,r as i,g as S}from"../../custom-element.js";import{i as V}from"../../if.js";import{s as f}from"../../attributes.js";var q=u('<span class="mc-loader__text svelte-ekl442"> </span>'),A=u('<div><span class="mc-loader__spinner svelte-ekl442"><svg class="mc-loader__icon svelte-ekl442" xmlns="http://www.w3.org/2000/svg"><circle class="mc-loader__path svelte-ekl442" cx="50%" cy="50%"></circle></svg></span> <!></div>');const F={hash:"svelte-ekl442",code:`/**
1
+ import{c as z,p as C,a as B,b as d,f as _,s as L,d as l,t as g,e as R,g as D,i as h,j as E,k as m,r as o,h as S}from"../../custom-element.js";import{i as V}from"../../if.js";import{s as p}from"../../attributes.js";var q=_('<span class="mc-loader__text svelte-g7kvnj"> </span>'),A=_('<div><span class="mc-loader__spinner svelte-g7kvnj"><svg class="mc-loader__icon svelte-g7kvnj" xmlns="http://www.w3.org/2000/svg"><circle class="mc-loader__path svelte-g7kvnj" cx="50%" cy="50%"></circle></svg></span> <!></div>');const F={hash:"svelte-g7kvnj",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */
4
- /**
5
- * Do not edit directly, this file was auto-generated.
6
- */.mc-loader.svelte-ekl442 {color:#464e63;align-items:center;display:inline-flex;flex-direction:column;}.mc-loader.svelte-ekl442 .mc-loader__spinner:where(.svelte-ekl442) {height:2rem;width:2rem;}.mc-loader.svelte-ekl442 .mc-loader__path:where(.svelte-ekl442) {stroke-width:4;}.mc-loader.svelte-ekl442 .mc-loader__path:where(.svelte-ekl442) {stroke:currentColor;}.mc-loader__spinner.svelte-ekl442:not(:only-child) {margin-bottom:1rem;}.mc-loader__icon.svelte-ekl442 {
7
- animation: svelte-ekl442-rotate-loader 2s linear infinite;transform-origin:center;}.mc-loader__path.svelte-ekl442 {fill:none;stroke-dasharray:1, 200;stroke-dashoffset:0;stroke-linecap:round;
8
- animation: svelte-ekl442-animate-dash-loader 2s ease-in-out infinite;}.mc-loader__text.svelte-ekl442 {font-size:1rem;color:currentcolor;}.mc-loader.svelte-ekl442:not(.mc-loader--text-visible) .mc-loader__text:where(.svelte-ekl442) {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}.mc-loader--xs.svelte-ekl442 .mc-loader__spinner:where(.svelte-ekl442) {height:1.25rem;width:1.25rem;}.mc-loader--xs.svelte-ekl442 .mc-loader__path:where(.svelte-ekl442) {stroke-width:2;}.mc-loader--s.svelte-ekl442 .mc-loader__spinner:where(.svelte-ekl442) {height:1.5rem;width:1.5rem;}.mc-loader--s.svelte-ekl442 .mc-loader__path:where(.svelte-ekl442) {stroke-width:4;}.mc-loader--l.svelte-ekl442 .mc-loader__spinner:where(.svelte-ekl442) {height:4rem;width:4rem;}.mc-loader--l.svelte-ekl442 .mc-loader__path:where(.svelte-ekl442) {stroke-width:8;}.mc-loader--accent.svelte-ekl442 {color:#117f03;}.mc-loader--accent.svelte-ekl442 .mc-loader__path:where(.svelte-ekl442) {stroke:currentColor;}.mc-loader--inverse.svelte-ekl442 {color:#ffffff;}.mc-loader--inverse.svelte-ekl442 .mc-loader__path:where(.svelte-ekl442) {stroke:currentColor;}
3
+ */.mc-loader.svelte-g7kvnj .mc-loader__spinner:where(.svelte-g7kvnj) {height:2rem;width:2rem;}.mc-loader.svelte-g7kvnj .mc-loader__path:where(.svelte-g7kvnj) {stroke-width:4;}.mc-loader.svelte-g7kvnj {color:var(--loader-color-standard, #464e63);}.mc-loader.svelte-g7kvnj .mc-loader__path:where(.svelte-g7kvnj) {stroke:currentColor;}.mc-loader.svelte-g7kvnj {align-items:center;display:inline-flex;flex-direction:column;}.mc-loader__spinner.svelte-g7kvnj:not(:only-child) {margin-bottom:1rem;}.mc-loader__icon.svelte-g7kvnj {
4
+ animation: svelte-g7kvnj-rotate-loader 2s linear infinite;transform-origin:center;}.mc-loader__path.svelte-g7kvnj {fill:none;stroke-dasharray:1, 200;stroke-dashoffset:0;stroke-linecap:round;
5
+ animation: svelte-g7kvnj-animate-dash-loader 2s ease-in-out infinite;}.mc-loader__text.svelte-g7kvnj {font-size:var(--font-size-150, 1rem);color:currentcolor;}.mc-loader.svelte-g7kvnj:not(.mc-loader--text-visible) .mc-loader__text:where(.svelte-g7kvnj) {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}.mc-loader--xs.svelte-g7kvnj .mc-loader__spinner:where(.svelte-g7kvnj) {height:1.25rem;width:1.25rem;}.mc-loader--xs.svelte-g7kvnj .mc-loader__path:where(.svelte-g7kvnj) {stroke-width:2;}.mc-loader--s.svelte-g7kvnj .mc-loader__spinner:where(.svelte-g7kvnj) {height:1.5rem;width:1.5rem;}.mc-loader--s.svelte-g7kvnj .mc-loader__path:where(.svelte-g7kvnj) {stroke-width:4;}.mc-loader--l.svelte-g7kvnj .mc-loader__spinner:where(.svelte-g7kvnj) {height:4rem;width:4rem;}.mc-loader--l.svelte-g7kvnj .mc-loader__path:where(.svelte-g7kvnj) {stroke-width:8;}.mc-loader--accent.svelte-g7kvnj {color:var(--loader-color-accent, #117f03);}.mc-loader--accent.svelte-g7kvnj .mc-loader__path:where(.svelte-g7kvnj) {stroke:currentColor;}.mc-loader--inverse.svelte-g7kvnj {color:var(--loader-color-inverse, #ffffff);}.mc-loader--inverse.svelte-g7kvnj .mc-loader__path:where(.svelte-g7kvnj) {stroke:currentColor;}
9
6
 
10
- @keyframes svelte-ekl442-rotate-loader {
7
+ @keyframes svelte-g7kvnj-rotate-loader {
11
8
  0% {
12
9
  transform: rotate(0deg);
13
10
  }
@@ -15,7 +12,7 @@ import{c as C,p as B,a as j,b as h,f as u,s as D,d as n,t as _,u as L,e as R,h a
15
12
  transform: rotate(270deg);
16
13
  }
17
14
  }
18
- @keyframes svelte-ekl442-animate-dash-loader {
15
+ @keyframes svelte-g7kvnj-animate-dash-loader {
19
16
  0% {
20
17
  stroke-dasharray: 1, 200;
21
18
  stroke-dashoffset: 0;
@@ -28,5 +25,5 @@ import{c as C,p as B,a as j,b as h,f as u,s as D,d as n,t as _,u as L,e as R,h a
28
25
  stroke-dasharray: 89, 200;
29
26
  stroke-dashoffset: -124px;
30
27
  }
31
- }`};function G(v,s){B(s,!0),j(v,F);let l=h(s,"size",7),c=h(s,"theme",7),a=h(s,"text",7);function w(e,t){const r=["mc-loader"];return e&&r.push(`mc-loader--${e}`),t&&r.push(`mc-loader--${t}`),r.join(" ")}function x(e){let t;switch(e){case"s":t="0 0 24 24";break;case"l":t="0 0 64 64";break;default:t="0 0 32 32"}return t}function g(e){let t;switch(e){case"s":t=6;break;case"l":t=19;break;default:t=9}return t}var o=A(),d=n(o),m=n(d),y=n(m);i(m),i(d);var b=D(d,2);{var z=e=>{var t=q(),r=n(t,!0);i(t),_(()=>S(r,a())),p(e,t)};V(b,e=>{a()&&e(z)})}return i(o),_((e,t,r)=>{R(o,1,e,"svelte-ekl442"),f(m,"viewBox",t),f(y,"r",r)},[()=>L(w(l(),c())),()=>x(l()),()=>g(l())]),p(v,o),E({get size(){return l()},set size(e){l(e),k()},get theme(){return c()},set theme(e){c(e),k()},get text(){return a()},set text(e){a(e),k()}})}customElements.define("m-loader",C(G,{size:{},theme:{},text:{}},[],[],!0));export{G as L};
28
+ }`};function G(k,s){C(s,!0),B(k,F);let t=d(s,"size",7,"m"),v=d(s,"appearance",7,"standard"),r=d(s,"text",7);const f=()=>{let e;switch(t()){case"s":e="0 0 24 24";break;case"l":e="0 0 64 64";break;default:e="0 0 32 32"}return e},j=()=>{let e;switch(t()){case"s":e=6;break;case"l":e=19;break;default:e=9}return e};var w={get size(){return t()},set size(e="m"){t(e),m()},get appearance(){return v()},set appearance(e="standard"){v(e),m()},get text(){return r()},set text(e){r(e),m()}},n=A(),c=l(n),i=l(c),x=l(i);o(i),o(c);var u=L(c,2);{var b=e=>{var a=q(),y=l(a,!0);o(a),g(()=>S(y,r())),h(e,a)};V(u,e=>{r()&&e(b)})}return o(n),g((e,a)=>{R(n,1,D(["mc-loader",`mc-loader--${t()}`,`mc-loader--${v()}`,r()&&"mc-loader--text-visible"]),"svelte-g7kvnj"),p(i,"viewBox",e),p(x,"r",a)},[f,j]),h(k,n),E(w)}customElements.define("m-loader",z(G,{size:{},appearance:{},text:{}},[],[],!0));export{G as L};
32
29
  //# sourceMappingURL=Loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.js","sources":["../../../src/components/loader/Loader.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-loader' }} />\n\n<script lang=\"ts\">\n import type { LoaderSize, LoaderTheme } from './loader.types';\n\n interface Props {\n size: LoaderSize;\n theme: LoaderTheme;\n text?: string;\n }\n\n let { size, theme, text }: Props = $props();\n\n function setClasses(size: LoaderSize, theme: LoaderTheme) {\n const classes = ['mc-loader'];\n\n if (size) {\n classes.push(`mc-loader--${size}`);\n }\n\n if (theme) {\n classes.push(`mc-loader--${theme}`);\n }\n\n return classes.join(' ');\n }\n\n function setViewBox(size: LoaderSize) {\n let viewBox: string;\n\n switch (size) {\n case 's':\n viewBox = '0 0 24 24';\n break;\n case 'l':\n viewBox = '0 0 64 64';\n break;\n default:\n viewBox = '0 0 32 32';\n }\n\n return viewBox;\n }\n\n function setCircleRadius(size: LoaderSize) {\n let circleRadius: number;\n\n switch (size) {\n case 's':\n circleRadius = 6;\n break;\n case 'l':\n circleRadius = 19;\n break;\n default:\n circleRadius = 9;\n }\n\n return circleRadius;\n }\n</script>\n\n<div class={setClasses(size, theme)}>\n <span class=\"mc-loader__spinner\">\n <svg\n class=\"mc-loader__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={setViewBox(size)}\n >\n <circle\n class=\"mc-loader__path\"\n cx=\"50%\"\n cy=\"50%\"\n r={setCircleRadius(size)}\n />\n </svg>\n </span>\n\n {#if text}\n <span class=\"mc-loader__text\">\n {text}\n </span>\n {/if}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/loader';\n</style>\n"],"names":["size","$.prop","$$props","theme","text","setClasses","classes","setViewBox","viewBox","setCircleRadius","circleRadius","$$render","consequent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAA,oBAWQA,EAAIC,EAAAC,EAAA,OAAA,CAAA,EAAEC,EAAKF,EAAAC,EAAA,QAAA,CAAA,EAAEE,EAAIH,EAAAC,EAAA,OAAA,CAAA,EAEd,SAAAG,EAAWL,EAAkBG,EAAoB,CAClD,MAAAG,GAAW,WAAW,EAExB,OAAAN,GACFM,EAAQ,KAAI,cAAeN,CAAI,EAAA,EAG7BG,GACFG,EAAQ,KAAI,cAAeH,CAAK,EAAA,EAG3BG,EAAQ,KAAK,GAAG,CACzB,UAESC,EAAWP,EAAkB,KAChCQ,SAEIR,EAAI,KACL,IACHQ,EAAU,sBAEP,IACHA,EAAU,0BAGVA,EAAU,mBAGPA,CACT,UAESC,EAAgBT,EAAkB,KACrCU,SAEIV,EAAI,KACL,IACHU,EAAe,YAEZ,IACHA,EAAe,iBAGfA,EAAe,SAGZA,CACT,qGAqBKN,EAAI,CAAA,CAAA,kBAFJA,EAAI,GAAAO,EAAAC,CAAA,yFAhBCP,EAAWL,EAAI,EAAEG,EAAK,CAAA,CAAA,EAKnB,IAAAI,EAAWP,GAAI,EAMnB,IAAAS,EAAgBT,EAAI,CAAA,wJAb/B"}
1
+ {"version":3,"file":"Loader.js","sources":["../../../src/components/loader/Loader.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-loader' }} />\n\n<script lang=\"ts\">\n /**\n * A loader is a visual indicator used to inform users that a process is in progress, typically during data fetching, page loading, or background operations. It provides feedback that the system is working, helping to manage user expectations and reduce perceived wait time.\n */\n interface Props {\n /**\n * Specifies the visual appearance of the loader.\n */\n appearance?: 'standard' | 'accent' | 'inverse';\n\n /**\n * Defines the size of the loader.\n */\n size?: 's' | 'm' | 'l';\n\n /**\n * Text to display alongside the loader when using the loader inside an `Overlay`.\n */\n text?: string;\n }\n\n let { size = 'm', appearance = 'standard', text }: Props = $props();\n\n const setViewBox = () => {\n let viewBox: string;\n\n switch (size) {\n case 's':\n viewBox = '0 0 24 24';\n break;\n case 'l':\n viewBox = '0 0 64 64';\n break;\n default:\n viewBox = '0 0 32 32';\n }\n\n return viewBox;\n };\n\n const setCircleRadius = () => {\n let circleRadius: number;\n\n switch (size) {\n case 's':\n circleRadius = 6;\n break;\n case 'l':\n circleRadius = 19;\n break;\n default:\n circleRadius = 9;\n }\n\n return circleRadius;\n };\n</script>\n\n<div\n class={[\n 'mc-loader',\n `mc-loader--${size}`,\n `mc-loader--${appearance}`,\n text && 'mc-loader--text-visible',\n ]}\n>\n <span class=\"mc-loader__spinner\">\n <svg\n class=\"mc-loader__icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={setViewBox()}\n >\n <circle class=\"mc-loader__path\" cx=\"50%\" cy=\"50%\" r={setCircleRadius()} />\n </svg>\n </span>\n\n {#if text}\n <span class=\"mc-loader__text\">\n {text}\n </span>\n {/if}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/loader';\n</style>\n"],"names":["size","appearance","text","$.prop","$$props","setViewBox","viewBox","setCircleRadius","circleRadius","$$render","consequent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAA,gBAuBQ,IAAAA,eAAO,GAAG,EAAEC,qBAAa,UAAU,EAAEC,EAAIC,EAAAC,EAAA,OAAA,CAAA,EAEzC,MAAAC,EAAU,IAAS,KACnBC,SAEIN,EAAI,EAAA,KACL,IACHM,EAAU,sBAEP,IACHA,EAAU,0BAGVA,EAAU,mBAGPA,CACT,EAEMC,EAAe,IAAS,KACxBC,SAEIR,EAAI,EAAA,KACL,IACHQ,EAAe,YAEZ,IACHA,EAAe,iBAGfA,EAAe,SAGZA,CACT,2CAlCa,IAAG,yDAAe,WAAU,yJAyDpCN,EAAI,CAAA,CAAA,kBAFJA,EAAI,GAAAO,EAAAC,CAAA,mCAhBP,0BACcV,EAAI,CAAA,iBACJC,EAAU,CAAA,GACxBC,KAAQ,0EAOG,CAAAG,EAE4CE,CAAe,cAhB1E"}
@@ -0,0 +1,54 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render } from '@testing-library/svelte';
3
+ import Loader from './Loader.svelte';
4
+ describe('m-loader component', () => {
5
+ it('renders with default props', () => {
6
+ const { container } = render(Loader);
7
+ const loader = container.querySelector('.mc-loader');
8
+ expect(loader).toBeTruthy();
9
+ expect(loader?.classList).toContain('mc-loader--m');
10
+ expect(loader?.classList).toContain('mc-loader--standard');
11
+ expect(loader?.classList).not.toContain('mc-loader--text-visible');
12
+ const svg = container.querySelector('svg.mc-loader__icon');
13
+ expect(svg).toBeTruthy();
14
+ expect(svg?.getAttribute('viewBox')).toBe('0 0 32 32');
15
+ const circle = container.querySelector('circle.mc-loader__path');
16
+ expect(circle).toBeTruthy();
17
+ expect(circle?.getAttribute('r')).toBe('9');
18
+ const textSpan = container.querySelector('.mc-loader__text');
19
+ expect(textSpan).toBeNull();
20
+ });
21
+ it('renders with size "s" and appearance "accent"', () => {
22
+ const { container } = render(Loader, {
23
+ props: { size: 's', appearance: 'accent' },
24
+ });
25
+ const loader = container.querySelector('.mc-loader');
26
+ expect(loader?.classList).toContain('mc-loader--s');
27
+ expect(loader?.classList).toContain('mc-loader--accent');
28
+ const svg = container.querySelector('svg.mc-loader__icon');
29
+ expect(svg?.getAttribute('viewBox')).toBe('0 0 24 24');
30
+ const circle = container.querySelector('circle.mc-loader__path');
31
+ expect(circle?.getAttribute('r')).toBe('6');
32
+ });
33
+ it('renders with size "l" and appearance "inverse"', () => {
34
+ const { container } = render(Loader, {
35
+ props: { size: 'l', appearance: 'inverse' },
36
+ });
37
+ const loader = container.querySelector('.mc-loader');
38
+ expect(loader?.classList).toContain('mc-loader--l');
39
+ expect(loader?.classList).toContain('mc-loader--inverse');
40
+ const svg = container.querySelector('svg.mc-loader__icon');
41
+ expect(svg?.getAttribute('viewBox')).toBe('0 0 64 64');
42
+ const circle = container.querySelector('circle.mc-loader__path');
43
+ expect(circle?.getAttribute('r')).toBe('19');
44
+ });
45
+ it('renders with text and applies text-visible class', () => {
46
+ const text = 'Loading...';
47
+ const { container, getByText } = render(Loader, { props: { text } });
48
+ const loader = container.querySelector('.mc-loader');
49
+ expect(loader?.classList).toContain('mc-loader--text-visible');
50
+ const textSpan = getByText(text);
51
+ expect(textSpan).toBeTruthy();
52
+ expect(textSpan.classList.contains('mc-loader__text')).toBe(true);
53
+ });
54
+ });