@mozaic-ds/web-components 1.3.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 (482) 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 +8 -0
  8. package/dist/bundle.d.ts.map +1 -1
  9. package/dist/bundle.js +8 -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 +1 -1
  60. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  61. package/dist/components/avatar/Avatar.stories.js +2 -2
  62. package/dist/components/avatar/Avatar.svelte +13 -3
  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.svelte +1 -0
  69. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts +1 -0
  70. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  71. package/dist/components/builtinmenu/BuiltInMenu.js +4 -0
  72. package/dist/components/builtinmenu/BuiltInMenu.js.map +1 -0
  73. package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts +11 -0
  74. package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts.map +1 -0
  75. package/dist/components/builtinmenu/BuiltInMenu.stories.js +61 -0
  76. package/dist/components/builtinmenu/BuiltInMenu.svelte +142 -0
  77. package/dist/components/builtinmenu/BuiltInMenu.svelte.d.ts +41 -0
  78. package/dist/components/builtinmenu/BuiltInMenu.svelte.d.ts.map +1 -0
  79. package/dist/components/builtinmenu/BuiltinMenu.spec.js +19 -0
  80. package/dist/components/builtinmenu/README.md +18 -0
  81. package/dist/components/builtinmenuitem/BuiltInMenuItem.js +8 -0
  82. package/dist/components/builtinmenuitem/BuiltInMenuItem.js.map +1 -0
  83. package/dist/components/builtinmenuitem/BuiltInMenuItem.spec.js +36 -0
  84. package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte +165 -0
  85. package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte.d.ts +50 -0
  86. package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte.d.ts.map +1 -0
  87. package/dist/components/builtinmenuitem/README.md +20 -0
  88. package/dist/components/button/Button.js +2 -2
  89. package/dist/components/button/Button.js.map +1 -1
  90. package/dist/components/button/Button.stories.d.ts +13 -2
  91. package/dist/components/button/Button.stories.d.ts.map +1 -1
  92. package/dist/components/button/Button.stories.js +145 -7
  93. package/dist/components/button/Button.svelte +44 -16
  94. package/dist/components/button/Button.svelte.d.ts +10 -0
  95. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  96. package/dist/components/button/README.md +2 -2
  97. package/dist/components/callout/Callout.js +2 -2
  98. package/dist/components/callout/Callout.js.map +1 -1
  99. package/dist/components/callout/Callout.spec.js +4 -1
  100. package/dist/components/callout/Callout.stories.d.ts +2 -2
  101. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  102. package/dist/components/callout/Callout.stories.js +2 -2
  103. package/dist/components/callout/Callout.svelte +39 -4
  104. package/dist/components/callout/Callout.svelte.d.ts +14 -0
  105. package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
  106. package/dist/components/callout/README.md +3 -0
  107. package/dist/components/carousel/Carousel.js +2 -2
  108. package/dist/components/carousel/Carousel.js.map +1 -1
  109. package/dist/components/carousel/Carousel.stories.d.ts.map +1 -1
  110. package/dist/components/carousel/Carousel.stories.js +1 -0
  111. package/dist/components/carousel/Carousel.svelte +30 -6
  112. package/dist/components/carousel/Carousel.svelte.d.ts +10 -0
  113. package/dist/components/carousel/Carousel.svelte.d.ts.map +1 -1
  114. package/dist/components/carousel/README.md +3 -1
  115. package/dist/components/checkbox/Checkbox.js +2 -2
  116. package/dist/components/checkbox/Checkbox.js.map +1 -1
  117. package/dist/components/checkbox/Checkbox.stories.js +5 -5
  118. package/dist/components/checkbox/Checkbox.svelte +5 -0
  119. package/dist/components/checkbox/Checkbox.svelte.d.ts +1 -0
  120. package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
  121. package/dist/components/checkboxgroup/CheckboxGroup.js +2 -2
  122. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  123. package/dist/components/checkboxgroup/CheckboxGroup.stories.js +2 -2
  124. package/dist/components/checkboxgroup/CheckboxGroup.svelte +3 -0
  125. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts +1 -0
  126. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
  127. package/dist/components/checklistmenu/CheckListMenu.js +4 -0
  128. package/dist/components/checklistmenu/CheckListMenu.js.map +1 -0
  129. package/dist/components/checklistmenu/CheckListMenu.spec.js +33 -0
  130. package/dist/components/checklistmenu/CheckListMenu.stories.d.ts +8 -0
  131. package/dist/components/checklistmenu/CheckListMenu.stories.d.ts.map +1 -0
  132. package/dist/components/checklistmenu/CheckListMenu.stories.js +32 -0
  133. package/dist/components/checklistmenu/CheckListMenu.svelte +79 -0
  134. package/dist/components/checklistmenu/CheckListMenu.svelte.d.ts +27 -0
  135. package/dist/components/checklistmenu/CheckListMenu.svelte.d.ts.map +1 -0
  136. package/dist/components/checklistmenu/README.md +12 -0
  137. package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
  138. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  139. package/dist/components/circularprogressbar/CircularProgressbar.svelte +1 -0
  140. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +1 -0
  141. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
  142. package/dist/components/container/Container.js +2 -2
  143. package/dist/components/container/Container.js.map +1 -1
  144. package/dist/components/container/Container.stories.d.ts.map +1 -1
  145. package/dist/components/container/Container.stories.js +1 -3
  146. package/dist/components/container/Container.svelte +19 -3
  147. package/dist/components/container/Container.svelte.d.ts +5 -0
  148. package/dist/components/container/Container.svelte.d.ts.map +1 -1
  149. package/dist/components/container/README.md +1 -0
  150. package/dist/components/datepicker/Datepicker.js +2 -2
  151. package/dist/components/datepicker/Datepicker.js.map +1 -1
  152. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  153. package/dist/components/datepicker/Datepicker.stories.js +5 -4
  154. package/dist/components/datepicker/Datepicker.svelte +15 -3
  155. package/dist/components/datepicker/Datepicker.svelte.d.ts +1 -0
  156. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  157. package/dist/components/divider/Divider.js +2 -2
  158. package/dist/components/divider/Divider.js.map +1 -1
  159. package/dist/components/divider/Divider.svelte +19 -3
  160. package/dist/components/divider/Divider.svelte.d.ts +6 -0
  161. package/dist/components/divider/Divider.svelte.d.ts.map +1 -1
  162. package/dist/components/divider/README.md +1 -0
  163. package/dist/components/drawer/Drawer.js +2 -2
  164. package/dist/components/drawer/Drawer.js.map +1 -1
  165. package/dist/components/drawer/Drawer.stories.js +3 -3
  166. package/dist/components/drawer/Drawer.svelte +35 -7
  167. package/dist/components/drawer/Drawer.svelte.d.ts +10 -0
  168. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  169. package/dist/components/drawer/README.md +2 -0
  170. package/dist/components/field/Field.js +2 -2
  171. package/dist/components/field/Field.js.map +1 -1
  172. package/dist/components/field/Field.stories.js +3 -3
  173. package/dist/components/field/Field.svelte +16 -1
  174. package/dist/components/field/Field.svelte.d.ts +5 -0
  175. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  176. package/dist/components/field/README.md +1 -0
  177. package/dist/components/fileuploader/FileUploader.js +4 -0
  178. package/dist/components/fileuploader/FileUploader.js.map +1 -0
  179. package/dist/components/fileuploader/FileUploader.spec.js +134 -0
  180. package/dist/components/fileuploader/FileUploader.stories.d.ts +17 -0
  181. package/dist/components/fileuploader/FileUploader.stories.d.ts.map +1 -0
  182. package/dist/components/fileuploader/FileUploader.stories.js +172 -0
  183. package/dist/components/fileuploader/FileUploader.svelte +816 -0
  184. package/dist/components/fileuploader/FileUploader.svelte.d.ts +125 -0
  185. package/dist/components/fileuploader/FileUploader.svelte.d.ts.map +1 -0
  186. package/dist/components/fileuploader/README.md +42 -0
  187. package/dist/components/fileuploaderitem/FileUploaderItem.js +5 -0
  188. package/dist/components/fileuploaderitem/FileUploaderItem.js.map +1 -0
  189. package/dist/components/fileuploaderitem/FileUploaderItem.spec.js +41 -0
  190. package/dist/components/fileuploaderitem/FileUploaderItem.svelte +298 -0
  191. package/dist/components/fileuploaderitem/FileUploaderItem.svelte.d.ts +62 -0
  192. package/dist/components/fileuploaderitem/FileUploaderItem.svelte.d.ts.map +1 -0
  193. package/dist/components/fileuploaderitem/README.md +24 -0
  194. package/dist/components/flag/Flag.js +2 -2
  195. package/dist/components/flag/Flag.js.map +1 -1
  196. package/dist/components/flag/Flag.svelte +1 -0
  197. package/dist/components/flag/Flag.svelte.d.ts +1 -0
  198. package/dist/components/flag/Flag.svelte.d.ts.map +1 -1
  199. package/dist/components/iconbutton/IconButton.js +2 -2
  200. package/dist/components/iconbutton/IconButton.js.map +1 -1
  201. package/dist/components/iconbutton/IconButton.stories.d.ts +13 -7
  202. package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
  203. package/dist/components/iconbutton/IconButton.stories.js +113 -10
  204. package/dist/components/iconbutton/IconButton.svelte +35 -2
  205. package/dist/components/iconbutton/IconButton.svelte.d.ts +10 -0
  206. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  207. package/dist/components/iconbutton/README.md +2 -0
  208. package/dist/components/kpiitem/KpiItem.js +2 -2
  209. package/dist/components/kpiitem/KpiItem.js.map +1 -1
  210. package/dist/components/kpiitem/KpiItem.stories.d.ts.map +1 -1
  211. package/dist/components/kpiitem/KpiItem.stories.js +1 -0
  212. package/dist/components/kpiitem/KpiItem.svelte +2 -3
  213. package/dist/components/kpiitem/KpiItem.svelte.d.ts +1 -0
  214. package/dist/components/kpiitem/KpiItem.svelte.d.ts.map +1 -1
  215. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
  216. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  217. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +1 -0
  218. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts +1 -0
  219. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
  220. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
  221. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  222. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +1 -0
  223. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts +1 -0
  224. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts.map +1 -1
  225. package/dist/components/link/Link.js +2 -2
  226. package/dist/components/link/Link.js.map +1 -1
  227. package/dist/components/link/Link.stories.d.ts +2 -2
  228. package/dist/components/link/Link.stories.d.ts.map +1 -1
  229. package/dist/components/link/Link.stories.js +5 -5
  230. package/dist/components/link/Link.svelte +38 -8
  231. package/dist/components/link/Link.svelte.d.ts +10 -0
  232. package/dist/components/link/Link.svelte.d.ts.map +1 -1
  233. package/dist/components/link/README.md +2 -1
  234. package/dist/components/loader/Loader.js +2 -2
  235. package/dist/components/loader/Loader.js.map +1 -1
  236. package/dist/components/loader/Loader.svelte +1 -0
  237. package/dist/components/loader/Loader.svelte.d.ts +1 -0
  238. package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
  239. package/dist/components/loadingoverlay/LoadingOverlay.js +2 -2
  240. package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -1
  241. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +1 -1
  242. package/dist/components/loadingoverlay/LoadingOverlay.svelte +9 -1
  243. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts +1 -0
  244. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts.map +1 -1
  245. package/dist/components/modal/Modal.js +2 -2
  246. package/dist/components/modal/Modal.js.map +1 -1
  247. package/dist/components/modal/Modal.stories.d.ts +2 -2
  248. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  249. package/dist/components/modal/Modal.stories.js +4 -4
  250. package/dist/components/modal/Modal.svelte +62 -8
  251. package/dist/components/modal/Modal.svelte.d.ts +18 -0
  252. package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
  253. package/dist/components/modal/README.md +4 -0
  254. package/dist/components/numberbadge/NumberBadge.js +2 -2
  255. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  256. package/dist/components/numberbadge/NumberBadge.svelte +1 -0
  257. package/dist/components/numberbadge/NumberBadge.svelte.d.ts +1 -0
  258. package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
  259. package/dist/components/overlay/Overlay.js +2 -2
  260. package/dist/components/overlay/Overlay.js.map +1 -1
  261. package/dist/components/overlay/Overlay.stories.js +1 -1
  262. package/dist/components/overlay/Overlay.svelte +19 -3
  263. package/dist/components/overlay/Overlay.svelte.d.ts +5 -0
  264. package/dist/components/overlay/Overlay.svelte.d.ts.map +1 -1
  265. package/dist/components/overlay/README.md +1 -0
  266. package/dist/components/pagination/Pagination.js +8 -8
  267. package/dist/components/pagination/Pagination.js.map +1 -1
  268. package/dist/components/pagination/Pagination.stories.js +1 -1
  269. package/dist/components/pagination/Pagination.svelte +16 -6
  270. package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
  271. package/dist/components/passwordinput/PasswordInput.js +2 -2
  272. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  273. package/dist/components/passwordinput/PasswordInput.stories.js +4 -4
  274. package/dist/components/passwordinput/PasswordInput.svelte +7 -0
  275. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +1 -0
  276. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  277. package/dist/components/phonenumber/PhoneNumber.js +6 -6
  278. package/dist/components/phonenumber/PhoneNumber.js.map +1 -1
  279. package/dist/components/phonenumber/PhoneNumber.stories.d.ts.map +1 -1
  280. package/dist/components/phonenumber/PhoneNumber.stories.js +10 -4
  281. package/dist/components/phonenumber/PhoneNumber.svelte +13 -4
  282. package/dist/components/phonenumber/PhoneNumber.svelte.d.ts +1 -0
  283. package/dist/components/phonenumber/PhoneNumber.svelte.d.ts.map +1 -1
  284. package/dist/components/pincode/Pincode.js +2 -2
  285. package/dist/components/pincode/Pincode.js.map +1 -1
  286. package/dist/components/pincode/Pincode.stories.js +3 -3
  287. package/dist/components/pincode/Pincode.svelte +12 -2
  288. package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
  289. package/dist/components/quantityselector/QuantitySelector.js +2 -2
  290. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  291. package/dist/components/quantityselector/QuantitySelector.stories.js +3 -3
  292. package/dist/components/quantityselector/QuantitySelector.svelte +7 -2
  293. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts +1 -0
  294. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  295. package/dist/components/radio/Radio.js +2 -2
  296. package/dist/components/radio/Radio.js.map +1 -1
  297. package/dist/components/radio/Radio.stories.js +3 -3
  298. package/dist/components/radio/Radio.svelte +3 -0
  299. package/dist/components/radio/Radio.svelte.d.ts +1 -0
  300. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  301. package/dist/components/radiogroup/RadioGroup.js +2 -2
  302. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  303. package/dist/components/radiogroup/RadioGroup.stories.js +2 -2
  304. package/dist/components/radiogroup/RadioGroup.svelte +2 -0
  305. package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
  306. package/dist/components/segmentedcontrol/SegmentedControl.js +2 -2
  307. package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -1
  308. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -1
  309. package/dist/components/segmentedcontrol/SegmentedControl.stories.js +2 -1
  310. package/dist/components/segmentedcontrol/SegmentedControl.svelte +8 -1
  311. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -1
  312. package/dist/components/select/Select.js +2 -2
  313. package/dist/components/select/Select.js.map +1 -1
  314. package/dist/components/select/Select.stories.js +3 -3
  315. package/dist/components/select/Select.svelte +4 -0
  316. package/dist/components/select/Select.svelte.d.ts +1 -0
  317. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  318. package/dist/components/starrating/StarRating.js +2 -2
  319. package/dist/components/starrating/StarRating.js.map +1 -1
  320. package/dist/components/starrating/StarRating.stories.d.ts +1 -0
  321. package/dist/components/starrating/StarRating.stories.d.ts.map +1 -1
  322. package/dist/components/starrating/StarRating.stories.js +3 -2
  323. package/dist/components/starrating/StarRating.svelte +6 -3
  324. package/dist/components/starrating/StarRating.svelte.d.ts +1 -0
  325. package/dist/components/starrating/StarRating.svelte.d.ts.map +1 -1
  326. package/dist/components/statusbadge/StatusBadge.js +2 -2
  327. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  328. package/dist/components/statusbadge/StatusBadge.svelte +1 -0
  329. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +1 -0
  330. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  331. package/dist/components/statusdot/StatusDot.js +2 -2
  332. package/dist/components/statusdot/StatusDot.js.map +1 -1
  333. package/dist/components/statusdot/StatusDot.svelte +1 -0
  334. package/dist/components/statusdot/StatusDot.svelte.d.ts +1 -0
  335. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  336. package/dist/components/statusmessage/StatusMessage.js +2 -2
  337. package/dist/components/statusmessage/StatusMessage.js.map +1 -1
  338. package/dist/components/statusmessage/StatusMessage.svelte +10 -7
  339. package/dist/components/statusmessage/StatusMessage.svelte.d.ts +1 -0
  340. package/dist/components/statusmessage/StatusMessage.svelte.d.ts.map +1 -1
  341. package/dist/components/statusnotification/README.md +1 -0
  342. package/dist/components/statusnotification/StatusNotification.js +2 -2
  343. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  344. package/dist/components/statusnotification/StatusNotification.stories.d.ts +1 -1
  345. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  346. package/dist/components/statusnotification/StatusNotification.stories.js +2 -2
  347. package/dist/components/statusnotification/StatusNotification.svelte +34 -15
  348. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +6 -0
  349. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  350. package/dist/components/stepperbottombar/README.md +24 -0
  351. package/dist/components/stepperbottombar/StepperBottomBar.js +12 -0
  352. package/dist/components/stepperbottombar/StepperBottomBar.js.map +1 -0
  353. package/dist/components/stepperbottombar/StepperBottomBar.spec.js +106 -0
  354. package/dist/components/stepperbottombar/StepperBottomBar.stories.d.ts +9 -0
  355. package/dist/components/stepperbottombar/StepperBottomBar.stories.d.ts.map +1 -0
  356. package/dist/components/stepperbottombar/StepperBottomBar.stories.js +74 -0
  357. package/dist/components/stepperbottombar/StepperBottomBar.svelte +532 -0
  358. package/dist/components/stepperbottombar/StepperBottomBar.svelte.d.ts +41 -0
  359. package/dist/components/stepperbottombar/StepperBottomBar.svelte.d.ts.map +1 -0
  360. package/dist/components/steppercompact/StepperCompact.js +2 -2
  361. package/dist/components/steppercompact/StepperCompact.js.map +1 -1
  362. package/dist/components/stepperinline/README.md +11 -0
  363. package/dist/components/stepperinline/StepperInline.js +16 -0
  364. package/dist/components/stepperinline/StepperInline.js.map +1 -0
  365. package/dist/components/stepperinline/StepperInline.spec.js +83 -0
  366. package/dist/components/stepperinline/StepperInline.stories.d.ts +7 -0
  367. package/dist/components/stepperinline/StepperInline.stories.d.ts.map +1 -0
  368. package/dist/components/stepperinline/StepperInline.stories.js +23 -0
  369. package/dist/components/stepperinline/StepperInline.svelte +176 -0
  370. package/dist/components/stepperinline/StepperInline.svelte.d.ts +27 -0
  371. package/dist/components/stepperinline/StepperInline.svelte.d.ts.map +1 -0
  372. package/dist/components/tab/README.md +3 -1
  373. package/dist/components/tab/Tab.js +2 -2
  374. package/dist/components/tab/Tab.js.map +1 -1
  375. package/dist/components/tab/Tab.svelte +49 -16
  376. package/dist/components/tab/Tab.svelte.d.ts +10 -0
  377. package/dist/components/tab/Tab.svelte.d.ts.map +1 -1
  378. package/dist/components/tabs/README.md +1 -0
  379. package/dist/components/tabs/Tabs.js +2 -2
  380. package/dist/components/tabs/Tabs.js.map +1 -1
  381. package/dist/components/tabs/Tabs.stories.d.ts +1 -1
  382. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  383. package/dist/components/tabs/Tabs.stories.js +3 -3
  384. package/dist/components/tabs/Tabs.svelte +21 -4
  385. package/dist/components/tabs/Tabs.svelte.d.ts +5 -0
  386. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  387. package/dist/components/tag/README.md +1 -0
  388. package/dist/components/tag/Tag.js +2 -2
  389. package/dist/components/tag/Tag.js.map +1 -1
  390. package/dist/components/tag/Tag.stories.js +2 -2
  391. package/dist/components/tag/Tag.svelte +31 -9
  392. package/dist/components/tag/Tag.svelte.d.ts +6 -0
  393. package/dist/components/tag/Tag.svelte.d.ts.map +1 -1
  394. package/dist/components/textarea/Textarea.js +2 -2
  395. package/dist/components/textarea/Textarea.js.map +1 -1
  396. package/dist/components/textarea/Textarea.stories.js +3 -3
  397. package/dist/components/textarea/Textarea.svelte +12 -1
  398. package/dist/components/textarea/Textarea.svelte.d.ts +1 -0
  399. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  400. package/dist/components/textinput/README.md +1 -0
  401. package/dist/components/textinput/Textinput.js +2 -2
  402. package/dist/components/textinput/Textinput.js.map +1 -1
  403. package/dist/components/textinput/Textinput.spec.js +4 -1
  404. package/dist/components/textinput/Textinput.stories.js +4 -4
  405. package/dist/components/textinput/Textinput.svelte +24 -2
  406. package/dist/components/textinput/Textinput.svelte.d.ts +6 -0
  407. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  408. package/dist/components/toaster/README.md +1 -0
  409. package/dist/components/toaster/Toaster.js +2 -2
  410. package/dist/components/toaster/Toaster.js.map +1 -1
  411. package/dist/components/toaster/Toaster.stories.js +1 -1
  412. package/dist/components/toaster/Toaster.svelte +32 -11
  413. package/dist/components/toaster/Toaster.svelte.d.ts +6 -0
  414. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  415. package/dist/components/toggle/Toggle.js +2 -2
  416. package/dist/components/toggle/Toggle.js.map +1 -1
  417. package/dist/components/toggle/Toggle.stories.js +2 -2
  418. package/dist/components/toggle/Toggle.svelte +2 -0
  419. package/dist/components/toggle/Toggle.svelte.d.ts +1 -0
  420. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  421. package/dist/components/togglegroup/ToggleGroup.js +2 -2
  422. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  423. package/dist/components/togglegroup/ToggleGroup.stories.js +1 -1
  424. package/dist/components/togglegroup/ToggleGroup.svelte +1 -0
  425. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  426. package/dist/components/tooltip/README.md +1 -0
  427. package/dist/components/tooltip/Tooltip.js +2 -2
  428. package/dist/components/tooltip/Tooltip.js.map +1 -1
  429. package/dist/components/tooltip/Tooltip.stories.js +1 -1
  430. package/dist/components/tooltip/Tooltip.svelte +20 -3
  431. package/dist/components/tooltip/Tooltip.svelte.d.ts +6 -0
  432. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  433. package/dist/custom-element.js +3 -3
  434. package/dist/custom-element.js.map +1 -1
  435. package/dist/documentation/{WebComponents/usingPresets.mdx → BrandPresets.mdx} +2 -24
  436. package/dist/documentation/Changelog.mdx +19 -0
  437. package/dist/documentation/Color.mdx +224 -0
  438. package/dist/documentation/Contributing.mdx +11 -5
  439. package/dist/documentation/GettingStarted.mdx +76 -0
  440. package/dist/documentation/Icon.stories.d.ts +10 -0
  441. package/dist/documentation/Icon.stories.d.ts.map +1 -0
  442. package/dist/documentation/Icon.stories.js +138 -0
  443. package/dist/documentation/Migration.mdx +5 -5
  444. package/dist/documentation/Welcome.mdx +52 -0
  445. package/dist/each.js +1 -1
  446. package/dist/each.js.map +1 -1
  447. package/dist/if.js +1 -1
  448. package/dist/if.js.map +1 -1
  449. package/dist/index-client.js +2 -0
  450. package/dist/index-client.js.map +1 -0
  451. package/dist/input.js +1 -1
  452. package/dist/input.js.map +1 -1
  453. package/dist/main.d.ts +8 -1
  454. package/dist/main.d.ts.map +1 -1
  455. package/dist/main.js +8 -1
  456. package/dist/slot.js +1 -1
  457. package/dist/slot.js.map +1 -1
  458. package/dist/snippet.js +2 -0
  459. package/dist/snippet.js.map +1 -0
  460. package/dist/svelte-component.js +1 -1
  461. package/dist/svelte-element.js +2 -0
  462. package/dist/svelte-element.js.map +1 -0
  463. package/dist/this.js +1 -1
  464. package/dist/this.js.map +1 -1
  465. package/package.json +22 -23
  466. package/dist/Cross20.js +0 -2
  467. package/dist/Cross20.js.map +0 -1
  468. package/dist/Cross24.js +0 -2
  469. package/dist/Cross24.js.map +0 -1
  470. package/dist/CrossCircleFilled24.js +0 -2
  471. package/dist/CrossCircleFilled24.js.map +0 -1
  472. package/dist/Less24.js +0 -2
  473. package/dist/Less24.js.map +0 -1
  474. package/dist/documentation/Introduction.mdx +0 -109
  475. package/dist/documentation/SupportAndOnboarding.mdx +0 -70
  476. package/dist/documentation/Svelte/Introduction.mdx +0 -76
  477. package/dist/documentation/Svelte/usingIcons.mdx +0 -98
  478. package/dist/documentation/Svelte/usingPresets.mdx +0 -134
  479. package/dist/documentation/WebComponents/Introduction.mdx +0 -52
  480. package/dist/documentation/WebComponents/usingIcons.mdx +0 -81
  481. package/dist/legacy.js +0 -2
  482. package/dist/legacy.js.map +0 -1
@@ -1,8 +1,17 @@
1
- <svelte:options customElement={{ tag: 'm-drawer' }} />
1
+ <svelte:options
2
+ customElement={{
3
+ tag: 'm-drawer',
4
+ props: {
5
+ open: { reflect: true, type: 'Boolean', attribute: 'open' },
6
+ extended: { reflect: true, type: 'Boolean', attribute: 'extended' },
7
+ back: { reflect: true, type: 'Boolean', attribute: 'back' },
8
+ },
9
+ }}
10
+ />
2
11
 
3
12
  <script lang="ts">
4
- import ArrowBack24 from '@mozaic-ds/icons-svelte/svelte/ArrowBack24/ArrowBack24.svelte';
5
- import Cross24 from '@mozaic-ds/icons-svelte/svelte/Cross24/Cross24.svelte';
13
+ import type { Snippet } from 'svelte';
14
+ import { ArrowBack24, Cross24 } from '@mozaic-ds/icons-svelte';
6
15
  import MOverlay from '../overlay/Overlay.svelte';
7
16
  /**
8
17
  * A drawer is a sliding panel that appears from the side of the screen, providing additional content, settings, or actions without disrupting the main view. It is often used for filtering options, or contextual details. It enhances usability by keeping interfaces clean while offering expandable functionality.
@@ -13,6 +22,7 @@
13
22
  * @event back {CustomEvent<void>} - Emits when click back button of the drawer.
14
23
  */
15
24
  interface Props {
25
+ [key: string]: any;
16
26
  /**
17
27
  * If `true`, display the drawer.
18
28
  */
@@ -37,6 +47,14 @@
37
47
  * Title of the content of the drawer.
38
48
  */
39
49
  contentTitle?: string;
50
+ /**
51
+ * Use this snippet to insert the content of the drawer
52
+ */
53
+ children?: Snippet;
54
+ /**
55
+ * Use this snippet to insert buttons in the footer
56
+ */
57
+ footer?: Snippet;
40
58
  /**
41
59
  * Callback fired when the drawer open state changes.
42
60
  */
@@ -54,6 +72,8 @@
54
72
  back,
55
73
  title,
56
74
  contentTitle,
75
+ children,
76
+ footer,
57
77
  onUpdateOpen,
58
78
  onBack,
59
79
  ...attrs
@@ -108,7 +128,7 @@
108
128
  aria-label="Back"
109
129
  onclick={onClickBack}
110
130
  >
111
- <ArrowBack24 aria-hidden="true" />
131
+ <ArrowBack24 />
112
132
  </button>
113
133
  {/if}
114
134
  <h2 class="mc-drawer__title" id="drawerTitle">{title}</h2>
@@ -117,7 +137,7 @@
117
137
  aria-label="Close"
118
138
  onclick={onClose}
119
139
  >
120
- <Cross24 aria-hidden="true" />
140
+ <Cross24 />
121
141
  </button>
122
142
  </div>
123
143
 
@@ -126,12 +146,20 @@
126
146
  {#if contentTitle}
127
147
  <h2 class="mc-drawer__content__title">{contentTitle}</h2>
128
148
  {/if}
129
- <slot />
149
+ {#if children}
150
+ {@render children()}
151
+ {:else}
152
+ <slot />
153
+ {/if}
130
154
  </div>
131
155
  </div>
132
156
 
133
157
  <div class="mc-drawer__footer">
134
- <slot name="footer" />
158
+ {#if footer}
159
+ {@render footer()}
160
+ {:else}
161
+ <slot name="footer" />
162
+ {/if}
135
163
  </div>
136
164
  </div>
137
165
  <MOverlay isvisible={open} dialoglabel="drawerTitle" />
@@ -1,3 +1,4 @@
1
+ import type { Snippet } from 'svelte';
1
2
  /**
2
3
  * A drawer is a sliding panel that appears from the side of the screen, providing additional content, settings, or actions without disrupting the main view. It is often used for filtering options, or contextual details. It enhances usability by keeping interfaces clean while offering expandable functionality.
3
4
  *
@@ -7,6 +8,7 @@
7
8
  * @event back {CustomEvent<void>} - Emits when click back button of the drawer.
8
9
  */
9
10
  interface Props {
11
+ [key: string]: any;
10
12
  /**
11
13
  * If `true`, display the drawer.
12
14
  */
@@ -31,6 +33,14 @@ interface Props {
31
33
  * Title of the content of the drawer.
32
34
  */
33
35
  contentTitle?: string;
36
+ /**
37
+ * Use this snippet to insert the content of the drawer
38
+ */
39
+ children?: Snippet;
40
+ /**
41
+ * Use this snippet to insert buttons in the footer
42
+ */
43
+ footer?: Snippet;
34
44
  /**
35
45
  * Callback fired when the drawer open state changes.
36
46
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.svelte.ts"],"names":[],"mappings":"AAOE;;;;;;;GAOG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAqFH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,MAAM;;;;;;;;UAAqF,CAAC;AAChF,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Drawer.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIpC;;;;;;;GAOG;AACH,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAsGH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,MAAM;;;;;;;;UAAqF,CAAC;AAChF,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,eAAe,MAAM,CAAC"}
@@ -12,6 +12,8 @@ A drawer is a sliding panel that appears from the side of the screen, providing
12
12
  | `back` | If `true`, display the back button. | `boolean` | |
13
13
  | `title*` | Title of the drawer. | `string` | |
14
14
  | `contentTitle` | Title of the content of the drawer. | `string` | |
15
+ | `children` | Use this snippet to insert the content of the drawer | `Snippet` | |
16
+ | `footer` | Use this snippet to insert buttons in the footer | `Snippet` | |
15
17
  | `onUpdateOpen` | Callback fired when the drawer open state changes. | `(open: boolean) => void` | |
16
18
  | `onBack` | Callback fired when the back button is clicked. | `() => void` | |
17
19
 
@@ -1,7 +1,7 @@
1
- import{c as J,p as K,a as N,b as t,f as x,s as d,d as r,t as h,h as u,i as O,j as a,e as v,g as w,l as P,m as Q}from"../../custom-element.js";import{i as p}from"../../if.js";import{s as R}from"../../slot.js";import{s as M}from"../../attributes.js";import{L as T}from"../loader/Loader.js";var U=x('<span class="mc-field__requirement svelte-19i2lwv" aria-hidden="true"> </span>'),W=x('<span class="mc-field__help svelte-19i2lwv"> </span>'),X=x("<span><!> </span>"),Y=x('<div class="mc-field"><label class="mc-field__label svelte-19i2lwv"> <!></label> <!> <div class="mc-field__content svelte-19i2lwv"><!></div> <!></div>');const $={hash:"svelte-19i2lwv",code:`/**
1
+ import{c as Q,p as R,a as T,b as t,s as v,t as p,f as r,g as U,h as x,d as n,j as a,r as d,e as b,k as D,l as F,n as W,o as X}from"../../custom-element.js";import{s as Y}from"../../snippet.js";import{i as o}from"../../if.js";import{s as $}from"../../slot.js";import{s as B}from"../../attributes.js";import{L as ee}from"../loader/Loader.js";var ie=x('<span class="mc-field__requirement svelte-19i2lwv" aria-hidden="true"> </span>'),le=x('<span class="mc-field__help svelte-19i2lwv"> </span>'),te=x("<span><!> </span>"),ae=x('<div class="mc-field"><label class="mc-field__label svelte-19i2lwv"> <!></label> <!> <div class="mc-field__content svelte-19i2lwv"><!></div> <!></div>');const se={hash:"svelte-19i2lwv",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */
4
4
  /* stylelint-disable string-no-newline */.mc-field__label.svelte-19i2lwv {font-size:var(--font-size-100, 0.875rem);line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-regular, 400);color:var(--field-color-label, #000000);}.mc-field__requirement.svelte-19i2lwv, .mc-field__help.svelte-19i2lwv {font-size:var(--font-size-50, 0.75rem);line-height:var(--line-height-m, 1.5);font-weight:var(--font-weight-regular, 400);vertical-align:top;color:var(--field-color-requirement, #666666);}.mc-field__help.svelte-19i2lwv {display:block;margin-top:0.125rem;}.mc-field__content.svelte-19i2lwv {margin-top:0.5rem;}.mc-field__validation-message.svelte-19i2lwv {font-size:var(--font-size-100, 0.875rem);line-height:var(--line-height-m, 1.5);display:inline-flex;gap:0.25rem;margin-top:0.25rem;}.mc-field__validation-message.is-valid.svelte-19i2lwv::before, .mc-field__validation-message.is-invalid.svelte-19i2lwv::before {content:"";height:1.25rem;width:1.25rem;}.mc-field__validation-message.is-valid.svelte-19i2lwv {color:var(--field-color-validation-valid, #117f03);}.mc-field__validation-message.is-valid.svelte-19i2lwv::before {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' fill='var(--field-color-validation-valid, %23117f03)' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M3.25 10c0-3.72792 3.02208-6.75 6.75-6.75 3.7279 0 6.75 3.02208 6.75 6.75 0 3.7279-3.0221 6.75-6.75 6.75-3.72792 0-6.75-3.0221-6.75-6.75ZM10 1.75c-4.55635 0-8.25 3.69365-8.25 8.25 0 4.5563 3.69365 8.25 8.25 8.25 4.5563 0 8.25-3.6937 8.25-8.25 0-4.55635-3.6937-8.25-8.25-8.25Zm4.2803 6.697c.2929-.2929.2929-.76777 0-1.06066-.2929-.2929-.7677-.2929-1.0606 0L9.16667 11.4393 7.197 9.46967c-.2929-.29289-.76777-.29289-1.06066 0-.2929.29289-.2929.76773 0 1.06063l2.5 2.5c.29289.2929.76776.2929 1.06066 0l4.5833-4.5833Z'/%3E%3C/svg%3E");}.mc-field__validation-message.is-invalid.svelte-19i2lwv {color:var(--field-color-validation-invalid, #c61112);}.mc-field__validation-message.is-invalid.svelte-19i2lwv::before {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1.25rem' width='1.25rem' fill='var(--field-color-validation-invalid, %23c61112)' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 3.25c-3.72792 0-6.75 3.02208-6.75 6.75 0 3.7279 3.02208 6.75 6.75 6.75 3.7279 0 6.75-3.0221 6.75-6.75 0-3.72792-3.0221-6.75-6.75-6.75ZM1.75 10c0-4.55635 3.69365-8.25 8.25-8.25 4.5563 0 8.25 3.69365 8.25 8.25 0 4.5563-3.6937 8.25-8.25 8.25-4.55635 0-8.25-3.6937-8.25-8.25ZM10 5.91667c.4142 0 .75.33578.75.75v4.16663c0 .4142-.3358.75-.75.75-.41421 0-.75-.3358-.75-.75V6.66667c0-.41422.33579-.75.75-.75Zm0 8.25003c.4602 0 .8333-.3731.8333-.8334 0-.4602-.3731-.8333-.8333-.8333-.46024 0-.83333.3731-.83333.8333 0 .4603.37309.8334.83333.8334Z'/%3E%3C/svg%3E");}
5
5
 
6
- /* stylelint-enable string-no-newline */`};function ee(k,l){K(l,!0),N(k,$);let b=t(l,"id",7),q=t(l,"label",7),n=t(l,"requirementtext",7),o=t(l,"helpid",7),m=t(l,"helptext",7),y=t(l,"messageid",7),z=t(l,"message",7),g=t(l,"isinvalid",7),c=t(l,"isvalid",7),f=t(l,"isloading",7);var j={get id(){return b()},set id(e){b(e),a()},get label(){return q()},set label(e){q(e),a()},get requirementtext(){return n()},set requirementtext(e){n(e),a()},get helpid(){return o()},set helpid(e){o(e),a()},get helptext(){return m()},set helptext(e){m(e),a()},get messageid(){return y()},set messageid(e){y(e),a()},get message(){return z()},set message(e){z(e),a()},get isinvalid(){return g()},set isinvalid(e){g(e),a()},get isvalid(){return c()},set isvalid(e){c(e),a()},get isloading(){return f()},set isloading(e){f(e),a()}},E=Y(),_=r(E),L=r(_),D=d(L);{var F=e=>{var i=U(),s=r(i,!0);v(i),h(()=>w(s,n())),u(e,i)};p(D,e=>{n()&&e(F)})}v(_);var B=d(_,2);{var S=e=>{var i=W(),s=r(i,!0);v(i),h(()=>{M(i,"id",o()),w(s,m())}),u(e,i)};p(B,e=>{o()&&m()&&e(S)})}var Z=d(B,2),V=r(Z);R(V,l,"default",{}),v(Z);var A=d(Z,2);{var G=e=>{var i=X(),s=r(i);{var H=C=>{T(C,{size:"xs"})};p(s,C=>{f()&&C(H)})}var I=d(s);v(i),h(()=>{M(i,"id",y()),P(i,1,Q(["mc-field__validation-message",c()&&"is-valid",g()&&"is-invalid"]),"svelte-19i2lwv"),w(I,` ${z()??""}`)}),u(e,i)};p(A,e=>{(g()||c()||f())&&e(G)})}return v(E),h(()=>{M(_,"for",b()),w(L,`${q()??""} `)}),u(k,E),O(j)}customElements.define("m-field",J(ee,{id:{},label:{},requirementtext:{},helpid:{},helptext:{},messageid:{},message:{},isinvalid:{},isvalid:{},isloading:{}},["default"],[],!0));
6
+ /* stylelint-enable string-no-newline */`};function re(M,l){R(l,!0),T(M,se);let y=t(l,"id",7),q=t(l,"label",7),m=t(l,"requirementtext",7),g=t(l,"helpid",7),c=t(l,"helptext",7),z=t(l,"messageid",7),E=t(l,"message",7),f=t(l,"isinvalid",7),_=t(l,"isvalid",7),h=t(l,"isloading",7),u=t(l,"children",7);var S={get id(){return y()},set id(e){y(e),a()},get label(){return q()},set label(e){q(e),a()},get requirementtext(){return m()},set requirementtext(e){m(e),a()},get helpid(){return g()},set helpid(e){g(e),a()},get helptext(){return c()},set helptext(e){c(e),a()},get messageid(){return z()},set messageid(e){z(e),a()},get message(){return E()},set message(e){E(e),a()},get isinvalid(){return f()},set isinvalid(e){f(e),a()},get isvalid(){return _()},set isvalid(e){_(e),a()},get isloading(){return h()},set isloading(e){h(e),a()},get children(){return u()},set children(e){u(e),a()}},Z=ae(),w=n(Z),L=n(w),V=v(L);{var A=e=>{var i=ie(),s=n(i,!0);d(i),p(()=>b(s,m())),r(e,i)};o(V,e=>{m()&&e(A)})}d(w);var j=v(w,2);{var G=e=>{var i=le(),s=n(i,!0);d(i),p(()=>{B(i,"id",g()),b(s,c())}),r(e,i)};o(j,e=>{g()&&c()&&e(G)})}var C=v(j,2),H=n(C);{var I=e=>{var i=D(),s=F(i);Y(s,u),r(e,i)},J=e=>{var i=D(),s=F(i);$(s,l,"default",{},null),r(e,i)};o(H,e=>{u()?e(I):e(J,!1)})}d(C);var K=v(C,2);{var N=e=>{var i=te(),s=n(i);{var O=k=>{ee(k,{size:"xs"})};o(s,k=>{h()&&k(O)})}var P=v(s);d(i),p(()=>{B(i,"id",z()),W(i,1,X(["mc-field__validation-message",_()&&"is-valid",f()&&"is-invalid"]),"svelte-19i2lwv"),b(P,` ${E()??""}`)}),r(e,i)};o(K,e=>{(f()||_()||h())&&e(N)})}return d(Z),p(()=>{B(w,"for",y()),b(L,`${q()??""} `)}),r(M,Z),U(S)}customElements.define("m-field",Q(re,{isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},isvalid:{attribute:"isvalid",reflect:!0,type:"Boolean"},isloading:{attribute:"isloading",reflect:!0,type:"Boolean"},id:{},label:{},requirementtext:{},helpid:{},helptext:{},messageid:{},message:{},children:{}},["default"],[],!0));
7
7
  //# sourceMappingURL=Field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sources":["../../../src/components/field/Field.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-field',\n }}\n/>\n\n<script lang=\"ts\">\n import Loader from '../loader/Loader.svelte';\n\n /**\n * A field label is a text element that identifies the purpose of an input field, providing users with clear guidance on what information to enter. It is typically placed above the input field and may include indicators for required or optional fields. Field Labels improve form usability, accessibility, and data entry accuracy by ensuring users understand the expected input.\n *\n * @slot default - Use this slot to insert the form element of your choice\n */\n interface Props {\n /**\n * A unique identifier for the form field, used to associate the label with the form element.\n */\n id: string;\n /**\n * The text displayed as the label for the form field.\n */\n label: string;\n /**\n * Additional text displayed alongside the label, typically used to indicate if the form field is required or optional\n */\n requirementtext?: string;\n /**\n * Text shown below the form field to provide additional context or instructions for the user.\n */\n helptext?: string;\n /**\n * The value of the `id` attribute set on the **helpText** element. _This value is mandatory when using a helpText in order to guarantee the accessibility of the component._\n */\n helpid?: string;\n /**\n * If `true`, applies a valid state to the form field.\n */\n isvalid?: boolean;\n /**\n * If `true`, applies an invalid state to the form field.\n */\n isinvalid?: boolean;\n /**\n * If `true`, applies a loading state to the form field.\n */\n isloading?: boolean;\n /**\n * The value of the `id` attribute set on the **validationMessage** element. _This value is mandatory when using a validationMessage in order to guarantee the accessibility of the component._\n */\n messageid?: string;\n /**\n * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.\n */\n message?: string;\n }\n\n let {\n id,\n label,\n requirementtext,\n helpid,\n helptext,\n messageid,\n message,\n isinvalid,\n isvalid,\n isloading,\n }: Props = $props();\n</script>\n\n<div class=\"mc-field\">\n <label for={id} class=\"mc-field__label\">\n {label}\n {#if requirementtext}\n <span class=\"mc-field__requirement\" aria-hidden=\"true\">\n {requirementtext}\n </span>\n {/if}\n </label>\n\n {#if helpid && helptext}\n <span id={helpid} class=\"mc-field__help\">\n {helptext}\n </span>\n {/if}\n\n <div class=\"mc-field__content\">\n <slot />\n </div>\n\n {#if isinvalid || isvalid || isloading}\n <span\n id={messageid}\n class={['mc-field__validation-message', isvalid && 'is-valid', isinvalid && 'is-invalid']}\n >\n {#if isloading}\n <Loader size=\"xs\" />\n {/if}\n {message}\n </span>\n {/if}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/field';\n</style>\n"],"names":["id","$.prop","$$props","label","requirementtext","helpid","helptext","messageid","message","isinvalid","isvalid","isloading","$$render","consequent","consequent_1","consequent_2","consequent_3"],"mappings":";;;;;2DAAA,oBA0DIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAKF,EAAAC,EAAA,QAAA,CAAA,EACLE,EAAeH,EAAAC,EAAA,kBAAA,CAAA,EACfG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EACNI,EAAQL,EAAAC,EAAA,WAAA,CAAA,EACRK,EAASN,EAAAC,EAAA,YAAA,CAAA,EACTM,EAAOP,EAAAC,EAAA,UAAA,CAAA,EACPO,EAASR,EAAAC,EAAA,YAAA,CAAA,EACTQ,EAAOT,EAAAC,EAAA,UAAA,CAAA,EACPS,EAASV,EAAAC,EAAA,YAAA,CAAA,+lBASJE,EAAe,CAAA,CAAA,kBAFfA,EAAe,GAAAQ,EAAAC,CAAA,0EAQVR,GAAM,MACbC,GAAQ,oBAFRD,EAAM,GAAIC,KAAQM,EAAAE,CAAA,+HAedH,EAAS,GAAAC,EAAAG,CAAA,oCAHVR,GAAS,WACL,+BAAgCG,EAAO,GAAI,WAAYD,KAAa,yCAK3ED,EAAO,GAAA,EAAA,EAAA,qBARPC,EAAS,GAAIC,EAAO,GAAIC,EAAS,IAAAC,EAAAI,CAAA,iCAnB1BhB,GAAE,SACXG,EAAK,GAAA,EAAA,GAAA,eAJV"}
1
+ {"version":3,"file":"Field.js","sources":["../../../src/components/field/Field.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-field',\n props: {\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n isvalid: { reflect: true, type: 'Boolean', attribute: 'isvalid' },\n isloading: { reflect: true, type: 'Boolean', attribute: 'isloading' },\n },\n }}\n/>\n\n<script lang=\"ts\">\n import type { Snippet } from 'svelte';\n import Loader from '../loader/Loader.svelte';\n\n /**\n * A field label is a text element that identifies the purpose of an input field, providing users with clear guidance on what information to enter. It is typically placed above the input field and may include indicators for required or optional fields. Field Labels improve form usability, accessibility, and data entry accuracy by ensuring users understand the expected input.\n *\n * @slot default - Use this slot to insert the form element of your choice\n */\n interface Props {\n /**\n * A unique identifier for the form field, used to associate the label with the form element.\n */\n id: string;\n /**\n * The text displayed as the label for the form field.\n */\n label: string;\n /**\n * Additional text displayed alongside the label, typically used to indicate if the form field is required or optional\n */\n requirementtext?: string;\n /**\n * Text shown below the form field to provide additional context or instructions for the user.\n */\n helptext?: string;\n /**\n * The value of the `id` attribute set on the **helpText** element. _This value is mandatory when using a helpText in order to guarantee the accessibility of the component._\n */\n helpid?: string;\n /**\n * If `true`, applies a valid state to the form field.\n */\n isvalid?: boolean;\n /**\n * If `true`, applies an invalid state to the form field.\n */\n isinvalid?: boolean;\n /**\n * If `true`, applies a loading state to the form field.\n */\n isloading?: boolean;\n /**\n * The value of the `id` attribute set on the **validationMessage** element. _This value is mandatory when using a validationMessage in order to guarantee the accessibility of the component._\n */\n messageid?: string;\n /**\n * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.\n */\n message?: string;\n /**\n * Use this snippet to insert the form element of your choice\n */\n children?: Snippet;\n }\n\n let {\n id,\n label,\n requirementtext,\n helpid,\n helptext,\n messageid,\n message,\n isinvalid,\n isvalid,\n isloading,\n children,\n }: Props = $props();\n</script>\n\n<div class=\"mc-field\">\n <label for={id} class=\"mc-field__label\">\n {label}\n {#if requirementtext}\n <span class=\"mc-field__requirement\" aria-hidden=\"true\">\n {requirementtext}\n </span>\n {/if}\n </label>\n\n {#if helpid && helptext}\n <span id={helpid} class=\"mc-field__help\">\n {helptext}\n </span>\n {/if}\n\n <div class=\"mc-field__content\">\n {#if children}\n {@render children()}\n {:else}\n <slot />\n {/if}\n </div>\n\n {#if isinvalid || isvalid || isloading}\n <span\n id={messageid}\n class={['mc-field__validation-message', isvalid && 'is-valid', isinvalid && 'is-invalid']}\n >\n {#if isloading}\n <Loader size=\"xs\" />\n {/if}\n {message}\n </span>\n {/if}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/field';\n</style>\n"],"names":["id","$.prop","$$props","label","requirementtext","helpid","helptext","messageid","message","isinvalid","isvalid","isloading","children","div","root","label_1","span","root_1","$$render","consequent","span_1","root_2","$.set_attribute","consequent_1","div_1","$.sibling","node_1","consequent_2","alternate","span_2","root_5","node_6","$.child","Loader","$$anchor","consequent_3","$.reset","$.append","consequent_4"],"mappings":";;;;;2DAWA,qBAyDIA,EAAEC,EAAAC,EAAA,KAAA,CAAA,EACFC,EAAKF,EAAAC,EAAA,QAAA,CAAA,EACLE,EAAeH,EAAAC,EAAA,kBAAA,CAAA,EACfG,EAAMJ,EAAAC,EAAA,SAAA,CAAA,EACNI,EAAQL,EAAAC,EAAA,WAAA,CAAA,EACRK,EAASN,EAAAC,EAAA,YAAA,CAAA,EACTM,EAAOP,EAAAC,EAAA,UAAA,CAAA,EACPO,EAASR,EAAAC,EAAA,YAAA,CAAA,EACTQ,EAAOT,EAAAC,EAAA,UAAA,CAAA,EACPS,EAASV,EAAAC,EAAA,YAAA,CAAA,EACTU,EAAQX,EAAAC,EAAA,WAAA,CAAA,2kBAIXW,EAAGC,GAAA,EACDC,IADFF,CAAG,MACDE,CAAK,wBAGDC,EAAIC,GAAA,MAAJD,EAAI,EAAA,IAAJA,CAAI,YACFZ,EAAe,CAAA,CAAA,MADjBY,CAAI,WADFZ,EAAe,GAAAc,EAAAC,CAAA,MAFrBJ,CAAK,UAALA,EAAK,CAAA,iBAUHK,EAAIC,GAAA,MAAJD,EAAI,EAAA,IAAJA,CAAI,SAAJE,EAAAF,OAASf,GAAM,MACbC,GAAQ,QADVc,CAAI,WADFf,EAAM,GAAIC,KAAQY,EAAAK,CAAA,QAMtBC,EAAGC,EAAAC,EAAA,CAAA,MAAHF,CAAG,kCAESZ,CAAQ,0EADdA,EAAQ,EAAAM,EAAAS,CAAA,EAAAT,EAAAU,EAAA,EAAA,MADdJ,CAAG,UAAHA,EAAG,CAAA,aASD,IAAAK,EAAAC,GAAA,EAAAC,EAAAC,EAAAH,CAAA,aAKII,GAAMC,EAAA,CAAA,KAAA,IAAA,CAAA,WADJvB,EAAS,GAAAO,EAAAiB,CAAA,eAJfC,EAAAP,CAAA,SAAAP,EAAAO,EAAA,KACKtB,GAAS,IADdsB,OAES,+BAAgCnB,EAAO,GAAI,WAAYD,KAAa,yCAK3ED,EAAO,GAAA,EAAA,EAAA,IAPT6B,EAAAH,EAAAL,CAAA,YADEpB,EAAS,GAAIC,EAAO,GAAIC,EAAS,IAAAO,EAAAoB,CAAA,aAxBvCzB,CAAG,SACDS,EAAAP,QAAWf,GAAE,SACXG,EAAK,GAAA,EAAA,GAAA,QAFTU,CAAG,MAFI"}
@@ -23,9 +23,9 @@ const meta = {
23
23
  requirementtext=${ifDefined(args.requirementtext)}
24
24
  helptext=${ifDefined(args.helptext)}
25
25
  helpid=${ifDefined(args.helpid)}
26
- isvalid=${ifDefined(args.isvalid)}
27
- isinvalid=${ifDefined(args.isinvalid)}
28
- isloading=${ifDefined(args.isloading)}
26
+ ?isvalid=${args.isvalid}
27
+ ?isinvalid=${args.isinvalid}
28
+ ?isloading=${args.isloading}
29
29
  messageid=${ifDefined(args.messageid)}
30
30
  message=${ifDefined(args.message)}
31
31
  >
@@ -1,10 +1,16 @@
1
1
  <svelte:options
2
2
  customElement={{
3
3
  tag: 'm-field',
4
+ props: {
5
+ isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },
6
+ isvalid: { reflect: true, type: 'Boolean', attribute: 'isvalid' },
7
+ isloading: { reflect: true, type: 'Boolean', attribute: 'isloading' },
8
+ },
4
9
  }}
5
10
  />
6
11
 
7
12
  <script lang="ts">
13
+ import type { Snippet } from 'svelte';
8
14
  import Loader from '../loader/Loader.svelte';
9
15
 
10
16
  /**
@@ -53,6 +59,10 @@
53
59
  * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.
54
60
  */
55
61
  message?: string;
62
+ /**
63
+ * Use this snippet to insert the form element of your choice
64
+ */
65
+ children?: Snippet;
56
66
  }
57
67
 
58
68
  let {
@@ -66,6 +76,7 @@
66
76
  isinvalid,
67
77
  isvalid,
68
78
  isloading,
79
+ children,
69
80
  }: Props = $props();
70
81
  </script>
71
82
 
@@ -86,7 +97,11 @@
86
97
  {/if}
87
98
 
88
99
  <div class="mc-field__content">
89
- <slot />
100
+ {#if children}
101
+ {@render children()}
102
+ {:else}
103
+ <slot />
104
+ {/if}
90
105
  </div>
91
106
 
92
107
  {#if isinvalid || isvalid || isloading}
@@ -1,3 +1,4 @@
1
+ import type { Snippet } from 'svelte';
1
2
  /**
2
3
  * A field label is a text element that identifies the purpose of an input field, providing users with clear guidance on what information to enter. It is typically placed above the input field and may include indicators for required or optional fields. Field Labels improve form usability, accessibility, and data entry accuracy by ensuring users understand the expected input.
3
4
  *
@@ -44,6 +45,10 @@ interface Props {
44
45
  * message displayed when the form field has a valid or invalid state, usually indicating validation or errors.
45
46
  */
46
47
  message?: string;
48
+ /**
49
+ * Use this snippet to insert the form element of your choice
50
+ */
51
+ children?: Snippet;
47
52
  }
48
53
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
49
54
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -1 +1 @@
1
- {"version":3,"file":"Field.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/field/Field.svelte.ts"],"names":[],"mappings":"AAME;;;;GAIG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAyDH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,KAAK;;;;;;UAAqF,CAAC;AAC/E,KAAK,KAAK,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC;AAC1C,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Field.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/field/Field.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAIpC;;;;GAIG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoEH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,KAAK;;;;;;UAAqF,CAAC;AAC/E,KAAK,KAAK,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAC;AAC1C,eAAe,KAAK,CAAC"}
@@ -16,6 +16,7 @@ A field label is a text element that identifies the purpose of an input field, p
16
16
  | `isloading` | If `true`, applies a loading state to the form field. | `boolean` | |
17
17
  | `messageid` | The value of the `id` attribute set on the **validationMessage** element. _This value is mandatory when using a validationMessage in order to guarantee the accessibility of the component._ | `string` | |
18
18
  | `message` | message displayed when the form field has a valid or invalid state, usually indicating validation or errors. | `string` | |
19
+ | `children` | Use this snippet to insert the form element of your choice | `Snippet` | |
19
20
 
20
21
  ## Slots
21
22
 
@@ -0,0 +1,4 @@
1
+ import{u as Ae,c as Ie,p as Me,a as Se,b as l,A as Ve,q as n,s as k,t as V,B,f as u,g as Be,x as L,h as le,d as h,v as O,aJ as ue,j as a,w as ce,l as P,r as c,e as y,n as fe,o as me,k as ee,aI as be}from"../../custom-element.js";import{i as ve}from"../../if.js";import{e as Le,i as Oe}from"../../each.js";import{s as te}from"../../slot.js";import{s as re}from"../../attributes.js";import{b as he}from"../../this.js";import{F as Pe}from"../fileuploaderitem/FileUploaderItem.js";import{U as qe}from"../../Condition20.js";import"../../svelte-component.js";import"../button/Button.js";import"../../snippet.js";import"../loader/Loader.js";import"../divider/Divider.js";var Je=le('<span class="mc-file-uploader__input-title svelte-1hihzzl"> </span> <span class="mc-file-uploader__input-subtitle svelte-1hihzzl"> </span>',1),Ke=le('<div class="mc-file-uploader__files-list svelte-1hihzzl"></div>'),Ne=le('<div><div class="mc-file-uploader__container"><input type="file" aria-label="File input" class="mc-file-uploader__hidden-input svelte-1hihzzl"/> <div tabindex="0" role="button"><!> <div class="mc-button mc-button--outlined mc-file-uploader__button svelte-1hihzzl"><!> <span class="mc-button__label svelte-1hihzzl"> </span></div></div></div> <!></div>');const Te={hash:"svelte-1hihzzl",code:`/**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */.mc-file-uploader.svelte-1hihzzl {display:flex;flex-direction:column;gap:1rem;width:18rem;}.mc-file-uploader__files-list.svelte-1hihzzl {display:flex;flex-direction:column;gap:1rem;}.mc-file-uploader__hidden-input.svelte-1hihzzl {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}.mc-file-uploader__input.svelte-1hihzzl {display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:0.5rem;line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-semi-bold, 600);border-radius:var(--border-radius-m, 0.5rem);color:var(--file-uploader-color-drag-and-drop-text-default, #242938);}.mc-file-uploader__input.svelte-1hihzzl .mc-file-uploader__button:where(.svelte-1hihzzl) {width:100%;}.mc-file-uploader__input--disabled.svelte-1hihzzl .mc-file-uploader__button.mc-button.mc-button--outlined:where(.svelte-1hihzzl) {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-file-uploader__input-title.svelte-1hihzzl {height:1.125rem;font-size:var(--font-size-150, 1rem);}.mc-file-uploader__input-subtitle.svelte-1hihzzl {height:1.125rem;font-size:var(--font-size-100, 0.875rem);}.mc-file-uploader--draggable.svelte-1hihzzl {width:25rem;}.mc-file-uploader--draggable.svelte-1hihzzl .mc-file-uploader__input:where(.svelte-1hihzzl) {padding:2rem;outline:0.125rem dashed var(--file-uploader-color-drag-and-drop-border-default, #464e63);display:flex;}.mc-file-uploader--draggable.svelte-1hihzzl .mc-file-uploader__input--disabled:where(.svelte-1hihzzl) {outline-color:var(--file-uploader-color-drag-and-drop-border-disabled, #b3b3b3);color:var(--file-uploader-color-drag-and-drop-text-disabled, #b3b3b3);cursor:not-allowed;}.mc-file-uploader--draggable.svelte-1hihzzl .mc-file-uploader__input--dragged:where(.svelte-1hihzzl) {outline-width:0.25rem;}.mc-button.svelte-1hihzzl {color:var(--button-color-filled-standard-font, #ffffff);background-color:var(--button-color-filled-standard-background, #464e63);}.mc-button.svelte-1hihzzl:hover {background-color:var(--button-color-filled-standard-hover-background, #343b4c);}.mc-button.svelte-1hihzzl:active {background-color:var(--button-color-filled-standard-active-background, #242938);}.mc-button.svelte-1hihzzl:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button.svelte-1hihzzl {font-weight:var(--font-weight-semi-bold, 600);padding:0 calc(1rem - 0.125rem);min-height:3rem;min-width:3rem;}.mc-button.svelte-1hihzzl .mc-button__label:where(.svelte-1hihzzl) {font-size:var(--font-size-150, 1rem);}.mc-button.svelte-1hihzzl {display:inline-flex;justify-content:center;vertical-align:middle;text-align:center;border:2px solid transparent;border-radius:var(--button-border-radius-s, 0.25rem);transition:all ease 200ms;transition:box-shadow 200ms ease;align-items:center;box-sizing:border-box;font-family:inherit;fill:currentcolor;gap:0.25rem;cursor:pointer;}.mc-button__label.svelte-1hihzzl {font-size:var(--font-size-150, 1rem);}.mc-button.svelte-1hihzzl:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button.svelte-1hihzzl: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-button--outlined.svelte-1hihzzl {color:var(--button-color-outlined-standard-font, #242938);border-color:var(--button-color-outlined-standard-border, #8891aa);background-color:var(--button-color-outlined-standard-background, #ffffff);}.mc-button--outlined.svelte-1hihzzl:hover {background-color:var(--button-color-outlined-standard-hover-background, #eff1f6);}.mc-button--outlined.svelte-1hihzzl:active {background-color:var(--button-color-outlined-standard-active-background, #c9d0de);}.mc-button--outlined.svelte-1hihzzl:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}`};function Ge(ae,t){Me(t,!0),Se(ae,Te);let i=l(t,"files",15),q=l(t,"accept",7),g=l(t,"multiple",7),D=l(t,"allowedextensions",7),E=l(t,"maxsize",7),J=l(t,"rules",7),f=l(t,"hasdragdrop",7,!0),K=l(t,"showfileslist",7,!0),m=l(t,"disabled",7),N=l(t,"title",7,"Drag & drop"),T=l(t,"subtitle",7,"or"),G=l(t,"uploadbuttonlabel",7,"Upload file(s)"),H=l(t,"format",7,"inline"),Q=l(t,"errormessage",7),R=l(t,"deletebuttonlabel",7),F=l(t,"information",7),W=l(t,"onvalidation",7),X=l(t,"onfilesupdate",7),U,C=L(()=>pe(i())),j,A=ce(!1),I=ce(0);function pe(e=[]){const r={};return e.forEach(o=>{const v=o.name.split(".").pop()?.toLowerCase()||"";r[o.name]={size:E()&&o.size?o.size<=E():!0,extension:D()?D().includes(v):!0,customValidation:J()?.every(p=>p(o))??!0}}),r}Ve(()=>{X()?.(i());const e=new CustomEvent("files-update",{detail:i(),bubbles:!0,composed:!0});if(U.dispatchEvent(e),i()?.length>0){W()?.(n(C));const r=new CustomEvent("validation",{detail:n(C),bubbles:!0,composed:!0});U.dispatchEvent(r)}});function ge(e){f()&&(e.preventDefault(),ue(I),O(A,!0))}function ze(e){f()&&(e.preventDefault(),ue(I,-1),n(I)===0&&O(A,!1))}function oe(e){return i()?.every(r=>r.name!==e.name)}function _e(e){const r=e.target,o=Array.from(r.files||[]).filter(oe);if(!o.length){r.value="";return}i(g()?[...i(),...o]:o.slice(0,1)),r.value=""}function xe(e){e.preventDefault()}function we(e){if(!f()||(e.preventDefault(),e.stopPropagation(),O(I,0),O(A,!1),m()))return;const r=Array.from(e.dataTransfer?.files||[]).filter(oe);r.length&&i(g()?[...i(),...r]:[r[0]])}function ke(e){(e.key===" "||e.key==="Enter")&&(e.preventDefault(),j.click())}function ye(e){i(i()?.filter((r,o)=>o!==e))}function De(e){return Object.values(n(C)[e.name]??{}).every(Boolean)}var Ee={get files(){return i()},set files(e){i(e),a()},get accept(){return q()},set accept(e){q(e),a()},get multiple(){return g()},set multiple(e){g(e),a()},get allowedextensions(){return D()},set allowedextensions(e){D(e),a()},get maxsize(){return E()},set maxsize(e){E(e),a()},get rules(){return J()},set rules(e){J(e),a()},get hasdragdrop(){return f()},set hasdragdrop(e=!0){f(e),a()},get showfileslist(){return K()},set showfileslist(e=!0){K(e),a()},get disabled(){return m()},set disabled(e){m(e),a()},get title(){return N()},set title(e="Drag & drop"){N(e),a()},get subtitle(){return T()},set subtitle(e="or"){T(e),a()},get uploadbuttonlabel(){return G()},set uploadbuttonlabel(e="Upload file(s)"){G(e),a()},get format(){return H()},set format(e="inline"){H(e),a()},get errormessage(){return Q()},set errormessage(e){Q(e),a()},get deletebuttonlabel(){return R()},set deletebuttonlabel(e){R(e),a()},get information(){return F()},set information(e){F(e),a()},get onvalidation(){return W()},set onvalidation(e){W(e),a()},get onfilesupdate(){return X()},set onfilesupdate(e){X(e),a()}},z=Ne(),Y=h(z),b=h(Y);b.__change=_e,he(b,e=>j=e,()=>j);var s=k(b,2);s.__click=()=>j.click(),s.__keydown=ke;var ie=h(s);{var Fe=e=>{var r=Je(),o=P(r),v=h(o,!0);c(o);var p=k(o,2),Z=h(p,!0);c(p),V(()=>{y(v,N()),y(Z,T())}),u(e,r)};ve(ie,e=>{f()&&e(Fe)})}var ne=k(ie,2),se=h(ne);qe(se,{className:"mc-button__icon"});var de=k(se,2),Ue=h(de,!0);c(de),c(ne),c(s),c(Y);var Ce=k(Y,2);{var je=e=>{var r=Ke();Le(r,21,i,Oe,(o,v,p)=>{{let Z=L(()=>De(n(v)));Pe(o,{get file(){return n(v)},get format(){return H()},get errormessage(){return Q()},get information(){return F()},get deletebuttonlabel(){return R()},get valid(){return n(Z)},ondelete:()=>ye(p),$$slots:{name:(_,M)=>{var d=ee(),x=P(d);const S=L(()=>M.file);te(x,t,"name",{get file(){return n(S)}},$=>{var w=be();V(()=>y(w,n(S).name)),u($,w)}),u(_,d)},information:(_,M)=>{var d=ee(),x=P(d);const S=L(()=>M.file);te(x,t,"information",{get file(){return n(S)}},$=>{var w=be();V(()=>y(w,F())),u($,w)}),u(_,d)},errorMessage:(_,M)=>{var d=ee(),x=P(d);te(x,t,"errorMessage",{get validationState(){return n(C)[n(v).name]}},null),u(_,d)}}})}}),c(r),u(e,r)};ve(Ce,e=>{K()&&e(je)})}return c(z),he(z,e=>U=e,()=>U),V(()=>{fe(z,1,me({"mc-file-uploader":!0,"mc-file-uploader--draggable":f()}),"svelte-1hihzzl"),re(b,"accept",q()),b.multiple=g(),b.disabled=m(),re(b,"aria-disabled",m()),fe(s,1,me({"mc-file-uploader__input":!0,"mc-file-uploader__input--dragged":n(A),"mc-file-uploader__input--disabled":m()}),"svelte-1hihzzl"),re(s,"aria-disabled",m()),y(Ue,G())}),B("dragover",s,xe),B("drop",s,we),B("dragenter",s,ge),B("dragleave",s,ze),u(ae,z),Be(Ee)}Ae(["change","click","keydown"]);customElements.define("m-file-uploader",Ie(Ge,{files:{},accept:{},multiple:{},allowedextensions:{},maxsize:{},rules:{},hasdragdrop:{},showfileslist:{},disabled:{},title:{},subtitle:{},uploadbuttonlabel:{},format:{},errormessage:{},deletebuttonlabel:{},information:{},onvalidation:{},onfilesupdate:{}},["name","information","errorMessage"],[],!0));
4
+ //# sourceMappingURL=FileUploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploader.js","sources":["../../../src/components/fileuploader/FileUploader.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-file-uploader' }} />\n\n<script lang=\"ts\">\n import FileUploaderItem, {\n type NormalizedFile,\n } from '../fileuploaderitem/FileUploaderItem.svelte';\n import { Upload24 } from '@mozaic-ds/icons-svelte';\n\n type FilesValidationState = Record<\n string,\n { size: boolean; extension: boolean; customValidation: boolean }\n >;\n\n /**\n * A file uploader allows users to upload one or multiple files by either dragging and dropping files into a dedicated area or selecting them manually through their local folders. It provides real-time feedback on upload progress and file status, including file name, size, and success or error indicators. File uploaders are commonly used in forms, content management systems, and document submission processes to facilitate seamless file handling.\n *\n * @slot name - Use this slot to display a custom file name.\n * @slot information - Use this slot to display a custom information content.\n * @slot errorMessage - Use this slot to display a custom error message.\n * @event files-update {CustomEvent<NormalizedFile[]>} - Emits when files list changes.\n * @event validation {CustomEvent<FilesValidationState>} - Emits files validation when files list changes.\n */\n\n interface Props {\n /**\n * Model binding for the selected files (`NormalizedFile`)\n */\n files: NormalizedFile[];\n /**\n * File types allowed by the uploader.\n */\n accept?: HTMLInputElement['accept'];\n /**\n * Enables selecting multiple files at once.\n */\n multiple?: boolean;\n /**\n * File extensions to validate.\n */\n allowedextensions?: string[];\n /**\n * Maximum file size allowed (in bytes).\n */\n maxsize?: number;\n /**\n * Custom validation rules applied to each file.\n */\n rules?: ((file: NormalizedFile) => boolean)[];\n /**\n * Layout format of the item.\n */\n format?: 'inline' | 'stacked';\n /**\n * Custom error message for the file.\n */\n errormessage?: string;\n /**\n * Label for the delete button.\n */\n deletebuttonlabel?: string;\n /**\n * Optional informational text displayed under the file name.\n */\n information?: string;\n /**\n * Enables drag & drop functionality.\n */\n hasdragdrop?: boolean;\n /**\n * Controls the display of the uploaded files list.\n */\n showfileslist?: boolean;\n /**\n * Disables the whole component.\n */\n disabled?: boolean;\n /**\n * Main drag & drop title.\n */\n title?: string;\n /**\n * Subtitle used in the drag & drop area.\n */\n subtitle?: string;\n /**\n * Label of the upload button.\n */\n uploadbuttonlabel?: string;\n /**\n * Callback to call when files validation is updated.\n */\n onvalidation?: (validationState: FilesValidationState) => void;\n /**\n * Callback to call when files are updates.\n */\n onfilesupdate?: (files: NormalizedFile[]) => void;\n }\n\n let {\n files = $bindable(),\n accept,\n multiple,\n allowedextensions,\n maxsize,\n rules,\n hasdragdrop = true,\n showfileslist = true,\n disabled,\n title = 'Drag & drop',\n subtitle = 'or',\n uploadbuttonlabel = 'Upload file(s)',\n format = 'inline',\n errormessage,\n deletebuttonlabel,\n information,\n onvalidation,\n onfilesupdate,\n }: Props = $props();\n\n let element: HTMLElement;\n\n let filesValidationState = $derived(validateFiles(files));\n\n let fileInput: HTMLInputElement;\n\n let isDraggedOver = $state(false);\n let dragCounter = $state(0);\n\n function validateFiles(newFiles: NormalizedFile[] = []) {\n const state: FilesValidationState = {};\n newFiles.forEach((file) => {\n const extension = file.name.split('.').pop()?.toLowerCase() || '';\n state[file.name] = {\n size: maxsize && file.size ? file.size <= maxsize : true,\n extension: allowedextensions ? allowedextensions.includes(extension) : true,\n customValidation: rules?.every((rule) => rule(file)) ?? true,\n };\n });\n return state;\n }\n\n $effect(() => {\n onfilesupdate?.(files);\n const event = new CustomEvent('files-update', {\n detail: files,\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n\n if (files?.length > 0) {\n onvalidation?.(filesValidationState);\n\n const event = new CustomEvent('validation', {\n detail: filesValidationState,\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n }\n });\n\n function onDragEnter(e: Event) {\n if (!hasdragdrop) return;\n\n e.preventDefault();\n dragCounter++;\n isDraggedOver = true;\n }\n\n function onDragLeave(e: Event) {\n if (!hasdragdrop) return;\n\n e.preventDefault();\n dragCounter--;\n if (dragCounter === 0) isDraggedOver = false;\n }\n\n function filterExistingFile(file: NormalizedFile) {\n return files?.every((item) => item.name !== file.name);\n }\n\n function onChange(e: Event) {\n const input = e.target as HTMLInputElement;\n const newFiles = Array.from(input.files || []).filter(filterExistingFile);\n\n if (!newFiles.length) {\n input.value = '';\n return;\n }\n\n files = multiple ? [...files, ...newFiles] : newFiles.slice(0, 1);\n\n input.value = '';\n }\n\n function onDragover(e: DragEvent) {\n e.preventDefault();\n }\n\n function onDrop(e: DragEvent) {\n if (!hasdragdrop) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n dragCounter = 0;\n isDraggedOver = false;\n if (disabled) return;\n\n const droppedFiles = Array.from(e.dataTransfer?.files || []).filter(filterExistingFile);\n if (!droppedFiles.length) return;\n\n files = multiple ? [...files, ...droppedFiles] : [droppedFiles[0]];\n }\n\n function onKeydown(e: KeyboardEvent) {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n fileInput.click();\n }\n }\n\n function onDelete(index: number) {\n files = files?.filter((_, i) => i !== index);\n }\n\n function isFileValid(file: NormalizedFile) {\n return Object.values(filesValidationState[file.name] ?? {}).every(Boolean);\n }\n</script>\n\n<div\n class={{\n 'mc-file-uploader': true,\n 'mc-file-uploader--draggable': hasdragdrop,\n }}\n bind:this={element}\n>\n <div class=\"mc-file-uploader__container\">\n <input\n bind:this={fileInput}\n type=\"file\"\n aria-label=\"File input\"\n {accept}\n {multiple}\n class=\"mc-file-uploader__hidden-input\"\n {disabled}\n aria-disabled={disabled}\n onchange={onChange}\n />\n\n <div\n class={{\n 'mc-file-uploader__input': true,\n 'mc-file-uploader__input--dragged': isDraggedOver,\n 'mc-file-uploader__input--disabled': disabled,\n }}\n tabindex=\"0\"\n role=\"button\"\n aria-disabled={disabled}\n ondragover={onDragover}\n ondrop={onDrop}\n ondragenter={onDragEnter}\n ondragleave={onDragLeave}\n onclick={() => fileInput!.click()}\n onkeydown={onKeydown}\n >\n {#if hasdragdrop}\n <span class=\"mc-file-uploader__input-title\">\n {title}\n </span>\n\n <span class=\"mc-file-uploader__input-subtitle\">\n {subtitle}\n </span>\n {/if}\n\n <div class=\"mc-button mc-button--outlined mc-file-uploader__button\">\n <Upload24 className=\"mc-button__icon\" />\n <span class=\"mc-button__label\">\n {uploadbuttonlabel}\n </span>\n </div>\n </div>\n </div>\n\n {#if showfileslist}\n <div class=\"mc-file-uploader__files-list\">\n {#each files as file, index (index)}\n <FileUploaderItem\n {file}\n {format}\n {errormessage}\n {information}\n {deletebuttonlabel}\n valid={isFileValid(file)}\n ondelete={() => onDelete(index)}\n >\n <slot slot=\"name\" name=\"name\" let:file {file}>\n {file.name}\n </slot>\n\n <slot slot=\"information\" name=\"information\" let:file {file}>\n {information}\n </slot>\n\n <slot\n slot=\"errorMessage\"\n name=\"errorMessage\"\n validationState={filesValidationState[file.name]}\n ></slot>\n </FileUploaderItem>\n {/each}\n </div>\n {/if}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/file-uploader';\n @use '@mozaic-ds/styles/components/button';\n</style>\n"],"names":["files","$.prop","$$props","accept","multiple","allowedextensions","maxsize","rules","hasdragdrop","showfileslist","disabled","title","subtitle","uploadbuttonlabel","format","errormessage","deletebuttonlabel","information","onvalidation","onfilesupdate","element","filesValidationState","$.derived","validateFiles","fileInput","isDraggedOver","$.state","dragCounter","newFiles","state","file","extension","rule","$.user_effect","event","onDragEnter","$.set","onDragLeave","$.get","filterExistingFile","item","onChange","input","onDragover","onDrop","droppedFiles","onKeydown","onDelete","index","_","i","isFileValid","div","root","div_1","$.child","input_1","$$value","div_2","$.sibling","node","span","$.first_child","fragment","span_1","$$render","consequent","div_3","Upload24","node_1","span_2","$.reset","div_4","root_2","$.index","$$anchor","$0","FileUploaderItem","$.template_effect","$.set_text","text_3","consequent_1","$.set_attribute","$.event","$.append"],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import { render, fireEvent, waitFor } from '@testing-library/svelte';
2
+ import { describe, it, expect, vi } from 'vitest';
3
+ import FileUploader from './FileUploader.svelte';
4
+ // Helper to create a File object
5
+ function createFile(name = 'file.txt', content = 'hello', type = 'text/plain') {
6
+ return new File([content], name, { type });
7
+ }
8
+ describe('FileUploader component', () => {
9
+ it('adds file when input changes and shows file name in list', async () => {
10
+ const { container, getByText } = render(FileUploader, { files: [] });
11
+ const input = container.querySelector('input[type="file"]');
12
+ expect(input).toBeTruthy();
13
+ const file = createFile('test.txt', 'content', 'text/plain');
14
+ Object.defineProperty(input, 'files', {
15
+ value: [file],
16
+ writable: false,
17
+ });
18
+ await fireEvent.change(input);
19
+ await waitFor(() => {
20
+ expect(getByText('test.txt')).toBeTruthy();
21
+ });
22
+ });
23
+ it('prevents duplicate files (same name) when adding twice', async () => {
24
+ const { container, getAllByText } = render(FileUploader, { files: [] });
25
+ const input = container.querySelector('input[type="file"]');
26
+ const file = createFile('duplicate.txt');
27
+ Object.defineProperty(input, 'files', { value: [file], writable: false, configurable: true });
28
+ await fireEvent.change(input);
29
+ // Try adding same file again
30
+ Object.defineProperty(input, 'files', { value: [file], writable: false, configurable: true });
31
+ await fireEvent.change(input);
32
+ const matches = getAllByText('duplicate.txt');
33
+ // Should only be listed once
34
+ expect(matches.length).toBe(1);
35
+ });
36
+ it('dispatches validation event and calls onvalidation callback with correct validation state', async () => {
37
+ const onvalidation = vi.fn();
38
+ const { container } = render(FileUploader, {
39
+ files: [],
40
+ allowedextensions: ['png'],
41
+ maxsize: 5, // bytes -> make file too big
42
+ onvalidation,
43
+ });
44
+ const uploaderEl = container.querySelector('.mc-file-uploader');
45
+ let validationEventDetail = null;
46
+ uploaderEl.addEventListener('validation', (e) => {
47
+ validationEventDetail = e.detail;
48
+ });
49
+ const input = container.querySelector('input[type="file"]');
50
+ const file = createFile('image.jpg', 'content'); // extension jpg not allowed, size > 5
51
+ Object.defineProperty(input, 'files', { value: [file], writable: false });
52
+ await fireEvent.change(input);
53
+ await waitFor(() => {
54
+ // callback should have been called
55
+ expect(onvalidation).toHaveBeenCalled();
56
+ // event should have been dispatched with validation state
57
+ expect(validationEventDetail).toBeTruthy();
58
+ // file key should exist
59
+ expect(validationEventDetail['image.jpg']).toBeDefined();
60
+ // extension should be false
61
+ expect(validationEventDetail['image.jpg'].extension).toBe(false);
62
+ // size should be false because maxsize is tiny
63
+ expect(validationEventDetail['image.jpg'].size).toBe(false);
64
+ });
65
+ });
66
+ it('supports drop to add files and allows deleting an item', async () => {
67
+ const { container, getByText, queryByText } = render(FileUploader, {
68
+ files: [],
69
+ format: 'stacked',
70
+ deletebuttonlabel: 'Delete',
71
+ });
72
+ const dropZone = container.querySelector('.mc-file-uploader__input');
73
+ const file = createFile('to-delete.txt');
74
+ await fireEvent.drop(dropZone, {
75
+ dataTransfer: {
76
+ files: [file],
77
+ types: ['Files'],
78
+ },
79
+ });
80
+ await waitFor(() => {
81
+ expect(getByText('to-delete.txt')).toBeTruthy();
82
+ });
83
+ // Find a button with delete label and click it to remove the file
84
+ const deleteButton = getByText('Delete');
85
+ expect(deleteButton).toBeTruthy();
86
+ await fireEvent.click(deleteButton);
87
+ await waitFor(() => {
88
+ expect(queryByText('to-delete.txt')).toBeNull();
89
+ });
90
+ });
91
+ it('adds dragged class on dragenter and removes it after matching dragleave calls', async () => {
92
+ const { container } = render(FileUploader);
93
+ const input = container.querySelector('.mc-file-uploader__input');
94
+ expect(input).toBeTruthy();
95
+ // first enter -> dragged
96
+ await fireEvent.dragEnter(input);
97
+ expect(input.classList.contains('mc-file-uploader__input--dragged')).toBe(true);
98
+ // second enter -> still dragged (counter increment)
99
+ await fireEvent.dragEnter(input);
100
+ expect(input.classList.contains('mc-file-uploader__input--dragged')).toBe(true);
101
+ // one leave -> still dragged (counter not zero)
102
+ await fireEvent.dragLeave(input);
103
+ expect(input.classList.contains('mc-file-uploader__input--dragged')).toBe(true);
104
+ // final leave -> not dragged
105
+ await fireEvent.dragLeave(input);
106
+ expect(input.classList.contains('mc-file-uploader__input--dragged')).toBe(false);
107
+ });
108
+ it('ignores drag events when hasdragdrop is false', async () => {
109
+ const { container } = render(FileUploader, { hasdragdrop: false });
110
+ const input = container.querySelector('.mc-file-uploader__input');
111
+ expect(input).toBeTruthy();
112
+ await fireEvent.dragEnter(input);
113
+ expect(input.classList.contains('mc-file-uploader__input--dragged')).toBe(false);
114
+ await fireEvent.dragLeave(input);
115
+ expect(input.classList.contains('mc-file-uploader__input--dragged')).toBe(false);
116
+ });
117
+ it('keyboard "Enter" or " " triggers file input click', async () => {
118
+ const { container } = render(FileUploader, { files: [] });
119
+ const dropZone = container.querySelector('.mc-file-uploader__input');
120
+ const input = container.querySelector('input[type="file"]');
121
+ expect(input).toBeTruthy();
122
+ const clickSpy = vi.spyOn(input, 'click');
123
+ // press Enter
124
+ await fireEvent.keyDown(dropZone, { key: 'Enter' });
125
+ // press Space
126
+ await fireEvent.keyDown(dropZone, { key: ' ' });
127
+ expect(clickSpy).toHaveBeenCalled();
128
+ clickSpy.mockRestore();
129
+ });
130
+ it('does not render files list if showfileslist is false', () => {
131
+ const { container } = render(FileUploader, { props: { files: [], showfileslist: false } });
132
+ expect(container.querySelector('.mc-file-uploader__files-list')).toBeNull();
133
+ });
134
+ });
@@ -0,0 +1,17 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ import './FileUploader.svelte';
3
+ import '../fileuploaderitem/FileUploaderItem.svelte';
4
+ declare const meta: Meta;
5
+ export default meta;
6
+ type Story = StoryObj;
7
+ export declare const Default: Story;
8
+ export declare const WithoutDragAndDrop: {
9
+ args: {
10
+ hasdragdrop: boolean;
11
+ };
12
+ };
13
+ export declare const Disabled: Story;
14
+ export declare const InlineFileWithError: Story;
15
+ export declare const StackedFileItem: Story;
16
+ export declare const StackedFileWithError: Story;
17
+ //# sourceMappingURL=FileUploader.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploader.stories.d.ts","sourceRoot":"","sources":["../../../src/components/fileuploader/FileUploader.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,uBAAuB,CAAC;AAC/B,OAAO,6CAA6C,CAAC;AAErD,QAAA,MAAM,IAAI,EAAE,IAiFX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAoBjC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAwB7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAwBlC,CAAC"}