@mozaic-ds/web-components 1.2.0 → 1.4.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 (564) hide show
  1. package/dist/Condition20.js +2 -0
  2. package/dist/Condition20.js.map +1 -0
  3. package/dist/accordion-list.state.svelte.js +2 -0
  4. package/dist/accordion-list.state.svelte.js.map +1 -0
  5. package/dist/attributes.js +1 -1
  6. package/dist/attributes.js.map +1 -1
  7. package/dist/bundle.d.ts +11 -0
  8. package/dist/bundle.d.ts.map +1 -1
  9. package/dist/bundle.js +11 -0
  10. package/dist/components/accordionlist/AccordionList.js +50 -0
  11. package/dist/components/accordionlist/AccordionList.js.map +1 -0
  12. package/dist/components/accordionlist/AccordionList.spec.js +40 -0
  13. package/dist/components/accordionlist/AccordionList.stories.d.ts +15 -0
  14. package/dist/components/accordionlist/AccordionList.stories.d.ts.map +1 -0
  15. package/dist/components/accordionlist/AccordionList.stories.js +141 -0
  16. package/dist/components/accordionlist/AccordionList.svelte +441 -0
  17. package/dist/components/accordionlist/AccordionList.svelte.d.ts +47 -0
  18. package/dist/components/accordionlist/AccordionList.svelte.d.ts.map +1 -0
  19. package/dist/components/accordionlist/README.md +18 -0
  20. package/dist/components/accordionlist/accordion-list.state.svelte.d.ts +5 -0
  21. package/dist/components/accordionlist/accordion-list.state.svelte.d.ts.map +1 -0
  22. package/dist/components/accordionlist/accordion-list.state.svelte.js +6 -0
  23. package/dist/components/accordionlistItem/AccordionListItem.js +50 -0
  24. package/dist/components/accordionlistItem/AccordionListItem.js.map +1 -0
  25. package/dist/components/accordionlistItem/AccordionListItem.spec.js +75 -0
  26. package/dist/components/accordionlistItem/AccordionListItem.svelte +463 -0
  27. package/dist/components/accordionlistItem/AccordionListItem.svelte.d.ts +50 -0
  28. package/dist/components/accordionlistItem/AccordionListItem.svelte.d.ts.map +1 -0
  29. package/dist/components/accordionlistItem/README.md +29 -0
  30. package/dist/components/actionbottombar/ActionBottomBar.js +12 -0
  31. package/dist/components/actionbottombar/ActionBottomBar.js.map +1 -0
  32. package/dist/components/actionbottombar/ActionBottomBar.spec.js +20 -0
  33. package/dist/components/actionbottombar/ActionBottomBar.stories.d.ts +19 -0
  34. package/dist/components/actionbottombar/ActionBottomBar.stories.d.ts.map +1 -0
  35. package/dist/components/actionbottombar/ActionBottomBar.stories.js +131 -0
  36. package/dist/components/actionbottombar/ActionBottomBar.svelte +113 -0
  37. package/dist/components/actionbottombar/ActionBottomBar.svelte.d.ts +43 -0
  38. package/dist/components/actionbottombar/ActionBottomBar.svelte.d.ts.map +1 -0
  39. package/dist/components/actionbottombar/README.md +19 -0
  40. package/dist/components/actionlistbox/ActionListbox.js +10 -0
  41. package/dist/components/actionlistbox/ActionListbox.js.map +1 -0
  42. package/dist/components/actionlistbox/ActionListbox.spec.js +20 -0
  43. package/dist/components/actionlistbox/ActionListbox.stories.d.ts +12 -0
  44. package/dist/components/actionlistbox/ActionListbox.stories.d.ts.map +1 -0
  45. package/dist/components/actionlistbox/ActionListbox.stories.js +49 -0
  46. package/dist/components/actionlistbox/ActionListbox.svelte +213 -0
  47. package/dist/components/actionlistbox/ActionListbox.svelte.d.ts +37 -0
  48. package/dist/components/actionlistbox/ActionListbox.svelte.d.ts.map +1 -0
  49. package/dist/components/actionlistbox/README.md +23 -0
  50. package/dist/components/actionlistboxitem/ActionListboxItem.js +4 -0
  51. package/dist/components/actionlistboxitem/ActionListboxItem.js.map +1 -0
  52. package/dist/components/actionlistboxitem/ActionListboxItem.spec.js +37 -0
  53. package/dist/components/actionlistboxitem/ActionListboxItem.svelte +136 -0
  54. package/dist/components/actionlistboxitem/ActionListboxItem.svelte.d.ts +43 -0
  55. package/dist/components/actionlistboxitem/ActionListboxItem.svelte.d.ts.map +1 -0
  56. package/dist/components/actionlistboxitem/README.md +20 -0
  57. package/dist/components/avatar/Avatar.js +2 -2
  58. package/dist/components/avatar/Avatar.js.map +1 -1
  59. package/dist/components/avatar/Avatar.stories.d.ts +2 -1
  60. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  61. package/dist/components/avatar/Avatar.stories.js +3 -2
  62. package/dist/components/avatar/Avatar.svelte +14 -4
  63. package/dist/components/avatar/Avatar.svelte.d.ts +7 -1
  64. package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -1
  65. package/dist/components/avatar/README.md +2 -1
  66. package/dist/components/breadcrumb/Breadcrumb.js +2 -2
  67. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  68. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts +1 -0
  69. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  70. package/dist/components/breadcrumb/Breadcrumb.stories.js +1 -0
  71. package/dist/components/breadcrumb/Breadcrumb.svelte +3 -2
  72. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts +1 -0
  73. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  74. package/dist/components/builtinmenu/BuiltInMenu.js +4 -0
  75. package/dist/components/builtinmenu/BuiltInMenu.js.map +1 -0
  76. package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts +11 -0
  77. package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts.map +1 -0
  78. package/dist/components/builtinmenu/BuiltInMenu.stories.js +61 -0
  79. package/dist/components/builtinmenu/BuiltInMenu.svelte +142 -0
  80. package/dist/components/builtinmenu/BuiltInMenu.svelte.d.ts +41 -0
  81. package/dist/components/builtinmenu/BuiltInMenu.svelte.d.ts.map +1 -0
  82. package/dist/components/builtinmenu/BuiltinMenu.spec.js +19 -0
  83. package/dist/components/builtinmenu/README.md +18 -0
  84. package/dist/components/builtinmenuitem/BuiltInMenuItem.js +8 -0
  85. package/dist/components/builtinmenuitem/BuiltInMenuItem.js.map +1 -0
  86. package/dist/components/builtinmenuitem/BuiltInMenuItem.spec.js +36 -0
  87. package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte +165 -0
  88. package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte.d.ts +50 -0
  89. package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte.d.ts.map +1 -0
  90. package/dist/components/builtinmenuitem/README.md +20 -0
  91. package/dist/components/button/Button.js +2 -2
  92. package/dist/components/button/Button.js.map +1 -1
  93. package/dist/components/button/Button.stories.d.ts +14 -1
  94. package/dist/components/button/Button.stories.d.ts.map +1 -1
  95. package/dist/components/button/Button.stories.js +146 -6
  96. package/dist/components/button/Button.svelte +43 -16
  97. package/dist/components/button/Button.svelte.d.ts +9 -0
  98. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  99. package/dist/components/button/README.md +2 -2
  100. package/dist/components/callout/Callout.js +2 -2
  101. package/dist/components/callout/Callout.js.map +1 -1
  102. package/dist/components/callout/Callout.spec.js +4 -1
  103. package/dist/components/callout/Callout.stories.d.ts +5 -2
  104. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  105. package/dist/components/callout/Callout.stories.js +5 -2
  106. package/dist/components/callout/Callout.svelte +40 -5
  107. package/dist/components/callout/Callout.svelte.d.ts +14 -0
  108. package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
  109. package/dist/components/callout/README.md +3 -0
  110. package/dist/components/carousel/Carousel.js +4 -0
  111. package/dist/components/carousel/Carousel.js.map +1 -0
  112. package/dist/components/carousel/Carousel.spec.js +49 -0
  113. package/dist/components/carousel/Carousel.stories.d.ts +9 -0
  114. package/dist/components/carousel/Carousel.stories.d.ts.map +1 -0
  115. package/dist/components/carousel/Carousel.stories.js +73 -0
  116. package/dist/components/carousel/Carousel.svelte +211 -0
  117. package/dist/components/carousel/Carousel.svelte.d.ts +56 -0
  118. package/dist/components/carousel/Carousel.svelte.d.ts.map +1 -0
  119. package/dist/components/carousel/README.md +20 -0
  120. package/dist/components/checkbox/Checkbox.js +3 -3
  121. package/dist/components/checkbox/Checkbox.js.map +1 -1
  122. package/dist/components/checkbox/Checkbox.stories.d.ts +1 -0
  123. package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
  124. package/dist/components/checkbox/Checkbox.stories.js +6 -5
  125. package/dist/components/checkbox/Checkbox.svelte +7 -0
  126. package/dist/components/checkbox/Checkbox.svelte.d.ts +1 -0
  127. package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
  128. package/dist/components/checkboxgroup/CheckboxGroup.js +4 -4
  129. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  130. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +1 -0
  131. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
  132. package/dist/components/checkboxgroup/CheckboxGroup.stories.js +3 -2
  133. package/dist/components/checkboxgroup/CheckboxGroup.svelte +5 -2
  134. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts +1 -0
  135. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
  136. package/dist/components/checklistmenu/CheckListMenu.js +4 -0
  137. package/dist/components/checklistmenu/CheckListMenu.js.map +1 -0
  138. package/dist/components/checklistmenu/CheckListMenu.spec.js +33 -0
  139. package/dist/components/checklistmenu/CheckListMenu.stories.d.ts +8 -0
  140. package/dist/components/checklistmenu/CheckListMenu.stories.d.ts.map +1 -0
  141. package/dist/components/checklistmenu/CheckListMenu.stories.js +32 -0
  142. package/dist/components/checklistmenu/CheckListMenu.svelte +79 -0
  143. package/dist/components/checklistmenu/CheckListMenu.svelte.d.ts +27 -0
  144. package/dist/components/checklistmenu/CheckListMenu.svelte.d.ts.map +1 -0
  145. package/dist/components/checklistmenu/README.md +12 -0
  146. package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
  147. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  148. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +1 -0
  149. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
  150. package/dist/components/circularprogressbar/CircularProgressbar.stories.js +1 -0
  151. package/dist/components/container/Container.js +2 -2
  152. package/dist/components/container/Container.js.map +1 -1
  153. package/dist/components/container/Container.stories.d.ts +1 -0
  154. package/dist/components/container/Container.stories.d.ts.map +1 -1
  155. package/dist/components/container/Container.stories.js +2 -3
  156. package/dist/components/container/Container.svelte +19 -3
  157. package/dist/components/container/Container.svelte.d.ts +5 -0
  158. package/dist/components/container/Container.svelte.d.ts.map +1 -1
  159. package/dist/components/container/README.md +1 -0
  160. package/dist/components/datepicker/Datepicker.js +3 -3
  161. package/dist/components/datepicker/Datepicker.js.map +1 -1
  162. package/dist/components/datepicker/Datepicker.stories.d.ts +1 -0
  163. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  164. package/dist/components/datepicker/Datepicker.stories.js +6 -4
  165. package/dist/components/datepicker/Datepicker.svelte +17 -3
  166. package/dist/components/datepicker/Datepicker.svelte.d.ts +1 -0
  167. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  168. package/dist/components/divider/Divider.js +2 -2
  169. package/dist/components/divider/Divider.js.map +1 -1
  170. package/dist/components/divider/Divider.stories.d.ts +1 -0
  171. package/dist/components/divider/Divider.stories.d.ts.map +1 -1
  172. package/dist/components/divider/Divider.stories.js +1 -0
  173. package/dist/components/divider/Divider.svelte +19 -3
  174. package/dist/components/divider/Divider.svelte.d.ts +6 -0
  175. package/dist/components/divider/Divider.svelte.d.ts.map +1 -1
  176. package/dist/components/divider/README.md +1 -0
  177. package/dist/components/drawer/Drawer.js +2 -2
  178. package/dist/components/drawer/Drawer.js.map +1 -1
  179. package/dist/components/drawer/Drawer.stories.d.ts +2 -0
  180. package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
  181. package/dist/components/drawer/Drawer.stories.js +5 -3
  182. package/dist/components/drawer/Drawer.svelte +47 -9
  183. package/dist/components/drawer/Drawer.svelte.d.ts +10 -0
  184. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  185. package/dist/components/drawer/README.md +2 -0
  186. package/dist/components/field/Field.js +2 -2
  187. package/dist/components/field/Field.js.map +1 -1
  188. package/dist/components/field/Field.stories.d.ts +2 -0
  189. package/dist/components/field/Field.stories.d.ts.map +1 -1
  190. package/dist/components/field/Field.stories.js +5 -3
  191. package/dist/components/field/Field.svelte +16 -1
  192. package/dist/components/field/Field.svelte.d.ts +5 -0
  193. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  194. package/dist/components/field/README.md +1 -0
  195. package/dist/components/fileuploader/FileUploader.js +4 -0
  196. package/dist/components/fileuploader/FileUploader.js.map +1 -0
  197. package/dist/components/fileuploader/FileUploader.spec.js +134 -0
  198. package/dist/components/fileuploader/FileUploader.stories.d.ts +17 -0
  199. package/dist/components/fileuploader/FileUploader.stories.d.ts.map +1 -0
  200. package/dist/components/fileuploader/FileUploader.stories.js +172 -0
  201. package/dist/components/fileuploader/FileUploader.svelte +816 -0
  202. package/dist/components/fileuploader/FileUploader.svelte.d.ts +125 -0
  203. package/dist/components/fileuploader/FileUploader.svelte.d.ts.map +1 -0
  204. package/dist/components/fileuploader/README.md +42 -0
  205. package/dist/components/fileuploaderitem/FileUploaderItem.js +5 -0
  206. package/dist/components/fileuploaderitem/FileUploaderItem.js.map +1 -0
  207. package/dist/components/fileuploaderitem/FileUploaderItem.spec.js +41 -0
  208. package/dist/components/fileuploaderitem/FileUploaderItem.svelte +298 -0
  209. package/dist/components/fileuploaderitem/FileUploaderItem.svelte.d.ts +62 -0
  210. package/dist/components/fileuploaderitem/FileUploaderItem.svelte.d.ts.map +1 -0
  211. package/dist/components/fileuploaderitem/README.md +24 -0
  212. package/dist/components/flag/Flag.js +2 -2
  213. package/dist/components/flag/Flag.js.map +1 -1
  214. package/dist/components/flag/Flag.stories.d.ts +1 -0
  215. package/dist/components/flag/Flag.stories.d.ts.map +1 -1
  216. package/dist/components/flag/Flag.stories.js +1 -0
  217. package/dist/components/flag/Flag.svelte +3 -2
  218. package/dist/components/flag/Flag.svelte.d.ts +1 -0
  219. package/dist/components/flag/Flag.svelte.d.ts.map +1 -1
  220. package/dist/components/iconbutton/IconButton.js +2 -2
  221. package/dist/components/iconbutton/IconButton.js.map +1 -1
  222. package/dist/components/iconbutton/IconButton.stories.d.ts +14 -6
  223. package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
  224. package/dist/components/iconbutton/IconButton.stories.js +114 -9
  225. package/dist/components/iconbutton/IconButton.svelte +34 -2
  226. package/dist/components/iconbutton/IconButton.svelte.d.ts +9 -0
  227. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  228. package/dist/components/iconbutton/README.md +2 -0
  229. package/dist/components/kpiitem/KpiItem.js +2 -2
  230. package/dist/components/kpiitem/KpiItem.js.map +1 -1
  231. package/dist/components/kpiitem/KpiItem.stories.d.ts +1 -0
  232. package/dist/components/kpiitem/KpiItem.stories.d.ts.map +1 -1
  233. package/dist/components/kpiitem/KpiItem.stories.js +2 -0
  234. package/dist/components/kpiitem/KpiItem.svelte +4 -5
  235. package/dist/components/kpiitem/KpiItem.svelte.d.ts +1 -0
  236. package/dist/components/kpiitem/KpiItem.svelte.d.ts.map +1 -1
  237. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
  238. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  239. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +1 -0
  240. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
  241. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +1 -0
  242. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +3 -1
  243. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts +1 -0
  244. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
  245. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
  246. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  247. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +1 -0
  248. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
  249. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +1 -0
  250. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +3 -1
  251. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts +1 -0
  252. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts.map +1 -1
  253. package/dist/components/link/Link.js +2 -2
  254. package/dist/components/link/Link.js.map +1 -1
  255. package/dist/components/link/Link.stories.d.ts +3 -0
  256. package/dist/components/link/Link.stories.d.ts.map +1 -1
  257. package/dist/components/link/Link.stories.js +6 -3
  258. package/dist/components/link/Link.svelte +40 -8
  259. package/dist/components/link/Link.svelte.d.ts +10 -0
  260. package/dist/components/link/Link.svelte.d.ts.map +1 -1
  261. package/dist/components/link/README.md +2 -1
  262. package/dist/components/loader/Loader.js +2 -2
  263. package/dist/components/loader/Loader.js.map +1 -1
  264. package/dist/components/loader/Loader.stories.d.ts +1 -0
  265. package/dist/components/loader/Loader.stories.d.ts.map +1 -1
  266. package/dist/components/loader/Loader.stories.js +1 -0
  267. package/dist/components/loader/Loader.svelte +3 -1
  268. package/dist/components/loader/Loader.svelte.d.ts +1 -0
  269. package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
  270. package/dist/components/loadingoverlay/LoadingOverlay.js +2 -2
  271. package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -1
  272. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +1 -0
  273. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -1
  274. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +2 -1
  275. package/dist/components/loadingoverlay/LoadingOverlay.svelte +11 -3
  276. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts +1 -0
  277. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts.map +1 -1
  278. package/dist/components/modal/Modal.js +2 -2
  279. package/dist/components/modal/Modal.js.map +1 -1
  280. package/dist/components/modal/Modal.stories.d.ts +5 -2
  281. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  282. package/dist/components/modal/Modal.stories.js +7 -4
  283. package/dist/components/modal/Modal.svelte +63 -8
  284. package/dist/components/modal/Modal.svelte.d.ts +18 -0
  285. package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
  286. package/dist/components/modal/README.md +4 -0
  287. package/dist/components/numberbadge/NumberBadge.js +2 -2
  288. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  289. package/dist/components/numberbadge/NumberBadge.stories.d.ts +1 -0
  290. package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
  291. package/dist/components/numberbadge/NumberBadge.stories.js +1 -0
  292. package/dist/components/numberbadge/NumberBadge.svelte +6 -2
  293. package/dist/components/numberbadge/NumberBadge.svelte.d.ts +1 -0
  294. package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
  295. package/dist/components/overlay/Overlay.js +2 -2
  296. package/dist/components/overlay/Overlay.js.map +1 -1
  297. package/dist/components/overlay/Overlay.stories.d.ts +1 -0
  298. package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
  299. package/dist/components/overlay/Overlay.stories.js +2 -1
  300. package/dist/components/overlay/Overlay.svelte +19 -3
  301. package/dist/components/overlay/Overlay.svelte.d.ts +5 -0
  302. package/dist/components/overlay/Overlay.svelte.d.ts.map +1 -1
  303. package/dist/components/overlay/README.md +1 -0
  304. package/dist/components/pagination/Pagination.js +8 -8
  305. package/dist/components/pagination/Pagination.js.map +1 -1
  306. package/dist/components/pagination/Pagination.stories.d.ts +1 -0
  307. package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
  308. package/dist/components/pagination/Pagination.stories.js +2 -1
  309. package/dist/components/pagination/Pagination.svelte +16 -6
  310. package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
  311. package/dist/components/passwordinput/PasswordInput.js +4 -3
  312. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  313. package/dist/components/passwordinput/PasswordInput.stories.d.ts +1 -0
  314. package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
  315. package/dist/components/passwordinput/PasswordInput.stories.js +5 -4
  316. package/dist/components/passwordinput/PasswordInput.svelte +9 -0
  317. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +1 -0
  318. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  319. package/dist/components/phonenumber/PhoneNumber.js +22 -0
  320. package/dist/components/phonenumber/PhoneNumber.js.map +1 -0
  321. package/dist/components/phonenumber/PhoneNumber.spec.js +103 -0
  322. package/dist/components/phonenumber/PhoneNumber.stories.d.ts +14 -0
  323. package/dist/components/phonenumber/PhoneNumber.stories.d.ts.map +1 -0
  324. package/dist/components/phonenumber/PhoneNumber.stories.js +122 -0
  325. package/dist/components/phonenumber/PhoneNumber.svelte +905 -0
  326. package/dist/components/phonenumber/PhoneNumber.svelte.d.ts +61 -0
  327. package/dist/components/phonenumber/PhoneNumber.svelte.d.ts.map +1 -0
  328. package/dist/components/phonenumber/README.md +27 -0
  329. package/dist/components/pincode/Pincode.js +2 -2
  330. package/dist/components/pincode/Pincode.js.map +1 -1
  331. package/dist/components/pincode/Pincode.stories.d.ts +1 -0
  332. package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
  333. package/dist/components/pincode/Pincode.stories.js +4 -3
  334. package/dist/components/pincode/Pincode.svelte +12 -2
  335. package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
  336. package/dist/components/quantityselector/QuantitySelector.js +2 -2
  337. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  338. package/dist/components/quantityselector/QuantitySelector.stories.d.ts +1 -0
  339. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  340. package/dist/components/quantityselector/QuantitySelector.stories.js +4 -3
  341. package/dist/components/quantityselector/QuantitySelector.svelte +11 -2
  342. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts +1 -0
  343. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  344. package/dist/components/radio/Radio.js +2 -2
  345. package/dist/components/radio/Radio.js.map +1 -1
  346. package/dist/components/radio/Radio.stories.d.ts +1 -0
  347. package/dist/components/radio/Radio.stories.d.ts.map +1 -1
  348. package/dist/components/radio/Radio.stories.js +4 -3
  349. package/dist/components/radio/Radio.svelte +13 -1
  350. package/dist/components/radio/Radio.svelte.d.ts +1 -0
  351. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  352. package/dist/components/radiogroup/RadioGroup.js +2 -2
  353. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  354. package/dist/components/radiogroup/RadioGroup.stories.d.ts +1 -0
  355. package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
  356. package/dist/components/radiogroup/RadioGroup.stories.js +3 -2
  357. package/dist/components/radiogroup/RadioGroup.svelte +2 -0
  358. package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
  359. package/dist/components/segmentedcontrol/SegmentedControl.js +2 -2
  360. package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -1
  361. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts +1 -0
  362. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -1
  363. package/dist/components/segmentedcontrol/SegmentedControl.stories.js +3 -1
  364. package/dist/components/segmentedcontrol/SegmentedControl.svelte +8 -1
  365. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -1
  366. package/dist/components/select/Select.js +2 -2
  367. package/dist/components/select/Select.js.map +1 -1
  368. package/dist/components/select/Select.stories.d.ts +1 -0
  369. package/dist/components/select/Select.stories.d.ts.map +1 -1
  370. package/dist/components/select/Select.stories.js +4 -3
  371. package/dist/components/select/Select.svelte +6 -0
  372. package/dist/components/select/Select.svelte.d.ts +1 -0
  373. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  374. package/dist/components/starrating/README.md +22 -0
  375. package/dist/components/starrating/StarRating.js +4 -0
  376. package/dist/components/starrating/StarRating.js.map +1 -0
  377. package/dist/components/starrating/StarRating.spec.js +108 -0
  378. package/dist/components/starrating/StarRating.stories.d.ts +14 -0
  379. package/dist/components/starrating/StarRating.stories.d.ts.map +1 -0
  380. package/dist/components/starrating/StarRating.stories.js +83 -0
  381. package/dist/components/starrating/StarRating.svelte +230 -0
  382. package/dist/components/starrating/StarRating.svelte.d.ts +47 -0
  383. package/dist/components/starrating/StarRating.svelte.d.ts.map +1 -0
  384. package/dist/components/statusbadge/StatusBadge.js +2 -2
  385. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  386. package/dist/components/statusbadge/StatusBadge.stories.d.ts +1 -0
  387. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  388. package/dist/components/statusbadge/StatusBadge.stories.js +1 -0
  389. package/dist/components/statusbadge/StatusBadge.svelte +3 -2
  390. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +1 -0
  391. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  392. package/dist/components/statusdot/StatusDot.js +2 -2
  393. package/dist/components/statusdot/StatusDot.js.map +1 -1
  394. package/dist/components/statusdot/StatusDot.stories.d.ts +1 -0
  395. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  396. package/dist/components/statusdot/StatusDot.stories.js +1 -0
  397. package/dist/components/statusdot/StatusDot.svelte +6 -2
  398. package/dist/components/statusdot/StatusDot.svelte.d.ts +1 -0
  399. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  400. package/dist/components/statusmessage/StatusMessage.js +2 -2
  401. package/dist/components/statusmessage/StatusMessage.js.map +1 -1
  402. package/dist/components/statusmessage/StatusMessage.stories.d.ts +1 -0
  403. package/dist/components/statusmessage/StatusMessage.stories.d.ts.map +1 -1
  404. package/dist/components/statusmessage/StatusMessage.stories.js +1 -0
  405. package/dist/components/statusmessage/StatusMessage.svelte +12 -9
  406. package/dist/components/statusmessage/StatusMessage.svelte.d.ts +1 -0
  407. package/dist/components/statusmessage/StatusMessage.svelte.d.ts.map +1 -1
  408. package/dist/components/statusnotification/README.md +1 -0
  409. package/dist/components/statusnotification/StatusNotification.js +2 -2
  410. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  411. package/dist/components/statusnotification/StatusNotification.stories.d.ts +4 -0
  412. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  413. package/dist/components/statusnotification/StatusNotification.stories.js +5 -1
  414. package/dist/components/statusnotification/StatusNotification.svelte +35 -15
  415. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +6 -0
  416. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  417. package/dist/components/stepperbottombar/README.md +24 -0
  418. package/dist/components/stepperbottombar/StepperBottomBar.js +12 -0
  419. package/dist/components/stepperbottombar/StepperBottomBar.js.map +1 -0
  420. package/dist/components/stepperbottombar/StepperBottomBar.spec.js +106 -0
  421. package/dist/components/stepperbottombar/StepperBottomBar.stories.d.ts +9 -0
  422. package/dist/components/stepperbottombar/StepperBottomBar.stories.d.ts.map +1 -0
  423. package/dist/components/stepperbottombar/StepperBottomBar.stories.js +74 -0
  424. package/dist/components/stepperbottombar/StepperBottomBar.svelte +532 -0
  425. package/dist/components/stepperbottombar/StepperBottomBar.svelte.d.ts +41 -0
  426. package/dist/components/stepperbottombar/StepperBottomBar.svelte.d.ts.map +1 -0
  427. package/dist/components/steppercompact/StepperCompact.js +2 -2
  428. package/dist/components/steppercompact/StepperCompact.js.map +1 -1
  429. package/dist/components/steppercompact/StepperCompact.stories.d.ts +1 -0
  430. package/dist/components/steppercompact/StepperCompact.stories.d.ts.map +1 -1
  431. package/dist/components/steppercompact/StepperCompact.stories.js +1 -0
  432. package/dist/components/stepperinline/README.md +11 -0
  433. package/dist/components/stepperinline/StepperInline.js +16 -0
  434. package/dist/components/stepperinline/StepperInline.js.map +1 -0
  435. package/dist/components/stepperinline/StepperInline.spec.js +83 -0
  436. package/dist/components/stepperinline/StepperInline.stories.d.ts +7 -0
  437. package/dist/components/stepperinline/StepperInline.stories.d.ts.map +1 -0
  438. package/dist/components/stepperinline/StepperInline.stories.js +23 -0
  439. package/dist/components/stepperinline/StepperInline.svelte +176 -0
  440. package/dist/components/stepperinline/StepperInline.svelte.d.ts +27 -0
  441. package/dist/components/stepperinline/StepperInline.svelte.d.ts.map +1 -0
  442. package/dist/components/tab/README.md +3 -1
  443. package/dist/components/tab/Tab.js +2 -2
  444. package/dist/components/tab/Tab.js.map +1 -1
  445. package/dist/components/tab/Tab.svelte +48 -16
  446. package/dist/components/tab/Tab.svelte.d.ts +9 -0
  447. package/dist/components/tab/Tab.svelte.d.ts.map +1 -1
  448. package/dist/components/tabs/README.md +1 -0
  449. package/dist/components/tabs/Tabs.js +2 -2
  450. package/dist/components/tabs/Tabs.js.map +1 -1
  451. package/dist/components/tabs/Tabs.stories.d.ts +3 -0
  452. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  453. package/dist/components/tabs/Tabs.stories.js +5 -2
  454. package/dist/components/tabs/Tabs.svelte +21 -4
  455. package/dist/components/tabs/Tabs.svelte.d.ts +5 -0
  456. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  457. package/dist/components/tag/README.md +1 -0
  458. package/dist/components/tag/Tag.js +2 -2
  459. package/dist/components/tag/Tag.js.map +1 -1
  460. package/dist/components/tag/Tag.stories.d.ts +1 -0
  461. package/dist/components/tag/Tag.stories.d.ts.map +1 -1
  462. package/dist/components/tag/Tag.stories.js +3 -2
  463. package/dist/components/tag/Tag.svelte +46 -13
  464. package/dist/components/tag/Tag.svelte.d.ts +6 -0
  465. package/dist/components/tag/Tag.svelte.d.ts.map +1 -1
  466. package/dist/components/textarea/Textarea.js +2 -2
  467. package/dist/components/textarea/Textarea.js.map +1 -1
  468. package/dist/components/textarea/Textarea.stories.d.ts +1 -0
  469. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  470. package/dist/components/textarea/Textarea.stories.js +4 -3
  471. package/dist/components/textarea/Textarea.svelte +14 -1
  472. package/dist/components/textarea/Textarea.svelte.d.ts +1 -0
  473. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  474. package/dist/components/textinput/README.md +1 -0
  475. package/dist/components/textinput/Textinput.js +2 -2
  476. package/dist/components/textinput/Textinput.js.map +1 -1
  477. package/dist/components/textinput/Textinput.spec.js +4 -1
  478. package/dist/components/textinput/Textinput.stories.d.ts +1 -0
  479. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  480. package/dist/components/textinput/Textinput.stories.js +5 -4
  481. package/dist/components/textinput/Textinput.svelte +26 -2
  482. package/dist/components/textinput/Textinput.svelte.d.ts +6 -0
  483. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  484. package/dist/components/toaster/README.md +1 -0
  485. package/dist/components/toaster/Toaster.js +2 -2
  486. package/dist/components/toaster/Toaster.js.map +1 -1
  487. package/dist/components/toaster/Toaster.stories.d.ts +3 -0
  488. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  489. package/dist/components/toaster/Toaster.stories.js +4 -1
  490. package/dist/components/toaster/Toaster.svelte +34 -11
  491. package/dist/components/toaster/Toaster.svelte.d.ts +6 -0
  492. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  493. package/dist/components/toggle/Toggle.js +2 -2
  494. package/dist/components/toggle/Toggle.js.map +1 -1
  495. package/dist/components/toggle/Toggle.stories.d.ts +1 -0
  496. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  497. package/dist/components/toggle/Toggle.stories.js +3 -2
  498. package/dist/components/toggle/Toggle.svelte +20 -2
  499. package/dist/components/toggle/Toggle.svelte.d.ts +1 -0
  500. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  501. package/dist/components/togglegroup/ToggleGroup.js +2 -2
  502. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  503. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +1 -0
  504. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  505. package/dist/components/togglegroup/ToggleGroup.stories.js +2 -1
  506. package/dist/components/togglegroup/ToggleGroup.svelte +1 -0
  507. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  508. package/dist/components/tooltip/README.md +1 -0
  509. package/dist/components/tooltip/Tooltip.js +2 -2
  510. package/dist/components/tooltip/Tooltip.js.map +1 -1
  511. package/dist/components/tooltip/Tooltip.stories.d.ts +1 -0
  512. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  513. package/dist/components/tooltip/Tooltip.stories.js +2 -1
  514. package/dist/components/tooltip/Tooltip.svelte +21 -3
  515. package/dist/components/tooltip/Tooltip.svelte.d.ts +6 -0
  516. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  517. package/dist/custom-element.js +3 -3
  518. package/dist/custom-element.js.map +1 -1
  519. package/dist/documentation/{WebComponents/usingPresets.mdx → BrandPresets.mdx} +2 -24
  520. package/dist/documentation/Changelog.mdx +19 -0
  521. package/dist/documentation/Color.mdx +224 -0
  522. package/dist/documentation/Contributing.mdx +11 -5
  523. package/dist/documentation/GettingStarted.mdx +76 -0
  524. package/dist/documentation/Icon.stories.d.ts +10 -0
  525. package/dist/documentation/Icon.stories.d.ts.map +1 -0
  526. package/dist/documentation/Icon.stories.js +138 -0
  527. package/dist/documentation/Migration.mdx +5 -5
  528. package/dist/documentation/Welcome.mdx +52 -0
  529. package/dist/each.js +1 -1
  530. package/dist/each.js.map +1 -1
  531. package/dist/if.js +1 -1
  532. package/dist/if.js.map +1 -1
  533. package/dist/index-client.js +2 -0
  534. package/dist/index-client.js.map +1 -0
  535. package/dist/input.js +1 -1
  536. package/dist/input.js.map +1 -1
  537. package/dist/main.d.ts +11 -1
  538. package/dist/main.d.ts.map +1 -1
  539. package/dist/main.js +11 -1
  540. package/dist/slot.js +1 -1
  541. package/dist/slot.js.map +1 -1
  542. package/dist/snippet.js +2 -0
  543. package/dist/snippet.js.map +1 -0
  544. package/dist/svelte-component.js +1 -1
  545. package/dist/svelte-element.js +2 -0
  546. package/dist/svelte-element.js.map +1 -0
  547. package/dist/this.js +1 -1
  548. package/dist/this.js.map +1 -1
  549. package/package.json +22 -22
  550. package/dist/Cross20.js +0 -2
  551. package/dist/Cross20.js.map +0 -1
  552. package/dist/Cross24.js +0 -2
  553. package/dist/Cross24.js.map +0 -1
  554. package/dist/CrossCircleFilled24.js +0 -2
  555. package/dist/CrossCircleFilled24.js.map +0 -1
  556. package/dist/documentation/Introduction.mdx +0 -109
  557. package/dist/documentation/SupportAndOnboarding.mdx +0 -70
  558. package/dist/documentation/Svelte/Introduction.mdx +0 -76
  559. package/dist/documentation/Svelte/usingIcons.mdx +0 -98
  560. package/dist/documentation/Svelte/usingPresets.mdx +0 -134
  561. package/dist/documentation/WebComponents/Introduction.mdx +0 -52
  562. package/dist/documentation/WebComponents/usingIcons.mdx +0 -81
  563. package/dist/legacy.js +0 -2
  564. package/dist/legacy.js.map +0 -1
@@ -1,8 +1,8 @@
1
- import{c as D,p as F,a as G,b as i,f as E,t as g,i as k,j as R,k as t,r as _,e as w,g as x,d as y,s as S,m as o,h as q}from"../../custom-element.js";import{e as B}from"../../each.js";import{r as C,s as b}from"../../attributes.js";import{b as H}from"../../input.js";import{c as I}from"../../custom-element-forward-events.js";var J=E('<div class="mc-radio mc-field__item svelte-clvmul"><input type="radio"/> <label class="mc-radio__label svelte-clvmul"> </label></div>'),K=E("<div></div>");const L={hash:"svelte-clvmul",code:`/**
1
+ import{c as q,p as A,a as D,b as a,t as g,f as k,g as F,h as E,j as i,r as _,n as w,o as y,d as x,s as G,q as o,e as R}from"../../custom-element.js";import{e as S}from"../../each.js";import{r as C,s as b}from"../../attributes.js";import{b as H}from"../../input.js";import{c as I}from"../../custom-element-forward-events.js";var J=E('<div class="mc-radio mc-field__item svelte-clvmul"><input type="radio"/> <label class="mc-radio__label svelte-clvmul"> </label></div>'),K=E("<div></div>");const L={hash:"svelte-clvmul",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */.mc-radio.svelte-clvmul {align-items:center;display:flex;gap:0.5rem;padding:0.375rem;}.mc-radio__label.svelte-clvmul {font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);color:var(--forms-color-text-default, #000000);cursor:pointer;}.mc-radio__input.svelte-clvmul {appearance:none;margin:0;cursor:pointer;flex-shrink:0;transition:box-shadow 200ms ease;background-color:var(--forms-color-background-default, #ffffff);border:var(--border-width-m, 0.125rem) solid var(--forms-color-border-default, #666666);border-radius:100%;transition:all ease 200ms;height:1.25rem;width:1.25rem;position:relative;}.mc-radio__input.svelte-clvmul::before {border-radius:var(--border-radius-full, 100%);content:"";display:block;height:0.5rem;left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);width:0.5rem;}.mc-radio__input.svelte-clvmul:hover {border-color:var(--forms-color-border-hover, #4d4d4d);}.mc-radio__input.svelte-clvmul:focus-visible {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-radio__input.svelte-clvmul:checked {background-color:var(--forms-color-background-checked, #117f03);}.mc-radio__input.svelte-clvmul:checked::before {background-color:var(--forms-color-background-default, #ffffff);}.mc-radio__input.svelte-clvmul:checked, .mc-radio__input.svelte-clvmul:disabled {border-color:transparent;}.mc-radio__input.svelte-clvmul:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;}.mc-radio__input.svelte-clvmul:disabled:checked::before {background-color:var(--forms-color-icon-disabled, #737373);}.mc-radio__input.svelte-clvmul:disabled + .mc-radio__label:where(.svelte-clvmul) {color:var(--forms-color-text-disabled, #737373);cursor:not-allowed;}.mc-radio__input.svelte-clvmul:not(:disabled):checked:hover {background-color:var(--forms-color-background-checked-hover, #006902);}.mc-radio__input.is-invalid.svelte-clvmul:not(:checked) {border-color:var(--forms-color-border-invalid, #ea302d);}.mc-radio__input.is-invalid.svelte-clvmul:not(:checked):hover {border-color:var(--forms-color-border-invalid-hover, #c61112);}
4
4
 
5
5
  /* stylelint-disable string-no-newline */.mc-field__content.svelte-clvmul {margin-top:0.5rem;}
6
6
 
7
- /* stylelint-enable string-no-newline */.mc-field__content.svelte-clvmul:where(.mc-field__content--inline:where(.svelte-clvmul)) {display:flex;flex-flow:row wrap;gap:0.25rem 1rem;}`};function M(p,a){F(a,!0),G(p,L);const z=[];let s=i(a,"value",15),c=i(a,"name",7),d=i(a,"options",7),m=i(a,"inline",7),v=i(a,"isinvalid",7);var j={get value(){return s()},set value(e){s(e),t()},get name(){return c()},set name(e){c(e),t()},get options(){return d()},set options(e){d(e),t()},get inline(){return m()},set inline(e){m(e),t()},get isinvalid(){return v()},set isinvalid(e){v(e),t()}},n=K();return B(n,21,d,e=>e.id,(e,l)=>{var u=J(),r=y(u);C(r);var h,f=S(r,2),A=y(f,!0);_(f),_(u),g(()=>{w(r,1,x(["mc-radio__input",v()&&"is-invalid"]),"svelte-clvmul"),b(r,"id",o(l).id),b(r,"name",c()),r.disabled=o(l).disabled,h!==(h=o(l).value)&&(r.value=(r.__value=o(l).value)??""),b(f,"for",o(l).id),q(A,o(l).label)}),H(z,[],r,()=>(o(l).value,s()),s),k(e,u)}),_(n),g(()=>w(n,1,x(["mc-field__content",m()&&"mc-field__content--inline"]),"svelte-clvmul")),k(p,n),R(j)}customElements.define("m-radio-group",D(M,{options:{attribute:"options",type:"Array"},value:{},name:{},inline:{},isinvalid:{}},[],[],!0,I));
7
+ /* stylelint-enable string-no-newline */.mc-field__content.svelte-clvmul:where(.mc-field__content--inline:where(.svelte-clvmul)) {display:flex;flex-flow:row wrap;gap:0.25rem 1rem;}`};function M(p,t){A(t,!0),D(p,L);const z=[];let s=a(t,"value",15),c=a(t,"name",7),d=a(t,"options",7),u=a(t,"inline",7),v=a(t,"isinvalid",7);var B={get value(){return s()},set value(e){s(e),i()},get name(){return c()},set name(e){c(e),i()},get options(){return d()},set options(e){d(e),i()},get inline(){return u()},set inline(e){u(e),i()},get isinvalid(){return v()},set isinvalid(e){v(e),i()}},n=K();return S(n,21,d,e=>e.id,(e,l)=>{var m=J(),r=x(m);C(r);var h,f=G(r,2),j=x(f,!0);_(f),_(m),g(()=>{w(r,1,y(["mc-radio__input",v()&&"is-invalid"]),"svelte-clvmul"),b(r,"id",o(l).id),b(r,"name",c()),r.disabled=o(l).disabled,h!==(h=o(l).value)&&(r.value=(r.__value=o(l).value)??""),b(f,"for",o(l).id),R(j,o(l).label)}),H(z,[],r,()=>(o(l).value,s()),s),k(e,m)}),_(n),g(()=>w(n,1,y(["mc-field__content",u()&&"mc-field__content--inline"]),"svelte-clvmul")),k(p,n),F(B)}customElements.define("m-radio-group",q(M,{options:{attribute:"options",type:"Array"},isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},inline:{attribute:"inline",reflect:!0,type:"Boolean"},value:{},name:{}},[],[],!0,I));
8
8
  //# sourceMappingURL=RadioGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../src/components/radiogroup/RadioGroup.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio-group',\n props: {\n options: { type: 'Array', attribute: 'options' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.\n */\n interface Props {\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name: string;\n /**\n * The current value of the radio group.\n */\n value?: string;\n /**\n * list of properties of each radio button of the radio group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n }>;\n /**\n * If `true`, applies an invalid state to the radio group.\n */\n isinvalid?: boolean;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n }\n\n let { value = $bindable(), name, options, inline, isinvalid }: Props = $props();\n</script>\n\n<div class={['mc-field__content', inline && 'mc-field__content--inline']}>\n {#each options as option (option.id)}\n <div class=\"mc-radio mc-field__item\">\n <input\n type=\"radio\"\n class={['mc-radio__input', isinvalid && 'is-invalid']}\n id={option.id}\n {name}\n bind:group={value}\n value={option.value}\n disabled={option.disabled}\n />\n <label for={option.id} class=\"mc-radio__label\">{option.label}</label>\n </div>\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n @use '@mozaic-ds/styles/components/field';\n\n .mc-field__content:where(.mc-field__content--inline) {\n display: flex;\n flex-flow: row wrap;\n gap: 0.25rem 1rem;\n }\n</style>\n"],"names":["value","$.prop","$$props","name","options","inline","isinvalid","$.each","div","option","$.set_attribute","input","$.get","input_value","label","$.set_text","text","customElementForwardEvents"],"mappings":";;;;;;sMAAA,+BA2CQA,EAAKC,EAAAC,EAAA,QAAA,EAAA,EAAgBC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EAAEE,EAAOH,EAAAC,EAAA,UAAA,CAAA,EAAEG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EAAEI,EAASL,EAAAC,EAAA,YAAA,CAAA,uQAIpDK,OAAAA,EAAAC,EAAA,GAAAJ,EAAWK,GAAQA,EAAO,MAAfA,IAAM,0EAIV,kBAAmBH,KAAa,YAAY,CAAA,EAAA,eAAA,EAChDI,EAAAC,EAAA,KAAAC,EAAAH,CAAM,EAAC,EAAE,kBAIHE,EAAA,SAAAC,EAAAH,CAAM,EAAC,SADVI,KAAAA,EAAAD,EAAAH,CAAM,EAAC,SAAPE,EAAA,OAAAA,EAAA,QAAAC,EAAAH,CAAM,EAAC,QAAK,IAGTC,EAAAI,EAAA,MAAAF,EAAAH,CAAM,EAAC,EAAE,EAA2BM,EAAAC,EAAAJ,EAAAH,CAAM,EAAC,KAAK,kBAHnDG,EAAAH,CAAM,EAAC,MADFT,EAAK,GAALA,gCARP,oBAAqBK,EAAM,GAAI,2BAA2B,CAAA,EAAA,eAAA,CAAA,aAFvE,yIAtCYY"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../src/components/radiogroup/RadioGroup.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-radio-group',\n props: {\n options: { type: 'Array', attribute: 'options' },\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n inline: { reflect: true, type: 'Boolean', attribute: 'inline' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n /**\n * A radio button is a selection control that allows users to choose a single option from a list of mutually exclusive choices. Unlike checkboxes, only one option can be selected at a time within the same group. Radio Buttons are commonly used in forms, surveys, and settings where a single choice must be made.\n */\n interface Props {\n /**\n * The name attribute for the radio element, typically used for form submission.\n */\n name: string;\n /**\n * The current value of the radio group.\n */\n value?: string;\n /**\n * list of properties of each radio button of the radio group\n */\n options: Array<{\n id: string;\n label: string;\n value: string;\n disabled?: boolean;\n }>;\n /**\n * If `true`, applies an invalid state to the radio group.\n */\n isinvalid?: boolean;\n /**\n * If `true`, make the form element of the group inline.\n */\n inline?: boolean;\n }\n\n let { value = $bindable(), name, options, inline, isinvalid }: Props = $props();\n</script>\n\n<div class={['mc-field__content', inline && 'mc-field__content--inline']}>\n {#each options as option (option.id)}\n <div class=\"mc-radio mc-field__item\">\n <input\n type=\"radio\"\n class={['mc-radio__input', isinvalid && 'is-invalid']}\n id={option.id}\n {name}\n bind:group={value}\n value={option.value}\n disabled={option.disabled}\n />\n <label for={option.id} class=\"mc-radio__label\">{option.label}</label>\n </div>\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/radio';\n @use '@mozaic-ds/styles/components/field';\n\n .mc-field__content:where(.mc-field__content--inline) {\n display: flex;\n flex-flow: row wrap;\n gap: 0.25rem 1rem;\n }\n</style>\n"],"names":["value","$.prop","$$props","name","options","inline","isinvalid","div","root","option","$$anchor","div_1","root_1","input","$.child","$.remove_input_defaults","label","$.sibling","$.set_class","$.clsx","$.get","$.set_attribute","input_value","$.set_text","text","$.template_effect","customElementForwardEvents"],"mappings":";;;;;;sMAYA,+BAiCQA,EAAKC,EAAAC,EAAA,QAAA,EAAA,EAAgBC,EAAIF,EAAAC,EAAA,OAAA,CAAA,EAAEE,EAAOH,EAAAC,EAAA,UAAA,CAAA,EAAEG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EAAEI,EAASL,EAAAC,EAAA,YAAA,CAAA,iQAG5DK,EAAGC,EAAA,WAAHD,EAAG,GACKH,EAAWK,GAAQA,EAAO,GAAE,CAAAC,EAAjBD,IAAM,KACrBE,EAAGC,EAAA,EACDC,EAAAC,EADFH,CAAG,EACDI,EAAAF,CAAA,QASAG,EAAKC,EATLJ,EAAA,CAAA,MASAG,EAAK,EAAA,IAALA,CAAK,IAVPL,CAAG,SACDO,EAAAL,EAAA,EAAAM,EAAA,CAES,kBAAmBb,KAAa,YAAY,CAAA,EAAA,eAAA,IAFrDO,EAAA,KAAAO,EAGKX,CAAM,EAAC,EAAE,EAHdY,EAAAR,EAAA,OAIEV,GAAI,EAJNU,EAAA,SAAAO,EAOWX,CAAM,EAAC,SADVa,KAAAA,EAAAF,EAAAX,CAAM,EAAC,SANfI,EAAA,OAAAA,EAAA,QAAAO,EAMQX,CAAM,EAAC,QAAK,MAGpBO,EAAK,MAAAI,EAAMX,CAAM,EAAC,EAAE,EAA2Bc,EAAAC,EAAAJ,EAAAX,CAAM,EAAC,KAAK,WAT3DI,OAMQO,EAAAX,CAAM,EAAC,MADFT,EAAK,GAALA,OANfW,CAAG,MAFPJ,CAAG,EAAHkB,EAAA,IAAAP,EAAAX,EAAG,EAAAY,EAAA,CAAS,oBAAqBd,EAAM,GAAI,2BAA2B,CAAA,EAAA,eAAA,CAAA,MAAtEE,CAAG,MAFI,oOAtCImB"}
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ import './RadioGroup.svelte';
2
3
  declare const meta: Meta;
3
4
  export default meta;
4
5
  type Story = StoryObj;
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.stories.d.ts","sourceRoot":"","sources":["../../../src/components/radiogroup/RadioGroup.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IAyDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
1
+ {"version":3,"file":"RadioGroup.stories.d.ts","sourceRoot":"","sources":["../../../src/components/radiogroup/RadioGroup.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,qBAAqB,CAAC;AAE7B,QAAA,MAAM,IAAI,EAAE,IAyDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { html } from 'lit';
2
2
  import { ifDefined } from 'lit-html/directives/if-defined.js';
3
3
  import { action } from 'storybook/actions';
4
+ import './RadioGroup.svelte';
4
5
  const meta = {
5
6
  title: 'Form Elements/Radio Group',
6
7
  component: 'm-radio-group',
@@ -40,8 +41,8 @@ const meta = {
40
41
  name=${ifDefined(args.name)}
41
42
  .options=${ifDefined(args.options)}
42
43
  value=${ifDefined(args.value)}
43
- isinvalid=${ifDefined(args.isinvalid)}
44
- inline=${ifDefined(args.inline)}
44
+ ?isinvalid=${args.isinvalid}
45
+ ?inline=${args.inline}
45
46
  @input=${(event) => {
46
47
  onInput(event);
47
48
  }}
@@ -3,6 +3,8 @@
3
3
  tag: 'm-radio-group',
4
4
  props: {
5
5
  options: { type: 'Array', attribute: 'options' },
6
+ isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },
7
+ inline: { reflect: true, type: 'Boolean', attribute: 'inline' },
6
8
  },
7
9
  extend: customElementForwardEvents,
8
10
  }}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/radiogroup/RadioGroup.svelte.ts"],"names":[],"mappings":"AAKE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA6BH,QAAA,MAAM,UAAU,gDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"RadioGroup.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/radiogroup/RadioGroup.svelte.ts"],"names":[],"mappings":"AAKE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA+BH,QAAA,MAAM,UAAU,gDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -1,4 +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:`/**
1
+ import{u as w,c as C,p as E,a as j,b as l,t as u,f as h,g as S,h as k,j as c,r as v,n as p,o as b,d as q,e as B,q as D}from"../../custom-element.js";import{e as A,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
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));
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),f;const x=e=>{o(e);const i=new CustomEvent("change",{detail:e,bubbles:!0,composed:!0});f.dispatchEvent(i)};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 A(s,21,a,F,(e,i,n)=>{var t=H();t.__click=()=>x(n);var z=q(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"),B(z,D(i).label)}),h(e,t)}),v(s),G(s,e=>f=e,()=>f),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,{full:{attribute:"full",reflect:!0,type:"Boolean"},selected:{},size:{},segments:{}},[],[],!0));
4
4
  //# sourceMappingURL=SegmentedControl.js.map
@@ -1 +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"}
1
+ {"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/segmentedcontrol/SegmentedControl.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-segmented-control',\n props: {\n full: { reflect: true, type: 'Boolean', attribute: 'full' },\n },\n }}\n/>\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","div","root","segment","button","root_1","text","$.child","$.reset","$.set_attribute","$.set_text","$.get","$.append","$$anchor","$$value"],"mappings":";;imDASA,gBA8BQ,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,iEAehDC,EAAAC,EAAA,WAAAD,EAAA,GASQL,OAAYO,EAAOJ,IAAA,CACvB,IAAAK,EAAAC,EAAA,EAAAD,EASC,QAAO,IAAQN,EAAQC,CAAK,EAT7B,IAAAO,EAAAC,EAAAH,EAAA,EAAA,EAAAI,EAAAJ,CAAA,WAAAA,OAGG,gCACAb,EAAQ,IAAKQ,GAAS,8DAJzBU,EAAAL,EAAA,WAOWb,EAAQ,IAAKQ,EAAQ,IAAM,EAPtCU,EAAAL,EAAA,eAQeb,EAAQ,IAAKQ,EAAQ,OAAS,OAAO,EAGlDW,EAAAJ,EAAAK,EAAAR,CAAO,EAAC,KAAK,IAXfS,EAAAC,EAAAT,CAAA,IAVJI,EAAAP,CAAA,IAAAA,EAAAa,GAOYjB,QAAAA,CAAO,UAPnBI,OAEG,gDACyBN,EAAI,CAAA,GAC7BH,KAAQ,kDAJXoB,EAAAC,EAAAZ,CAAA,MAFO"}
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ import './SegmentedControl.svelte';
2
3
  declare const meta: Meta;
3
4
  export default meta;
4
5
  type Story = StoryObj;
@@ -1 +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"}
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;AAIrE,OAAO,2BAA2B,CAAC;AAEnC,QAAA,MAAM,IAAI,EAAE,IA4CX,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"}
@@ -1,9 +1,11 @@
1
1
  import { html } from 'lit';
2
2
  import { ifDefined } from 'lit-html/directives/if-defined.js';
3
3
  import { action } from 'storybook/actions';
4
+ import './SegmentedControl.svelte';
4
5
  const meta = {
5
6
  title: 'Action/Segmented Control',
6
7
  component: 'm-segmented-control',
8
+ tags: ['v2'],
7
9
  argTypes: {
8
10
  size: {
9
11
  control: 'radio',
@@ -34,7 +36,7 @@ const meta = {
34
36
  return html `
35
37
  <m-segmented-control
36
38
  selected=${ifDefined(args.selected)}
37
- full=${ifDefined(args.full)}
39
+ ?full=${args.full}
38
40
  size=${ifDefined(args.size)}
39
41
  .segments=${ifDefined(args.segments)}
40
42
  @change=${(event) => {
@@ -1,4 +1,11 @@
1
- <svelte:options customElement={{ tag: 'm-segmented-control' }} />
1
+ <svelte:options
2
+ customElement={{
3
+ tag: 'm-segmented-control',
4
+ props: {
5
+ full: { reflect: true, type: 'Boolean', attribute: 'full' },
6
+ },
7
+ }}
8
+ />
2
9
 
3
10
  <script lang="ts">
4
11
  /**
@@ -1 +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"}
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;AA6CH,QAAA,MAAM,gBAAgB,mDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -1,7 +1,7 @@
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:`/**
1
+ import{c as j,p as q,a as A,b as t,s as D,f as g,g as F,h as y,i as G,d as p,j as a,r as w,t as k,e as E,q as d}from"../../custom-element.js";import{i as H}from"../../if.js";import{e as I,i as J}from"../../each.js";import{a as K,c as N}from"../../attributes.js";import{c as O}from"../../custom-element-forward-events.js";var P=y("<option disabled selected> </option>"),Q=y("<option> </option>"),R=y("<select><!><!></select>");const T={hash:"svelte-6nznl5",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */
4
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",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));
6
+ /* stylelint-enable string-no-newline */`};function U(z,r){q(r,!0),A(z,T);let n=t(r,"id",7),c=t(r,"name",7),v=t(r,"value",15),i=t(r,"placeholder",7),m=t(r,"size",7,"m"),u=t(r,"isinvalid",7),f=t(r,"disabled",7),b=t(r,"readonly",7),h=t(r,"options",7),C=G(r,["$$slots","$$events","$$legacy","$$host","id","name","value","placeholder","size","isinvalid","disabled","readonly","options"]);var B={get id(){return n()},set id(e){n(e),a()},get name(){return c()},set name(e){c(e),a()},get value(){return v()},set value(e){v(e),a()},get placeholder(){return i()},set placeholder(e){i(e),a()},get size(){return m()},set size(e="m"){m(e),a()},get isinvalid(){return u()},set isinvalid(e){u(e),a()},get disabled(){return f()},set disabled(e){f(e),a()},get readonly(){return b()},set readonly(e){b(e),a()},get options(){return h()},set options(e){h(e),a()}},s=R();K(s,()=>({id:n(),class:["mc-select",`mc-select--${m()}`,b()&&"mc-select--readonly",u()&&"is-invalid"],name:c(),disabled:f(),...C}),void 0,void 0,void 0,"svelte-6nznl5");var _=p(s);{var L=e=>{var o=P(),l=p(o);w(o),o.value=o.__value="",k(()=>E(l,`-- ${i()??""} --`)),g(e,o)};H(_,e=>{i()&&e(L)})}var M=D(_);return I(M,17,h,J,(e,o)=>{var l=Q(),S=p(l,!0);w(l);var x={};k(()=>{l.disabled=d(o).disabled,E(S,d(o).text),x!==(x=d(o).value)&&(l.value=(l.__value=d(o).value)??"")}),g(e,l)}),w(s),N(s,v),g(z,s),F(B)}customElements.define("m-select",j(U,{options:{attribute:"options",type:"Array"},isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},disabled:{attribute:"disabled",reflect:!0,type:"Boolean"},readonly:{attribute:"readonly",reflect:!0,type:"Boolean"},id:{},name:{},value:{},placeholder:{},size:{}},[],[],!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 = $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"}
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 isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },\n readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },\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 [key: string]: any;\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 ...attrs\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 {...attrs}\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","attrs","$.rest_props","select","root","node","$.child","option_1","root_1","$$render","consequent","$.each","node_1","option","option_2","root_2","$.get","$.set_text","text_1","option_2_value","$.reset","$.bind_select_value","$.append","$$anchor","customElementForwardEvents"],"mappings":";;;;;0DAaA,oBAmDIA,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,EACJS,EAAAC,EAAAV,EAAA,0WALI,IAAG,gOASbW,EAAAC,EAAA,IAAAD,WACEb,EAAE,SAED,0BACcM,EAAI,CAAA,GAClBG,EAAQ,GAAI,sBACZF,KAAa,mBAEdJ,EAAI,WACJK,EAAQ,KAELG,0CAXL,IAAAI,EAAAC,EAAAH,CAAA,iBAcII,EAAMC,EAAA,MAAND,CAAM,IAANA,CAAM,EAANA,QAAAA,EAAM,QAAA,mBACDZ,KAAW,EAAA,KAAA,CAAA,MADhBY,CAAM,WADJZ,EAAW,GAAAc,EAAAC,CAAA,eAMTC,OAAAA,EAAAC,EAAA,GAAAZ,OAAWa,IAAM,KACrBC,EAAMC,EAAA,MAAND,EAAM,EAAA,IAANA,CAAM,kBAANA,EAAM,SAAAE,EAAWH,CAAM,EAAC,SACtBI,EAAAC,EAAAF,EAAAH,CAAM,EAAC,IAAI,EAD4BM,KAAAA,EAAAH,EAAAH,CAAM,EAAC,SAAhDC,EAAM,OAANA,EAAM,QAAAE,EAAmCH,CAAM,EAAC,QAAK,UAArDC,CAAM,IApBVM,EAAAjB,CAAA,EAAAkB,EAAAlB,EAAAT,CAAA,EAAA4B,EAAAC,EAAApB,CAAA,MAFO,0TAlEIqB"}
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ import './Select.svelte';
2
3
  declare const meta: Meta;
3
4
  export default meta;
4
5
  type Story = StoryObj;
@@ -1 +1 @@
1
- {"version":3,"file":"Select.stories.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IAgEX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC"}
1
+ {"version":3,"file":"Select.stories.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,iBAAiB,CAAC;AAEzB,QAAA,MAAM,IAAI,EAAE,IAgEX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { html } from 'lit';
2
2
  import { ifDefined } from 'lit-html/directives/if-defined.js';
3
3
  import { action } from 'storybook/actions';
4
+ import './Select.svelte';
4
5
  const meta = {
5
6
  title: 'Form Elements/Select',
6
7
  component: 'm-select',
@@ -45,10 +46,10 @@ const meta = {
45
46
  value=${ifDefined(args.value)}
46
47
  .options=${ifDefined(args.options)}
47
48
  placeholder=${ifDefined(args.placeholder)}
48
- isinvalid=${ifDefined(args.isinvalid)}
49
- disabled=${ifDefined(args.disabled)}
49
+ ?isinvalid=${args.isinvalid}
50
+ ?disabled=${args.disabled}
50
51
  size=${ifDefined(args.size)}
51
- readonly=${ifDefined(args.readonly)}
52
+ ?readonly=${args.readonly}
52
53
  @input=${(event) => {
53
54
  onInput(event);
54
55
  }}
@@ -3,6 +3,9 @@
3
3
  tag: 'm-select',
4
4
  props: {
5
5
  options: { type: 'Array', attribute: 'options' },
6
+ isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },
7
+ disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },
8
+ readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },
6
9
  },
7
10
  extend: customElementForwardEvents,
8
11
  }}
@@ -14,6 +17,7 @@
14
17
  * 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.
15
18
  */
16
19
  interface Props {
20
+ [key: string]: any;
17
21
  /**
18
22
  * A unique identifier for the select, used to associate the label with the form element.
19
23
  */
@@ -67,6 +71,7 @@
67
71
  disabled,
68
72
  readonly,
69
73
  options,
74
+ ...attrs
70
75
  }: Props = $props();
71
76
  </script>
72
77
 
@@ -81,6 +86,7 @@
81
86
  {name}
82
87
  {disabled}
83
88
  bind:value
89
+ {...attrs}
84
90
  >
85
91
  {#if placeholder}
86
92
  <option value="" disabled selected>
@@ -2,6 +2,7 @@
2
2
  * 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.
3
3
  */
4
4
  interface Props {
5
+ [key: string]: any;
5
6
  /**
6
7
  * A unique identifier for the select, used to associate the label with the form element.
7
8
  */
@@ -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,gDAAwC,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,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;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;AAqDH,QAAA,MAAM,MAAM,gDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -0,0 +1,22 @@
1
+ # `m-star-rating`
2
+
3
+ A Star rating visually represents a score or evaluation and can be used to display a rating or allow users to rate an item, such as a product or service. It serves two main purposes: collecting user feedback by enabling individuals to express their experience and providing social proof by displaying ratings from other users to assist decision-making. Rating Stars are commonly found in e-commerce, review systems, and feedback interfaces, offering a quick and intuitive way to assess quality or satisfaction.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `rating*` | The current rating value of the component. | `number` | `$bindable()` |
10
+ | `readonly` | Determines whether the rating is interactive or read-only.
11
+ When true, all user interactions (click, hover, keyboard) are disabled.
12
+ Automatically set to true when `compact`, `href`, or `information` are provided. | `boolean` | |
13
+ | `size` | Defines the visual size of the star icons and the accompanying text. | `'s'` `'m'` `'l'` | `m` |
14
+ | `compact` | Enables a compact display mode that shows only one star instead of five.
15
+ Typically used for summaries or quick visual cues.
16
+ When enabled, the component automatically becomes read-only. | `boolean` | |
17
+ | `appearance` | Specifies the color scheme of the stars. | `'standard'` `'accent'` | `standard` |
18
+ | `text` | Optional text displayed next to the star rating.
19
+ If provided, the component automatically becomes read-only. | `string` | |
20
+ | `href` | URL for the link. | `string` | |
21
+ | `target` | Where to open the link. | `'_self'` `'_blank'` `'_parent'` `'_top'` | |
22
+
@@ -0,0 +1,4 @@
1
+ import{c as W,p as X,a as Y,b as s,k as Z,l as M,f as y,g as $,j as i,q as t,r as A,s as ee,d as R,t as te,e as ae,x as v,h as j,v as C,w as re}from"../../custom-element.js";import{i as ne}from"../../if.js";import{e as se}from"../../each.js";import{c as ie}from"../../svelte-component.js";import{e as oe}from"../../svelte-element.js";import{a as V}from"../../attributes.js";import{c as le}from"../../custom-element-forward-events.js";import{S as ce,j as ve,k as me}from"../../Condition20.js";var fe=j("<span><!></span>"),ge=j('<span class="mc-star-rating__info svelte-17npafv"> </span>'),pe=j("<div></div> <!>",1);const de={hash:"svelte-17npafv",code:`/**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */.mc-star-rating.svelte-17npafv {display:inline-flex;align-items:center;gap:0.5rem;}.mc-star-rating--standard.svelte-17npafv .mc-star-rating__icon:where(.svelte-17npafv) {fill:var(--star-rating-color-icon-standard, #000000);}.mc-star-rating--accent.svelte-17npafv .mc-star-rating__icon:where(.svelte-17npafv) {fill:var(--star-rating-color-icon-accent, #ea7315);}.mc-star-rating--slider.svelte-17npafv {cursor:pointer;}.mc-star-rating--link.svelte-17npafv {text-decoration:none;cursor:pointer;}.mc-star-rating--link.svelte-17npafv:not(:hover) .mc-star-rating__info:where(.svelte-17npafv) {text-decoration:underline;}.mc-star-rating--s.svelte-17npafv .mc-star-rating__icon:where(.svelte-17npafv) {width:1.25rem;height:1.25rem;}.mc-star-rating--s.svelte-17npafv .mc-star-rating__info:where(.svelte-17npafv) {font-size:var(--font-size-100, 0.875rem);}.mc-star-rating--m.svelte-17npafv .mc-star-rating__icon:where(.svelte-17npafv) {width:1.5rem;height:1.5rem;}.mc-star-rating--m.svelte-17npafv .mc-star-rating__info:where(.svelte-17npafv) {font-size:var(--font-size-150, 1rem);}.mc-star-rating--l.svelte-17npafv .mc-star-rating__icon:where(.svelte-17npafv) {width:2rem;height:2rem;}.mc-star-rating--l.svelte-17npafv .mc-star-rating__info:where(.svelte-17npafv) {font-size:var(--font-size-200, 1.125rem);}.mc-star-rating__wrapper.svelte-17npafv {display:flex;align-items:center;}.mc-star-rating__info.svelte-17npafv {font-weight:var(--font-weight-medium, 600);line-height:var(--line-height-s, 1.3);color:var(--star-rating-color-text, #000000);}.mc-star-rating__icon.svelte-17npafv svg {height:100%;width:100%;}`};function ue(B,a){X(a,!0),Y(B,de);let o=s(a,"rating",15),x=s(a,"readonly",7),p=s(a,"size",7,"m"),m=s(a,"compact",7),d=s(a,"appearance",7,"standard"),f=s(a,"text",7),r=s(a,"href",7),k=s(a,"target",7),b=re(null);const D=v(()=>r()?"a":"div"),g=v(()=>[x(),m(),r(),f()].some(Boolean)),F=v(()=>({"mc-star-rating":!0,"mc-star-rating--link":r(),"mc-star-rating--slider":!t(g),[`mc-star-rating--${p()}`]:p(),[`mc-star-rating--${d()}`]:d()})),z=v(()=>t(b)??o()),u=v(()=>m()?1:5);function q(e){return m()||t(z)>=e+1?ce:t(g)&&t(z)>=e+.5?ve:me}function K(e){C(b,e+1)}function E(){C(b,null)}function L(e){o(e+1)}function N(e){const h=e.key;let n=Math.floor(o());if(h==="ArrowRight")n=Math.min(t(u),n+1);else if(h==="ArrowLeft")n=Math.max(1,n-1);else return;o(n),e.preventDefault()}const O=v(()=>t(g)?{tabindex:-1}:{onkeydown:N,onmouseleave:E,onblur:E,tabindex:0,"aria-valuemin":0,"aria-valuemax":t(u),"aria-valuenow":o(),"aria-readonly":!1});var T={get rating(){return o()},set rating(e){o(e),i()},get readonly(){return x()},set readonly(e){x(e),i()},get size(){return p()},set size(e="m"){p(e),i()},get compact(){return m()},set compact(e){m(e),i()},get appearance(){return d()},set appearance(e="standard"){d(e),i()},get text(){return f()},set text(e){f(e),i()},get href(){return r()},set href(e){r(e),i()},get target(){return k()},set target(e){k(e),i()}},H=Z(),G=M(H);return oe(G,()=>t(D),!1,(e,h)=>{V(e,()=>({href:r(),target:k(),class:t(F)}),void 0,void 0,void 0,"svelte-17npafv");var n=pe(),_=M(n);V(_,()=>({class:"mc-star-rating__wrapper",role:t(g)?"img":"slider","aria-label":`Note ${t(z)} sur ${t(u)}`,...t(O)}),void 0,void 0,void 0,"svelte-17npafv"),se(_,20,()=>Array.from({length:t(u)}).keys(),l=>l,(l,c)=>{const S=v(()=>q(c));var w=fe();V(w,()=>({class:"mc-star-rating__icon",...t(g)?{}:{onmousemove:()=>K(c),onclick:()=>L(c)}}),void 0,void 0,void 0,"svelte-17npafv");var P=R(w);ie(P,()=>t(S),(Q,U)=>{U(Q,{})}),A(w),y(l,w)}),A(_);var I=ee(_,2);{var J=l=>{var c=ge(),S=R(c,!0);A(c),te(()=>ae(S,f()||r())),y(l,c)};ne(I,l=>{(f()||r())&&l(J)})}y(h,n)}),y(B,H),$(T)}customElements.define("m-star-rating",W(ue,{readonly:{attribute:"readonly",reflect:!0,type:"Boolean"},compact:{attribute:"compact",reflect:!0,type:"Boolean"},rating:{},size:{},appearance:{},text:{},href:{},target:{}},[],[],!0,le));
4
+ //# sourceMappingURL=StarRating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StarRating.js","sources":["../../../src/components/starrating/StarRating.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-star-rating',\n props: {\n readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },\n compact: { reflect: true, type: 'Boolean', attribute: 'compact' },\n },\n extend: customElementForwardEvents,\n }}\n/>\n\n<script lang=\"ts\">\n import { customElementForwardEvents } from '../../utils';\n import { Star24, StarFilled24, StarHalf24 } from '@mozaic-ds/icons-svelte';\n /**\n * A Star rating visually represents a score or evaluation and can be used to display a rating or allow users to rate an item, such as a product or service. It serves two main purposes: collecting user feedback by enabling individuals to express their experience and providing social proof by displaying ratings from other users to assist decision-making. Rating Stars are commonly found in e-commerce, review systems, and feedback interfaces, offering a quick and intuitive way to assess quality or satisfaction.\n */\n interface Props {\n [key: string]: any;\n /**\n * The current rating value of the component.\n */\n rating: number;\n /**\n * Determines whether the rating is interactive or read-only.\n * When true, all user interactions (click, hover, keyboard) are disabled.\n * Automatically set to true when `compact`, `href`, or `information` are provided.\n */\n readonly?: boolean;\n /**\n * Defines the visual size of the star icons and the accompanying text.\n */\n size?: 's' | 'm' | 'l';\n /**\n * Enables a compact display mode that shows only one star instead of five.\n * Typically used for summaries or quick visual cues.\n * When enabled, the component automatically becomes read-only.\n */\n compact?: boolean;\n /**\n * Specifies the color scheme of the stars.\n */\n appearance?: 'standard' | 'accent';\n /**\n * Optional text displayed next to the star rating.\n * If provided, the component automatically becomes read-only.\n */\n text?: string;\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\n let {\n rating = $bindable(),\n readonly,\n size = 'm',\n compact,\n appearance = 'standard',\n text,\n href,\n target,\n }: Props = $props();\n\n let hoverValue: number | null = $state(null);\n const rootTag = $derived(href ? 'a' : 'div');\n\n const isReadonly = $derived([readonly, compact, href, text].some(Boolean));\n\n const classObject = $derived({\n 'mc-star-rating': true,\n 'mc-star-rating--link': href,\n 'mc-star-rating--slider': !isReadonly,\n [`mc-star-rating--${size}`]: size,\n [`mc-star-rating--${appearance}`]: appearance,\n });\n\n const displayValue = $derived(hoverValue ?? rating);\n const maxValue = $derived(compact ? 1 : 5);\n\n function getStarComponent(index: number) {\n if (compact || displayValue >= index + 1) {\n return StarFilled24;\n } else if (isReadonly && displayValue >= index + 0.5) {\n return StarHalf24;\n } else {\n return Star24;\n }\n }\n\n function onHover(index: number) {\n hoverValue = index + 1;\n }\n\n function clearHover() {\n hoverValue = null;\n }\n\n function onClick(index: number) {\n rating = index + 1;\n }\n\n function onKeydown(e: KeyboardEvent) {\n const key = e.key;\n let newValue = Math.floor(rating);\n\n if (key === 'ArrowRight') {\n newValue = Math.min(maxValue, newValue + 1);\n } else if (key === 'ArrowLeft') {\n newValue = Math.max(1, newValue - 1);\n } else return;\n\n rating = newValue;\n\n e.preventDefault();\n }\n\n const wrapperAttrs = $derived(\n isReadonly\n ? {\n tabindex: -1,\n }\n : {\n onkeydown: onKeydown,\n onmouseleave: clearHover,\n onblur: clearHover,\n tabindex: 0,\n 'aria-valuemin': 0,\n 'aria-valuemax': maxValue,\n 'aria-valuenow': rating,\n 'aria-readonly': false,\n },\n );\n</script>\n\n<svelte:element this={rootTag} {href} {target} class={classObject}>\n <div\n class=\"mc-star-rating__wrapper\"\n role={isReadonly ? 'img' : 'slider'}\n aria-label={`Note ${displayValue} sur ${maxValue}`}\n {...wrapperAttrs}\n >\n {#each Array.from({ length: maxValue }).keys() as index (index)}\n {@const Star = getStarComponent(index)}\n\n <span\n class=\"mc-star-rating__icon\"\n {...!isReadonly\n ? {\n onmousemove: () => onHover(index),\n onclick: () => onClick(index),\n }\n : {}}\n >\n <Star />\n </span>\n {/each}\n </div>\n\n {#if text || href}\n <span class=\"mc-star-rating__info\">\n {text || href}\n </span>\n {/if}\n</svelte:element>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/star-rating';\n\n .mc-star-rating__icon {\n :global(svg) {\n height: 100%;\n width: 100%;\n }\n }\n</style>\n"],"names":["rating","$.prop","$$props","readonly","size","compact","appearance","text","href","target","hoverValue","$.state","rootTag","$.derived","isReadonly","classObject","displayValue","$.get","maxValue","getStarComponent","index","StarFilled24","StarHalf24","Star24","onHover","clearHover","$.set","onClick","onKeydown","key","newValue","wrapperAttrs","$$element","$$anchor","div","$.first_child","fragment_1","$.each","Star","span","root_2","node_1","$.child","Star_1","$.reset","$.append","node_2","$.sibling","span_1","root_3","$.template_effect","$.set_text","text_1","$$render","consequent","customElementForwardEvents"],"mappings":";;ylDAWA,qBAgDIA,EAAMC,EAAAC,EAAA,SAAA,EAAA,EACNC,EAAQF,EAAAC,EAAA,WAAA,CAAA,EACRE,eAAO,GAAG,EACVC,EAAOJ,EAAAC,EAAA,UAAA,CAAA,EACPI,qBAAa,UAAU,EACvBC,EAAIN,EAAAC,EAAA,OAAA,CAAA,EACJM,EAAIP,EAAAC,EAAA,OAAA,CAAA,EACJO,EAAMR,EAAAC,EAAA,SAAA,CAAA,EAGJQ,EAA4BC,GAAO,IAAI,EACrC,MAAAC,EAAOC,EAAA,IAAYL,EAAI,EAAG,IAAM,KAAK,EAErCM,EAAUD,EAAA,IAAA,CAAaV,EAAQ,EAAEE,EAAO,EAAEG,EAAI,EAAED,EAAI,CAAA,EAAE,KAAK,OAAO,CAAA,EAElEQ,EAAWF,EAAA,KAAA,CACf,iBAAkB,GAClB,uBAAwBL,EAAI,EAC5B,4BAA2BM,CAAU,EACjB,CAAA,mBAAAV,OAASA,EAAI,EACb,CAAA,mBAAAE,EAAU,KAAKA,EAAU,KAGzCU,EAAYH,EAAA,IAAAI,EAAYP,CAAU,GAAIV,GAAM,EAC5CkB,EAAQL,EAAA,IAAYR,EAAO,EAAG,EAAI,CAAC,WAEhCc,EAAiBC,EAAe,CACnC,OAAAf,EAAO,KAAIW,CAAY,GAAII,EAAQ,EAC9BC,GACRJ,EAAUH,CAAU,GAAAG,EAAID,CAAY,GAAII,EAAQ,GACxCE,GAEAC,EAEX,UAESC,EAAQJ,EAAe,GAC9BV,EAAaU,EAAQ,CAAC,CACxB,CAES,SAAAK,GAAa,CACpBC,EAAAhB,EAAa,IAAI,CACnB,UAESiB,EAAQP,EAAe,CAC9BpB,EAASoB,EAAQ,CAAC,CACpB,UAESQ,EAAU,EAAkB,OAC7BC,EAAM,EAAE,IACV,IAAAC,EAAW,KAAK,MAAM9B,EAAM,CAAA,KAE5B6B,IAAQ,aACVC,EAAW,KAAK,MAAIZ,CAAQ,EAAEY,EAAW,CAAC,UACjCD,IAAQ,YACjBC,EAAW,KAAK,IAAI,EAAGA,EAAW,CAAC,MACpC,QAED9B,EAAS8B,CAAQ,EAEjB,EAAE,eAAc,CAClB,CAEM,MAAAC,EAAYlB,EAAA,IAAAI,EAChBH,CAAA,EAEM,CAAA,WAAY,GAGZ,UAAWc,EACX,aAAcH,EACd,OAAQA,EACR,SAAU,EACV,gBAAiB,EACjB,kBAAiBP,CAAQ,EACzB,gBAAiBlB,EAAM,EACvB,gBAAiB,oJA1EhB,IAAG,4GAEG,WAAU,sLA6ELY,CAAO,EAAA,GAAA,CAAAoB,EAAAC,IAAA,gBAAGzB,EAAI,EAAA,OAAGC,EAAM,EAAA,MAAAQ,EAASF,CAAW,IAAA,OAAA,OAAA,OAAA,gBAAA,aAC9DmB,EAAAC,EAAAC,CAAA,IAAAF,+CAEOpB,CAAU,EAAG,MAAQ,SACP,aAAA,QAAAG,EAAAD,CAAY,WAAQE,CAAQ,CAAA,QAC5Ca,CAAY,2CAJjBM,GAAAH,EAAA,GAAA,IAMQ,MAAM,KAAI,CAAG,OAAMjB,EAAEC,CAAQ,CAAA,CAAA,EAAI,OAAUE,GAAOA,KAAPA,IAAK,OAC7CkB,EAAIzB,EAAA,IAAGM,EAAiBC,CAAK,CAAA,EAEpC,IAAAmB,EAAAC,GAAA,IAAAD,qCAEM,GAAAtB,EAAAH,CAAA,MAEC,YAAW,IAAQU,EAAQJ,CAAK,EAChC,QAAO,IAAQO,EAAQP,CAAK,4CALnC,IAAAqB,EAAAC,EAAAH,CAAA,wBASEI,EAAIV,EAAA,EAAA,IATNW,EAAAL,CAAA,EAAAM,EAAAZ,EAAAM,CAAA,IATJK,EAAAV,CAAA,EAAA,IAAAY,EAAAC,GAAAb,EAAA,CAAA,iBAwBEc,EAAIC,GAAA,MAAJD,EAAI,EAAA,IAAJA,CAAI,EACFE,GAAA,IAAAC,GAAAC,EAAA7C,EAAI,GAAIC,EAAI,CAAA,CAAA,MADdwC,CAAI,aADFzC,EAAI,GAAIC,MAAI6C,EAAAC,CAAA,wBA1BX,mOAnIIC"}
@@ -0,0 +1,108 @@
1
+ import { render, fireEvent } from '@testing-library/svelte';
2
+ import { describe, it, expect } from 'vitest';
3
+ import StarRating from './StarRating.svelte';
4
+ function getStars(container) {
5
+ return Array.from(container.querySelectorAll('.mc-star-rating__icon'));
6
+ }
7
+ function getValue(container) {
8
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
9
+ const value = wrapper?.getAttribute('aria-valuenow');
10
+ return Number(value);
11
+ }
12
+ describe('StarRating', () => {
13
+ it('renders 5 stars by default', () => {
14
+ const { container } = render(StarRating, { rating: 0 });
15
+ expect(getStars(container).length).toBe(5);
16
+ });
17
+ it('renders 1 star when compact mode is enabled', () => {
18
+ const { container } = render(StarRating, { rating: 0, compact: true });
19
+ expect(getStars(container).length).toBe(1);
20
+ });
21
+ it('does not allow x.5 value on input mode', async () => {
22
+ const { container } = render(StarRating, { rating: 3, readonly: false });
23
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
24
+ await fireEvent.keyDown(wrapper, { key: 'ArrowRight' });
25
+ const value = getValue(container);
26
+ expect(value).toBe(4);
27
+ });
28
+ it('allows x.5 values on readonly mode', () => {
29
+ const { container } = render(StarRating, { rating: 1.5, readonly: true });
30
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
31
+ const label = wrapper?.getAttribute('aria-label');
32
+ expect(label).toBe('Note 1.5 sur 5');
33
+ });
34
+ it('updates rating when clicking a star', async () => {
35
+ const { container } = render(StarRating, { rating: 2, readonly: false });
36
+ const stars = container.querySelectorAll('.mc-star-rating__icon');
37
+ await fireEvent.click(stars[0]);
38
+ const value = getValue(container);
39
+ expect(value).toBe(1);
40
+ });
41
+ it('updates rating when pressing ArrowRight', async () => {
42
+ const { container } = render(StarRating, { rating: 2, readonly: false });
43
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
44
+ await fireEvent.keyDown(wrapper, { key: 'ArrowRight' });
45
+ const value = getValue(container);
46
+ expect(value).toBe(3);
47
+ });
48
+ it('updates rating when pressing ArrowLeft', async () => {
49
+ const { container } = render(StarRating, { rating: 2, readonly: false });
50
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
51
+ await fireEvent.keyDown(wrapper, { key: 'ArrowLeft' });
52
+ const value = getValue(container);
53
+ expect(value).toBe(1);
54
+ });
55
+ it('does not update rating when other keys pressed', async () => {
56
+ const { container } = render(StarRating, { rating: 2, readonly: false });
57
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
58
+ await fireEvent.keyDown(wrapper, { key: 'ArrowUp' });
59
+ const value = getValue(container);
60
+ expect(value).toBe(2);
61
+ });
62
+ it('clears hover on mouseleave', async () => {
63
+ const { container } = render(StarRating, { rating: 2, readonly: false });
64
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
65
+ const stars = getStars(container);
66
+ await fireEvent.mouseMove(stars[0]);
67
+ expect(wrapper.getAttribute('aria-label')).toContain('1');
68
+ await fireEvent.mouseLeave(wrapper);
69
+ expect(wrapper.getAttribute('aria-label')).toContain('2');
70
+ });
71
+ it('clears hover on blur', async () => {
72
+ const { container } = render(StarRating, { rating: 3, readonly: false });
73
+ const wrapper = container.querySelector('.mc-star-rating__wrapper');
74
+ const stars = getStars(container);
75
+ await fireEvent.focus(wrapper);
76
+ await fireEvent.mouseMove(stars[1]);
77
+ expect(wrapper.getAttribute('aria-label')).toContain('2');
78
+ await fireEvent.blur(wrapper);
79
+ expect(wrapper.getAttribute('aria-label')).toContain('3');
80
+ });
81
+ it('renders info text when text is provided', () => {
82
+ const { container } = render(StarRating, {
83
+ rating: 3,
84
+ text: 'Note publique',
85
+ });
86
+ const info = container.querySelector('.mc-star-rating__info');
87
+ expect(info).not.toBeNull();
88
+ expect(info?.textContent).toBe('Note publique');
89
+ });
90
+ it('renders href text when provided and no text', () => {
91
+ const { container } = render(StarRating, { rating: 2, href: '/voir' });
92
+ const info = container.querySelector('.mc-star-rating__info');
93
+ expect(info).not.toBeNull();
94
+ expect(info?.textContent).toBe('/voir');
95
+ });
96
+ it('does not render info span when neither text nor href provided', () => {
97
+ const { container } = render(StarRating, { rating: 1 });
98
+ expect(container.querySelector('.mc-star-rating__info')).toBeNull();
99
+ });
100
+ it('renders <a> when href provided', () => {
101
+ const { container } = render(StarRating, { rating: 1, href: '#' });
102
+ expect(container.querySelector('a')).toBeTruthy();
103
+ });
104
+ it('renders <div> when no href provided', () => {
105
+ const { container } = render(StarRating, { rating: 1 });
106
+ expect(container.querySelector('div.mc-star-rating')).toBeTruthy();
107
+ });
108
+ });
@@ -0,0 +1,14 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ import './StarRating.svelte';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj;
6
+ export declare const Default: Story;
7
+ export declare const AsInput: Story;
8
+ export declare const SizeM: Story;
9
+ export declare const SizeL: Story;
10
+ export declare const StandardAppearance: Story;
11
+ export declare const WithText: Story;
12
+ export declare const WithLink: Story;
13
+ export declare const CompactModeWithText: Story;
14
+ //# sourceMappingURL=StarRating.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StarRating.stories.d.ts","sourceRoot":"","sources":["../../../src/components/starrating/StarRating.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,qBAAqB,CAAC;AAE7B,QAAA,MAAM,IAAI,EAAE,IAoCX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAIhC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAMjC,CAAC"}