@mozaic-ds/web-components 1.0.0 → 1.2.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 (326) hide show
  1. package/README.md +28 -106
  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 +6 -5
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +6 -5
  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.stories.d.ts.map +1 -1
  14. package/dist/components/avatar/Avatar.stories.js +1 -3
  15. package/dist/components/avatar/Avatar.svelte +7 -7
  16. package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -1
  17. package/dist/components/breadcrumb/Breadcrumb.js +2 -2
  18. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  19. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  20. package/dist/components/breadcrumb/Breadcrumb.stories.js +1 -4
  21. package/dist/components/breadcrumb/Breadcrumb.svelte +2 -5
  22. package/dist/components/button/Button.js +3 -3
  23. package/dist/components/button/Button.js.map +1 -1
  24. package/dist/components/button/Button.svelte +3 -3
  25. package/dist/components/callout/Callout.js +2 -5
  26. package/dist/components/callout/Callout.js.map +1 -1
  27. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  28. package/dist/components/callout/Callout.svelte +9 -16
  29. package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
  30. package/dist/components/checkbox/Checkbox.js +2 -2
  31. package/dist/components/checkbox/Checkbox.spec.js +1 -1
  32. package/dist/components/checkbox/Checkbox.svelte +2 -2
  33. package/dist/components/checkboxgroup/CheckboxGroup.js +3 -3
  34. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  35. package/dist/components/checkboxgroup/CheckboxGroup.spec.js +1 -3
  36. package/dist/components/checkboxgroup/CheckboxGroup.svelte +4 -10
  37. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
  38. package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
  39. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  40. package/dist/components/circularprogressbar/CircularProgressbar.stories.js +2 -2
  41. package/dist/components/circularprogressbar/CircularProgressbar.svelte +4 -4
  42. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +1 -0
  43. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
  44. package/dist/components/container/Container.js +14 -0
  45. package/dist/components/container/Container.js.map +1 -0
  46. package/dist/components/container/Container.spec.js +26 -0
  47. package/dist/components/container/Container.stories.d.ts +7 -0
  48. package/dist/components/container/Container.stories.d.ts.map +1 -0
  49. package/dist/components/container/Container.stories.js +23 -0
  50. package/dist/components/container/Container.svelte +60 -0
  51. package/dist/components/container/Container.svelte.d.ts +39 -0
  52. package/dist/components/container/Container.svelte.d.ts.map +1 -0
  53. package/dist/components/container/README.md +16 -0
  54. package/dist/components/datepicker/Datepicker.js +3 -3
  55. package/dist/components/datepicker/Datepicker.js.map +1 -1
  56. package/dist/components/datepicker/Datepicker.svelte +13 -22
  57. package/dist/components/datepicker/Datepicker.svelte.d.ts +1 -1
  58. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  59. package/dist/components/datepicker/README.md +1 -1
  60. package/dist/components/divider/Divider.js +4 -0
  61. package/dist/components/divider/Divider.js.map +1 -0
  62. package/dist/components/divider/Divider.spec.js +50 -0
  63. package/dist/components/divider/Divider.stories.d.ts +9 -0
  64. package/dist/components/divider/Divider.stories.d.ts.map +1 -0
  65. package/dist/components/divider/Divider.stories.js +57 -0
  66. package/dist/components/divider/Divider.svelte +90 -0
  67. package/dist/components/divider/Divider.svelte.d.ts +47 -0
  68. package/dist/components/divider/Divider.svelte.d.ts.map +1 -0
  69. package/dist/components/divider/README.md +18 -0
  70. package/dist/components/drawer/Drawer.js +4 -4
  71. package/dist/components/drawer/Drawer.js.map +1 -1
  72. package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
  73. package/dist/components/drawer/Drawer.stories.js +1 -2
  74. package/dist/components/drawer/Drawer.svelte +20 -7
  75. package/dist/components/drawer/Drawer.svelte.d.ts +8 -0
  76. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  77. package/dist/components/drawer/README.md +2 -0
  78. package/dist/components/field/Field.js +2 -2
  79. package/dist/components/field/Field.js.map +1 -1
  80. package/dist/components/field/Field.spec.js +56 -9
  81. package/dist/components/field/Field.stories.d.ts +1 -0
  82. package/dist/components/field/Field.stories.d.ts.map +1 -1
  83. package/dist/components/field/Field.stories.js +15 -0
  84. package/dist/components/field/Field.svelte +12 -6
  85. package/dist/components/field/Field.svelte.d.ts +4 -0
  86. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  87. package/dist/components/field/README.md +1 -0
  88. package/dist/components/flag/Flag.js +2 -2
  89. package/dist/components/flag/Flag.js.map +1 -1
  90. package/dist/components/flag/Flag.stories.d.ts.map +1 -1
  91. package/dist/components/flag/Flag.stories.js +1 -4
  92. package/dist/components/flag/Flag.svelte +1 -1
  93. package/dist/components/iconbutton/IconButton.js +2 -2
  94. package/dist/components/iconbutton/IconButton.js.map +1 -1
  95. package/dist/components/iconbutton/IconButton.svelte +2 -2
  96. package/dist/components/kpiitem/KpiItem.js +5 -0
  97. package/dist/components/kpiitem/KpiItem.js.map +1 -0
  98. package/dist/components/kpiitem/KpiItem.spec.js +60 -0
  99. package/dist/components/kpiitem/KpiItem.stories.d.ts +8 -0
  100. package/dist/components/kpiitem/KpiItem.stories.d.ts.map +1 -0
  101. package/dist/components/kpiitem/KpiItem.stories.js +56 -0
  102. package/dist/components/kpiitem/KpiItem.svelte +231 -0
  103. package/dist/components/kpiitem/KpiItem.svelte.d.ts +34 -0
  104. package/dist/components/kpiitem/KpiItem.svelte.d.ts.map +1 -0
  105. package/dist/components/kpiitem/README.md +15 -0
  106. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
  107. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  108. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +3 -8
  109. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
  110. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
  111. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  112. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +3 -3
  113. package/dist/components/link/Link.js +1 -1
  114. package/dist/components/link/Link.js.map +1 -1
  115. package/dist/components/link/Link.svelte +1 -1
  116. package/dist/components/loader/Loader.js +1 -1
  117. package/dist/components/loader/Loader.js.map +1 -1
  118. package/dist/components/loader/Loader.spec.js +20 -1
  119. package/dist/components/loader/Loader.stories.js +1 -1
  120. package/dist/components/loader/Loader.svelte +8 -6
  121. package/dist/components/loader/Loader.svelte.d.ts +1 -1
  122. package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
  123. package/dist/components/loader/README.md +1 -1
  124. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +1 -1
  125. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +1 -1
  126. package/dist/components/modal/Modal.js +3 -3
  127. package/dist/components/modal/Modal.js.map +1 -1
  128. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  129. package/dist/components/modal/Modal.stories.js +2 -4
  130. package/dist/components/modal/Modal.svelte +4 -4
  131. package/dist/components/numberbadge/NumberBadge.js +1 -1
  132. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  133. package/dist/components/numberbadge/NumberBadge.svelte +2 -8
  134. package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
  135. package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
  136. package/dist/components/overlay/Overlay.stories.js +1 -4
  137. package/dist/components/pagination/Pagination.js +6 -6
  138. package/dist/components/pagination/Pagination.js.map +1 -1
  139. package/dist/components/pagination/Pagination.spec.js +2 -2
  140. package/dist/components/pagination/Pagination.svelte +10 -28
  141. package/dist/components/passwordinput/PasswordInput.js +3 -3
  142. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  143. package/dist/components/passwordinput/PasswordInput.spec.js +1 -1
  144. package/dist/components/passwordinput/PasswordInput.svelte +10 -14
  145. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +1 -1
  146. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  147. package/dist/components/passwordinput/README.md +1 -1
  148. package/dist/components/pincode/Pincode.js +2 -2
  149. package/dist/components/pincode/Pincode.js.map +1 -1
  150. package/dist/components/pincode/Pincode.svelte +9 -21
  151. package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
  152. package/dist/components/quantityselector/QuantitySelector.js +3 -3
  153. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  154. package/dist/components/quantityselector/QuantitySelector.stories.d.ts +0 -1
  155. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  156. package/dist/components/quantityselector/QuantitySelector.stories.js +0 -6
  157. package/dist/components/quantityselector/QuantitySelector.svelte +11 -19
  158. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  159. package/dist/components/radio/Radio.js +2 -2
  160. package/dist/components/radio/Radio.js.map +1 -1
  161. package/dist/components/radio/Radio.svelte +3 -10
  162. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  163. package/dist/components/radiogroup/RadioGroup.js +3 -3
  164. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  165. package/dist/components/radiogroup/RadioGroup.svelte +4 -10
  166. package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
  167. package/dist/components/segmentedcontrol/README.md +19 -0
  168. package/dist/components/segmentedcontrol/SegmentedControl.js +4 -0
  169. package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -0
  170. package/dist/components/segmentedcontrol/SegmentedControl.spec.js +52 -0
  171. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts +8 -0
  172. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -0
  173. package/dist/components/segmentedcontrol/SegmentedControl.stories.js +54 -0
  174. package/dist/components/segmentedcontrol/SegmentedControl.svelte +125 -0
  175. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts +32 -0
  176. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -0
  177. package/dist/components/select/README.md +1 -1
  178. package/dist/components/select/Select.js +3 -3
  179. package/dist/components/select/Select.js.map +1 -1
  180. package/dist/components/select/Select.svelte +7 -7
  181. package/dist/components/select/Select.svelte.d.ts +1 -1
  182. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  183. package/dist/components/statusbadge/StatusBadge.js +2 -2
  184. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  185. package/dist/components/statusbadge/StatusBadge.svelte +9 -9
  186. package/dist/components/statusdot/StatusDot.js +1 -1
  187. package/dist/components/statusdot/StatusDot.js.map +1 -1
  188. package/dist/components/statusdot/StatusDot.spec.js +1 -7
  189. package/dist/components/statusdot/StatusDot.svelte +3 -9
  190. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  191. package/dist/components/statusmessage/README.md +11 -0
  192. package/dist/components/statusmessage/StatusMessage.js +4 -0
  193. package/dist/components/statusmessage/StatusMessage.js.map +1 -0
  194. package/dist/components/statusmessage/StatusMessage.spec.js +47 -0
  195. package/dist/components/statusmessage/StatusMessage.stories.d.ts +11 -0
  196. package/dist/components/statusmessage/StatusMessage.stories.d.ts.map +1 -0
  197. package/dist/components/statusmessage/StatusMessage.stories.js +37 -0
  198. package/dist/components/statusmessage/StatusMessage.svelte +84 -0
  199. package/dist/components/statusmessage/StatusMessage.svelte.d.ts +17 -0
  200. package/dist/components/statusmessage/StatusMessage.svelte.d.ts.map +1 -0
  201. package/dist/components/statusnotification/StatusNotification.js +2 -6
  202. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  203. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  204. package/dist/components/statusnotification/StatusNotification.svelte +14 -23
  205. package/dist/components/steppercompact/README.md +13 -0
  206. package/dist/components/steppercompact/StepperCompact.js +4 -0
  207. package/dist/components/steppercompact/StepperCompact.js.map +1 -0
  208. package/dist/components/steppercompact/StepperCompact.spec.js +119 -0
  209. package/dist/components/steppercompact/StepperCompact.stories.d.ts +6 -0
  210. package/dist/components/steppercompact/StepperCompact.stories.d.ts.map +1 -0
  211. package/dist/components/steppercompact/StepperCompact.stories.js +28 -0
  212. package/dist/components/steppercompact/StepperCompact.svelte +123 -0
  213. package/dist/components/steppercompact/StepperCompact.svelte.d.ts +25 -0
  214. package/dist/components/steppercompact/StepperCompact.svelte.d.ts.map +1 -0
  215. package/dist/components/tab/Tab.js +2 -2
  216. package/dist/components/tab/Tab.js.map +1 -1
  217. package/dist/components/tab/Tab.svelte +2 -8
  218. package/dist/components/tab/Tab.svelte.d.ts.map +1 -1
  219. package/dist/components/tabs/Tabs.svelte +1 -1
  220. package/dist/components/tag/README.md +30 -0
  221. package/dist/components/tag/Tag.js +4 -0
  222. package/dist/components/tag/Tag.js.map +1 -0
  223. package/dist/components/tag/Tag.stories.d.ts +12 -0
  224. package/dist/components/tag/Tag.stories.d.ts.map +1 -0
  225. package/dist/components/tag/Tag.stories.js +70 -0
  226. package/dist/components/{tags/TagRemovable.svelte → tag/Tag.svelte} +107 -32
  227. package/dist/components/tag/Tag.svelte.d.ts +65 -0
  228. package/dist/components/tag/Tag.svelte.d.ts.map +1 -0
  229. package/dist/components/textarea/Textarea.js +2 -2
  230. package/dist/components/textarea/Textarea.js.map +1 -1
  231. package/dist/components/textarea/Textarea.svelte +6 -8
  232. package/dist/components/textinput/README.md +1 -1
  233. package/dist/components/textinput/Textinput.js +5 -5
  234. package/dist/components/textinput/Textinput.js.map +1 -1
  235. package/dist/components/textinput/Textinput.stories.d.ts +1 -1
  236. package/dist/components/textinput/Textinput.stories.js +1 -1
  237. package/dist/components/textinput/Textinput.svelte +10 -18
  238. package/dist/components/textinput/Textinput.svelte.d.ts +1 -1
  239. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  240. package/dist/components/toaster/README.md +1 -0
  241. package/dist/components/toaster/Toaster.js +3 -7
  242. package/dist/components/toaster/Toaster.js.map +1 -1
  243. package/dist/components/toaster/Toaster.svelte +20 -23
  244. package/dist/components/toaster/Toaster.svelte.d.ts +4 -0
  245. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  246. package/dist/components/toggle/Toggle.js +2 -2
  247. package/dist/components/toggle/Toggle.js.map +1 -1
  248. package/dist/components/toggle/Toggle.svelte +4 -18
  249. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  250. package/dist/components/togglegroup/ToggleGroup.js +2 -2
  251. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  252. package/dist/components/togglegroup/ToggleGroup.spec.js +1 -1
  253. package/dist/components/togglegroup/ToggleGroup.svelte +3 -3
  254. package/dist/components/tooltip/Tooltip.js +1 -1
  255. package/dist/components/tooltip/Tooltip.js.map +1 -1
  256. package/dist/components/tooltip/Tooltip.spec.js +1 -1
  257. package/dist/components/tooltip/Tooltip.svelte +3 -7
  258. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  259. package/dist/custom-element-forward-events.js +1 -1
  260. package/dist/custom-element-forward-events.js.map +1 -1
  261. package/dist/custom-element.js +3 -3
  262. package/dist/custom-element.js.map +1 -1
  263. package/dist/documentation/Introduction.mdx +13 -4
  264. package/dist/documentation/Svelte/Introduction.mdx +1 -1
  265. package/dist/documentation/Svelte/usingPresets.mdx +7 -9
  266. package/dist/documentation/WebComponents/Introduction.mdx +0 -1
  267. package/dist/documentation/WebComponents/usingIcons.mdx +2 -3
  268. package/dist/documentation/WebComponents/usingPresets.mdx +5 -7
  269. package/dist/each.js +1 -1
  270. package/dist/each.js.map +1 -1
  271. package/dist/if.js +1 -1
  272. package/dist/if.js.map +1 -1
  273. package/dist/input.js +1 -1
  274. package/dist/input.js.map +1 -1
  275. package/dist/legacy.js +1 -1
  276. package/dist/main.d.ts +8 -6
  277. package/dist/main.d.ts.map +1 -1
  278. package/dist/main.js +8 -6
  279. package/dist/slot.js +1 -1
  280. package/dist/slot.js.map +1 -1
  281. package/dist/svelte-component.js +2 -0
  282. package/dist/svelte-component.js.map +1 -0
  283. package/dist/this.js +1 -1
  284. package/dist/this.js.map +1 -1
  285. package/dist/utils/custom-element-forward-events.d.ts.map +1 -1
  286. package/package.json +34 -35
  287. package/dist/components/tags/README.md +0 -9
  288. package/dist/components/tags/Tag.js +0 -4
  289. package/dist/components/tags/Tag.js.map +0 -1
  290. package/dist/components/tags/Tag.svelte +0 -218
  291. package/dist/components/tags/Tag.svelte.d.ts +0 -9
  292. package/dist/components/tags/Tag.svelte.d.ts.map +0 -1
  293. package/dist/components/tags/TagContextualised.js +0 -4
  294. package/dist/components/tags/TagContextualised.js.map +0 -1
  295. package/dist/components/tags/TagContextualised.svelte +0 -239
  296. package/dist/components/tags/TagContextualised.svelte.d.ts +0 -11
  297. package/dist/components/tags/TagContextualised.svelte.d.ts.map +0 -1
  298. package/dist/components/tags/TagInteractive.js +0 -4
  299. package/dist/components/tags/TagInteractive.js.map +0 -1
  300. package/dist/components/tags/TagInteractive.svelte +0 -223
  301. package/dist/components/tags/TagInteractive.svelte.d.ts +0 -10
  302. package/dist/components/tags/TagInteractive.svelte.d.ts.map +0 -1
  303. package/dist/components/tags/TagRemovable.js +0 -4
  304. package/dist/components/tags/TagRemovable.js.map +0 -1
  305. package/dist/components/tags/TagRemovable.svelte.d.ts +0 -11
  306. package/dist/components/tags/TagRemovable.svelte.d.ts.map +0 -1
  307. package/dist/components/tags/TagSelectable.js +0 -4
  308. package/dist/components/tags/TagSelectable.js.map +0 -1
  309. package/dist/components/tags/TagSelectable.svelte +0 -247
  310. package/dist/components/tags/TagSelectable.svelte.d.ts +0 -13
  311. package/dist/components/tags/TagSelectable.svelte.d.ts.map +0 -1
  312. package/dist/components/tags/Tags.stories.d.ts +0 -5
  313. package/dist/components/tags/Tags.stories.d.ts.map +0 -1
  314. package/dist/components/tags/Tags.stories.js +0 -41
  315. package/dist/components/tags/TagsContextualised.stories.d.ts +0 -5
  316. package/dist/components/tags/TagsContextualised.stories.d.ts.map +0 -1
  317. package/dist/components/tags/TagsContextualised.stories.js +0 -57
  318. package/dist/components/tags/TagsInteractive.stories.d.ts +0 -5
  319. package/dist/components/tags/TagsInteractive.stories.d.ts.map +0 -1
  320. package/dist/components/tags/TagsInteractive.stories.js +0 -61
  321. package/dist/components/tags/TagsRemovable.stories.d.ts +0 -5
  322. package/dist/components/tags/TagsRemovable.stories.d.ts.map +0 -1
  323. package/dist/components/tags/TagsRemovable.stories.js +0 -62
  324. package/dist/components/tags/TagsSelectable.stories.d.ts +0 -5
  325. package/dist/components/tags/TagsSelectable.stories.d.ts.map +0 -1
  326. package/dist/components/tags/TagsSelectable.stories.js +0 -76
@@ -0,0 +1,231 @@
1
+ <svelte:options customElement={{ tag: 'm-kpi-item' }} />
2
+
3
+ <script lang="ts">
4
+ import type { Component } from 'svelte';
5
+ import ArrowBottomRight24 from '@mozaic-ds/icons-svelte/svelte/ArrowBottomRight24/ArrowBottomRight24.svelte';
6
+ import ArrowTopRight24 from '@mozaic-ds/icons-svelte/svelte/ArrowTopRight24/ArrowTopRight24.svelte';
7
+ import Less24 from '@mozaic-ds/icons-svelte/svelte/Less24/Less24.svelte';
8
+ /**
9
+ * A KPI Item is used to display Key Performance Indicators (KPIs) within an interface, providing a quick and clear visualization of essential data. It often includes contextual elements such as labels, trends, or status indicators to help users interpret the information at a glance. KPI Items are commonly used in dashboards, reports, and analytics tools to highlight critical metrics and facilitate data-driven decision-making.
10
+ */
11
+ interface Props {
12
+ /**
13
+ * The current value of the kpi item.
14
+ */
15
+ value: string;
16
+ /**
17
+ * Defines the evolution of the kpi.
18
+ */
19
+ trend?: 'increasing' | 'decreasing' | 'stable';
20
+ /**
21
+ * Label of the kpi item.
22
+ */
23
+ label?: string;
24
+ /**
25
+ * Allows to define the kpi item status.
26
+ */
27
+ status?: 'info' | 'warning' | 'error' | 'success' | 'neutral';
28
+ /**
29
+ * The evolution information defining the kpi.
30
+ */
31
+ information?: string;
32
+ /**
33
+ * Allows to define the kpi item size.
34
+ */
35
+ size?: 's' | 'm' | 'l';
36
+ }
37
+
38
+ let { value, trend, label, status = 'info', information, size = 's' }: Props = $props();
39
+
40
+ const isMedium = $derived(size === 'm');
41
+ const isLarge = $derived(size === 'l');
42
+
43
+ const iconMap: Record<NonNullable<Props['trend']>, Component> = {
44
+ increasing: ArrowTopRight24,
45
+ decreasing: ArrowBottomRight24,
46
+ stable: Less24,
47
+ };
48
+
49
+ const IconComponent = $derived(trend ? iconMap[trend] : undefined);
50
+
51
+ const rootClasses = $derived(`mc-kpi mc-kpi--${size} mc-kpi--${status}`);
52
+ </script>
53
+
54
+ <div class={rootClasses}>
55
+ {#if isMedium && label}
56
+ <span class="mc-kpi__label">
57
+ {label}
58
+ </span>
59
+ {/if}
60
+ <div class="mc-kpi__content">
61
+ <div class="mc-kpi__main">
62
+ {#if isLarge && label}
63
+ <span class="mc-kpi__label">
64
+ {label}
65
+ </span>
66
+ {/if}
67
+ <span class="mc-kpi__value">{value}</span>
68
+ </div>
69
+ {#if trend || information}
70
+ <div class="mc-kpi__aside">
71
+ {#if isLarge && information}
72
+ <span class="mc-kpi__detail">
73
+ {information}
74
+ </span>
75
+ {/if}
76
+
77
+ {#if trend}
78
+ <IconComponent className="mc-kpi__icon" color="black" />
79
+ {/if}
80
+ </div>
81
+ {/if}
82
+ </div>
83
+ </div>
84
+
85
+ <style>/**
86
+ * Do not edit directly, this file was auto-generated.
87
+ */
88
+ .mc-kpi,
89
+ .mc-kpi * {
90
+ box-sizing: border-box;
91
+ }
92
+ .mc-kpi {
93
+ display: inline-block;
94
+ }
95
+ .mc-kpi:not(.mc-kpi--s) {
96
+ min-width: 10rem;
97
+ }
98
+ .mc-kpi__label {
99
+ font-size: var(--font-body-s, 0.875rem);
100
+ font-weight: var(--font-weight-semi-bold, 600);
101
+ display: block;
102
+ }
103
+ .mc-kpi__content {
104
+ line-height: var(--line-height-s, 1.3);
105
+ display: flex;
106
+ }
107
+ .mc-kpi__main {
108
+ align-items: center;
109
+ display: flex;
110
+ justify-content: center;
111
+ }
112
+ .mc-kpi__value {
113
+ font-weight: var(--font-weight-semi-bold, 600);
114
+ font-size: var(--font-body-s, 0.875rem);
115
+ color: var(--color-kpi-value, var(--kpi-item-color-value-info, #0074aa));
116
+ }
117
+ .mc-kpi__aside {
118
+ align-items: center;
119
+ background-color: var(--kpi-item-color-trend-item-background, #ffffff);
120
+ color: var(--kpi-item-color-trend-item-text, #000000);
121
+ display: flex;
122
+ justify-content: center;
123
+ border-radius: var(--border-radius-xs, 0.125rem);
124
+ }
125
+ .mc-kpi__detail {
126
+ font-size: var(--font-body-s, 0.875rem);
127
+ }
128
+ .mc-kpi__icon {
129
+ display: block;
130
+ height: 1rem;
131
+ width: 1rem;
132
+ }
133
+ .mc-kpi--s .mc-kpi__content {
134
+ gap: 0.25rem;
135
+ }
136
+ .mc-kpi--s .mc-kpi__main {
137
+ background-color: var(--color-kpi-background, var(--kpi-item-color-background-info, #e1f3f9));
138
+ border: 1px solid var(--color-kpi-border, var(--kpi-item-color-border-info, #3facd7));
139
+ border-radius: 4px;
140
+ overflow: hidden;
141
+ padding: 0 0.25rem;
142
+ height: 1.5rem;
143
+ }
144
+ .mc-kpi--s .mc-kpi__aside {
145
+ background-color: transparent;
146
+ }
147
+ .mc-kpi--m .mc-kpi__label {
148
+ color: var(--color-kpi-label-medium, var(--kpi-item-color-label-info-medium, #000000));
149
+ margin-bottom: 0.25rem;
150
+ }
151
+ .mc-kpi--m .mc-kpi__content {
152
+ background-color: var(--color-kpi-background, var(--kpi-item-color-background-info, #e1f3f9));
153
+ border: 1px solid var(--color-kpi-border, var(--kpi-item-color-border-info, #3facd7));
154
+ border-radius: 4px;
155
+ overflow: hidden;
156
+ height: 3rem;
157
+ align-items: center;
158
+ padding: 0 0.25rem 0 0.5rem;
159
+ gap: 0.5rem;
160
+ }
161
+ .mc-kpi--m .mc-kpi__main {
162
+ flex-grow: 1;
163
+ height: 2.5rem;
164
+ }
165
+ .mc-kpi--m .mc-kpi__value {
166
+ font-size: var(--font-body-l, 1.125rem);
167
+ }
168
+ .mc-kpi--m .mc-kpi__aside {
169
+ padding: 0 0.5rem;
170
+ height: 2.5rem;
171
+ width: 2.5rem;
172
+ }
173
+ .mc-kpi--l {
174
+ background-color: var(--color-kpi-background, var(--kpi-item-color-background-info, #e1f3f9));
175
+ border: 1px solid var(--color-kpi-border, var(--kpi-item-color-border-info, #3facd7));
176
+ border-radius: 4px;
177
+ overflow: hidden;
178
+ padding: 0.5rem;
179
+ height: 9rem;
180
+ }
181
+ .mc-kpi--l .mc-kpi__content {
182
+ flex-direction: column;
183
+ width: 100%;
184
+ height: 100%;
185
+ justify-content: space-between;
186
+ }
187
+ .mc-kpi--l .mc-kpi__main {
188
+ flex-direction: column;
189
+ flex-grow: 1;
190
+ }
191
+ .mc-kpi--l .mc-kpi__label {
192
+ font-size: var(--font-body-m, 1rem);
193
+ color: var(--color-kpi-label-large, var(--kpi-item-color-label-info-large, #0074aa));
194
+ }
195
+ .mc-kpi--l .mc-kpi__value {
196
+ font-size: var(--font-heading-l, 2rem);
197
+ }
198
+ .mc-kpi--l .mc-kpi__aside {
199
+ gap: 0.5rem;
200
+ height: 2.5rem;
201
+ padding: 0 0.5rem;
202
+ font-size: var(--font-body-s, 0.875rem);
203
+ }
204
+ .mc-kpi--warning {
205
+ --color-kpi-background: var(--kpi-item-color-background-warning, #fdf1e8);
206
+ --color-kpi-border: var(--kpi-item-color-border-warning, #ef934a);
207
+ --color-kpi-label-medium: var(--kpi-item-color-label-warning-medium, #000000);
208
+ --color-kpi-label-large: var(--kpi-item-color-label-warning-large, #b64f00);
209
+ --color-kpi-value: var(--kpi-item-color-value-warning, #b64f00);
210
+ }
211
+ .mc-kpi--error {
212
+ --color-kpi-background: var(--kpi-item-color-background-error, #fdeaea);
213
+ --color-kpi-border: var(--kpi-item-color-border-error, #ef5f5c);
214
+ --color-kpi-label-medium: var(--kpi-item-color-label-error-medium, #000000);
215
+ --color-kpi-label-large: var(--kpi-item-color-label-error-large, #c61112);
216
+ --color-kpi-value: var(--kpi-item-color-value-error, #c61112);
217
+ }
218
+ .mc-kpi--success {
219
+ --color-kpi-background: var(--kpi-item-color-background-success, #ebf5de);
220
+ --color-kpi-border: var(--kpi-item-color-border-success, #78be20);
221
+ --color-kpi-label-medium: var(--kpi-item-color-label-success-medium, #000000);
222
+ --color-kpi-label-large: var(--kpi-item-color-label-success-large, #117f03);
223
+ --color-kpi-value: var(--kpi-item-color-value-success, #117f03);
224
+ }
225
+ .mc-kpi--neutral {
226
+ --color-kpi-background: var(--kpi-item-color-background-neutral, #f2f2f2);
227
+ --color-kpi-border: var(--kpi-item-color-border-neutral, #999999);
228
+ --color-kpi-label-medium: var(--kpi-item-color-label-neutral-medium, #000000);
229
+ --color-kpi-label-large: var(--kpi-item-color-label-neutral-large, #666666);
230
+ --color-kpi-value: var(--kpi-item-color-value-neutral, #666666);
231
+ }</style>
@@ -0,0 +1,34 @@
1
+ import type { Component } from 'svelte';
2
+ /**
3
+ * A KPI Item is used to display Key Performance Indicators (KPIs) within an interface, providing a quick and clear visualization of essential data. It often includes contextual elements such as labels, trends, or status indicators to help users interpret the information at a glance. KPI Items are commonly used in dashboards, reports, and analytics tools to highlight critical metrics and facilitate data-driven decision-making.
4
+ */
5
+ interface Props {
6
+ /**
7
+ * The current value of the kpi item.
8
+ */
9
+ value: string;
10
+ /**
11
+ * Defines the evolution of the kpi.
12
+ */
13
+ trend?: 'increasing' | 'decreasing' | 'stable';
14
+ /**
15
+ * Label of the kpi item.
16
+ */
17
+ label?: string;
18
+ /**
19
+ * Allows to define the kpi item status.
20
+ */
21
+ status?: 'info' | 'warning' | 'error' | 'success' | 'neutral';
22
+ /**
23
+ * The evolution information defining the kpi.
24
+ */
25
+ information?: string;
26
+ /**
27
+ * Allows to define the kpi item size.
28
+ */
29
+ size?: 's' | 'm' | 'l';
30
+ }
31
+ declare const KpiItem: Component<Props, {}, "">;
32
+ type KpiItem = ReturnType<typeof KpiItem>;
33
+ export default KpiItem;
34
+ //# sourceMappingURL=KpiItem.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KpiItem.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/kpiitem/KpiItem.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAKtC;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC/C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9D;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACxB;AA6DH,QAAA,MAAM,OAAO,0BAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
@@ -0,0 +1,15 @@
1
+ # `m-kpi-item`
2
+
3
+ A KPI Item is used to display Key Performance Indicators (KPIs) within an interface, providing a quick and clear visualization of essential data. It often includes contextual elements such as labels, trends, or status indicators to help users interpret the information at a glance. KPI Items are commonly used in dashboards, reports, and analytics tools to highlight critical metrics and facilitate data-driven decision-making.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `value*` | The current value of the kpi item. | `string` | |
10
+ | `trend` | Defines the evolution of the kpi. | `'increasing'` `'decreasing'` `'stable'` | |
11
+ | `label` | Label of the kpi item. | `string` | |
12
+ | `status` | Allows to define the kpi item status. | `'info'` `'warning'` `'error'` `'success'` `'neutral'` | `info` |
13
+ | `information` | The evolution information defining the kpi. | `string` | |
14
+ | `size` | Allows to define the kpi item size. | `'s'` `'m'` `'l'` | `s` |
15
+
@@ -1,4 +1,4 @@
1
- import{c as f,p as d,a as v,b as l,f as c,t as b,i as m,j as g,k as u,d as p,r as h,e as z,g as _}from"../../custom-element.js";import{a as k,s as j}from"../../attributes.js";var w=c('<div><div class="mc-linear-progressbar-buffer__indicator svelte-kfj12z" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div></div>');const x={hash:"svelte-kfj12z",code:`/**
1
+ import{c as d,p as f,a as v,b as l,f as c,t as b,i as m,j as g,k as u,d as p,r as h,e as z,g as _}from"../../custom-element.js";import{a as k,s as j}from"../../attributes.js";var w=c('<div><div class="mc-linear-progressbar-buffer__indicator svelte-kfj12z" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div></div>');const x={hash:"svelte-kfj12z",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */.mc-linear-progressbar-buffer.svelte-kfj12z {--progress-value: 40;background-color:var(--progressbar-color-background, #c9d0de);height:0.25rem;position:relative;min-width:6rem;border-radius:var(--radius-l, 1rem);}.mc-linear-progressbar-buffer__indicator.svelte-kfj12z {background-color:var(--progressbar-color-indicator, #464e63);height:100%;transition:width 0.4s ease;overflow:hidden;border-radius:var(--radius-l, 1rem);box-sizing:border-box;width:calc(var(--progress-value) * 1%);}.mc-linear-progressbar-buffer--s.svelte-kfj12z {height:0.125rem;}.mc-linear-progressbar-buffer--l.svelte-kfj12z {height:0.5rem;}`};function y(i,s){d(s,!0),v(i,x);let e=l(s,"value",7,0),a=l(s,"size",7,"m");var n={get value(){return e()},set value(t=0){e(t),u()},get size(){return a()},set size(t="m"){a(t),u()}},r=w(),o=p(r);return h(r),b(()=>{z(r,1,_(["mc-linear-progressbar-buffer",`mc-linear-progressbar-buffer--${a()}`]),"svelte-kfj12z"),k(o,`--progress-value: ${e()};`),j(o,"aria-valuenow",e())}),m(i,r),g(n)}customElements.define("m-linear-progressbar-buffer",f(y,{value:{},size:{}},[],[],!0));
3
+ */.mc-linear-progressbar-buffer.svelte-kfj12z {--progress-value: 40;background-color:var(--progressbar-color-background, #c9d0de);height:0.25rem;position:relative;min-width:6rem;border-radius:var(--border-radius-l, 1rem);}.mc-linear-progressbar-buffer__indicator.svelte-kfj12z {background-color:var(--progressbar-color-indicator, #464e63);height:100%;transition:width 0.4s ease;overflow:hidden;border-radius:var(--border-radius-l, 1rem);box-sizing:border-box;width:calc(var(--progress-value) * 1%);}.mc-linear-progressbar-buffer--s.svelte-kfj12z {height:0.125rem;}.mc-linear-progressbar-buffer--l.svelte-kfj12z {height:0.5rem;}`};function y(i,s){f(s,!0),v(i,x);let e=l(s,"value",7,0),a=l(s,"size",7,"m");var n={get value(){return e()},set value(t=0){e(t),u()},get size(){return a()},set size(t="m"){a(t),u()}},r=w(),o=p(r);return h(r),b(()=>{z(r,1,_(["mc-linear-progressbar-buffer",`mc-linear-progressbar-buffer--${a()}`]),"svelte-kfj12z"),k(o,`--progress-value: ${e()};`),j(o,"aria-valuenow",e())}),m(i,r),g(n)}customElements.define("m-linear-progressbar-buffer",d(y,{value:{},size:{}},[],[],!0));
4
4
  //# sourceMappingURL=LinearProgressbarBuffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinearProgressbarBuffer.js","sources":["../../../src/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-linear-progressbar-buffer' }} />\n\n<script lang=\"ts\">\n /**\n * A linear progress bar (Buffer) visually represents the progress of a task along a horizontal track, often indicating both current progress and a secondary buffered state. This type of progress bar is commonly used for loading processes, file uploads, or streaming indicators, where part of the task is completed while another portion is preloaded or buffered. It provides users with real-time feedback on task advancement.\n */\n interface Props {\n /**\n * Allows to define the progress bar size.\n */\n size?: 's' | 'm' | 'l';\n /**\n * The current value of the progress bar.\n */\n value?: number;\n }\n\n let { value = 0, size = 'm' }: Props = $props();\n</script>\n\n<div\n class={[\n 'mc-linear-progressbar-buffer',\n `mc-linear-progressbar-buffer--${size}`,\n ]}\n>\n <div\n class=\"mc-linear-progressbar-buffer__indicator\"\n role=\"progressbar\"\n style={`--progress-value: ${value};`}\n aria-valuenow={value}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/linear-progressbar-buffer';\n</style>\n"],"names":["value","size"],"mappings":";;wnBAAA,gBAiBQ,IAAAA,gBAAQ,CAAC,EAAEC,eAAO,GAAG,6CAAb,EAAC,6CAAS,IAAG,qDAKzB,gEACiCA,GAAI,+CAMTD,EAAK,CAAA,GAAA,sBAClBA,GAAK,eAZxB"}
1
+ {"version":3,"file":"LinearProgressbarBuffer.js","sources":["../../../src/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-linear-progressbar-buffer' }} />\n\n<script lang=\"ts\">\n /**\n * A linear progress bar (Buffer) visually represents the progress of a task along a horizontal track, often indicating both current progress and a secondary buffered state. This type of progress bar is commonly used for loading processes, file uploads, or streaming indicators, where part of the task is completed while another portion is preloaded or buffered. It provides users with real-time feedback on task advancement.\n */\n interface Props {\n /**\n * Allows to define the progress bar size.\n */\n size?: 's' | 'm' | 'l';\n /**\n * The current value of the progress bar.\n */\n value?: number;\n }\n\n let { value = 0, size = 'm' }: Props = $props();\n</script>\n\n<div class={['mc-linear-progressbar-buffer', `mc-linear-progressbar-buffer--${size}`]}>\n <div\n class=\"mc-linear-progressbar-buffer__indicator\"\n role=\"progressbar\"\n style={`--progress-value: ${value};`}\n aria-valuenow={value}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/linear-progressbar-buffer';\n</style>\n"],"names":["value","size"],"mappings":";;soBAAA,gBAiBQ,IAAAA,gBAAQ,CAAC,EAAEC,eAAO,GAAG,6CAAb,EAAC,6CAAS,IAAG,qDAGhB,gEAAiEA,GAAI,+CAIlDD,EAAK,CAAA,GAAA,sBAClBA,GAAK,eAPxB"}
@@ -18,12 +18,7 @@
18
18
  let { value = 0, size = 'm' }: Props = $props();
19
19
  </script>
20
20
 
21
- <div
22
- class={[
23
- 'mc-linear-progressbar-buffer',
24
- `mc-linear-progressbar-buffer--${size}`,
25
- ]}
26
- >
21
+ <div class={['mc-linear-progressbar-buffer', `mc-linear-progressbar-buffer--${size}`]}>
27
22
  <div
28
23
  class="mc-linear-progressbar-buffer__indicator"
29
24
  role="progressbar"
@@ -43,14 +38,14 @@
43
38
  height: 0.25rem;
44
39
  position: relative;
45
40
  min-width: 6rem;
46
- border-radius: var(--radius-l, 1rem);
41
+ border-radius: var(--border-radius-l, 1rem);
47
42
  }
48
43
  .mc-linear-progressbar-buffer__indicator {
49
44
  background-color: var(--progressbar-color-indicator, #464e63);
50
45
  height: 100%;
51
46
  transition: width 0.4s ease;
52
47
  overflow: hidden;
53
- border-radius: var(--radius-l, 1rem);
48
+ border-radius: var(--border-radius-l, 1rem);
54
49
  box-sizing: border-box;
55
50
  width: calc(var(--progress-value) * 1%);
56
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LinearProgressbarBuffer.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.ts"],"names":[],"mappings":"AAGE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoBH,QAAA,MAAM,uBAAuB,2CAAwC,CAAC;AACtE,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1E,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"LinearProgressbarBuffer.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.ts"],"names":[],"mappings":"AAGE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAiBH,QAAA,MAAM,uBAAuB,2CAAwC,CAAC;AACtE,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC1E,eAAe,uBAAuB,CAAC"}
@@ -1,4 +1,4 @@
1
- import{c as d,p as g,a as b,b as m,f as u,t as f,i as h,j as _,k,d as a,N as x,r as t,h as w}from"../../custom-element.js";import{a as y,s as z}from"../../attributes.js";var j=u('<div class="mc-linear-progressbar-percentage svelte-kh7ttv"><div class="mc-linear-progressbar-percentage__indicator svelte-kh7ttv" role="progressbar" aria-valuemin="0" aria-valuemax="100"><div class="mc-linear-progressbar-percentage__label svelte-kh7ttv"><p class="mc-linear-progressbar-percentage__value svelte-kh7ttv"> <span class="mc-linear-progressbar-percentage__unit svelte-kh7ttv">%</span></p></div></div></div>');const L={hash:"svelte-kh7ttv",code:`/**
1
+ import{c as p,p as g,a as b,b as m,f as u,t as f,i as h,j as _,k,d as a,F as x,r as t,h as w}from"../../custom-element.js";import{a as y,s as z}from"../../attributes.js";var j=u('<div class="mc-linear-progressbar-percentage svelte-kh7ttv"><div class="mc-linear-progressbar-percentage__indicator svelte-kh7ttv" role="progressbar" aria-valuemin="0" aria-valuemax="100"><div class="mc-linear-progressbar-percentage__label svelte-kh7ttv"><p class="mc-linear-progressbar-percentage__value svelte-kh7ttv"> <span class="mc-linear-progressbar-percentage__unit svelte-kh7ttv">%</span></p></div></div></div>');const L={hash:"svelte-kh7ttv",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */.mc-linear-progressbar-percentage.svelte-kh7ttv {--progress-value: 40;font-family:var(--font-family, LeroyMerlin), sans-serif;background-color:var(--progressbar-color-background, #c9d0de);height:1.5rem;position:relative;min-width:6rem;border-radius:var(--radius-l, 1rem);box-sizing:border-box;}.mc-linear-progressbar-percentage__indicator.svelte-kh7ttv {border-radius:var(--radius-l, 1rem);background-color:var(--progressbar-color-indicator, #464e63);min-width:40px;height:100%;top:0;left:0;position:absolute;transition:width 0.4s ease;overflow:hidden;display:flex;justify-content:flex-end;width:calc(40px + var(--progress-value) * (100% - 40px) / 100);}.mc-linear-progressbar-percentage__label.svelte-kh7ttv {box-sizing:border-box;border-radius:var(--radius-l, 1rem);background-color:var(--progressbar-badge-color-background, #ffffff);color:var(--progressbar-badge-color-text, #171b26);height:1.5rem;width:2.5rem;border:0.125rem solid var(--progressbar-color-indicator, #464e63);display:flex;align-items:center;justify-content:center;}.mc-linear-progressbar-percentage__value.svelte-kh7ttv {font-size:var(--font-size-50, 0.75rem);font-weight:var(--font-weight-semi-bold, 600);margin:0;}.mc-linear-progressbar-percentage__unit.svelte-kh7ttv {font-size:var(--font-size-25, 0.625rem);font-weight:var(--font-weight-semi-bold, 600);margin:0;position:relative;bottom:1px;}`};function P(o,i){g(i,!0),b(o,L);let e=m(i,"value",7,0);var v={get value(){return e()},set value(p=0){e(p),k()}},s=j(),r=a(s),l=a(r),n=a(l),c=a(n);return x(),t(n),t(l),t(r),t(s),f(()=>{y(r,`--progress-value: ${e()};`),z(r,"aria-valuenow",e()),w(c,`${e()??""} `)}),h(o,s),_(v)}customElements.define("m-linear-progressbar-percentage",d(P,{value:{}},[],[],!0));
3
+ */.mc-linear-progressbar-percentage.svelte-kh7ttv {--progress-value: 40;font-family:var(--font-family, LeroyMerlin), sans-serif;background-color:var(--progressbar-color-background, #c9d0de);height:1.5rem;position:relative;min-width:6rem;border-radius:var(--border-radius-l, 1rem);box-sizing:border-box;}.mc-linear-progressbar-percentage__indicator.svelte-kh7ttv {border-radius:var(--border-radius-l, 1rem);background-color:var(--progressbar-color-indicator, #464e63);min-width:40px;height:100%;top:0;left:0;position:absolute;transition:width 0.4s ease;overflow:hidden;display:flex;justify-content:flex-end;width:calc(40px + var(--progress-value) * (100% - 40px) / 100);}.mc-linear-progressbar-percentage__label.svelte-kh7ttv {box-sizing:border-box;border-radius:var(--border-radius-l, 1rem);background-color:var(--progressbar-badge-color-background, #ffffff);color:var(--progressbar-badge-color-text, #171b26);height:1.5rem;width:2.5rem;border:0.125rem solid var(--progressbar-color-indicator, #464e63);display:flex;align-items:center;justify-content:center;}.mc-linear-progressbar-percentage__value.svelte-kh7ttv {font-size:var(--font-size-50, 0.75rem);font-weight:var(--font-weight-semi-bold, 600);margin:0;}.mc-linear-progressbar-percentage__unit.svelte-kh7ttv {font-size:var(--font-size-25, 0.625rem);font-weight:var(--font-weight-semi-bold, 600);margin:0;position:relative;bottom:1px;}`};function P(o,i){g(i,!0),b(o,L);let e=m(i,"value",7,0);var v={get value(){return e()},set value(d=0){e(d),k()}},s=j(),r=a(s),l=a(r),n=a(l),c=a(n);return x(),t(n),t(l),t(r),t(s),f(()=>{y(r,`--progress-value: ${e()};`),z(r,"aria-valuenow",e()),w(c,`${e()??""} `)}),h(o,s),_(v)}customElements.define("m-linear-progressbar-percentage",p(P,{value:{}},[],[],!0));
4
4
  //# sourceMappingURL=LinearProgressbarPercentage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinearProgressbarPercentage.js","sources":["../../../src/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-linear-progressbar-percentage' }} />\n\n<script lang=\"ts\">\n /**\n * A linear progress bar (Percentage) visually represents the completion of a task along a horizontal track, displaying the exact progress in percentage within the bar. It is commonly used for file uploads, installations, form completion, or any process requiring user awareness of progress. The percentage label provides clear and immediate feedback, helping users track progress with precision.\n */\n interface Props {\n /**\n * The current value of the progress bar.\n */\n value?: number;\n }\n\n let { value = 0 }: Props = $props();\n</script>\n\n<div class=\"mc-linear-progressbar-percentage\">\n <div\n class=\"mc-linear-progressbar-percentage__indicator\"\n role=\"progressbar\"\n style={`--progress-value: ${value};`}\n aria-valuenow={value}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <div class=\"mc-linear-progressbar-percentage__label\">\n <p class=\"mc-linear-progressbar-percentage__value\">\n {value}\n <span class=\"mc-linear-progressbar-percentage__unit\">%</span>\n </p>\n </div>\n </div>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/linear-progressbar-percentage';\n</style>\n"],"names":["value"],"mappings":";;42CAAA,gBAaQ,IAAAA,gBAAQ,CAAC,6CAAD,EAAC,6GAOeA,EAAK,CAAA,GAAA,sBAClBA,GAAK,SAMfA,EAAK,GAAA,EAAA,GAAA,eAbd"}
1
+ {"version":3,"file":"LinearProgressbarPercentage.js","sources":["../../../src/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-linear-progressbar-percentage' }} />\n\n<script lang=\"ts\">\n /**\n * A linear progress bar (Percentage) visually represents the completion of a task along a horizontal track, displaying the exact progress in percentage within the bar. It is commonly used for file uploads, installations, form completion, or any process requiring user awareness of progress. The percentage label provides clear and immediate feedback, helping users track progress with precision.\n */\n interface Props {\n /**\n * The current value of the progress bar.\n */\n value?: number;\n }\n\n let { value = 0 }: Props = $props();\n</script>\n\n<div class=\"mc-linear-progressbar-percentage\">\n <div\n class=\"mc-linear-progressbar-percentage__indicator\"\n role=\"progressbar\"\n style={`--progress-value: ${value};`}\n aria-valuenow={value}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n >\n <div class=\"mc-linear-progressbar-percentage__label\">\n <p class=\"mc-linear-progressbar-percentage__value\">\n {value}\n <span class=\"mc-linear-progressbar-percentage__unit\">%</span>\n </p>\n </div>\n </div>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/linear-progressbar-percentage';\n</style>\n"],"names":["value"],"mappings":";;i4CAAA,gBAaQ,IAAAA,gBAAQ,CAAC,6CAAD,EAAC,6GAOeA,EAAK,CAAA,GAAA,sBAClBA,GAAK,SAMfA,EAAK,GAAA,EAAA,GAAA,eAbd"}
@@ -42,11 +42,11 @@
42
42
  height: 1.5rem;
43
43
  position: relative;
44
44
  min-width: 6rem;
45
- border-radius: var(--radius-l, 1rem);
45
+ border-radius: var(--border-radius-l, 1rem);
46
46
  box-sizing: border-box;
47
47
  }
48
48
  .mc-linear-progressbar-percentage__indicator {
49
- border-radius: var(--radius-l, 1rem);
49
+ border-radius: var(--border-radius-l, 1rem);
50
50
  background-color: var(--progressbar-color-indicator, #464e63);
51
51
  min-width: 40px;
52
52
  height: 100%;
@@ -61,7 +61,7 @@
61
61
  }
62
62
  .mc-linear-progressbar-percentage__label {
63
63
  box-sizing: border-box;
64
- border-radius: var(--radius-l, 1rem);
64
+ border-radius: var(--border-radius-l, 1rem);
65
65
  background-color: var(--progressbar-badge-color-background, #ffffff);
66
66
  color: var(--progressbar-badge-color-text, #171b26);
67
67
  height: 1.5rem;
@@ -1,4 +1,4 @@
1
1
  import{c as L,p as S,a as q,b as i,f as _,d as c,s as b,t as A,i as h,j as B,k as l,r as s,e as F,g as G}from"../../custom-element.js";import{i as w}from"../../if.js";import{s as x}from"../../slot.js";import{s as y}from"../../attributes.js";var H=_('<span class="mc-link__icon svelte-5kacnx"><!></span>'),I=_('<span class="mc-link__icon svelte-5kacnx"><!></span>'),J=_('<a><!> <span class="mc-link__label svelte-5kacnx"><!></span> <!></a>');const K={hash:"svelte-5kacnx",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */.mc-link.svelte-5kacnx {transition:box-shadow 200ms ease;display:inline-flex;align-items:center;justify-content:center;gap:0.25rem;min-height:1.5rem;text-decoration:none;color:var(--link-color-text-primary, #000000);font-size:0.875rem;}.mc-link__label.svelte-5kacnx {line-height:1.3;}.mc-link__icon.svelte-5kacnx {display:block;height:1.25rem;width:1.25rem;flex-shrink:0;fill:currentcolor;}.mc-link.svelte-5kacnx:hover:not(.mc-link--stand-alone, .mc-link--inline) .mc-link__label:where(.svelte-5kacnx) {text-decoration:underline;}.mc-link.svelte-5kacnx:focus {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-link--m.svelte-5kacnx {min-height:2rem;font-size:1rem;}.mc-link--secondary.svelte-5kacnx {color:var(--link-color-text-secondary, #666666);}.mc-link--accent.svelte-5kacnx {color:var(--link-color-text-accent, #117f03);}.mc-link--inverse.svelte-5kacnx {--focus-color-mid: var(--focus-color-outline-outer, #000000);--focus-color-outer: var(--focus-color-outline-mid, #ffffff);color:var(--link-color-text-inverse, #ffffff);}.mc-link--stand-alone.svelte-5kacnx {min-height:2rem;font-weight:var(--link-font-weight, 600);}.mc-link--stand-alone.svelte-5kacnx .mc-link__label:where(.svelte-5kacnx) {border-bottom:var(--border-s, 1px) solid currentColor;}.mc-link--stand-alone.svelte-5kacnx:hover .mc-link__label:where(.svelte-5kacnx) {border-color:transparent;}.mc-link--inline.svelte-5kacnx {font-weight:inherit;text-decoration:underline;}.mc-link--inline.svelte-5kacnx .mc-link__label:where(.svelte-5kacnx) {line-height:1;}.mc-link--inline.svelte-5kacnx:hover {text-decoration:none;}.mc-link__icon.svelte-5kacnx:empty {display:none;}`};function M(p,n){S(n,!0),q(p,K);let m=i(n,"href",7),k=i(n,"target",7),r=i(n,"inline",7),f=i(n,"appearance",7,"standard"),v=i(n,"size",7,"s"),o=i(n,"iconposition",7,"left");var z={get href(){return m()},set href(e){m(e),l()},get target(){return k()},set target(e){k(e),l()},get inline(){return r()},set inline(e){r(e),l()},get appearance(){return f()},set appearance(e="standard"){f(e),l()},get size(){return v()},set size(e="s"){v(e),l()},get iconposition(){return o()},set iconposition(e="left"){o(e),l()}},a=J(),g=c(a);{var j=e=>{var t=H(),u=c(t);x(u,n,"icon",{}),s(t),h(e,t)};w(g,e=>{o()==="left"&&e(j)})}var d=b(g,2),C=c(d);x(C,n,"default",{}),s(d);var D=b(d,2);{var E=e=>{var t=I(),u=c(t);x(u,n,"icon",{}),s(t),h(e,t)};w(D,e=>{o()==="right"&&e(E)})}return s(a),A(()=>{F(a,1,G(["mc-link",`mc-link--${f()}`,`mc-link--${v()}`,r()&&"mc-link--inline",!r()&&"mc-link--stand-alone"]),"svelte-5kacnx"),y(a,"href",m()),y(a,"target",k())}),h(p,a),B(z)}customElements.define("m-link",L(M,{href:{},target:{},inline:{},appearance:{},size:{},iconposition:{}},["icon","default"],[],!0));
3
+ */.mc-link.svelte-5kacnx {transition:box-shadow 200ms ease;display:inline-flex;align-items:center;justify-content:center;gap:0.25rem;min-height:1.5rem;text-decoration:none;color:var(--link-color-text-primary, #000000);font-size:0.875rem;}.mc-link__label.svelte-5kacnx {line-height:1.3;}.mc-link__icon.svelte-5kacnx {display:block;height:1.25rem;width:1.25rem;flex-shrink:0;fill:currentcolor;}.mc-link.svelte-5kacnx:hover:not(.mc-link--stand-alone, .mc-link--inline) .mc-link__label:where(.svelte-5kacnx) {text-decoration:underline;}.mc-link.svelte-5kacnx:focus {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-link--m.svelte-5kacnx {min-height:2rem;font-size:1rem;}.mc-link--secondary.svelte-5kacnx {color:var(--link-color-text-secondary, #666666);}.mc-link--accent.svelte-5kacnx {color:var(--link-color-text-accent, #117f03);}.mc-link--inverse.svelte-5kacnx {--focus-color-mid: var(--focus-color-outline-outer, #000000);--focus-color-outer: var(--focus-color-outline-mid, #ffffff);color:var(--link-color-text-inverse, #ffffff);}.mc-link--stand-alone.svelte-5kacnx {min-height:2rem;font-weight:var(--link-font-weight, 600);}.mc-link--stand-alone.svelte-5kacnx .mc-link__label:where(.svelte-5kacnx) {border-bottom:var(--border-width-s, 0.0625rem) solid currentColor;}.mc-link--stand-alone.svelte-5kacnx:hover .mc-link__label:where(.svelte-5kacnx) {border-color:transparent;}.mc-link--inline.svelte-5kacnx {font-weight:inherit;text-decoration:underline;}.mc-link--inline.svelte-5kacnx .mc-link__label:where(.svelte-5kacnx) {line-height:1;}.mc-link--inline.svelte-5kacnx:hover {text-decoration:none;}.mc-link__icon.svelte-5kacnx:empty {display:none;}`};function M(p,n){S(n,!0),q(p,K);let m=i(n,"href",7),k=i(n,"target",7),r=i(n,"inline",7),f=i(n,"appearance",7,"standard"),v=i(n,"size",7,"s"),o=i(n,"iconposition",7,"left");var z={get href(){return m()},set href(e){m(e),l()},get target(){return k()},set target(e){k(e),l()},get inline(){return r()},set inline(e){r(e),l()},get appearance(){return f()},set appearance(e="standard"){f(e),l()},get size(){return v()},set size(e="s"){v(e),l()},get iconposition(){return o()},set iconposition(e="left"){o(e),l()}},a=J(),g=c(a);{var j=e=>{var t=H(),u=c(t);x(u,n,"icon",{}),s(t),h(e,t)};w(g,e=>{o()==="left"&&e(j)})}var d=b(g,2),C=c(d);x(C,n,"default",{}),s(d);var D=b(d,2);{var E=e=>{var t=I(),u=c(t);x(u,n,"icon",{}),s(t),h(e,t)};w(D,e=>{o()==="right"&&e(E)})}return s(a),A(()=>{F(a,1,G(["mc-link",`mc-link--${f()}`,`mc-link--${v()}`,r()&&"mc-link--inline",!r()&&"mc-link--stand-alone"]),"svelte-5kacnx"),y(a,"href",m()),y(a,"target",k())}),h(p,a),B(z)}customElements.define("m-link",L(M,{href:{},target:{},inline:{},appearance:{},size:{},iconposition:{}},["icon","default"],[],!0));
4
4
  //# sourceMappingURL=Link.js.map
@@ -1 +1 @@
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"}
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":";;+zDAAA,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"}
@@ -122,7 +122,7 @@
122
122
  font-weight: var(--link-font-weight, 600);
123
123
  }
124
124
  .mc-link--stand-alone .mc-link__label {
125
- border-bottom: var(--border-s, 1px) solid currentColor;
125
+ border-bottom: var(--border-width-s, 0.0625rem) solid currentColor;
126
126
  }
127
127
  .mc-link--stand-alone:hover .mc-link__label {
128
128
  border-color: transparent;
@@ -25,5 +25,5 @@ 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 a
25
25
  stroke-dasharray: 89, 200;
26
26
  stroke-dashoffset: -124px;
27
27
  }
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};
28
+ }`};function G(k,s){C(s,!0),B(k,F);let t=d(s,"size",7,"m"),c=d(s,"appearance",7,"standard"),r=d(s,"text",7);const f=()=>{let e;switch(t()){case"xs":e="0 0 20 20";break;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"xs":e=6;break;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 c()},set appearance(e="standard"){c(e),m()},get text(){return r()},set text(e){r(e),m()}},n=A(),v=l(n),i=l(v),x=l(i);o(i),o(v);var u=L(v,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--${c()}`,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};
29
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 /**\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"}
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?: 'xs' | '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 'xs':\n viewBox = '0 0 20 20';\n break;\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 'xs':\n circleRadius = 6;\n break;\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 class=\"mc-loader__icon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox={setViewBox()}>\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,KACHM,EAAU,sBAEP,IACHA,EAAU,sBAEP,IACHA,EAAU,0BAGVA,EAAU,mBAGPA,CACT,EAEMC,EAAe,IAAS,KACxBC,SAEIR,EAAI,EAAA,KACL,KACHQ,EAAe,YAEZ,IACHA,EAAe,YAEZ,IACHA,EAAe,iBAGfA,EAAe,SAGZA,CACT,2CAxCa,IAAG,yDAAe,WAAU,yJA2DpCN,EAAI,CAAA,CAAA,kBAFJA,EAAI,GAAAO,EAAAC,CAAA,mCAZP,0BACcV,EAAI,CAAA,iBACJC,EAAU,CAAA,GACxBC,KAAQ,0EAIiE,CAAAG,EAClBE,CAAe,cAZ1E"}
@@ -13,7 +13,6 @@ describe('m-loader component', () => {
13
13
  expect(svg).toBeTruthy();
14
14
  expect(svg?.getAttribute('viewBox')).toBe('0 0 32 32');
15
15
  const circle = container.querySelector('circle.mc-loader__path');
16
- expect(circle).toBeTruthy();
17
16
  expect(circle?.getAttribute('r')).toBe('9');
18
17
  const textSpan = container.querySelector('.mc-loader__text');
19
18
  expect(textSpan).toBeNull();
@@ -51,4 +50,24 @@ describe('m-loader component', () => {
51
50
  expect(textSpan).toBeTruthy();
52
51
  expect(textSpan.classList.contains('mc-loader__text')).toBe(true);
53
52
  });
53
+ it('renders correctly for size "xs" (falls through to "s" logic)', () => {
54
+ const { container } = render(Loader, { props: { size: 'xs' } });
55
+ const svg = container.querySelector('svg.mc-loader__icon');
56
+ expect(svg?.getAttribute('viewBox')).toBe('0 0 20 20');
57
+ const circle = container.querySelector('circle.mc-loader__path');
58
+ expect(circle?.getAttribute('r')).toBe('6');
59
+ });
60
+ it('handles unsupported size by falling back to defaults', () => {
61
+ const { container } = render(Loader, { props: { size: 'unknown' } });
62
+ const svg = container.querySelector('svg.mc-loader__icon');
63
+ expect(svg?.getAttribute('viewBox')).toBe('0 0 32 32');
64
+ const circle = container.querySelector('circle.mc-loader__path');
65
+ expect(circle?.getAttribute('r')).toBe('9');
66
+ });
67
+ it('handles unsupported appearance by still rendering standard loader', () => {
68
+ const { container } = render(Loader, { props: { appearance: 'weird' } });
69
+ const loader = container.querySelector('.mc-loader');
70
+ expect(loader?.classList).toContain('mc-loader--weird');
71
+ expect(container.querySelector('svg.mc-loader__icon')).toBeTruthy();
72
+ });
54
73
  });
@@ -6,7 +6,7 @@ const meta = {
6
6
  argTypes: {
7
7
  size: {
8
8
  control: 'radio',
9
- options: ['s', 'm', 'l'],
9
+ options: ['xs', 's', 'm', 'l'],
10
10
  },
11
11
  appearance: {
12
12
  control: 'radio',
@@ -13,7 +13,7 @@
13
13
  /**
14
14
  * Defines the size of the loader.
15
15
  */
16
- size?: 's' | 'm' | 'l';
16
+ size?: 'xs' | 's' | 'm' | 'l';
17
17
 
18
18
  /**
19
19
  * Text to display alongside the loader when using the loader inside an `Overlay`.
@@ -27,6 +27,9 @@
27
27
  let viewBox: string;
28
28
 
29
29
  switch (size) {
30
+ case 'xs':
31
+ viewBox = '0 0 20 20';
32
+ break;
30
33
  case 's':
31
34
  viewBox = '0 0 24 24';
32
35
  break;
@@ -44,6 +47,9 @@
44
47
  let circleRadius: number;
45
48
 
46
49
  switch (size) {
50
+ case 'xs':
51
+ circleRadius = 6;
52
+ break;
47
53
  case 's':
48
54
  circleRadius = 6;
49
55
  break;
@@ -67,11 +73,7 @@
67
73
  ]}
68
74
  >
69
75
  <span class="mc-loader__spinner">
70
- <svg
71
- class="mc-loader__icon"
72
- xmlns="http://www.w3.org/2000/svg"
73
- viewBox={setViewBox()}
74
- >
76
+ <svg class="mc-loader__icon" xmlns="http://www.w3.org/2000/svg" viewBox={setViewBox()}>
75
77
  <circle class="mc-loader__path" cx="50%" cy="50%" r={setCircleRadius()} />
76
78
  </svg>
77
79
  </span>
@@ -9,7 +9,7 @@ interface Props {
9
9
  /**
10
10
  * Defines the size of the loader.
11
11
  */
12
- size?: 's' | 'm' | 'l';
12
+ size?: 'xs' | 's' | 'm' | 'l';
13
13
  /**
14
14
  * Text to display alongside the loader when using the loader inside an `Overlay`.
15
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Loader.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/loader/Loader.svelte.ts"],"names":[],"mappings":"AAGE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAE/C;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAkEH,QAAA,MAAM,MAAM,2CAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Loader.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/loader/Loader.svelte.ts"],"names":[],"mappings":"AAGE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAE/C;;OAEG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAE9B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwEH,QAAA,MAAM,MAAM,2CAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -7,6 +7,6 @@ A loader is a visual indicator used to inform users that a process is in progres
7
7
  | Name | Description | Type | Default |
8
8
  |------|-------------|------|---------|
9
9
  | `appearance` | Specifies the visual appearance of the loader. | `'standard'` `'accent'` `'inverse'` | `standard` |
10
- | `size` | Defines the size of the loader. | `'s'` `'m'` `'l'` | `m` |
10
+ | `size` | Defines the size of the loader. | `'xs'` `'s'` `'m'` `'l'` | `m` |
11
11
  | `text` | Text to display alongside the loader when using the loader inside an `Overlay`. | `string` | |
12
12
 
@@ -3,5 +3,5 @@ declare const meta: Meta;
3
3
  export default meta;
4
4
  type Story = StoryObj;
5
5
  export declare const Default: Story;
6
- export declare const text: Story;
6
+ export declare const Text: Story;
7
7
  //# sourceMappingURL=LoadingOverlay.stories.d.ts.map
@@ -32,7 +32,7 @@ const meta = {
32
32
  };
33
33
  export default meta;
34
34
  export const Default = {};
35
- export const text = {
35
+ export const Text = {
36
36
  args: {
37
37
  text: 'Insert your text here',
38
38
  },