@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,19 @@
1
+ # `m-segmented-control`
2
+
3
+ A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `selected` | The selected segment index, bound via v-model. | `number` | `$bindable(0)` |
10
+ | `full` | if `true`, the segmented control take the full width. | `boolean` | |
11
+ | `size` | Determines the size of the segmented control. | `'s'` `'m'` | `s` |
12
+ | `segments*` | An array of objects that allows you to provide all the data needed to generate the content for each segment. | `Array<{ label: string; }>` | |
13
+
14
+ ## Events
15
+
16
+ | Name | Description | Type |
17
+ |------|------|-------------|
18
+ | `change` | Emits when the selected segment changes. | `CustomEvent<number>` |
19
+
@@ -0,0 +1,4 @@
1
+ import{v as w,c as C,p as E,a as j,b as l,f as k,t as u,i as h,j as S,k as c,r as v,e as p,g as b,d as D,h as q,m as A}from"../../custom-element.js";import{e as B,i as F}from"../../each.js";import{s as _}from"../../attributes.js";import{b as G}from"../../this.js";var H=k('<button type="button" role="radio"> </button>'),I=k('<div role="radiogroup"></div>');const J={hash:"svelte-1p6odhf",code:`/**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */.mc-segmented-control.svelte-1p6odhf {display:inline-flex;background-color:var(--segmented-control-color-background-default, #ffffff);border:1px solid var(--segmented-control-color-border, #cccccc);border-radius:3rem;height:2rem;padding:0.25rem;box-sizing:border-box;gap:0.25rem;}.mc-segmented-control__segment.svelte-1p6odhf {display:flex;align-items:center;justify-content:center;background-color:transparent;border:none;color:var(--segmented-control-color-text-default, #666666);cursor:pointer;font-family:inherit;font-weight:var(--font-weight-semi-bold, 600);font-size:var(--font-size-100, 0.875rem);padding:0 1rem;border-radius:3rem;height:1.5rem;width:100%;transition:background-color 0.3s ease;}.mc-segmented-control__segment.svelte-1p6odhf:not(.mc-segmented-control__segment--selected):hover {background-color:var(--segmented-control-color-background-hover, rgba(0, 0, 0, 0.05));}.mc-segmented-control__segment--selected.svelte-1p6odhf {color:var(--segmented-control-color-text-selected, #ffffff);background-color:var(--segmented-control-color-background-selected, #464e63);}.mc-segmented-control__segment.svelte-1p6odhf:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-segmented-control--m.svelte-1p6odhf {height:3rem;padding:0.5rem;}.mc-segmented-control--m.svelte-1p6odhf .mc-segmented-control__segment:where(.svelte-1p6odhf) {height:2rem;}.mc-segmented-control--full.svelte-1p6odhf {display:flex;}`};function K(g,r){E(r,!0),j(g,J);let o=l(r,"selected",15,0),d=l(r,"full",7),m=l(r,"size",7,"s"),a=l(r,"segments",7),i;const x=e=>{o(e);const f=new CustomEvent("change",{detail:e,bubbles:!0,composed:!0});i.dispatchEvent(f)};var y={get selected(){return o()},set selected(e=0){o(e),c()},get full(){return d()},set full(e){d(e),c()},get size(){return m()},set size(e="s"){m(e),c()},get segments(){return a()},set segments(e){a(e),c()}},s=I();return B(s,21,a,F,(e,f,n)=>{var t=H();t.__click=()=>x(n);var z=D(t,!0);v(t),u(()=>{p(t,1,b(["mc-segmented-control__segment",o()===n&&"mc-segmented-control__segment--selected"]),"svelte-1p6odhf"),_(t,"tabindex",o()===n?0:-1),_(t,"aria-checked",o()===n?"true":"false"),q(z,A(f).label)}),h(e,t)}),v(s),G(s,e=>i=e,()=>i),u(()=>p(s,1,b(["mc-segmented-control",`mc-segmented-control--${m()}`,d()&&"mc-segmented-control--full"]),"svelte-1p6odhf")),h(g,s),S(y)}w(["click"]);customElements.define("m-segmented-control",C(K,{selected:{},full:{},size:{},segments:{}},[],[],!0));
4
+ //# sourceMappingURL=SegmentedControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/segmentedcontrol/SegmentedControl.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-segmented-control' }} />\n\n<script lang=\"ts\">\n /**\n * A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.\n *\n * @event change {CustomEvent<number>} - Emits when the selected segment changes.\n */\n interface Props {\n /**\n * The selected segment index, bound via v-model.\n */\n selected?: number;\n /**\n * if `true`, the segmented control take the full width.\n */\n full?: boolean;\n /**\n * Determines the size of the segmented control.\n */\n size?: 's' | 'm';\n /**\n * An array of objects that allows you to provide all the data needed to generate the content for each segment.\n */\n segments: Array<{\n /**\n * The label displayed for the segment.\n */\n label: string;\n }>;\n }\n\n let { selected = $bindable(0), full, size = 's', segments }: Props = $props();\n let element: HTMLElement;\n\n const onClick = (index: number) => {\n selected = index;\n\n const event = new CustomEvent('change', {\n detail: index,\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n };\n</script>\n\n<div\n class={[\n 'mc-segmented-control',\n `mc-segmented-control--${size}`,\n full && 'mc-segmented-control--full',\n ]}\n role=\"radiogroup\"\n bind:this={element}\n>\n {#each segments as segment, index (index)}\n <button\n type=\"button\"\n class={[\n 'mc-segmented-control__segment',\n selected === index && 'mc-segmented-control__segment--selected',\n ]}\n role=\"radio\"\n tabindex={selected === index ? 0 : -1}\n aria-checked={selected === index ? 'true' : 'false'}\n onclick={() => onClick(index)}\n >\n {segment.label}\n </button>\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/segmented-control';\n</style>\n"],"names":["selected","full","$.prop","$$props","size","segments","element","onClick","index","event","$.each","div","segment","button","$.set_attribute","$.set_text","text","$.get","$.bind_this","$$value"],"mappings":";;imDAAA,gBAgCQ,IAAAA,oBAAqB,CAAC,EAAGC,EAAIC,EAAAC,EAAA,OAAA,CAAA,EAAEC,eAAO,GAAG,EAAEC,EAAQH,EAAAC,EAAA,WAAA,CAAA,EACrDG,QAEEC,EAAWC,GAAkB,CACjCR,EAAWQ,CAAK,EAEV,MAAAC,EAAK,IAAO,YAAY,UAC5B,OAAQD,EACR,QAAS,GACT,SAAU,EAAI,CAAA,EAEhBF,EAAQ,cAAcG,CAAK,CAC7B,mDAZ2B,EAAC,0FAAgB,IAAG,uEAwBxCC,OAAAA,EAAAC,EAAA,GAAAN,OAAYO,EAAOJ,IAAA,WAUPK,EAAA,QAAA,IAAAN,EAAQC,CAAK,qCAN1B,gCACAR,EAAQ,IAAKQ,GAAS,8DAGdM,EAAAD,EAAA,WAAAb,EAAQ,IAAKQ,EAAQ,IAAM,EACvBM,EAAAD,EAAA,eAAAb,EAAQ,IAAKQ,EAAQ,OAAS,OAAO,EAGlDO,EAAAC,EAAAC,EAAAL,CAAO,EAAC,KAAK,kBAdPM,EAAAP,EAAAQ,GAAAb,QAAAA,CAAO,iBALhB,gDACyBF,EAAI,CAAA,GAC7BH,KAAQ,6DANZ"}
@@ -0,0 +1,52 @@
1
+ import { describe, it, expect, vi } from 'vitest';
2
+ import { render, fireEvent } from '@testing-library/svelte';
3
+ import SegmentedControl from './SegmentedControl.svelte';
4
+ describe('m-segmented-control component', () => {
5
+ const baseProps = {
6
+ segments: [{ label: 'Segment 1' }, { label: 'Segment 2' }, { label: 'Segment 3' }],
7
+ selected: 1,
8
+ size: 's',
9
+ full: false,
10
+ };
11
+ it('renders correct number of segments with labels', () => {
12
+ const { getAllByRole } = render(SegmentedControl, {
13
+ props: baseProps,
14
+ });
15
+ const buttons = getAllByRole('radio');
16
+ expect(buttons.length).toBe(3);
17
+ expect(buttons[0].textContent).toBe('Segment 1');
18
+ expect(buttons[1].textContent).toBe('Segment 2');
19
+ expect(buttons[2].textContent).toBe('Segment 3');
20
+ });
21
+ it('sets the correct initial selected segment', () => {
22
+ const { getAllByRole } = render(SegmentedControl, { props: baseProps });
23
+ const buttons = getAllByRole('radio');
24
+ expect(buttons[1].getAttribute('aria-checked')).toBe('true');
25
+ expect(buttons[1].tabIndex).toBe(0);
26
+ expect(buttons[0].getAttribute('aria-checked')).toBe('false');
27
+ expect(buttons[0].tabIndex).toBe(-1);
28
+ });
29
+ it('updates selected segment and dispatches event on click', async () => {
30
+ const { container, getAllByRole } = render(SegmentedControl, {
31
+ props: baseProps,
32
+ });
33
+ const buttons = getAllByRole('radio');
34
+ const handler = vi.fn();
35
+ container.firstChild?.addEventListener('change', handler);
36
+ await fireEvent.click(buttons[2]);
37
+ expect(handler).toHaveBeenCalledTimes(1);
38
+ expect(handler.mock.calls[0][0].detail).toBe(2);
39
+ expect(buttons[2].getAttribute('aria-checked')).toBe('true');
40
+ expect(buttons[2].tabIndex).toBe(0);
41
+ expect(buttons[1].getAttribute('aria-checked')).toBe('false');
42
+ expect(buttons[1].tabIndex).toBe(-1);
43
+ });
44
+ it('applies size and full classes correctly', () => {
45
+ const { container } = render(SegmentedControl, {
46
+ props: { ...baseProps, size: 'm', full: true },
47
+ });
48
+ const rootDiv = container.querySelector('.mc-segmented-control');
49
+ expect(rootDiv.classList.contains('mc-segmented-control--m')).toBe(true);
50
+ expect(rootDiv.classList.contains('mc-segmented-control--full')).toBe(true);
51
+ });
52
+ });
@@ -0,0 +1,8 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
6
+ export declare const Size: Story;
7
+ export declare const Full: Story;
8
+ //# sourceMappingURL=SegmentedControl.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.stories.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedcontrol/SegmentedControl.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IA2CX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
3
+ import { action } from 'storybook/actions';
4
+ const meta = {
5
+ title: 'Action/Segmented Control',
6
+ component: 'm-segmented-control',
7
+ argTypes: {
8
+ size: {
9
+ control: 'radio',
10
+ options: ['s', 'm'],
11
+ },
12
+ change: {
13
+ control: false,
14
+ },
15
+ },
16
+ args: {
17
+ segments: [
18
+ {
19
+ label: 'Label',
20
+ },
21
+ {
22
+ label: 'Label',
23
+ },
24
+ {
25
+ label: 'Label',
26
+ },
27
+ {
28
+ label: 'Label',
29
+ },
30
+ ],
31
+ },
32
+ render: (args) => {
33
+ const onChange = action('change');
34
+ return html `
35
+ <m-segmented-control
36
+ selected=${ifDefined(args.selected)}
37
+ full=${ifDefined(args.full)}
38
+ size=${ifDefined(args.size)}
39
+ .segments=${ifDefined(args.segments)}
40
+ @change=${(event) => {
41
+ onChange(event);
42
+ }}
43
+ ></m-segmented-control>
44
+ `;
45
+ },
46
+ };
47
+ export default meta;
48
+ export const Default = {};
49
+ export const Size = {
50
+ args: { size: 'm' },
51
+ };
52
+ export const Full = {
53
+ args: { full: true },
54
+ };
@@ -0,0 +1,125 @@
1
+ <svelte:options customElement={{ tag: 'm-segmented-control' }} />
2
+
3
+ <script lang="ts">
4
+ /**
5
+ * A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.
6
+ *
7
+ * @event change {CustomEvent<number>} - Emits when the selected segment changes.
8
+ */
9
+ interface Props {
10
+ /**
11
+ * The selected segment index, bound via v-model.
12
+ */
13
+ selected?: number;
14
+ /**
15
+ * if `true`, the segmented control take the full width.
16
+ */
17
+ full?: boolean;
18
+ /**
19
+ * Determines the size of the segmented control.
20
+ */
21
+ size?: 's' | 'm';
22
+ /**
23
+ * An array of objects that allows you to provide all the data needed to generate the content for each segment.
24
+ */
25
+ segments: Array<{
26
+ /**
27
+ * The label displayed for the segment.
28
+ */
29
+ label: string;
30
+ }>;
31
+ }
32
+
33
+ let { selected = $bindable(0), full, size = 's', segments }: Props = $props();
34
+ let element: HTMLElement;
35
+
36
+ const onClick = (index: number) => {
37
+ selected = index;
38
+
39
+ const event = new CustomEvent('change', {
40
+ detail: index,
41
+ bubbles: true,
42
+ composed: true,
43
+ });
44
+ element.dispatchEvent(event);
45
+ };
46
+ </script>
47
+
48
+ <div
49
+ class={[
50
+ 'mc-segmented-control',
51
+ `mc-segmented-control--${size}`,
52
+ full && 'mc-segmented-control--full',
53
+ ]}
54
+ role="radiogroup"
55
+ bind:this={element}
56
+ >
57
+ {#each segments as segment, index (index)}
58
+ <button
59
+ type="button"
60
+ class={[
61
+ 'mc-segmented-control__segment',
62
+ selected === index && 'mc-segmented-control__segment--selected',
63
+ ]}
64
+ role="radio"
65
+ tabindex={selected === index ? 0 : -1}
66
+ aria-checked={selected === index ? 'true' : 'false'}
67
+ onclick={() => onClick(index)}
68
+ >
69
+ {segment.label}
70
+ </button>
71
+ {/each}
72
+ </div>
73
+
74
+ <style>/**
75
+ * Do not edit directly, this file was auto-generated.
76
+ */
77
+ .mc-segmented-control {
78
+ display: inline-flex;
79
+ background-color: var(--segmented-control-color-background-default, #ffffff);
80
+ border: 1px solid var(--segmented-control-color-border, #cccccc);
81
+ border-radius: 3rem;
82
+ height: 2rem;
83
+ padding: 0.25rem;
84
+ box-sizing: border-box;
85
+ gap: 0.25rem;
86
+ }
87
+ .mc-segmented-control__segment {
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: center;
91
+ background-color: transparent;
92
+ border: none;
93
+ color: var(--segmented-control-color-text-default, #666666);
94
+ cursor: pointer;
95
+ font-family: inherit;
96
+ font-weight: var(--font-weight-semi-bold, 600);
97
+ font-size: var(--font-size-100, 0.875rem);
98
+ padding: 0 1rem;
99
+ border-radius: 3rem;
100
+ height: 1.5rem;
101
+ width: 100%;
102
+ transition: background-color 0.3s ease;
103
+ }
104
+ .mc-segmented-control__segment:not(.mc-segmented-control__segment--selected):hover {
105
+ background-color: var(--segmented-control-color-background-hover, rgba(0, 0, 0, 0.05));
106
+ }
107
+ .mc-segmented-control__segment--selected {
108
+ color: var(--segmented-control-color-text-selected, #ffffff);
109
+ background-color: var(--segmented-control-color-background-selected, #464e63);
110
+ }
111
+ .mc-segmented-control__segment:focus-visible {
112
+ 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));
113
+ outline: 0.125rem solid transparent;
114
+ outline-offset: 0.125rem;
115
+ }
116
+ .mc-segmented-control--m {
117
+ height: 3rem;
118
+ padding: 0.5rem;
119
+ }
120
+ .mc-segmented-control--m .mc-segmented-control__segment {
121
+ height: 2rem;
122
+ }
123
+ .mc-segmented-control--full {
124
+ display: flex;
125
+ }</style>
@@ -0,0 +1,32 @@
1
+ /**
2
+ * A Segmented Control allows users to switch between multiple options or views within a single container. It provides a compact and efficient way to toggle between sections without requiring a dropdown or separate navigation. Segmented Controls are commonly used in filters, tabbed navigation, and content selection to enhance user interaction and accessibility.
3
+ *
4
+ * @event change {CustomEvent<number>} - Emits when the selected segment changes.
5
+ */
6
+ interface Props {
7
+ /**
8
+ * The selected segment index, bound via v-model.
9
+ */
10
+ selected?: number;
11
+ /**
12
+ * if `true`, the segmented control take the full width.
13
+ */
14
+ full?: boolean;
15
+ /**
16
+ * Determines the size of the segmented control.
17
+ */
18
+ size?: 's' | 'm';
19
+ /**
20
+ * An array of objects that allows you to provide all the data needed to generate the content for each segment.
21
+ */
22
+ segments: Array<{
23
+ /**
24
+ * The label displayed for the segment.
25
+ */
26
+ label: string;
27
+ }>;
28
+ }
29
+ declare const SegmentedControl: import("svelte").Component<Props, {}, "selected">;
30
+ type SegmentedControl = ReturnType<typeof SegmentedControl>;
31
+ export default SegmentedControl;
32
+ //# sourceMappingURL=SegmentedControl.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedControl.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedcontrol/SegmentedControl.svelte.ts"],"names":[],"mappings":"AAGE;;;;GAIG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;QACd;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAwCH,QAAA,MAAM,gBAAgB,mDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -9,7 +9,7 @@ A select component allows users to choose a single option from a predefined list
9
9
  | `id*` | A unique identifier for the select, used to associate the label with the form element. | `string` | |
10
10
  | `name` | The name attribute for the select element, used for form submission. | `string` | |
11
11
  | `options*` | Define the available choices for the select element. | `Array<{ id?: string; text: string; value: string` `number; disabled?: boolean; }>` | |
12
- | `value` | The current value of the select. | `string` `number` | |
12
+ | `value` | The current value of the select. | `string` `number` | `$bindable()` |
13
13
  | `placeholder` | Text displayed when the select has no selected value. | `string` | |
14
14
  | `isinvalid` | If `true`, the select is marked as invalid. | `boolean` | |
15
15
  | `disabled` | If `true`, the select is disabled and non-interactive. | `boolean` | |
@@ -1,7 +1,7 @@
1
- import{c as j,p as A,a as D,b as a,f as _,d as g,s as F,t as p,i as x,j as q,k as t,r as w,h as E,e as G,g as H,m as n}from"../../custom-element.js";import{i as I}from"../../if.js";import{e as J,i as K}from"../../each.js";import{d as N,s as C}from"../../attributes.js";import{c as O}from"../../custom-element-forward-events.js";var P=_("<option disabled selected> </option>"),Q=_("<option> </option>"),R=_("<select><!><!></select>");const T={hash:"svelte-6nznl5",code:`/**
1
+ import{c as j,p as A,a as D,b as a,f as x,d as g,s as F,t as p,i as w,j as q,k as t,r as _,h as E,e as G,g as H,m as n}from"../../custom-element.js";import{i as I}from"../../if.js";import{e as J,i as K}from"../../each.js";import{c as N,s as C}from"../../attributes.js";import{c as O}from"../../custom-element-forward-events.js";var P=x("<option disabled selected> </option>"),Q=x("<option> </option>"),R=x("<select><!><!></select>");const T={hash:"svelte-6nznl5",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */
4
- /* stylelint-disable string-no-newline */.mc-select.svelte-6nznl5 {appearance:none;font-family:inherit;transition:box-shadow 200ms ease;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);height:3rem;padding:0 3rem 0 0.75rem;background-position:right 1rem center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' fill='var(--forms-color-icon-interactive, %23000000)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E");border:var(--border-s, 1px) solid var(--forms-color-border-default, #666666);border-radius:var(--radius-s, 0.25rem);display:block;width:100%;color:var(--forms-color-text-default, #000000);background-color:var(--forms-color-background-default, #ffffff);text-overflow:ellipsis;background-repeat:no-repeat;background-size:1rem;}.mc-select.svelte-6nznl5:hover {border-color:var(--forms-color-border-hover, #4d4d4d);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-hover, #4d4d4d);}.mc-select.svelte-6nznl5: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-select.svelte-6nznl5:disabled {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' fill='var(--forms-color-icon-disabled, %23737373)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E");background-color:var(--forms-color-background-disabled, #d9d9d9);border-color:transparent;cursor:not-allowed;box-shadow:none;color:var(--forms-color-text-disabled, #737373);}.mc-select--readonly.svelte-6nznl5 {border-color:var(--forms-color-border-read-only, #cccccc);pointer-events:none;}.mc-select.is-invalid.svelte-6nznl5 {border-color:var(--forms-color-border-invalid, #ea302d);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid, #ea302d);}.mc-select.is-invalid.svelte-6nznl5:hover {border-color:var(--forms-color-border-invalid-hover, #c61112);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid-hover, #c61112);}.mc-select--s.svelte-6nznl5 {font-size:var(--font-size-100, 0.875rem);line-height:var(--line-height-s, 1.3);height:2rem;padding:0 2rem 0 0.5rem;background-position:right 0.5rem center;}
4
+ /* stylelint-disable string-no-newline */.mc-select.svelte-6nznl5 {appearance:none;font-family:inherit;transition:box-shadow 200ms ease;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);height:3rem;padding:0 3rem 0 0.75rem;background-position:right 1rem center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' fill='var(--forms-color-icon-interactive, %23000000)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E");border:var(--border-width-s, 0.0625rem) solid var(--forms-color-border-default, #666666);display:block;width:100%;color:var(--forms-color-text-default, #000000);background-color:var(--forms-color-background-default, #ffffff);text-overflow:ellipsis;background-repeat:no-repeat;background-size:1rem;border-radius:var(--border-radius-s, 0.25rem);}.mc-select.svelte-6nznl5:hover {border-color:var(--forms-color-border-hover, #4d4d4d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);}.mc-select.svelte-6nznl5: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-select.svelte-6nznl5:disabled {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' fill='var(--forms-color-icon-disabled, %23737373)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E");background-color:var(--forms-color-background-disabled, #d9d9d9);border-color:transparent;cursor:not-allowed;box-shadow:none;color:var(--forms-color-text-disabled, #737373);}.mc-select--readonly.svelte-6nznl5 {border-color:var(--forms-color-border-read-only, #cccccc);pointer-events:none;}.mc-select.is-invalid.svelte-6nznl5 {border-color:var(--forms-color-border-invalid, #ea302d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid, #ea302d);}.mc-select.is-invalid.svelte-6nznl5:hover {border-color:var(--forms-color-border-invalid-hover, #c61112);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid-hover, #c61112);}.mc-select--s.svelte-6nznl5 {font-size:var(--font-size-100, 0.875rem);line-height:var(--line-height-s, 1.3);height:2rem;padding:0 2rem 0 0.5rem;background-position:right 0.5rem center;}
5
5
 
6
- /* stylelint-enable string-no-newline */`};function U(z,r){A(r,!0),D(z,T);let d=a(r,"id",7),c=a(r,"name",7),v=a(r,"value",7),i=a(r,"placeholder",7),m=a(r,"size",7,"m"),u=a(r,"isinvalid",7),f=a(r,"disabled",7),b=a(r,"readonly",7),h=a(r,"options",7);var B={get id(){return d()},set id(e){d(e),t()},get name(){return c()},set name(e){c(e),t()},get value(){return v()},set value(e){v(e),t()},get placeholder(){return i()},set placeholder(e){i(e),t()},get size(){return m()},set size(e="m"){m(e),t()},get isinvalid(){return u()},set isinvalid(e){u(e),t()},get disabled(){return f()},set disabled(e){f(e),t()},get readonly(){return b()},set readonly(e){b(e),t()},get options(){return h()},set options(e){h(e),t()}},l=R(),y=g(l);{var L=e=>{var o=P(),s=g(o);w(o),o.value=o.__value="",p(()=>E(s,`-- ${i()??""} --`)),x(e,o)};I(y,e=>{i()&&e(L)})}var M=F(y);return J(M,17,h,K,(e,o)=>{var s=Q(),S=g(s,!0);w(s);var k={};p(()=>{s.disabled=n(o).disabled,E(S,n(o).text),k!==(k=n(o).value)&&(s.value=(s.__value=n(o).value)??"")}),x(e,s)}),w(l),p(()=>{C(l,"id",d()),G(l,1,H(["mc-select",`mc-select--${m()}`,b()&&"mc-select--readonly",u()&&"is-invalid"]),"svelte-6nznl5"),C(l,"name",c()),l.disabled=f()}),N(l,v),x(z,l),q(B)}customElements.define("m-select",j(U,{options:{attribute:"options",type:"Array"},id:{},name:{},value:{},placeholder:{},size:{},isinvalid:{},disabled:{},readonly:{}},[],[],!0,O));
6
+ /* stylelint-enable string-no-newline */`};function U(z,r){A(r,!0),D(z,T);let d=a(r,"id",7),c=a(r,"name",7),v=a(r,"value",15),i=a(r,"placeholder",7),m=a(r,"size",7,"m"),u=a(r,"isinvalid",7),f=a(r,"disabled",7),b=a(r,"readonly",7),h=a(r,"options",7);var B={get id(){return d()},set id(e){d(e),t()},get name(){return c()},set name(e){c(e),t()},get value(){return v()},set value(e){v(e),t()},get placeholder(){return i()},set placeholder(e){i(e),t()},get size(){return m()},set size(e="m"){m(e),t()},get isinvalid(){return u()},set isinvalid(e){u(e),t()},get disabled(){return f()},set disabled(e){f(e),t()},get readonly(){return b()},set readonly(e){b(e),t()},get options(){return h()},set options(e){h(e),t()}},l=R(),y=g(l);{var L=e=>{var o=P(),s=g(o);_(o),o.value=o.__value="",p(()=>E(s,`-- ${i()??""} --`)),w(e,o)};I(y,e=>{i()&&e(L)})}var M=F(y);return J(M,17,h,K,(e,o)=>{var s=Q(),S=g(s,!0);_(s);var k={};p(()=>{s.disabled=n(o).disabled,E(S,n(o).text),k!==(k=n(o).value)&&(s.value=(s.__value=n(o).value)??"")}),w(e,s)}),_(l),p(()=>{C(l,"id",d()),G(l,1,H(["mc-select",`mc-select--${m()}`,b()&&"mc-select--readonly",u()&&"is-invalid"]),"svelte-6nznl5"),C(l,"name",c()),l.disabled=f()}),N(l,v),w(z,l),q(B)}customElements.define("m-select",j(U,{options:{attribute:"options",type:"Array"},id:{},name:{},value:{},placeholder:{},size:{},isinvalid:{},disabled:{},readonly:{}},[],[],!0,O));
7
7
  //# sourceMappingURL=Select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-select',\n props: {\n options: { type: 'Array', attribute: 'options' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A select component allows users to choose a single option from a predefined list within a native dropdown menu. It helps simplify input by displaying only relevant choices, reducing the need for manual text entry. Select components are commonly used in forms, settings, and filters where structured selection is required.\n */\n interface Props {\n /**\n * A unique identifier for the select, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the select element, used for form submission.\n */\n name?: string;\n /**\n * Define the available choices for the select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: string | number;\n disabled?: boolean;\n }>;\n /**\n * The current value of the select.\n */\n value?: string | number;\n /**\n * Text displayed when the select has no selected value.\n */\n placeholder?: string;\n /**\n * If `true`, the select is marked as invalid.\n */\n isinvalid?: boolean;\n /**\n * If `true`, the select is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the select.\n */\n size?: 's' | 'm';\n /**\n * If `true`, the select is read-only (cannot be edited).\n */\n readonly?: boolean;\n }\n\n let {\n id,\n name,\n value,\n placeholder,\n size = 'm',\n isinvalid,\n disabled,\n readonly,\n options,\n }: Props = $props();\n</script>\n\n<select\n {id}\n class={[\n 'mc-select',\n `mc-select--${size}`,\n readonly && 'mc-select--readonly',\n isinvalid && 'is-invalid',\n ]}\n {name}\n {disabled}\n bind:value\n>\n {#if placeholder}\n <option value=\"\" disabled selected>\n -- {placeholder} --\n </option>\n {/if}\n\n {#each options as option}\n <option disabled={option.disabled} value={option.value}>\n {option.text}\n </option>\n {/each}\n</select>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/select';\n</style>\n"],"names":["id","$.prop","$$props","name","value","placeholder","size","isinvalid","disabled","readonly","options","$$render","consequent","$.each","node_1","option","option_2","$.get","$.set_text","text_1","option_2_value","customElementForwardEvents"],"mappings":";;;;;0DAAA,oBA4DIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJE,EAAKH,EAAAC,EAAA,QAAA,CAAA,EACLG,EAAWJ,EAAAC,EAAA,cAAA,CAAA,EACXI,eAAO,GAAG,EACVC,EAASN,EAAAC,EAAA,YAAA,CAAA,EACTM,EAAQP,EAAAC,EAAA,WAAA,CAAA,EACRO,EAAQR,EAAAC,EAAA,WAAA,CAAA,EACRQ,EAAOT,EAAAC,EAAA,UAAA,CAAA,2OAJA,IAAG,mTAsBJG,KAAW,EAAA,KAAA,CAAA,kBAFdA,EAAW,GAAAM,EAAAC,CAAA,eAMTC,OAAAA,EAAAC,EAAA,GAAAJ,OAAWK,IAAM,0CACJC,EAAA,SAAAC,EAAAF,CAAM,EAAC,SACtBG,EAAAC,EAAAF,EAAAF,CAAM,EAAC,IAAI,EAD4BK,KAAAA,EAAAH,EAAAF,CAAM,EAAC,SAAPC,EAAA,OAAAA,EAAA,QAAAC,EAAAF,CAAM,EAAC,QAAK,kDAhBtD,0BACcT,EAAI,CAAA,GAClBG,EAAQ,GAAI,sBACZF,KAAa,mFARjB,+KAhEYc"}
1
+ {"version":3,"file":"Select.js","sources":["../../../src/components/select/Select.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-select',\n props: {\n options: { type: 'Array', attribute: 'options' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A select component allows users to choose a single option from a predefined list within a native dropdown menu. It helps simplify input by displaying only relevant choices, reducing the need for manual text entry. Select components are commonly used in forms, settings, and filters where structured selection is required.\n */\n interface Props {\n /**\n * A unique identifier for the select, used to associate the label with the form element.\n */\n id: string;\n /**\n * The name attribute for the select element, used for form submission.\n */\n name?: string;\n /**\n * Define the available choices for the select element.\n */\n options: Array<{\n id?: string;\n text: string;\n value: string | number;\n disabled?: boolean;\n }>;\n /**\n * The current value of the select.\n */\n value?: string | number;\n /**\n * Text displayed when the select has no selected value.\n */\n placeholder?: string;\n /**\n * If `true`, the select is marked as invalid.\n */\n isinvalid?: boolean;\n /**\n * If `true`, the select is disabled and non-interactive.\n */\n disabled?: boolean;\n /**\n * Determines the size of the select.\n */\n size?: 's' | 'm';\n /**\n * If `true`, the select is read-only (cannot be edited).\n */\n readonly?: boolean;\n }\n\n let {\n id,\n name,\n value = $bindable(),\n placeholder,\n size = 'm',\n isinvalid,\n disabled,\n readonly,\n options,\n }: Props = $props();\n</script>\n\n<select\n {id}\n class={[\n 'mc-select',\n `mc-select--${size}`,\n readonly && 'mc-select--readonly',\n isinvalid && 'is-invalid',\n ]}\n {name}\n {disabled}\n bind:value\n>\n {#if placeholder}\n <option value=\"\" disabled selected>\n -- {placeholder} --\n </option>\n {/if}\n\n {#each options as option, index (index)}\n <option disabled={option.disabled} value={option.value}>\n {option.text}\n </option>\n {/each}\n</select>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/select';\n</style>\n"],"names":["id","$.prop","$$props","name","value","placeholder","size","isinvalid","disabled","readonly","options","$$render","consequent","$.each","node_1","option","option_2","$.get","$.set_text","text_1","option_2_value","customElementForwardEvents"],"mappings":";;;;;0DAAA,oBA4DIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EACJE,EAAKH,EAAAC,EAAA,QAAA,EAAA,EACLG,EAAWJ,EAAAC,EAAA,cAAA,CAAA,EACXI,eAAO,GAAG,EACVC,EAASN,EAAAC,EAAA,YAAA,CAAA,EACTM,EAAQP,EAAAC,EAAA,WAAA,CAAA,EACRO,EAAQR,EAAAC,EAAA,WAAA,CAAA,EACRQ,EAAOT,EAAAC,EAAA,UAAA,CAAA,2OAJA,IAAG,mTAsBJG,KAAW,EAAA,KAAA,CAAA,kBAFdA,EAAW,GAAAM,EAAAC,CAAA,eAMTC,OAAAA,EAAAC,EAAA,GAAAJ,OAAWK,IAAM,0CACJC,EAAA,SAAAC,EAAAF,CAAM,EAAC,SACtBG,EAAAC,EAAAF,EAAAF,CAAM,EAAC,IAAI,EAD4BK,KAAAA,EAAAH,EAAAF,CAAM,EAAC,SAAPC,EAAA,OAAAA,EAAA,QAAAC,EAAAF,CAAM,EAAC,QAAK,kDAhBtD,0BACcT,EAAI,CAAA,GAClBG,EAAQ,GAAI,sBACZF,KAAa,mFARjB,+KAhEYc"}
@@ -60,7 +60,7 @@
60
60
  let {
61
61
  id,
62
62
  name,
63
- value,
63
+ value = $bindable(),
64
64
  placeholder,
65
65
  size = 'm',
66
66
  isinvalid,
@@ -88,7 +88,7 @@
88
88
  </option>
89
89
  {/if}
90
90
 
91
- {#each options as option}
91
+ {#each options as option, index (index)}
92
92
  <option disabled={option.disabled} value={option.value}>
93
93
  {option.text}
94
94
  </option>
@@ -109,8 +109,7 @@
109
109
  padding: 0 3rem 0 0.75rem;
110
110
  background-position: right 1rem center;
111
111
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' fill='var(--forms-color-icon-interactive, %23000000)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E");
112
- border: var(--border-s, 1px) solid var(--forms-color-border-default, #666666);
113
- border-radius: var(--radius-s, 0.25rem);
112
+ border: var(--border-width-s, 0.0625rem) solid var(--forms-color-border-default, #666666);
114
113
  display: block;
115
114
  width: 100%;
116
115
  color: var(--forms-color-text-default, #000000);
@@ -118,10 +117,11 @@
118
117
  text-overflow: ellipsis;
119
118
  background-repeat: no-repeat;
120
119
  background-size: 1rem;
120
+ border-radius: var(--border-radius-s, 0.25rem);
121
121
  }
122
122
  .mc-select:hover {
123
123
  border-color: var(--forms-color-border-hover, #4d4d4d);
124
- box-shadow: 0 0 0 var(--border-s, 1px) var(--forms-color-border-hover, #4d4d4d);
124
+ box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);
125
125
  }
126
126
  .mc-select:focus {
127
127
  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));
@@ -142,11 +142,11 @@
142
142
  }
143
143
  .mc-select.is-invalid {
144
144
  border-color: var(--forms-color-border-invalid, #ea302d);
145
- box-shadow: 0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid, #ea302d);
145
+ box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid, #ea302d);
146
146
  }
147
147
  .mc-select.is-invalid:hover {
148
148
  border-color: var(--forms-color-border-invalid-hover, #c61112);
149
- box-shadow: 0 0 0 var(--border-s, 1px) var(--forms-color-border-invalid-hover, #c61112);
149
+ box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid-hover, #c61112);
150
150
  }
151
151
  .mc-select--s {
152
152
  font-size: var(--font-size-100, 0.875rem);
@@ -44,7 +44,7 @@ interface Props {
44
44
  */
45
45
  readonly?: boolean;
46
46
  }
47
- declare const Select: import("svelte").Component<Props, {}, "">;
47
+ declare const Select: import("svelte").Component<Props, {}, "value">;
48
48
  type Select = ReturnType<typeof Select>;
49
49
  export default Select;
50
50
  //# sourceMappingURL=Select.svelte.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.svelte.ts"],"names":[],"mappings":"AAKE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiDH,QAAA,MAAM,MAAM,2CAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Select.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.svelte.ts"],"names":[],"mappings":"AAKE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiDH,QAAA,MAAM,MAAM,gDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -1,4 +1,4 @@
1
- import{c as f,p as v,a as m,b as l,f as p,d as u,s as h,t as k,i as y,j as w,k as n,r as b,e as _,g as x,h as S}from"../../custom-element.js";import{S as z}from"../statusdot/StatusDot.js";var D=p('<div><!> <span class="mc-status-badge__label svelte-1oceydf"> </span></div>');const j={hash:"svelte-1oceydf",code:`/**
1
+ import{c as f,p as m,a as v,b as l,f as h,d as u,s as k,t as p,i as y,j as w,k as b,r as n,e as _,g as x,h as S}from"../../custom-element.js";import{S as z}from"../statusdot/StatusDot.js";var D=h('<div><!> <span class="mc-status-badge__label svelte-1oceydf"> </span></div>');const j={hash:"svelte-1oceydf",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */.mc-status-badge.svelte-1oceydf {background-color:var(--status-badge-color-background-information, #e1f3f9);border:var(--border-s, 1px) solid var(--status-badge-color-border-information, #a7d9ed);border-radius:var(--radius-s, 0.25rem);font-weight:var(--font-weight-regular, 400);font-size:var(--font-size-100, 0.875rem);display:inline-flex;align-items:center;gap:0.25rem;padding-right:0.5rem;padding-left:0.5rem;text-transform:lowercase;white-space:nowrap;min-height:1.5rem;}.mc-status-badge__label.svelte-1oceydf {color:var(--status-badge-color-label, #000000);}.mc-status-badge__label.svelte-1oceydf::first-letter {text-transform:uppercase;}.mc-status-badge--success.svelte-1oceydf {background-color:var(--status-badge-color-background-success, #ebf5de);border:var(--border-s, 1px) solid var(--status-badge-color-border-success, #c5e39e);}.mc-status-badge--error.svelte-1oceydf {background-color:var(--status-badge-color-background-error, #fdeaea);border:var(--border-s, 1px) solid var(--status-badge-color-border-error, #f8bcbb);}.mc-status-badge--warning.svelte-1oceydf {background-color:var(--status-badge-color-background-warning, #fdf1e8);border:var(--border-s, 1px) solid var(--status-badge-color-border-warning, #f8d2b3);}.mc-status-badge--neutral.svelte-1oceydf {background-color:var(--status-badge-color-background-neutral, #f2f2f2);border:var(--border-s, 1px) solid var(--status-badge-color-border-neutral, #cccccc);}.mc-status-dot.svelte-1oceydf {background-color:var(--status-dot-color-background-information, #0b96cc);height:0.5rem;width:0.5rem;border-radius:var(--radius-full, 100%);display:inline-block;}.mc-status-dot--s.svelte-1oceydf {height:0.25rem;width:0.25rem;}.mc-status-dot--l.svelte-1oceydf {height:1rem;width:1rem;}.mc-status-dot--success.svelte-1oceydf {background-color:var(--status-dot-color-background-success, #3f9e10);}.mc-status-dot--error.svelte-1oceydf {background-color:var(--status-dot-color-background-error, #ea302d);}.mc-status-dot--warning.svelte-1oceydf {background-color:var(--status-dot-color-background-warning, #ea7315);}.mc-status-dot--neutral.svelte-1oceydf {background-color:var(--status-dot-color-background-neutral, #808080);}`};function B(o,r){v(r,!0),m(o,j);let e=l(r,"status",7,"info"),a=l(r,"label",7);var g={get status(){return e()},set status(s="info"){e(s),n()},get label(){return a()},set label(s){a(s),n()}},t=D(),d=u(t);z(d,{get status(){return e()},size:"m"});var c=h(d,2),i=u(c,!0);return b(c),b(t),k(()=>{_(t,1,x(["mc-status-badge",`mc-status-badge--${e()}`]),"svelte-1oceydf"),S(i,a())}),y(o,t),w(g)}customElements.define("m-status-badge",f(B,{status:{},label:{}},[],[],!0));
3
+ */.mc-status-badge.svelte-1oceydf {background-color:var(--status-badge-color-background-info, #e1f3f9);border:var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-info, #a7d9ed);font-weight:var(--font-weight-regular, 400);font-size:var(--font-size-100, 0.875rem);display:inline-flex;align-items:center;gap:0.25rem;border-radius:var(--border-radius-s, 0.25rem);padding-right:0.5rem;padding-left:0.5rem;text-transform:lowercase;white-space:nowrap;min-height:1.5rem;}.mc-status-badge__label.svelte-1oceydf {color:var(--status-badge-color-label, #000000);}.mc-status-badge__label.svelte-1oceydf::first-letter {text-transform:uppercase;}.mc-status-badge--success.svelte-1oceydf {background-color:var(--status-badge-color-background-success, #ebf5de);border:var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-success, #c5e39e);}.mc-status-badge--error.svelte-1oceydf {background-color:var(--status-badge-color-background-error, #fdeaea);border:var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-error, #f8bcbb);}.mc-status-badge--warning.svelte-1oceydf {background-color:var(--status-badge-color-background-warning, #fdf1e8);border:var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-warning, #f8d2b3);}.mc-status-badge--neutral.svelte-1oceydf {background-color:var(--status-badge-color-background-neutral, #f2f2f2);border:var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-neutral, #cccccc);}.mc-status-dot.svelte-1oceydf {background-color:var(--status-dot-color-background-info, #0b96cc);height:0.5rem;width:0.5rem;border-radius:var(--border-radius-full, 100%);display:inline-block;}.mc-status-dot--s.svelte-1oceydf {height:0.25rem;width:0.25rem;}.mc-status-dot--l.svelte-1oceydf {height:1rem;width:1rem;}.mc-status-dot--success.svelte-1oceydf {background-color:var(--status-dot-color-background-success, #3f9e10);}.mc-status-dot--error.svelte-1oceydf {background-color:var(--status-dot-color-background-error, #ea302d);}.mc-status-dot--warning.svelte-1oceydf {background-color:var(--status-dot-color-background-warning, #ea7315);}.mc-status-dot--neutral.svelte-1oceydf {background-color:var(--status-dot-color-background-neutral, #808080);}`};function B(o,t){m(t,!0),v(o,j);let e=l(t,"status",7,"info"),a=l(t,"label",7);var g={get status(){return e()},set status(s="info"){e(s),b()},get label(){return a()},set label(s){a(s),b()}},r=D(),d=u(r);z(d,{get status(){return e()},size:"m"});var c=k(d,2),i=u(c,!0);return n(c),n(r),p(()=>{_(r,1,x(["mc-status-badge",`mc-status-badge--${e()}`]),"svelte-1oceydf"),S(i,a())}),y(o,r),w(g)}customElements.define("m-status-badge",f(B,{status:{},label:{}},[],[],!0));
4
4
  //# sourceMappingURL=StatusBadge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusBadge.js","sources":["../../../src/components/statusbadge/StatusBadge.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-status-badge' }} />\n\n<script lang=\"ts\">\n import StatusDot from '../statusdot/StatusDot.svelte';\n /**\n * A Status Badge is used to indicate the current status of an element, providing a clear and concise visual cue. The status can change dynamically based on updates, events, or conditions within the system. Status Badges help users quickly identify the state of an item, such as an order status, system health, or process completion. They are often color-coded to enhance readability and recognition.\n */\n interface Props {\n /**\n * Content of the status badge.\n */\n label: string;\n /**\n * Allows to define the status badge type.\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n }\n\n let { status = 'info', label }: Props = $props();\n</script>\n\n<div class={['mc-status-badge', `mc-status-badge--${status}`]}>\n <StatusDot {status} size=\"m\" />\n <span class=\"mc-status-badge__label\">{label}</span>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/status-badge';\n @use '@mozaic-ds/styles/components/status-dot';\n</style>\n"],"names":["status","label","$.prop","$$props","$.set_class","div","$.clsx"],"mappings":";;wpEAAA,gBAkBQ,IAAAA,iBAAS,MAAM,EAAEC,EAAKC,EAAAC,EAAA,QAAA,CAAA,+CAAb,OAAM,gKAGVC,EAAAC,EAAA,EAAAC,EAAA,CAAA,sCAAuCN,EAAM,CAAA,EAAA,CAAA,EAAA,gBAAA,MAElBC,GAAK,eAJ7C"}
1
+ {"version":3,"file":"StatusBadge.js","sources":["../../../src/components/statusbadge/StatusBadge.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-status-badge' }} />\n\n<script lang=\"ts\">\n import StatusDot from '../statusdot/StatusDot.svelte';\n /**\n * A Status Badge is used to indicate the current status of an element, providing a clear and concise visual cue. The status can change dynamically based on updates, events, or conditions within the system. Status Badges help users quickly identify the state of an item, such as an order status, system health, or process completion. They are often color-coded to enhance readability and recognition.\n */\n interface Props {\n /**\n * Content of the status badge.\n */\n label: string;\n /**\n * Allows to define the status badge type.\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n }\n\n let { status = 'info', label }: Props = $props();\n</script>\n\n<div class={['mc-status-badge', `mc-status-badge--${status}`]}>\n <StatusDot {status} size=\"m\" />\n <span class=\"mc-status-badge__label\">{label}</span>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/status-badge';\n @use '@mozaic-ds/styles/components/status-dot';\n</style>\n"],"names":["status","label","$.prop","$$props","$.set_class","div","$.clsx"],"mappings":";;6sEAAA,gBAkBQ,IAAAA,iBAAS,MAAM,EAAEC,EAAKC,EAAAC,EAAA,QAAA,CAAA,+CAAb,OAAM,gKAGVC,EAAAC,EAAA,EAAAC,EAAA,CAAA,sCAAuCN,EAAM,CAAA,EAAA,CAAA,EAAA,gBAAA,MAElBC,GAAK,eAJ7C"}
@@ -28,14 +28,14 @@
28
28
  * Do not edit directly, this file was auto-generated.
29
29
  */
30
30
  .mc-status-badge {
31
- background-color: var(--status-badge-color-background-information, #e1f3f9);
32
- border: var(--border-s, 1px) solid var(--status-badge-color-border-information, #a7d9ed);
33
- border-radius: var(--radius-s, 0.25rem);
31
+ background-color: var(--status-badge-color-background-info, #e1f3f9);
32
+ border: var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-info, #a7d9ed);
34
33
  font-weight: var(--font-weight-regular, 400);
35
34
  font-size: var(--font-size-100, 0.875rem);
36
35
  display: inline-flex;
37
36
  align-items: center;
38
37
  gap: 0.25rem;
38
+ border-radius: var(--border-radius-s, 0.25rem);
39
39
  padding-right: 0.5rem;
40
40
  padding-left: 0.5rem;
41
41
  text-transform: lowercase;
@@ -50,26 +50,26 @@
50
50
  }
51
51
  .mc-status-badge--success {
52
52
  background-color: var(--status-badge-color-background-success, #ebf5de);
53
- border: var(--border-s, 1px) solid var(--status-badge-color-border-success, #c5e39e);
53
+ border: var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-success, #c5e39e);
54
54
  }
55
55
  .mc-status-badge--error {
56
56
  background-color: var(--status-badge-color-background-error, #fdeaea);
57
- border: var(--border-s, 1px) solid var(--status-badge-color-border-error, #f8bcbb);
57
+ border: var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-error, #f8bcbb);
58
58
  }
59
59
  .mc-status-badge--warning {
60
60
  background-color: var(--status-badge-color-background-warning, #fdf1e8);
61
- border: var(--border-s, 1px) solid var(--status-badge-color-border-warning, #f8d2b3);
61
+ border: var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-warning, #f8d2b3);
62
62
  }
63
63
  .mc-status-badge--neutral {
64
64
  background-color: var(--status-badge-color-background-neutral, #f2f2f2);
65
- border: var(--border-s, 1px) solid var(--status-badge-color-border-neutral, #cccccc);
65
+ border: var(--border-width-s, 0.0625rem) solid var(--status-badge-color-border-neutral, #cccccc);
66
66
  }
67
67
 
68
68
  .mc-status-dot {
69
- background-color: var(--status-dot-color-background-information, #0b96cc);
69
+ background-color: var(--status-dot-color-background-info, #0b96cc);
70
70
  height: 0.5rem;
71
71
  width: 0.5rem;
72
- border-radius: var(--radius-full, 100%);
72
+ border-radius: var(--border-radius-full, 100%);
73
73
  display: inline-block;
74
74
  }
75
75
  .mc-status-dot--s {
@@ -1,4 +1,4 @@
1
1
  import{c as l,p as n,a as i,b as c,f as m,t as v,i as p,j as g,k as u,e as b,g as f}from"../../custom-element.js";var h=m("<div></div>");const k={hash:"svelte-14acsp3",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */.mc-status-dot.svelte-14acsp3 {background-color:var(--status-dot-color-background-information, #0b96cc);height:0.5rem;width:0.5rem;border-radius:var(--radius-full, 100%);display:inline-block;}.mc-status-dot--s.svelte-14acsp3 {height:0.25rem;width:0.25rem;}.mc-status-dot--l.svelte-14acsp3 {height:1rem;width:1rem;}.mc-status-dot--success.svelte-14acsp3 {background-color:var(--status-dot-color-background-success, #3f9e10);}.mc-status-dot--error.svelte-14acsp3 {background-color:var(--status-dot-color-background-error, #ea302d);}.mc-status-dot--warning.svelte-14acsp3 {background-color:var(--status-dot-color-background-warning, #ea7315);}.mc-status-dot--neutral.svelte-14acsp3 {background-color:var(--status-dot-color-background-neutral, #808080);}`};function w(o,t){n(t,!0),i(o,k);let s=c(t,"size",7,"m"),a=c(t,"status",7,"info");var d={get size(){return s()},set size(e="m"){s(e),u()},get status(){return a()},set status(e="info"){a(e),u()}},r=h();return v(()=>b(r,1,f(["mc-status-dot",`mc-status-dot--${s()}`,`mc-status-dot--${a()}`]),"svelte-14acsp3")),p(o,r),g(d)}customElements.define("m-status-dot",l(w,{size:{},status:{}},[],[],!0));export{w as S};
3
+ */.mc-status-dot.svelte-14acsp3 {background-color:var(--status-dot-color-background-info, #0b96cc);height:0.5rem;width:0.5rem;border-radius:var(--border-radius-full, 100%);display:inline-block;}.mc-status-dot--s.svelte-14acsp3 {height:0.25rem;width:0.25rem;}.mc-status-dot--l.svelte-14acsp3 {height:1rem;width:1rem;}.mc-status-dot--success.svelte-14acsp3 {background-color:var(--status-dot-color-background-success, #3f9e10);}.mc-status-dot--error.svelte-14acsp3 {background-color:var(--status-dot-color-background-error, #ea302d);}.mc-status-dot--warning.svelte-14acsp3 {background-color:var(--status-dot-color-background-warning, #ea7315);}.mc-status-dot--neutral.svelte-14acsp3 {background-color:var(--status-dot-color-background-neutral, #808080);}`};function w(o,t){n(t,!0),i(o,k);let s=c(t,"size",7,"m"),e=c(t,"status",7,"info");var d={get size(){return s()},set size(a="m"){s(a),u()},get status(){return e()},set status(a="info"){e(a),u()}},r=h();return v(()=>b(r,1,f(["mc-status-dot",`mc-status-dot--${s()}`,`mc-status-dot--${e()}`]),"svelte-14acsp3")),p(o,r),g(d)}customElements.define("m-status-dot",l(w,{size:{},status:{}},[],[],!0));export{w as S};
4
4
  //# sourceMappingURL=StatusDot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusDot.js","sources":["../../../src/components/statusdot/StatusDot.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-status-dot' }} />\n\n<script lang=\"ts\">\n /**\n * A Status dot is a small visual indicator used to represent the state or condition of an element. It is often color-coded to convey different statuses at a glance, such as availability, activity, or urgency. Status Dots are commonly found in user presence indicators, system statuses, or process tracking to provide quick, unobtrusive feedback.\n */\n interface Props {\n /**\n * Allows to define the status dot type.\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n /**\n * Determines the size of the status dot.\n */\n size?: 's' | 'm' | 'l';\n }\n\n let { size = 'm', status = 'info' }: Props = $props();\n</script>\n\n<div\n class={[\n 'mc-status-dot',\n `mc-status-dot--${size}`,\n `mc-status-dot--${status}`,\n ]}\n></div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/status-dot';\n</style>\n"],"names":["size","status"],"mappings":";;mwBAAA,gBAiBQ,IAAAA,eAAO,GAAG,EAAEC,iBAAS,MAAM,2CAApB,IAAG,iDAAW,OAAM,wCAK/B,kCACkBD,EAAI,CAAA,qBACJC,GAAM,mCAN5B"}
1
+ {"version":3,"file":"StatusDot.js","sources":["../../../src/components/statusdot/StatusDot.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-status-dot' }} />\n\n<script lang=\"ts\">\n /**\n * A Status dot is a small visual indicator used to represent the state or condition of an element. It is often color-coded to convey different statuses at a glance, such as availability, activity, or urgency. Status Dots are commonly found in user presence indicators, system statuses, or process tracking to provide quick, unobtrusive feedback.\n */\n interface Props {\n /**\n * Allows to define the status dot type.\n */\n status?: 'info' | 'success' | 'warning' | 'error' | 'neutral';\n /**\n * Determines the size of the status dot.\n */\n size?: 's' | 'm' | 'l';\n }\n\n let { size = 'm', status = 'info' }: Props = $props();\n</script>\n\n<div class={['mc-status-dot', `mc-status-dot--${size}`, `mc-status-dot--${status}`]}></div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/status-dot';\n</style>\n"],"names":["size","status"],"mappings":";;mwBAAA,gBAiBQ,IAAAA,eAAO,GAAG,EAAEC,iBAAS,MAAM,2CAApB,IAAG,iDAAW,OAAM,wCAGtB,kCAAmCD,EAAI,CAAA,qBAAsBC,GAAM,mCAFhF"}
@@ -18,13 +18,7 @@ describe('m-status-dot component', () => {
18
18
  });
19
19
  });
20
20
  it('applies correct status class', () => {
21
- const statuses = [
22
- 'info',
23
- 'success',
24
- 'warning',
25
- 'error',
26
- 'neutral',
27
- ];
21
+ const statuses = ['info', 'success', 'warning', 'error', 'neutral'];
28
22
  statuses.forEach((status) => {
29
23
  const { container } = render(StatusDot, { props: { status } });
30
24
  const dot = container.querySelector('.mc-status-dot');
@@ -18,22 +18,16 @@
18
18
  let { size = 'm', status = 'info' }: Props = $props();
19
19
  </script>
20
20
 
21
- <div
22
- class={[
23
- 'mc-status-dot',
24
- `mc-status-dot--${size}`,
25
- `mc-status-dot--${status}`,
26
- ]}
27
- ></div>
21
+ <div class={['mc-status-dot', `mc-status-dot--${size}`, `mc-status-dot--${status}`]}></div>
28
22
 
29
23
  <style>/**
30
24
  * Do not edit directly, this file was auto-generated.
31
25
  */
32
26
  .mc-status-dot {
33
- background-color: var(--status-dot-color-background-information, #0b96cc);
27
+ background-color: var(--status-dot-color-background-info, #0b96cc);
34
28
  height: 0.5rem;
35
29
  width: 0.5rem;
36
- border-radius: var(--radius-full, 100%);
30
+ border-radius: var(--border-radius-full, 100%);
37
31
  display: inline-block;
38
32
  }
39
33
  .mc-status-dot--s {
@@ -1 +1 @@
1
- {"version":3,"file":"StatusDot.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/statusdot/StatusDot.svelte.ts"],"names":[],"mappings":"AAGE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACxB;AAmBH,QAAA,MAAM,SAAS,2CAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"StatusDot.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/statusdot/StatusDot.svelte.ts"],"names":[],"mappings":"AAGE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACxB;AAeH,QAAA,MAAM,SAAS,2CAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ # `m-status-message`
2
+
3
+ A Status Message is a compact component that combines an icon and concise text to communicate system states or user feedback in limited interface space. The icon and message work together as a unified structure to provide clear, immediate understanding of the current status. Status Messages are designed for contexts where space is constrained but clear communication is essential, offering quick recognition through color-coded icons paired with brief, actionable text.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `status` | Allows to define the status message style. | `'info'` `'success'` `'warning'` `'error'` `'neutral'` `'inprogress'` | `info` |
10
+ | `label*` | Label of the status message. | `string` | |
11
+