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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. package/README.md +36 -68
  2. package/dist/Cross20.js +1 -1
  3. package/dist/Cross20.js.map +1 -1
  4. package/dist/Cross24.js +1 -1
  5. package/dist/CrossCircleFilled24.js +1 -1
  6. package/dist/attributes.js +1 -1
  7. package/dist/attributes.js.map +1 -1
  8. package/dist/bundle.d.ts +24 -23
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +24 -23
  11. package/dist/components/avatar/Avatar.js +2 -2
  12. package/dist/components/avatar/Avatar.js.map +1 -1
  13. package/dist/components/avatar/Avatar.spec.js +17 -0
  14. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  15. package/dist/components/avatar/Avatar.stories.js +3 -29
  16. package/dist/components/avatar/Avatar.svelte +2 -0
  17. package/dist/components/avatar/Avatar.svelte.d.ts +2 -0
  18. package/dist/components/avatar/Avatar.svelte.d.ts.map +1 -1
  19. package/dist/components/avatar/README.md +16 -0
  20. package/dist/components/breadcrumb/Breadcrumb.js +2 -2
  21. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  22. package/dist/components/breadcrumb/Breadcrumb.spec.js +42 -0
  23. package/dist/components/breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
  24. package/dist/components/breadcrumb/Breadcrumb.stories.js +6 -35
  25. package/dist/components/breadcrumb/Breadcrumb.svelte +11 -16
  26. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  27. package/dist/components/breadcrumb/README.md +11 -0
  28. package/dist/components/button/Button.js +2 -2
  29. package/dist/components/button/Button.js.map +1 -1
  30. package/dist/components/button/Button.spec.js +74 -0
  31. package/dist/components/button/Button.stories.d.ts +9 -13
  32. package/dist/components/button/Button.stories.d.ts.map +1 -1
  33. package/dist/components/button/Button.stories.js +46 -146
  34. package/dist/components/button/Button.svelte +70 -53
  35. package/dist/components/button/Button.svelte.d.ts +36 -8
  36. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  37. package/dist/components/button/README.md +26 -0
  38. package/dist/components/callout/Callout.js +1 -1
  39. package/dist/components/callout/Callout.js.map +1 -1
  40. package/dist/components/callout/Callout.spec.js +33 -0
  41. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  42. package/dist/components/callout/Callout.stories.js +2 -55
  43. package/dist/components/callout/Callout.svelte +4 -0
  44. package/dist/components/callout/Callout.svelte.d.ts +4 -0
  45. package/dist/components/callout/Callout.svelte.d.ts.map +1 -1
  46. package/dist/components/callout/README.md +20 -0
  47. package/dist/components/checkbox/Checkbox.js +3 -3
  48. package/dist/components/checkbox/Checkbox.js.map +1 -1
  49. package/dist/components/checkbox/Checkbox.spec.js +70 -0
  50. package/dist/components/checkbox/Checkbox.stories.d.ts +11 -16
  51. package/dist/components/checkbox/Checkbox.stories.d.ts.map +1 -1
  52. package/dist/components/checkbox/Checkbox.stories.js +67 -124
  53. package/dist/components/checkbox/Checkbox.svelte +42 -22
  54. package/dist/components/checkbox/Checkbox.svelte.d.ts +31 -6
  55. package/dist/components/checkbox/Checkbox.svelte.d.ts.map +1 -1
  56. package/dist/components/checkbox/README.md +17 -0
  57. package/dist/components/checkboxgroup/CheckboxGroup.js +3 -3
  58. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  59. package/dist/components/checkboxgroup/CheckboxGroup.spec.js +113 -0
  60. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts +5 -13
  61. package/dist/components/checkboxgroup/CheckboxGroup.stories.d.ts.map +1 -1
  62. package/dist/components/checkboxgroup/CheckboxGroup.stories.js +56 -140
  63. package/dist/components/checkboxgroup/CheckboxGroup.svelte +56 -45
  64. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts +30 -6
  65. package/dist/components/checkboxgroup/CheckboxGroup.svelte.d.ts.map +1 -1
  66. package/dist/components/checkboxgroup/README.md +14 -0
  67. package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
  68. package/dist/components/circularprogressbar/CircularProgressbar.js.map +1 -1
  69. package/dist/components/circularprogressbar/CircularProgressbar.spec.js +74 -0
  70. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts +6 -6
  71. package/dist/components/circularprogressbar/CircularProgressbar.stories.d.ts.map +1 -1
  72. package/dist/components/circularprogressbar/CircularProgressbar.stories.js +29 -68
  73. package/dist/components/circularprogressbar/CircularProgressbar.svelte +25 -6
  74. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts +18 -0
  75. package/dist/components/circularprogressbar/CircularProgressbar.svelte.d.ts.map +1 -1
  76. package/dist/components/circularprogressbar/README.md +14 -0
  77. package/dist/components/datepicker/Datepicker.js +3 -3
  78. package/dist/components/datepicker/Datepicker.js.map +1 -1
  79. package/dist/components/datepicker/Datepicker.spec.js +95 -0
  80. package/dist/components/datepicker/Datepicker.stories.d.ts +7 -6
  81. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  82. package/dist/components/datepicker/Datepicker.stories.js +58 -75
  83. package/dist/components/datepicker/Datepicker.svelte +48 -25
  84. package/dist/components/datepicker/Datepicker.svelte.d.ts +30 -1
  85. package/dist/components/datepicker/Datepicker.svelte.d.ts.map +1 -1
  86. package/dist/components/datepicker/README.md +18 -0
  87. package/dist/components/drawer/Drawer.js +2 -2
  88. package/dist/components/drawer/Drawer.js.map +1 -1
  89. package/dist/components/drawer/Drawer.spec.js +101 -0
  90. package/dist/components/drawer/Drawer.stories.d.ts +29 -8
  91. package/dist/components/drawer/Drawer.stories.d.ts.map +1 -1
  92. package/dist/components/drawer/Drawer.stories.js +86 -87
  93. package/dist/components/drawer/Drawer.svelte +61 -38
  94. package/dist/components/drawer/Drawer.svelte.d.ts +26 -3
  95. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  96. package/dist/components/drawer/README.md +29 -0
  97. package/dist/components/field/Field.js +2 -2
  98. package/dist/components/field/Field.js.map +1 -1
  99. package/dist/components/field/Field.spec.js +51 -0
  100. package/dist/components/field/Field.stories.d.ts +9 -15
  101. package/dist/components/field/Field.stories.d.ts.map +1 -1
  102. package/dist/components/field/Field.stories.js +86 -142
  103. package/dist/components/field/Field.svelte +48 -12
  104. package/dist/components/field/Field.svelte.d.ts +38 -7
  105. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  106. package/dist/components/field/README.md +24 -0
  107. package/dist/components/flag/Flag.js +2 -2
  108. package/dist/components/flag/Flag.js.map +1 -1
  109. package/dist/components/flag/Flag.spec.js +30 -0
  110. package/dist/components/flag/Flag.stories.d.ts +8 -18
  111. package/dist/components/flag/Flag.stories.d.ts.map +1 -1
  112. package/dist/components/flag/Flag.stories.js +28 -106
  113. package/dist/components/flag/Flag.svelte +11 -9
  114. package/dist/components/flag/Flag.svelte.d.ts +10 -28
  115. package/dist/components/flag/Flag.svelte.d.ts.map +1 -1
  116. package/dist/components/flag/README.md +11 -0
  117. package/dist/components/iconbutton/IconButton.js +2 -2
  118. package/dist/components/iconbutton/IconButton.js.map +1 -1
  119. package/dist/components/iconbutton/IconButton.stories.d.ts +11 -11
  120. package/dist/components/iconbutton/IconButton.stories.d.ts.map +1 -1
  121. package/dist/components/iconbutton/IconButton.stories.js +51 -67
  122. package/dist/components/iconbutton/IconButton.svelte +41 -37
  123. package/dist/components/iconbutton/IconButton.svelte.d.ts +28 -7
  124. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  125. package/dist/components/iconbutton/README.md +21 -0
  126. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
  127. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js.map +1 -1
  128. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.spec.js +28 -0
  129. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts +5 -7
  130. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.d.ts.map +1 -1
  131. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.stories.js +18 -49
  132. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte +15 -5
  133. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts +10 -1
  134. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.svelte.d.ts.map +1 -1
  135. package/dist/components/linearprogressbarbuffer/README.md +11 -0
  136. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
  137. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js.map +1 -1
  138. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.spec.js +26 -0
  139. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts +4 -5
  140. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.d.ts.map +1 -1
  141. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.stories.js +15 -33
  142. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte +6 -0
  143. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts +6 -0
  144. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.svelte.d.ts.map +1 -1
  145. package/dist/components/linearprogressbarpercentage/README.md +10 -0
  146. package/dist/components/link/Link.js +2 -2
  147. package/dist/components/link/Link.js.map +1 -1
  148. package/dist/components/link/Link.spec.js +51 -0
  149. package/dist/components/link/Link.stories.d.ts +12 -12
  150. package/dist/components/link/Link.stories.d.ts.map +1 -1
  151. package/dist/components/link/Link.stories.js +61 -74
  152. package/dist/components/link/Link.svelte +45 -40
  153. package/dist/components/link/Link.svelte.d.ts +29 -8
  154. package/dist/components/link/Link.svelte.d.ts.map +1 -1
  155. package/dist/components/link/README.md +23 -0
  156. package/dist/components/loader/Loader.js +2 -2
  157. package/dist/components/loader/Loader.js.map +1 -1
  158. package/dist/components/loader/Loader.spec.js +54 -0
  159. package/dist/components/loader/Loader.stories.d.ts +8 -10
  160. package/dist/components/loader/Loader.stories.d.ts.map +1 -1
  161. package/dist/components/loader/Loader.stories.js +27 -43
  162. package/dist/components/loader/Loader.svelte +31 -31
  163. package/dist/components/loader/Loader.svelte.d.ts +14 -3
  164. package/dist/components/loader/Loader.svelte.d.ts.map +1 -1
  165. package/dist/components/loader/README.md +12 -0
  166. package/dist/components/loadingoverlay/LoadingOverlay.js +4 -0
  167. package/dist/components/loadingoverlay/LoadingOverlay.js.map +1 -0
  168. package/dist/components/loadingoverlay/LoadingOverlay.spec.js +38 -0
  169. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts +7 -0
  170. package/dist/components/loadingoverlay/LoadingOverlay.stories.d.ts.map +1 -0
  171. package/dist/components/loadingoverlay/LoadingOverlay.stories.js +39 -0
  172. package/dist/components/loadingoverlay/LoadingOverlay.svelte +50 -0
  173. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts +17 -0
  174. package/dist/components/loadingoverlay/LoadingOverlay.svelte.d.ts.map +1 -0
  175. package/dist/components/loadingoverlay/README.md +11 -0
  176. package/dist/components/modal/Modal.js +2 -2
  177. package/dist/components/modal/Modal.js.map +1 -1
  178. package/dist/components/modal/Modal.spec.js +50 -0
  179. package/dist/components/modal/Modal.stories.d.ts +36 -9
  180. package/dist/components/modal/Modal.stories.d.ts.map +1 -1
  181. package/dist/components/modal/Modal.stories.js +54 -83
  182. package/dist/components/modal/Modal.svelte +42 -41
  183. package/dist/components/modal/Modal.svelte.d.ts +22 -5
  184. package/dist/components/modal/Modal.svelte.d.ts.map +1 -1
  185. package/dist/components/modal/README.md +28 -0
  186. package/dist/components/numberbadge/NumberBadge.js +2 -2
  187. package/dist/components/numberbadge/NumberBadge.js.map +1 -1
  188. package/dist/components/numberbadge/NumberBadge.spec.js +28 -0
  189. package/dist/components/numberbadge/NumberBadge.stories.d.ts +9 -13
  190. package/dist/components/numberbadge/NumberBadge.stories.d.ts.map +1 -1
  191. package/dist/components/numberbadge/NumberBadge.stories.js +28 -56
  192. package/dist/components/numberbadge/NumberBadge.svelte +24 -20
  193. package/dist/components/numberbadge/NumberBadge.svelte.d.ts +15 -4
  194. package/dist/components/numberbadge/NumberBadge.svelte.d.ts.map +1 -1
  195. package/dist/components/numberbadge/README.md +12 -0
  196. package/dist/components/overlay/Overlay.js +2 -2
  197. package/dist/components/overlay/Overlay.js.map +1 -1
  198. package/dist/components/overlay/Overlay.spec.js +29 -0
  199. package/dist/components/overlay/Overlay.stories.d.ts +5 -7
  200. package/dist/components/overlay/Overlay.stories.d.ts.map +1 -1
  201. package/dist/components/overlay/Overlay.stories.js +32 -40
  202. package/dist/components/overlay/Overlay.svelte +14 -4
  203. package/dist/components/overlay/Overlay.svelte.d.ts +11 -0
  204. package/dist/components/overlay/Overlay.svelte.d.ts.map +1 -1
  205. package/dist/components/overlay/README.md +17 -0
  206. package/dist/components/pagination/Pagination.js +6 -6
  207. package/dist/components/pagination/Pagination.js.map +1 -1
  208. package/dist/components/pagination/Pagination.spec.js +65 -0
  209. package/dist/components/pagination/Pagination.stories.d.ts +8 -11
  210. package/dist/components/pagination/Pagination.stories.d.ts.map +1 -1
  211. package/dist/components/pagination/Pagination.stories.js +37 -91
  212. package/dist/components/pagination/Pagination.svelte +33 -12
  213. package/dist/components/pagination/Pagination.svelte.d.ts +27 -4
  214. package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
  215. package/dist/components/pagination/README.md +16 -0
  216. package/dist/components/passwordinput/PasswordInput.js +3 -4
  217. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  218. package/dist/components/passwordinput/PasswordInput.spec.js +84 -0
  219. package/dist/components/passwordinput/PasswordInput.stories.d.ts +10 -13
  220. package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
  221. package/dist/components/passwordinput/PasswordInput.stories.js +67 -124
  222. package/dist/components/passwordinput/PasswordInput.svelte +387 -24
  223. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +34 -2
  224. package/dist/components/passwordinput/PasswordInput.svelte.d.ts.map +1 -1
  225. package/dist/components/passwordinput/README.md +19 -0
  226. package/dist/components/pincode/Pincode.js +2 -2
  227. package/dist/components/pincode/Pincode.js.map +1 -1
  228. package/dist/components/pincode/Pincode.spec.js +99 -0
  229. package/dist/components/pincode/Pincode.stories.d.ts +9 -13
  230. package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
  231. package/dist/components/pincode/Pincode.stories.js +62 -127
  232. package/dist/components/pincode/Pincode.svelte +56 -41
  233. package/dist/components/pincode/Pincode.svelte.d.ts +30 -24
  234. package/dist/components/pincode/Pincode.svelte.d.ts.map +1 -1
  235. package/dist/components/pincode/README.md +22 -0
  236. package/dist/components/quantityselector/QuantitySelector.js +2 -2
  237. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  238. package/dist/components/quantityselector/QuantitySelector.spec.js +104 -0
  239. package/dist/components/quantityselector/QuantitySelector.stories.d.ts +11 -15
  240. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  241. package/dist/components/quantityselector/QuantitySelector.stories.js +77 -145
  242. package/dist/components/quantityselector/QuantitySelector.svelte +100 -77
  243. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts +49 -17
  244. package/dist/components/quantityselector/QuantitySelector.svelte.d.ts.map +1 -1
  245. package/dist/components/quantityselector/README.md +21 -0
  246. package/dist/components/radio/README.md +15 -0
  247. package/dist/components/radio/Radio.js +2 -2
  248. package/dist/components/radio/Radio.js.map +1 -1
  249. package/dist/components/radio/Radio.spec.js +60 -0
  250. package/dist/components/radio/Radio.stories.d.ts +9 -13
  251. package/dist/components/radio/Radio.stories.d.ts.map +1 -1
  252. package/dist/components/radio/Radio.stories.js +54 -70
  253. package/dist/components/radio/Radio.svelte +42 -20
  254. package/dist/components/radio/Radio.svelte.d.ts +27 -5
  255. package/dist/components/radio/Radio.svelte.d.ts.map +1 -1
  256. package/dist/components/radiogroup/README.md +14 -0
  257. package/dist/components/radiogroup/RadioGroup.js +3 -3
  258. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  259. package/dist/components/radiogroup/RadioGroup.spec.js +65 -0
  260. package/dist/components/radiogroup/RadioGroup.stories.d.ts +5 -12
  261. package/dist/components/radiogroup/RadioGroup.stories.d.ts.map +1 -1
  262. package/dist/components/radiogroup/RadioGroup.stories.js +56 -151
  263. package/dist/components/radiogroup/RadioGroup.svelte +50 -43
  264. package/dist/components/radiogroup/RadioGroup.svelte.d.ts +28 -9
  265. package/dist/components/radiogroup/RadioGroup.svelte.d.ts.map +1 -1
  266. package/dist/components/select/README.md +18 -0
  267. package/dist/components/select/Select.js +2 -2
  268. package/dist/components/select/Select.js.map +1 -1
  269. package/dist/components/select/Select.spec.js +76 -0
  270. package/dist/components/select/Select.stories.d.ts +10 -14
  271. package/dist/components/select/Select.stories.d.ts.map +1 -1
  272. package/dist/components/select/Select.stories.js +87 -92
  273. package/dist/components/select/Select.svelte +57 -44
  274. package/dist/components/select/Select.svelte.d.ts +41 -10
  275. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  276. package/dist/components/statusbadge/README.md +11 -0
  277. package/dist/components/statusbadge/StatusBadge.js +2 -2
  278. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  279. package/dist/components/statusbadge/StatusBadge.spec.js +31 -0
  280. package/dist/components/statusbadge/StatusBadge.stories.d.ts +9 -12
  281. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  282. package/dist/components/statusbadge/StatusBadge.stories.js +21 -44
  283. package/dist/components/statusbadge/StatusBadge.svelte +14 -6
  284. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +13 -28
  285. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  286. package/dist/components/statusdot/README.md +11 -0
  287. package/dist/components/statusdot/StatusDot.js +2 -2
  288. package/dist/components/statusdot/StatusDot.js.map +1 -1
  289. package/dist/components/statusdot/StatusDot.spec.js +42 -0
  290. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  291. package/dist/components/statusdot/StatusDot.stories.js +9 -37
  292. package/dist/components/statusdot/StatusDot.svelte +9 -7
  293. package/dist/components/statusdot/StatusDot.svelte.d.ts +2 -2
  294. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  295. package/dist/components/statusnotification/README.md +25 -0
  296. package/dist/components/statusnotification/StatusNotification.js +3 -3
  297. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  298. package/dist/components/statusnotification/StatusNotification.spec.js +54 -0
  299. package/dist/components/statusnotification/StatusNotification.stories.d.ts +16 -14
  300. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  301. package/dist/components/statusnotification/StatusNotification.stories.js +53 -86
  302. package/dist/components/statusnotification/StatusNotification.svelte +49 -51
  303. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +21 -18
  304. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  305. package/dist/components/tab/README.md +20 -0
  306. package/dist/components/tab/Tab.js +4 -0
  307. package/dist/components/tab/Tab.js.map +1 -0
  308. package/dist/components/tab/Tab.spec.js +58 -0
  309. package/dist/components/{tabs → tab}/Tab.svelte +46 -26
  310. package/dist/components/{tabs → tab}/Tab.svelte.d.ts +20 -3
  311. package/dist/components/tab/Tab.svelte.d.ts.map +1 -0
  312. package/dist/components/tabs/README.md +18 -0
  313. package/dist/components/tabs/Tabs.js +2 -2
  314. package/dist/components/tabs/Tabs.js.map +1 -1
  315. package/dist/components/tabs/Tabs.spec.js +51 -0
  316. package/dist/components/tabs/Tabs.stories.d.ts +9 -6
  317. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  318. package/dist/components/tabs/Tabs.stories.js +59 -115
  319. package/dist/components/tabs/Tabs.svelte +27 -7
  320. package/dist/components/tabs/Tabs.svelte.d.ts +21 -7
  321. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  322. package/dist/components/tags/README.md +9 -0
  323. package/dist/components/tags/Tag.js +1 -1
  324. package/dist/components/tags/TagContextualised.js +2 -2
  325. package/dist/components/tags/TagInteractive.js +1 -1
  326. package/dist/components/tags/TagRemovable.js +2 -2
  327. package/dist/components/tags/TagSelectable.js +2 -2
  328. package/dist/components/tags/Tags.stories.d.ts.map +1 -1
  329. package/dist/components/tags/Tags.stories.js +7 -1
  330. package/dist/components/tags/TagsContextualised.stories.d.ts.map +1 -1
  331. package/dist/components/tags/TagsContextualised.stories.js +7 -1
  332. package/dist/components/tags/TagsInteractive.stories.d.ts.map +1 -1
  333. package/dist/components/tags/TagsInteractive.stories.js +7 -1
  334. package/dist/components/tags/TagsRemovable.stories.d.ts.map +1 -1
  335. package/dist/components/tags/TagsRemovable.stories.js +7 -1
  336. package/dist/components/tags/TagsSelectable.stories.d.ts.map +1 -1
  337. package/dist/components/tags/TagsSelectable.stories.js +7 -1
  338. package/dist/components/textarea/README.md +19 -0
  339. package/dist/components/textarea/Textarea.js +2 -5
  340. package/dist/components/textarea/Textarea.js.map +1 -1
  341. package/dist/components/textarea/Textarea.spec.js +67 -0
  342. package/dist/components/textarea/Textarea.stories.d.ts +9 -13
  343. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  344. package/dist/components/textarea/Textarea.stories.js +61 -92
  345. package/dist/components/textarea/Textarea.svelte +53 -97
  346. package/dist/components/textarea/Textarea.svelte.d.ts +43 -13
  347. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  348. package/dist/components/textinput/README.md +26 -0
  349. package/dist/components/textinput/Textinput.js +2 -2
  350. package/dist/components/textinput/Textinput.js.map +1 -1
  351. package/dist/components/textinput/Textinput.spec.js +89 -0
  352. package/dist/components/textinput/Textinput.stories.d.ts +11 -12
  353. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  354. package/dist/components/textinput/Textinput.stories.js +78 -137
  355. package/dist/components/textinput/Textinput.svelte +70 -112
  356. package/dist/components/textinput/Textinput.svelte.d.ts +46 -22
  357. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  358. package/dist/components/toaster/README.md +28 -0
  359. package/dist/components/toaster/Toaster.js +2 -2
  360. package/dist/components/toaster/Toaster.js.map +1 -1
  361. package/dist/components/toaster/Toaster.spec.js +100 -0
  362. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  363. package/dist/components/toaster/Toaster.stories.js +5 -73
  364. package/dist/components/toaster/Toaster.svelte +17 -7
  365. package/dist/components/toaster/Toaster.svelte.d.ts +3 -0
  366. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  367. package/dist/components/toggle/README.md +15 -0
  368. package/dist/components/toggle/Toggle.js +2 -2
  369. package/dist/components/toggle/Toggle.js.map +1 -1
  370. package/dist/components/toggle/Toggle.spec.js +69 -0
  371. package/dist/components/toggle/Toggle.stories.d.ts +9 -14
  372. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  373. package/dist/components/toggle/Toggle.stories.js +55 -64
  374. package/dist/components/toggle/Toggle.svelte +38 -24
  375. package/dist/components/toggle/Toggle.svelte.d.ts +26 -7
  376. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  377. package/dist/components/togglegroup/README.md +13 -0
  378. package/dist/components/togglegroup/ToggleGroup.js +3 -3
  379. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  380. package/dist/components/togglegroup/ToggleGroup.spec.js +50 -0
  381. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +5 -13
  382. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  383. package/dist/components/togglegroup/ToggleGroup.stories.js +56 -104
  384. package/dist/components/togglegroup/ToggleGroup.svelte +55 -58
  385. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +25 -14
  386. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  387. package/dist/components/tooltip/README.md +19 -0
  388. package/dist/components/tooltip/Tooltip.js +2 -2
  389. package/dist/components/tooltip/Tooltip.js.map +1 -1
  390. package/dist/components/tooltip/Tooltip.spec.js +38 -0
  391. package/dist/components/tooltip/Tooltip.stories.d.ts +6 -7
  392. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  393. package/dist/components/tooltip/Tooltip.stories.js +45 -59
  394. package/dist/components/tooltip/Tooltip.svelte +23 -14
  395. package/dist/components/tooltip/Tooltip.svelte.d.ts +17 -0
  396. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  397. package/dist/custom-element.js +3 -3
  398. package/dist/custom-element.js.map +1 -1
  399. package/dist/documentation/Contributing.mdx +1 -1
  400. package/dist/documentation/Introduction.mdx +45 -11
  401. package/dist/documentation/SupportAndOnboarding.mdx +2 -2
  402. package/dist/each.js +1 -1
  403. package/dist/each.js.map +1 -1
  404. package/dist/if.js +1 -1
  405. package/dist/if.js.map +1 -1
  406. package/dist/input.js +1 -1
  407. package/dist/input.js.map +1 -1
  408. package/dist/legacy.js +1 -1
  409. package/dist/main.d.ts +24 -23
  410. package/dist/main.d.ts.map +1 -1
  411. package/dist/main.js +24 -23
  412. package/dist/slot.js +1 -1
  413. package/dist/slot.js.map +1 -1
  414. package/dist/this.js +2 -0
  415. package/dist/this.js.map +1 -0
  416. package/package.json +11 -3
  417. package/dist/components/button/button.types.d.ts +0 -13
  418. package/dist/components/button/button.types.d.ts.map +0 -1
  419. package/dist/components/button/button.types.js +0 -1
  420. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts +0 -9
  421. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts.map +0 -1
  422. package/dist/components/checkboxgroup/checkboxgroup.types.js +0 -1
  423. package/dist/components/link/link.types.d.ts +0 -4
  424. package/dist/components/link/link.types.d.ts.map +0 -1
  425. package/dist/components/link/link.types.js +0 -1
  426. package/dist/components/loader/loader.types.d.ts +0 -3
  427. package/dist/components/loader/loader.types.d.ts.map +0 -1
  428. package/dist/components/loader/loader.types.js +0 -1
  429. package/dist/components/numberbadge/NumberBadge.types.d.ts +0 -3
  430. package/dist/components/numberbadge/NumberBadge.types.d.ts.map +0 -1
  431. package/dist/components/numberbadge/NumberBadge.types.js +0 -1
  432. package/dist/components/overlayloader/OverlayLoader.js +0 -27
  433. package/dist/components/overlayloader/OverlayLoader.js.map +0 -1
  434. package/dist/components/overlayloader/OverlayLoader.stories.d.ts +0 -8
  435. package/dist/components/overlayloader/OverlayLoader.stories.d.ts.map +0 -1
  436. package/dist/components/overlayloader/OverlayLoader.stories.js +0 -50
  437. package/dist/components/overlayloader/OverlayLoader.svelte +0 -160
  438. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts +0 -9
  439. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts.map +0 -1
  440. package/dist/components/quantityselector/quantitySelector.types.d.ts +0 -2
  441. package/dist/components/quantityselector/quantitySelector.types.d.ts.map +0 -1
  442. package/dist/components/quantityselector/quantitySelector.types.js +0 -1
  443. package/dist/components/radiogroup/radioGroup.types.d.ts +0 -9
  444. package/dist/components/radiogroup/radioGroup.types.d.ts.map +0 -1
  445. package/dist/components/radiogroup/radioGroup.types.js +0 -1
  446. package/dist/components/select/select.types.d.ts +0 -9
  447. package/dist/components/select/select.types.d.ts.map +0 -1
  448. package/dist/components/select/select.types.js +0 -1
  449. package/dist/components/statusbadge/StatusBadge.types.d.ts +0 -2
  450. package/dist/components/statusbadge/StatusBadge.types.d.ts.map +0 -1
  451. package/dist/components/statusbadge/StatusBadge.types.js +0 -1
  452. package/dist/components/statusdot/StatusDot.types.d.ts +0 -3
  453. package/dist/components/statusdot/StatusDot.types.d.ts.map +0 -1
  454. package/dist/components/statusdot/StatusDot.types.js +0 -1
  455. package/dist/components/tabs/Tab.js +0 -4
  456. package/dist/components/tabs/Tab.js.map +0 -1
  457. package/dist/components/tabs/Tab.svelte.d.ts.map +0 -1
  458. package/dist/components/textinput/textinput.types.d.ts +0 -3
  459. package/dist/components/textinput/textinput.types.d.ts.map +0 -1
  460. package/dist/components/textinput/textinput.types.js +0 -1
  461. package/dist/components/toggle/toggle.types.d.ts +0 -2
  462. package/dist/components/toggle/toggle.types.d.ts.map +0 -1
  463. package/dist/components/toggle/toggle.types.js +0 -1
  464. package/dist/index-client.js +0 -2
  465. package/dist/index-client.js.map +0 -1
  466. package/dist/snippet.js +0 -2
  467. package/dist/snippet.js.map +0 -1
@@ -1,141 +1,99 @@
1
- <svelte:options customElement="m-textinput" />
1
+ <svelte:options
2
+ customElement={{ tag: 'm-textinput', extend: customElementForwardEvents }}
3
+ />
2
4
 
3
5
  <script lang="ts">
4
- import type { TextInputSize, TextInputType } from './textinput.types';
5
- import type { Snippet } from 'svelte';
6
-
6
+ import { customElementForwardEvents } from '../../utils';
7
+ /**
8
+ * A text input is a single-line input that allows users to enter and edit short text-based content. It is commonly used for names, email addresses, search queries, and form entries. Text Inputs often include placeholders, validation rules, and assistive text to guide users and ensure accurate data entry.
9
+ *
10
+ * @slot icon - Use this slot to insert an icon in the input.
11
+ */
7
12
  interface Props {
8
- name: string;
9
- value: string;
10
- placeholder: string;
11
- inputtype?: TextInputType;
12
- isvalid: boolean;
13
- isinvalid: boolean;
13
+ /**
14
+ * A unique identifier for the input element, used to associate the label with the form element.
15
+ */
16
+ id: string;
17
+ /**
18
+ * The name attribute for the input element, typically used for form submission.
19
+ */
20
+ name?: string;
21
+ /**
22
+ * The current value of the input field.
23
+ */
24
+ value?: string | number;
25
+ /**
26
+ * A placeholder text to show in the input when it is empty.
27
+ */
28
+ placeholder?: string;
29
+ /**
30
+ * Defines the type of input.
31
+ */
32
+ inputtype?: 'date' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text';
33
+ /**
34
+ * If `true`, applies an invalid state to the input.
35
+ */
36
+ isinvalid?: boolean;
37
+ /**
38
+ * If `true`, disables the input, making it non-interactive.
39
+ */
14
40
  disabled?: boolean;
41
+ /**
42
+ * Determines the size of the input.
43
+ */
44
+ size?: 's' | 'm';
45
+ /**
46
+ * If `true`, the input is read-only (cannot be edited).
47
+ */
15
48
  readonly?: boolean;
16
- size?: TextInputSize;
17
- hasicon?: boolean;
18
- icon?: Snippet;
19
- rightalign: boolean;
20
- min: string;
21
- max: string;
22
- minlength: number;
23
- maxlength: number;
24
- required?: boolean;
25
- clearlabel?: string;
49
+ /**
50
+ * If `true`, a clear button will appear when the input has a value.
51
+ */
26
52
  isclearable?: boolean;
27
- onclear?: (arg: string) => void;
28
- oninput?: (event: Event) => void;
29
- onchange?: (event: Event) => void;
30
- onblur?: (event: FocusEvent) => void;
53
+ /**
54
+ * The label text for the clear button.
55
+ */
56
+ clearlabel?: string;
31
57
  }
32
58
 
33
59
  let {
60
+ id,
34
61
  name,
35
62
  value,
36
63
  placeholder,
37
64
  inputtype = 'text',
38
- isvalid,
39
65
  isinvalid,
40
- disabled = false,
41
- readonly = false,
66
+ disabled,
67
+ readonly,
42
68
  size = 'm',
43
- hasicon = false,
44
- icon,
45
- rightalign,
46
- min,
47
- max,
48
- minlength,
49
- maxlength,
50
- required = false,
51
69
  clearlabel = 'Clear content',
52
- isclearable = false,
53
- onclear,
54
- oninput,
55
- onchange,
56
- onblur,
70
+ isclearable,
57
71
  }: Props = $props();
58
72
 
59
- let inputType = $derived(inputtype);
60
- let displayClear = $derived(isclearable && value ? true : false);
61
- let hasIcon = $derived(!!hasicon || !!icon)
62
-
63
- function getClasses(
64
- isValid: boolean,
65
- isInvalid: boolean,
66
- size: TextInputSize,
67
- hasIcon: boolean,
68
- ): string {
69
- const classes = ['mc-text-input', 'mc-field__input'];
70
-
71
- if (isValid) {
72
- classes.push('is-valid');
73
- }
74
-
75
- if (isInvalid) {
76
- classes.push('is-invalid');
77
- }
78
-
79
- if (size === 's') {
80
- classes.push('mc-text-input--s');
81
- }
82
-
83
- if (hasIcon) {
84
- classes.push('mc-left-icon-input__input');
85
- }
86
-
87
- if (rightalign) {
88
- classes.push('right-align');
89
- }
90
-
91
- return classes.join(' ');
92
- }
93
-
94
- const setType = (node: any) => {
95
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
96
- node.type = inputType;
97
- };
98
-
99
- function resetValue() {
100
- value = '';
101
- onclear?.('onclear');
102
- }
73
+ const resetValue = () => (value = '');
103
74
  </script>
104
75
 
105
- <div class="{getClasses(isvalid, isinvalid, size, hasIcon)} ">
106
- {#if hasIcon}
107
- <span class="mc-text-input__icon">
108
- {#if icon}
109
- {@render icon()}
110
- {:else}
111
- <slot name="icon" />
112
- {/if}
113
- </span>
114
- {/if}
76
+ <div
77
+ class={['mc-text-input', `mc-text-input--${size}`, isinvalid && 'is-invalid']}
78
+ >
79
+ <span class="mc-text-input__icon">
80
+ <slot name="icon" />
81
+ </span>
82
+
115
83
  <input
116
84
  bind:value
117
- use:setType
118
85
  class="mc-text-input__control"
119
86
  aria-invalid={isinvalid}
120
87
  {name}
121
- id={name}
88
+ {id}
89
+ type={inputtype}
122
90
  {placeholder}
123
91
  {disabled}
124
- {min}
125
- {max}
126
- {minlength}
127
- {maxlength}
128
- spellcheck="false"
129
- {required}
130
- {...readonly ? { readonly: true } : {}}
131
- {oninput}
132
- {onchange}
133
- {onblur}
92
+ {readonly}
134
93
  />
135
- <!-- Control options -->
136
- {#if displayClear}
137
- <div class="mc-controls-options js-control-options">
138
- <!-- Clear Button -->
94
+
95
+ {#if isclearable && value}
96
+ <div class="mc-controls-options">
139
97
  <button
140
98
  type="button"
141
99
  class="mc-controls-options__button"
@@ -317,6 +275,6 @@
317
275
  }
318
276
 
319
277
  /* stylelint-enable string-no-newline */
320
- .right-align {
321
- text-align: right;
278
+ .mc-text-input__icon:empty {
279
+ display: none;
322
280
  }</style>
@@ -1,29 +1,53 @@
1
- import type { TextInputSize, TextInputType } from './textinput.types';
2
- import type { Snippet } from 'svelte';
1
+ /**
2
+ * A text input is a single-line input that allows users to enter and edit short text-based content. It is commonly used for names, email addresses, search queries, and form entries. Text Inputs often include placeholders, validation rules, and assistive text to guide users and ensure accurate data entry.
3
+ *
4
+ * @slot icon - Use this slot to insert an icon in the input.
5
+ */
3
6
  interface Props {
4
- name: string;
5
- value: string;
6
- placeholder: string;
7
- inputtype?: TextInputType;
8
- isvalid: boolean;
9
- isinvalid: boolean;
7
+ /**
8
+ * A unique identifier for the input element, used to associate the label with the form element.
9
+ */
10
+ id: string;
11
+ /**
12
+ * The name attribute for the input element, typically used for form submission.
13
+ */
14
+ name?: string;
15
+ /**
16
+ * The current value of the input field.
17
+ */
18
+ value?: string | number;
19
+ /**
20
+ * A placeholder text to show in the input when it is empty.
21
+ */
22
+ placeholder?: string;
23
+ /**
24
+ * Defines the type of input.
25
+ */
26
+ inputtype?: 'date' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'text';
27
+ /**
28
+ * If `true`, applies an invalid state to the input.
29
+ */
30
+ isinvalid?: boolean;
31
+ /**
32
+ * If `true`, disables the input, making it non-interactive.
33
+ */
10
34
  disabled?: boolean;
35
+ /**
36
+ * Determines the size of the input.
37
+ */
38
+ size?: 's' | 'm';
39
+ /**
40
+ * If `true`, the input is read-only (cannot be edited).
41
+ */
11
42
  readonly?: boolean;
12
- size?: TextInputSize;
13
- hasicon?: boolean;
14
- icon?: Snippet;
15
- rightalign: boolean;
16
- min: string;
17
- max: string;
18
- minlength: number;
19
- maxlength: number;
20
- required?: boolean;
21
- clearlabel?: string;
43
+ /**
44
+ * If `true`, a clear button will appear when the input has a value.
45
+ */
22
46
  isclearable?: boolean;
23
- onclear?: (arg: string) => void;
24
- oninput?: (event: Event) => void;
25
- onchange?: (event: Event) => void;
26
- onblur?: (event: FocusEvent) => void;
47
+ /**
48
+ * The label text for the clear button.
49
+ */
50
+ clearlabel?: string;
27
51
  }
28
52
  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> {
29
53
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -1 +1 @@
1
- {"version":3,"file":"Textinput.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/textinput/Textinput.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGpC,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC;AA6GH,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;AAUD,QAAA,MAAM,SAAS;;;;UAAqF,CAAC;AACnF,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Textinput.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/textinput/Textinput.svelte.ts"],"names":[],"mappings":"AAKE;;;;GAIG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACjF;;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;IACnB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA+CH,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;AAUD,QAAA,MAAM,SAAS;;;;UAAqF,CAAC;AACnF,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,CAAC;AAClD,eAAe,SAAS,CAAC"}
@@ -0,0 +1,28 @@
1
+ # `m-toaster`
2
+
3
+ A toaster is a temporary notification that appears briefly on the screen to provide feedback or updates without interrupting the user’s workflow. It is commonly used for success messages, warnings, errors, or informational updates. Toasters can disappear automatically after a few seconds, be dismissed manually via a close button, or be removed when the user performs a relevant action. They typically include an icon, a short message, and an optional close button for better usability.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `open` | If `true`, display the Toaster. | `boolean` | |
10
+ | `position` | Position of the toaster. | `'top'` `'bottom'` `'top-center'` `'bottom-center'` | `top` |
11
+ | `description*` | Description of the toaster. | `string` | |
12
+ | `status` | Allows to define the toaster style. | `'info'` `'success'` `'warning'` `'error'` | `info` |
13
+ | `closable` | If `true`, display the close button. | `boolean` | `true` |
14
+ | `progress` | If `true`, display the progress bar of the duration. | `boolean` | |
15
+ | `timeout` | Duration of the toaster | `number` | |
16
+
17
+ ## Slots
18
+
19
+ | Name | Description |
20
+ |------|-------------|
21
+ | `action` | Use this slot to insert a button or a link in the toaster |
22
+
23
+ ## Events
24
+
25
+ | Name | Description | Type |
26
+ |------|------|-------------|
27
+ | `update:open` | Fired when the open state changes. | `CustomEvent<boolean>` |
28
+
@@ -1,4 +1,4 @@
1
- import{c as y,p as z,b as a,q as D,t as w,h,i as N,j as n,e as C,u as E,n as et,a as rt,v as V,l as at,f as j,w as W,m as x,d as g,r as f,s as S,g as nt}from"../../custom-element.js";import{o as ct,a as lt}from"../../index-client.js";import{i as G}from"../../if.js";import{s as st}from"../../slot.js";import{c as dt,C as ut}from"../../Cross20.js";import{s as m,a as I}from"../../attributes.js";import"../../legacy.js";var it=D('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32px" height="32px"><path fill-rule="evenodd" d="M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m0 9a1.333 1.333 0 1 0 0-2.667A1.333 1.333 0 0 0 16 12m1 2.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0z"></path></svg>');function H(b,o){z(o,!1);let c=a(o,"id",12,void 0),s=a(o,"style",12,void 0),d=a(o,"className",12,void 0),l=a(o,"fill",12,void 0),u=a(o,"size",12,"2rem");var v={get id(){return c()},set id(t){c(t),n()},get style(){return s()},set style(t){s(t),n()},get className(){return d()},set className(t){d(t),n()},get fill(){return l()},set fill(t){l(t),n()},get size(){return u()},set size(t){u(t),n()}},e=it();return w(()=>{m(e,"id",c()),I(e,s()),C(e,0,E(d())),m(e,"fill",l())}),h(b,e),N(v)}customElements.define("info-circle-filled-32",y(H,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var vt=D('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32px" height="32px"><path fill-rule="evenodd" d="M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m1 7.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0zm-1 12A1.333 1.333 0 1 0 16 20a1.333 1.333 0 0 0 0 2.667"></path></svg>');function J(b,o){z(o,!1);let c=a(o,"id",12,void 0),s=a(o,"style",12,void 0),d=a(o,"className",12,void 0),l=a(o,"fill",12,void 0),u=a(o,"size",12,"2rem");var v={get id(){return c()},set id(t){c(t),n()},get style(){return s()},set style(t){s(t),n()},get className(){return d()},set className(t){d(t),n()},get fill(){return l()},set fill(t){l(t),n()},get size(){return u()},set size(t){u(t),n()}},e=vt();return w(()=>{m(e,"id",c()),I(e,s()),C(e,0,E(d())),m(e,"fill",l())}),h(b,e),N(v)}customElements.define("warning-circle-filled-32",y(J,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var bt=D('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32px" height="32px"><path fill-rule="evenodd" d="M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m-4.707 8.293a1 1 0 0 1 1.414 0L16 14.586l3.293-3.293a1 1 0 0 1 1.414 1.414L17.414 16l3.293 3.293a1 1 0 0 1-1.414 1.414L16 17.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L14.586 16l-3.293-3.293a1 1 0 0 1 0-1.414"></path></svg>');function K(b,o){z(o,!1);let c=a(o,"id",12,void 0),s=a(o,"style",12,void 0),d=a(o,"className",12,void 0),l=a(o,"fill",12,void 0),u=a(o,"size",12,"2rem");var v={get id(){return c()},set id(t){c(t),n()},get style(){return s()},set style(t){s(t),n()},get className(){return d()},set className(t){d(t),n()},get fill(){return l()},set fill(t){l(t),n()},get size(){return u()},set size(t){u(t),n()}},e=bt();return w(()=>{m(e,"id",c()),I(e,s()),C(e,0,E(d())),m(e,"fill",l())}),h(b,e),N(v)}customElements.define("cross-circle-filled-32",y(K,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var mt=D('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32px" height="32px"><path fill-rule="evenodd" d="M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m6.707 8.96a1 1 0 0 1 0 1.414l-7.333 7.333a1 1 0 0 1-1.414 0l-4-4a1 1 0 1 1 1.414-1.414l3.293 3.293 6.626-6.626a1 1 0 0 1 1.414 0"></path></svg>');function O(b,o){z(o,!1);let c=a(o,"id",12,void 0),s=a(o,"style",12,void 0),d=a(o,"className",12,void 0),l=a(o,"fill",12,void 0),u=a(o,"size",12,"2rem");var v={get id(){return c()},set id(t){c(t),n()},get style(){return s()},set style(t){s(t),n()},get className(){return d()},set className(t){d(t),n()},get fill(){return l()},set fill(t){l(t),n()},get size(){return u()},set size(t){u(t),n()}},e=mt();return w(()=>{m(e,"id",c()),I(e,s()),C(e,0,E(d())),m(e,"fill",l())}),h(b,e),N(v)}customElements.define("check-circle-filled-32",y(O,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var gt=j('<button class="mc-toaster__close mc-button mc-button--icon-button mc-button--inverse mc-button--s mc-button--ghost svelte-h1mguv" type="button" aria-label="Close"><!></button>'),ft=j('<div class="mc-toaster__indicator mc-linear-progressbar-buffer mc-linear-progressbar-buffer--m svelte-h1mguv"><div class="mc-linear-progressbar-buffer__indicator svelte-h1mguv" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div></div>'),ht=j('<section role="status" tabindex="-1"><span class="mc-toaster__icon svelte-h1mguv" aria-hidden="true"><!></span> <div class="mc-toaster__content svelte-h1mguv"><p class="mc-toaster__message svelte-h1mguv"> </p> <div class="mc-toaster__action svelte-h1mguv"><!></div></div> <!> <!></section>');const kt={hash:"svelte-h1mguv",code:`/**
1
+ import{n as k,o as U,u as Y,q as A,v as Z,c as $,p as oo,a as to,b as a,w as M,l as ro,f as F,s as f,t as S,i as E,j as eo,k as n,x as W,m as v,d as c,r as s,e as ao,g as no,h as co}from"../../custom-element.js";import{i as q}from"../../if.js";import{s as so}from"../../slot.js";import{c as lo,I as uo,C as io,W as bo,a as vo,b as mo}from"../../Cross20.js";import{a as go,s as V}from"../../attributes.js";import{b as ho}from"../../this.js";import"../../legacy.js";function B(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function G(e){k===null&&B(),U&&k.l!==null?ko(k).m.push(e):Y(()=>{const t=A(e);if(typeof t=="function")return t})}function fo(e){k===null&&B(),G(()=>()=>A(e))}function ko(e){var t=e.l;return t.u??(t.u={a:[],b:[],m:[]})}var po=F('<button class="mc-toaster__close mc-button mc-button--icon-button mc-button--inverse mc-button--s mc-button--ghost svelte-h1mguv" type="button" aria-label="Close"><!></button>'),_o=F('<div class="mc-toaster__indicator mc-linear-progressbar-buffer mc-linear-progressbar-buffer--m svelte-h1mguv"><div class="mc-linear-progressbar-buffer__indicator svelte-h1mguv" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div></div>'),wo=F('<section role="status" tabindex="-1"><span class="mc-toaster__icon svelte-h1mguv" aria-hidden="true"><!></span> <div class="mc-toaster__content svelte-h1mguv"><p class="mc-toaster__message svelte-h1mguv"> </p> <div class="mc-toaster__action svelte-h1mguv"><!></div></div> <!> <!></section>');const xo={hash:"svelte-h1mguv",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */.mc-button.svelte-h1mguv {color:var(--button-color-filled-standard-font, #ffffff);background-color:var(--button-color-filled-standard-background, #464e63);}.mc-button.svelte-h1mguv:hover {background-color:var(--button-color-filled-standard-hover-background, #343b4c);}.mc-button.svelte-h1mguv:active {background-color:var(--button-color-filled-standard-active-background, #242938);}.mc-button.svelte-h1mguv: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-h1mguv {font-weight:var(--font-weight-semi-bold, 600);padding:0 calc(1rem - 0.125rem);min-height:3rem;min-width:3rem;}.mc-button.svelte-h1mguv {display:inline-flex;justify-content:center;vertical-align:middle;text-align:center;border:2px solid transparent;border-radius:var(--button-radius, 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-h1mguv {font-size:var(--font-size-150, 1rem);}.mc-button__icon.svelte-h1mguv {flex-shrink:0;width:1.5rem;height:1.5rem;}.mc-button.svelte-h1mguv: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-h1mguv: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--s.svelte-h1mguv {padding:0 calc(0.75rem - 0.125rem);min-height:2rem;min-width:2rem;}.mc-button--m.svelte-h1mguv {padding:0 calc(1rem - 0.125rem);min-height:3rem;min-width:3rem;}.mc-button--l.svelte-h1mguv {padding:0 calc(1.25rem - 0.125rem);min-height:4rem;min-width:4rem;}.mc-button--icon-only.svelte-h1mguv {padding:0.25rem;}.mc-button--outlined.svelte-h1mguv {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-h1mguv:hover {background-color:var(--button-color-outlined-standard-hover-background, #eff1f6);}.mc-button--outlined.svelte-h1mguv:active {background-color:var(--button-color-outlined-standard-active-background, #c9d0de);}.mc-button--outlined.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--ghost.svelte-h1mguv {color:var(--button-color-ghost-standard-font, #242938);background-color:var(--button-color-ghost-standard-background, rgba(255, 255, 255, 0.01));}.mc-button--ghost.svelte-h1mguv:hover {background-color:var(--button-color-ghost-standard-hover-background, rgba(70, 78, 99, 0.1));}.mc-button--ghost.svelte-h1mguv:active {background-color:var(--button-color-ghost-standard-active-background, rgba(70, 78, 99, 0.2));}.mc-button--ghost.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--accent.svelte-h1mguv {color:var(--button-color-filled-accent-font, #ffffff);background-color:var(--button-color-filled-accent-background, #117f03);}.mc-button--accent.svelte-h1mguv:hover {background-color:var(--button-color-filled-accent-hover-background, #006902);}.mc-button--accent.svelte-h1mguv:active {background-color:var(--button-color-filled-accent-active-background, #035010);}.mc-button--accent.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--danger.svelte-h1mguv {color:var(--button-color-filled-danger-font, #ffffff);background-color:var(--button-color-filled-danger-background, #c61112);}.mc-button--danger.svelte-h1mguv:hover {background-color:var(--button-color-filled-danger-hover-background, #8c0003);}.mc-button--danger.svelte-h1mguv:active {background-color:var(--button-color-filled-danger-active-background, #530000);}.mc-button--danger.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--inverse.svelte-h1mguv {--focus-color-mid: var(--focus-color-outline-outer, #000000);--focus-color-outer: var(--focus-color-outline-mid, #ffffff);color:var(--button-color-filled-inverse-font, #242938);background-color:var(--button-color-filled-inverse-background, #ffffff);}.mc-button--inverse.svelte-h1mguv:hover {background-color:var(--button-color-filled-inverse-hover-background, #e6e6e6);}.mc-button--inverse.svelte-h1mguv:active {background-color:var(--button-color-filled-inverse-active-background, #cccccc);}.mc-button--inverse.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--icon-button.svelte-h1mguv {border-radius:var(--radius-full, 100%);padding:0;}.mc-button--outlined.mc-button--standard.svelte-h1mguv {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.mc-button--standard.svelte-h1mguv:hover {background-color:var(--button-color-outlined-standard-hover-background, #eff1f6);}.mc-button--outlined.mc-button--standard.svelte-h1mguv:active {background-color:var(--button-color-outlined-standard-active-background, #c9d0de);}.mc-button--outlined.mc-button--standard.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--outlined.mc-button--accent.svelte-h1mguv {color:var(--button-color-outlined-accent-font, #117f03);border-color:var(--button-color-outlined-accent-border, #78be20);background-color:var(--button-color-outlined-accent-background, #ffffff);}.mc-button--outlined.mc-button--accent.svelte-h1mguv:hover {background-color:var(--button-color-outlined-accent-hover-background, #ebf5de);}.mc-button--outlined.mc-button--accent.svelte-h1mguv:active {background-color:var(--button-color-outlined-accent-active-background, #c5e39e);}.mc-button--outlined.mc-button--accent.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--outlined.mc-button--danger.svelte-h1mguv {color:var(--button-color-outlined-danger-font, #c61112);border-color:var(--button-color-outlined-danger-border, #ef5f5c);background-color:var(--button-color-outlined-danger-background, #ffffff);}.mc-button--outlined.mc-button--danger.svelte-h1mguv:hover {background-color:var(--button-color-outlined-danger-hover-background, #fdeaea);}.mc-button--outlined.mc-button--danger.svelte-h1mguv:active {background-color:var(--button-color-outlined-danger-active-background, #f8bcbb);}.mc-button--outlined.mc-button--danger.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--outlined.mc-button--inverse.svelte-h1mguv {color:var(--button-color-outlined-inverse-font, #ffffff);border-color:var(--button-color-outlined-inverse-border, #ffffff);background-color:var(--button-color-outlined-inverse-background, rgba(255, 255, 255, 0.01));}.mc-button--outlined.mc-button--inverse.svelte-h1mguv:hover {background-color:var(--button-color-outlined-inverse-hover-background, rgba(255, 255, 255, 0.1));}.mc-button--outlined.mc-button--inverse.svelte-h1mguv:active {background-color:var(--button-color-outlined-inverse-active-background, rgba(255, 255, 255, 0.2));}.mc-button--outlined.mc-button--inverse.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--ghost.mc-button--standard.svelte-h1mguv {color:var(--button-color-ghost-standard-font, #242938);background-color:var(--button-color-ghost-standard-background, rgba(255, 255, 255, 0.01));}.mc-button--ghost.mc-button--standard.svelte-h1mguv:hover {background-color:var(--button-color-ghost-standard-hover-background, rgba(70, 78, 99, 0.1));}.mc-button--ghost.mc-button--standard.svelte-h1mguv:active {background-color:var(--button-color-ghost-standard-active-background, rgba(70, 78, 99, 0.2));}.mc-button--ghost.mc-button--standard.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--ghost.mc-button--accent.svelte-h1mguv {color:var(--button-color-ghost-accent-font, #117f03);background-color:var(--button-color-ghost-accent-background, rgba(255, 255, 255, 0.01));}.mc-button--ghost.mc-button--accent.svelte-h1mguv:hover {background-color:var(--button-color-ghost-accent-hover-background, rgba(17, 127, 3, 0.1));}.mc-button--ghost.mc-button--accent.svelte-h1mguv:active {background-color:var(--button-color-ghost-accent-active-background, rgba(17, 127, 3, 0.2));}.mc-button--ghost.mc-button--accent.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--ghost.mc-button--danger.svelte-h1mguv {color:var(--button-color-ghost-danger-font, #c61112);background-color:var(--button-color-ghost-danger-background, rgba(255, 255, 255, 0.01));}.mc-button--ghost.mc-button--danger.svelte-h1mguv:hover {background-color:var(--button-color-ghost-danger-hover-background, rgba(198, 17, 18, 0.1));}.mc-button--ghost.mc-button--danger.svelte-h1mguv:active {background-color:var(--button-color-ghost-danger-active-background, rgba(198, 17, 18, 0.2));}.mc-button--ghost.mc-button--danger.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-button--ghost.mc-button--inverse.svelte-h1mguv {color:var(--button-color-ghost-inverse-font, #ffffff);background-color:var(--button-color-ghost-inverse-background, rgba(255, 255, 255, 0.01));}.mc-button--ghost.mc-button--inverse.svelte-h1mguv:hover {background-color:var(--button-color-ghost-inverse-hover-background, rgba(255, 255, 255, 0.1));}.mc-button--ghost.mc-button--inverse.svelte-h1mguv:active {background-color:var(--button-color-ghost-inverse-active-background, rgba(255, 255, 255, 0.2));}.mc-button--ghost.mc-button--inverse.svelte-h1mguv:disabled {background-color:var(--button-state-disabled-background, #d9d9d9);border-color:transparent;color:var(--button-state-disabled-color, #737373);cursor:not-allowed;}.mc-linear-progressbar-buffer.svelte-h1mguv {--progress-value: 40;background-color:var(--progressbar-color-background, #c9d0de);height:0.25rem;position:relative;min-width:6rem;border-radius:var(--radius-l, 1rem);}.mc-linear-progressbar-buffer__indicator.svelte-h1mguv {background-color:var(--progressbar-color-indicator, #464e63);height:100%;transition:width 0.4s ease;overflow:hidden;border-radius:var(--radius-l, 1rem);box-sizing:border-box;width:calc(var(--progress-value) * 1%);}.mc-linear-progressbar-buffer--s.svelte-h1mguv {height:0.125rem;}.mc-linear-progressbar-buffer--l.svelte-h1mguv {height:0.5rem;}
4
4
 
@@ -6,5 +6,5 @@ import{c as y,p as z,b as a,q as D,t as w,h,i as N,j as n,e as C,u as E,n as et,
6
6
  /* create columns */
7
7
  /* create custom named columns with custom content */.mc-toaster.svelte-h1mguv {border-radius:var(--radius-m, 0.5rem);display:flex;flex-flow:row wrap;align-items:flex-start;background:var(--toaster-color-background-information, #002a41);min-height:3.5rem;min-width:18rem;position:absolute;top:1.5rem;right:1.5rem;margin-left:1.5rem;box-sizing:border-box;color:var(--toaster-color-text, #ffffff);z-index:var(--toaster-z-index, 4);opacity:0;visibility:hidden;transform:translateX(25%);transition:visibility 0s linear 0.4s, transform 0.4s ease-in-out, opacity 0.4s ease-in-out;}.mc-toaster.is-open.svelte-h1mguv {opacity:1;visibility:visible;transform:translateX(0);}.mc-toaster__icon.svelte-h1mguv {width:2rem;height:2rem;margin:0.75rem;fill:var(--toaster-color-icon-information, #3facd7);}.mc-toaster__content.svelte-h1mguv {flex:1 1 0;flex-direction:column;align-self:stretch;display:flex;align-items:flex-start;gap:1rem;padding:0.75rem 1rem 0.75rem 0;}
8
8
  @media (width >= 680px) {.mc-toaster__content.svelte-h1mguv {flex-direction:row;align-items:center;}
9
- }.mc-toaster__message.svelte-h1mguv {flex:1 1 0;margin:0;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);}.mc-toaster--information.svelte-h1mguv {background:var(--toaster-color-background-information, #002a41);}.mc-toaster--information.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-information, #3facd7);}.mc-toaster--information.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-information, #3facd7);}.mc-toaster--success.svelte-h1mguv {background:var(--toaster-color-background-success, #023618);}.mc-toaster--success.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-success, #78be20);}.mc-toaster--success.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-success, #78be20);}.mc-toaster--warning.svelte-h1mguv {background:var(--toaster-color-background-warning, #360e00);}.mc-toaster--warning.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-warning, #ef934a);}.mc-toaster--warning.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-warning, #ef934a);}.mc-toaster--error.svelte-h1mguv {background:var(--toaster-color-background-error, #2d0000);}.mc-toaster--error.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-error, #ef5f5c);}.mc-toaster--error.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-error, #ef5f5c);}.mc-toaster--bottom.svelte-h1mguv {top:inherit;bottom:1.5rem;right:1.5rem;}.mc-toaster--top-center.svelte-h1mguv {top:1.5rem;right:50%;transform:translateX(50%) !important;}.mc-toaster--bottom-center.svelte-h1mguv {top:inherit;bottom:1.5rem;right:50%;transform:translateX(50%) !important;}.mc-toaster__indicator.svelte-h1mguv {width:100%;margin:0.5rem;--progressbar-color-indicator: var(--toaster-color-icon-information, #3facd7);--progressbar-color-background: var(--color-background-primary, #ffffff);}.mc-toaster__close.svelte-h1mguv {margin:0.25rem;}.mc-toaster__action.svelte-h1mguv:empty {display:none;}`};function pt(b,o){z(o,!0),rt(b,kt);let c=a(o,"open",7),s=a(o,"position",7,"top"),d=a(o,"description",7),l=a(o,"status",7,"info"),u=a(o,"closable",7,!0),v=a(o,"progress",7),e=a(o,"timeout",7);const t=[{status:"info",component:H},{status:"success",component:O},{status:"warning",component:J},{status:"error",component:K}];function P(r){return t.find(i=>i.status===r)||t[0]}let Q=V(at(P(l()))),k=V(0),M=null,B=null;const F=()=>{c(!1);const r=new CustomEvent("update:open",{detail:c(),bubbles:!0,composed:!0});this.dispatchEvent(r)};ct(()=>{if(e())if(v()){const p=100/(e()/100);M=setInterval(()=>{W(k,x(k)+p),x(k)>=100&&(W(k,100),clearInterval(M),F())},100)}else B=setTimeout(()=>{F()},e())}),lt(()=>{M&&clearInterval(M),B&&clearTimeout(B)});var R={get open(){return c()},set open(r){c(r),n()},get position(){return s()},set position(r="top"){s(r),n()},get description(){return d()},set description(r){d(r),n()},get status(){return l()},set status(r="info"){l(r),n()},get closable(){return u()},set closable(r=!0){u(r),n()},get progress(){return v()},set progress(r){v(r),n()},get timeout(){return e()},set timeout(r){e(r),n()}},_=ht(),L=g(_),U=g(L);dt(U,()=>x(Q).component,(r,i)=>{i(r,{})}),f(L);var X=S(L,2),T=g(X),Y=g(T,!0);f(T);var A=S(T,2),Z=g(A);st(Z,o,"action",{}),f(A),f(X);var q=S(X,2);{var $=r=>{var i=gt();i.__click=F;var p=g(i);ut(p,{class:"mc-button__icon",slot:"icon","aria-hidden":"true"}),f(i),h(r,i)};G(q,r=>{u()&&r($)})}var tt=S(q,2);{var ot=r=>{var i=ft(),p=g(i);f(i),w(()=>{I(p,`--progress-value: ${x(k)};`),m(p,"aria-valuenow",x(k))}),h(r,i)};G(tt,r=>{v()&&r(ot)})}return f(_),w(()=>{C(_,1,E(["mc-toaster",c()&&"is-open",`mc-toaster--${l()}`,`mc-toaster--${s()}`]),"svelte-h1mguv"),m(_,"aria-hidden",!c()),nt(Y,d())}),h(b,_),N(R)}et(["click"]);customElements.define("m-toaster",y(pt,{open:{},position:{},description:{},status:{},closable:{},progress:{},timeout:{}},["action"],[],!0));
9
+ }.mc-toaster__message.svelte-h1mguv {flex:1 1 0;margin:0;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);}.mc-toaster--information.svelte-h1mguv {background:var(--toaster-color-background-information, #002a41);}.mc-toaster--information.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-information, #3facd7);}.mc-toaster--information.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-information, #3facd7);}.mc-toaster--success.svelte-h1mguv {background:var(--toaster-color-background-success, #023618);}.mc-toaster--success.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-success, #78be20);}.mc-toaster--success.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-success, #78be20);}.mc-toaster--warning.svelte-h1mguv {background:var(--toaster-color-background-warning, #360e00);}.mc-toaster--warning.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-warning, #ef934a);}.mc-toaster--warning.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-warning, #ef934a);}.mc-toaster--error.svelte-h1mguv {background:var(--toaster-color-background-error, #2d0000);}.mc-toaster--error.svelte-h1mguv .mc-toaster__icon:where(.svelte-h1mguv) {fill:var(--toaster-color-icon-error, #ef5f5c);}.mc-toaster--error.svelte-h1mguv .mc-toaster__indicator:where(.svelte-h1mguv) {--progressbar-color-indicator: var(--toaster-color-icon-error, #ef5f5c);}.mc-toaster--bottom.svelte-h1mguv {top:inherit;bottom:1.5rem;right:1.5rem;}.mc-toaster--top-center.svelte-h1mguv {top:1.5rem;right:50%;transform:translateX(50%) !important;}.mc-toaster--bottom-center.svelte-h1mguv {top:inherit;bottom:1.5rem;right:50%;transform:translateX(50%) !important;}.mc-toaster__indicator.svelte-h1mguv {width:100%;margin:0.5rem;--progressbar-color-indicator: var(--toaster-color-icon-information, #3facd7);--progressbar-color-background: var(--color-background-primary, #ffffff);}.mc-toaster__close.svelte-h1mguv {margin:0.25rem;}.mc-toaster__action.svelte-h1mguv:empty {display:none;}`};function yo(e,t){oo(t,!0),to(e,xo);let l=a(t,"open",7),p=a(t,"position",7,"top"),_=a(t,"description",7),m=a(t,"status",7,"info"),w=a(t,"closable",7,!0),g=a(t,"progress",7),b=a(t,"timeout",7),x;const X=[{status:"info",component:uo},{status:"success",component:io},{status:"warning",component:bo},{status:"error",component:vo}];function H(o){return X.find(r=>r.status===o)||X[0]}let J=M(ro(H(m()))),u=M(0),h=null,y=null;const C=()=>{l(!1);const o=new CustomEvent("update:open",{detail:l(),bubbles:!0,composed:!0});x.dispatchEvent(o)};G(()=>{if(b())if(g()){const i=100/(b()/100);h=setInterval(()=>{W(u,v(u)+i),v(u)>=100&&(W(u,100),clearInterval(h),C())},100)}else y=setTimeout(()=>{C()},b())}),fo(()=>{h&&clearInterval(h),y&&clearTimeout(y)});var K={get open(){return l()},set open(o){l(o),n()},get position(){return p()},set position(o="top"){p(o),n()},get description(){return _()},set description(o){_(o),n()},get status(){return m()},set status(o="info"){m(o),n()},get closable(){return w()},set closable(o=!0){w(o),n()},get progress(){return g()},set progress(o){g(o),n()},get timeout(){return b()},set timeout(o){b(o),n()}},d=wo(),z=c(d),L=c(z);lo(L,()=>v(J).component,(o,r)=>{r(o,{})}),s(z);var I=f(z,2),D=c(I),N=c(D,!0);s(D);var T=f(D,2),O=c(T);so(O,t,"action",{}),s(T),s(I);var j=f(I,2);{var P=o=>{var r=po();r.__click=C;var i=c(r);mo(i,{class:"mc-button__icon",slot:"icon","aria-hidden":"true"}),s(r),E(o,r)};q(j,o=>{w()&&o(P)})}var Q=f(j,2);{var R=o=>{var r=_o(),i=c(r);s(r),S(()=>{go(i,`--progress-value: ${v(u)};`),V(i,"aria-valuenow",v(u))}),E(o,r)};q(Q,o=>{g()&&o(R)})}return s(d),ho(d,o=>x=o,()=>x),S(()=>{ao(d,1,no(["mc-toaster",l()&&"is-open",`mc-toaster--${m()}`,`mc-toaster--${p()}`]),"svelte-h1mguv"),V(d,"aria-hidden",!l()),co(N,_())}),E(e,d),eo(K)}Z(["click"]);customElements.define("m-toaster",$(yo,{open:{},position:{},description:{},status:{},closable:{},progress:{},timeout:{}},["action"],[],!0));
10
10
  //# sourceMappingURL=Toaster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.js","sources":["../../../node_modules/@mozaic-ds/icons-svelte/dist/components/InfoCircleFilled32/InfoCircleFilled32.svelte","../../../node_modules/@mozaic-ds/icons-svelte/dist/components/WarningCircleFilled32/WarningCircleFilled32.svelte","../../../node_modules/@mozaic-ds/icons-svelte/dist/components/CrossCircleFilled32/CrossCircleFilled32.svelte","../../../node_modules/@mozaic-ds/icons-svelte/dist/components/CheckCircleFilled32/CheckCircleFilled32.svelte","../../../src/components/toaster/Toaster.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'info-circle-filled-32', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"2rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32px\" height=\"32px\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m0 9a1.333 1.333 0 1 0 0-2.667A1.333 1.333 0 0 0 16 12m1 2.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0z\"/></svg>","<svelte:options customElement={{ tag: 'warning-circle-filled-32', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"2rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32px\" height=\"32px\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m1 7.667a1 1 0 1 0-2 0v6.666a1 1 0 1 0 2 0zm-1 12A1.333 1.333 0 1 0 16 20a1.333 1.333 0 0 0 0 2.667\"/></svg>","<svelte:options customElement={{ tag: 'cross-circle-filled-32', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"2rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32px\" height=\"32px\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m-4.707 8.293a1 1 0 0 1 1.414 0L16 14.586l3.293-3.293a1 1 0 0 1 1.414 1.414L17.414 16l3.293 3.293a1 1 0 0 1-1.414 1.414L16 17.414l-3.293 3.293a1 1 0 0 1-1.414-1.414L14.586 16l-3.293-3.293a1 1 0 0 1 0-1.414\"/></svg>","<svelte:options customElement={{ tag: 'check-circle-filled-32', shadow: 'none' }} />\n<script>\n export let id = undefined;\n export let style = undefined;\n export let className = undefined;\n export let fill = undefined;\n export let size = \"2rem\";\n</script>\n\n<svg aria-hidden=\"true\" id={id} style={style} class={className} fill={fill} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\" width=\"32px\" height=\"32px\"><path fill-rule=\"evenodd\" d=\"M16 3C8.82 3 3 8.82 3 16s5.82 13 13 13 13-5.82 13-13S23.18 3 16 3m6.707 8.96a1 1 0 0 1 0 1.414l-7.333 7.333a1 1 0 0 1-1.414 0l-4-4a1 1 0 1 1 1.414-1.414l3.293 3.293 6.626-6.626a1 1 0 0 1 1.414 0\"/></svg>","<svelte:options customElement={{ tag: 'm-toaster' }} />\n\n<script lang=\"ts\">\n import { onMount, onDestroy } from 'svelte';\n import InfoCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/InfoCircleFilled32/InfoCircleFilled32.svelte';\n import WarningCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/WarningCircleFilled32/WarningCircleFilled32.svelte';\n import CrossCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/CrossCircleFilled32/CrossCircleFilled32.svelte';\n import CheckCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/CheckCircleFilled32/CheckCircleFilled32.svelte';\n import Cross20 from '@mozaic-ds/icons-svelte/svelte/Cross20/Cross20.svelte';\n /**\n * A toaster is a temporary notification that appears briefly on the screen to provide feedback or updates without interrupting the user’s workflow. It is commonly used for success messages, warnings, errors, or informational updates. Toasters can disappear automatically after a few seconds, be dismissed manually via a close button, or be removed when the user performs a relevant action. They typically include an icon, a short message, and an optional close button for better usability.\n */\n interface Props {\n /**\n * If `true`, display the Toaster.\n */\n open?: boolean;\n /**\n * Position of the toaster.\n */\n position?: 'top' | 'bottom' | 'top-center' | 'bottom-center';\n /**\n * Description of the toaster.\n */\n description: string;\n /**\n * Allows to define the toaster style.\n */\n status?: 'info' | 'success' | 'warning' | 'error';\n /**\n * If `true`, display the close button.\n */\n closable?: boolean;\n /**\n * If `true`, display the progress bar of the duration.\n */\n progress?: boolean;\n /**\n * Duration of the toaster\n */\n timeout?: number;\n }\n\n let {\n open,\n position = 'top',\n description,\n status = 'info',\n closable = true,\n progress,\n timeout,\n }: Props = $props();\n\n const iconMap = [\n { status: 'info', component: InfoCircleFilled32 },\n { status: 'success', component: CheckCircleFilled32 },\n { status: 'warning', component: WarningCircleFilled32 },\n { status: 'error', component: CrossCircleFilled32 },\n ];\n\n function getSelected(status: string) {\n return iconMap.find((icon) => icon.status === status) || iconMap[0];\n }\n\n let selected = $state(getSelected(status));\n\n let progressValue = $state(0);\n let intervalId: ReturnType<typeof setInterval> | null = null;\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const onClose = () => {\n open = false;\n\n const event = new CustomEvent('update:open', {\n detail: open,\n bubbles: true,\n composed: true,\n });\n // @ts-ignore: `this` is the custom element instance\n this.dispatchEvent(event);\n };\n\n onMount(() => {\n if (timeout) {\n if (progress) {\n const intervalDuration = 100;\n const steps = timeout / intervalDuration;\n const increment = 100 / steps;\n\n intervalId = setInterval(() => {\n progressValue += increment;\n if (progressValue >= 100) {\n progressValue = 100;\n clearInterval(intervalId!);\n onClose();\n }\n }, intervalDuration);\n } else {\n timeoutId = setTimeout(() => {\n onClose();\n }, timeout);\n }\n }\n });\n\n onDestroy(() => {\n if (intervalId) clearInterval(intervalId);\n if (timeoutId) clearTimeout(timeoutId);\n });\n</script>\n\n<section \n class={[\"mc-toaster\", open && 'is-open', `mc-toaster--${status}`, `mc-toaster--${position}`]} \n role=\"status\"\n tabindex=\"-1\"\n aria-hidden={!open}\n>\n <span class=\"mc-toaster__icon\" aria-hidden=\"true\">\n <selected.component/>\n </span>\n\n <div class=\"mc-toaster__content\">\n <p class=\"mc-toaster__message\">{description}</p>\n\n <div class=\"mc-toaster__action\">\n <slot name=\"action\" />\n </div>\n </div>\n\n {#if closable}\n <button class=\"mc-toaster__close mc-button mc-button--icon-button mc-button--inverse mc-button--s mc-button--ghost\" \n type=\"button\" \n aria-label=\"Close\"\n onclick={onClose}\n >\n <Cross20 class=\"mc-button__icon\" slot=\"icon\" aria-hidden=\"true\" />\n </button>\n {/if}\n\n {#if progress}\n <div\n class=\"mc-toaster__indicator mc-linear-progressbar-buffer mc-linear-progressbar-buffer--m\"\n >\n <div\n class=\"mc-linear-progressbar-buffer__indicator\"\n role=\"progressbar\"\n style={`--progress-value: ${progressValue};`}\n aria-valuenow={progressValue}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n </div>\n {/if}\n</section>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/button';\n @use '@mozaic-ds/styles/components/linear-progressbar-buffer';\n @use '@mozaic-ds/styles/components/toaster';\n\n .mc-toaster__action:empty {\n display: none;\n }\n</style>\n"],"names":["id","style","className","fill","size","open","$.prop","$$props","position","description","status","closable","progress","timeout","iconMap","InfoCircleFilled32","CheckCircleFilled32","WarningCircleFilled32","CrossCircleFilled32","getSelected","icon","selected","$.state","$.proxy","progressValue","intervalId","timeoutId","onClose","event","onMount","increment","$.get","$.set","onDestroy","$$render","consequent","consequent_1"],"mappings":"svBAAA,SAEa,IAAAA,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,MAAM,iRAGEJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,kcCPA,SAEa,IAAAH,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,MAAM,iRAGEJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,+iBCPA,SAEa,IAAAH,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,MAAM,iRAGEJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,ieCPA,SAEa,IAAAH,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,MAAM,iRAGEJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E;;;;;;;;6uECPA,sBA4CIE,EAAIC,EAAAC,EAAA,OAAA,CAAA,EACJC,mBAAW,KAAK,EAChBC,EAAWH,EAAAC,EAAA,cAAA,CAAA,EACXG,iBAAS,MAAM,EACfC,mBAAW,EAAI,EACfC,EAAQN,EAAAC,EAAA,WAAA,CAAA,EACRM,EAAOP,EAAAC,EAAA,UAAA,CAAA,QAGHO,EAAO,CACT,CAAA,OAAQ,OAAQ,UAAWC,CAAkB,EAC7C,CAAA,OAAQ,UAAW,UAAWC,CAAmB,EACjD,CAAA,OAAQ,UAAW,UAAWC,CAAqB,EACnD,CAAA,OAAQ,QAAS,UAAWC,CAAmB,YAG1CC,EAAYT,EAAgB,CAC5B,OAAAI,EAAQ,KAAMM,GAASA,EAAK,SAAWV,CAAM,GAAKI,EAAQ,CAAC,CACpE,KAEIO,EAAQC,EAAAC,GAAUJ,EAAYT,EAAM,CAAA,CAAA,CAAA,EAEpCc,IAAuB,CAAC,EACxBC,EAAoD,KACpDC,EAAkD,KAEhD,MAAAC,EAAO,IAAS,CACpBtB,EAAO,EAAK,EAEN,MAAAuB,EAAK,IAAO,YAAY,eAC5B,OAAQvB,EAAI,EACZ,QAAS,GACT,SAAU,EAAI,CAAA,EAGhB,KAAK,cAAcuB,CAAK,CAC1B,EAEAC,GAAO,IAAO,CACR,GAAAhB,EAAO,EACL,GAAAD,EAAQ,EAAE,OAGNkB,EAAY,KADJjB,EAAO,EAAG,KAGxBY,EAAa,YAAkB,IAAA,GAC7BD,EAAaO,EAAbP,CAAa,EAAIM,CAAS,IACtBN,CAAa,GAAI,MACnBQ,EAAAR,EAAgB,GAAG,EACnB,cAAcC,CAAU,EACxBE,EAAO,EAEX,EAAG,IACL,MACED,EAAY,WAAiB,IAAA,CAC3BC,EAAO,CACT,EAAGd,EAAO,EAGhB,CAAC,EAEDoB,GAAS,IAAO,CACVR,GAAY,cAAcA,CAAU,EACpCC,GAAW,aAAaA,CAAS,CACvC,CAAC,gGA/DY,MAAK,4GAEP,OAAM,qDACJ,GAAI,0TAqFJC,mGAJRhB,EAAQ,GAAAuB,EAAAC,CAAA,uFAiBqBX,CAAa,CAAA,GAAA,wBAC1BA,CAAa,CAAA,qBAR7BZ,EAAQ,GAAAsB,EAAAE,EAAA,gCA3BL,aAAc/B,EAAI,GAAI,yBAA0BK,EAAM,CAAA,kBAAmBF,GAAQ,yCAG3EH,EAAI,CAAA,OAOgBI,GAAW,eAb/C","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"Toaster.js","sources":["../../../node_modules/svelte/src/internal/shared/errors.js","../../../node_modules/svelte/src/index-client.js","../../../src/components/toaster/Toaster.svelte"],"sourcesContent":["/* This file is generated by scripts/process-messages/index.js. Do not edit! */\n\nimport { DEV } from 'esm-env';\n\n/**\n * Cannot use `{@render children(...)}` if the parent component uses `let:` directives. Consider using a named snippet instead\n * @returns {never}\n */\nexport function invalid_default_snippet() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_default_snippet\\nCannot use \\`{@render children(...)}\\` if the parent component uses \\`let:\\` directives. Consider using a named snippet instead\\nhttps://svelte.dev/e/invalid_default_snippet`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invalid_default_snippet`);\n\t}\n}\n\n/**\n * A snippet function was passed invalid arguments. Snippets should only be instantiated via `{@render ...}`\n * @returns {never}\n */\nexport function invalid_snippet_arguments() {\n\tif (DEV) {\n\t\tconst error = new Error(`invalid_snippet_arguments\\nA snippet function was passed invalid arguments. Snippets should only be instantiated via \\`{@render ...}\\`\\nhttps://svelte.dev/e/invalid_snippet_arguments`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/invalid_snippet_arguments`);\n\t}\n}\n\n/**\n * `%name%(...)` can only be used during component initialisation\n * @param {string} name\n * @returns {never}\n */\nexport function lifecycle_outside_component(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`lifecycle_outside_component\\n\\`${name}(...)\\` can only be used during component initialisation\\nhttps://svelte.dev/e/lifecycle_outside_component`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/lifecycle_outside_component`);\n\t}\n}\n\n/**\n * Attempted to render a snippet without a `{@render}` block. This would cause the snippet code to be stringified instead of its content being rendered to the DOM. To fix this, change `{snippet}` to `{@render snippet()}`.\n * @returns {never}\n */\nexport function snippet_without_render_tag() {\n\tif (DEV) {\n\t\tconst error = new Error(`snippet_without_render_tag\\nAttempted to render a snippet without a \\`{@render}\\` block. This would cause the snippet code to be stringified instead of its content being rendered to the DOM. To fix this, change \\`{snippet}\\` to \\`{@render snippet()}\\`.\\nhttps://svelte.dev/e/snippet_without_render_tag`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/snippet_without_render_tag`);\n\t}\n}\n\n/**\n * `%name%` is not a store with a `subscribe` method\n * @param {string} name\n * @returns {never}\n */\nexport function store_invalid_shape(name) {\n\tif (DEV) {\n\t\tconst error = new Error(`store_invalid_shape\\n\\`${name}\\` is not a store with a \\`subscribe\\` method\\nhttps://svelte.dev/e/store_invalid_shape`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/store_invalid_shape`);\n\t}\n}\n\n/**\n * The `this` prop on `<svelte:element>` must be a string, if defined\n * @returns {never}\n */\nexport function svelte_element_invalid_this_value() {\n\tif (DEV) {\n\t\tconst error = new Error(`svelte_element_invalid_this_value\\nThe \\`this\\` prop on \\`<svelte:element>\\` must be a string, if defined\\nhttps://svelte.dev/e/svelte_element_invalid_this_value`);\n\n\t\terror.name = 'Svelte error';\n\n\t\tthrow error;\n\t} else {\n\t\tthrow new Error(`https://svelte.dev/e/svelte_element_invalid_this_value`);\n\t}\n}","/** @import { ComponentContext, ComponentContextLegacy } from '#client' */\n/** @import { EventDispatcher } from './index.js' */\n/** @import { NotFunction } from './internal/types.js' */\nimport { active_reaction, untrack } from './internal/client/runtime.js';\nimport { is_array } from './internal/shared/utils.js';\nimport { user_effect } from './internal/client/index.js';\nimport * as e from './internal/client/errors.js';\nimport { legacy_mode_flag } from './internal/flags/index.js';\nimport { component_context } from './internal/client/context.js';\nimport { DEV } from 'esm-env';\n\nif (DEV) {\n\t/**\n\t * @param {string} rune\n\t */\n\tfunction throw_rune_error(rune) {\n\t\tif (!(rune in globalThis)) {\n\t\t\t// TODO if people start adjusting the \"this can contain runes\" config through v-p-s more, adjust this message\n\t\t\t/** @type {any} */\n\t\t\tlet value; // let's hope noone modifies this global, but belts and braces\n\t\t\tObject.defineProperty(globalThis, rune, {\n\t\t\t\tconfigurable: true,\n\t\t\t\t// eslint-disable-next-line getter-return\n\t\t\t\tget: () => {\n\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\n\t\t\t\t\te.rune_outside_svelte(rune);\n\t\t\t\t},\n\t\t\t\tset: (v) => {\n\t\t\t\t\tvalue = v;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tthrow_rune_error('$state');\n\tthrow_rune_error('$effect');\n\tthrow_rune_error('$derived');\n\tthrow_rune_error('$inspect');\n\tthrow_rune_error('$props');\n\tthrow_rune_error('$bindable');\n}\n\n/**\n * Returns an [`AbortSignal`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) that aborts when the current [derived](https://svelte.dev/docs/svelte/$derived) or [effect](https://svelte.dev/docs/svelte/$effect) re-runs or is destroyed.\n *\n * Must be called while a derived or effect is running.\n *\n * ```svelte\n * <script>\n * \timport { getAbortSignal } from 'svelte';\n *\n * \tlet { id } = $props();\n *\n * \tasync function getData(id) {\n * \t\tconst response = await fetch(`/items/${id}`, {\n * \t\t\tsignal: getAbortSignal()\n * \t\t});\n *\n * \t\treturn await response.json();\n * \t}\n *\n * \tconst data = $derived(await getData(id));\n * </script>\n * ```\n */\nexport function getAbortSignal() {\n\tif (active_reaction === null) {\n\t\te.get_abort_signal_outside_reaction();\n\t}\n\n\treturn (active_reaction.ac ??= new AbortController()).signal;\n}\n\n/**\n * `onMount`, like [`$effect`](https://svelte.dev/docs/svelte/$effect), schedules a function to run as soon as the component has been mounted to the DOM.\n * Unlike `$effect`, the provided function only runs once.\n *\n * It must be called during the component's initialisation (but doesn't need to live _inside_ the component;\n * it can be called from an external module). If a function is returned _synchronously_ from `onMount`,\n * it will be called when the component is unmounted.\n *\n * `onMount` functions do not run during [server-side rendering](https://svelte.dev/docs/svelte/svelte-server#render).\n *\n * @template T\n * @param {() => NotFunction<T> | Promise<NotFunction<T>> | (() => any)} fn\n * @returns {void}\n */\nexport function onMount(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('onMount');\n\t}\n\n\tif (legacy_mode_flag && component_context.l !== null) {\n\t\tinit_update_callbacks(component_context).m.push(fn);\n\t} else {\n\t\tuser_effect(() => {\n\t\t\tconst cleanup = untrack(fn);\n\t\t\tif (typeof cleanup === 'function') return /** @type {() => void} */ (cleanup);\n\t\t});\n\t}\n}\n\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * @param {() => any} fn\n * @returns {void}\n */\nexport function onDestroy(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('onDestroy');\n\t}\n\n\tonMount(() => () => untrack(fn));\n}\n\n/**\n * @template [T=any]\n * @param {string} type\n * @param {T} [detail]\n * @param {any}params_0\n * @returns {CustomEvent<T>}\n */\nfunction create_custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n\treturn new CustomEvent(type, { detail, bubbles, cancelable });\n}\n\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](https://svelte.dev/docs/svelte/legacy-on#Component-events).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * The event dispatcher can be typed to narrow the allowed event names and the type of the `detail` argument:\n * ```ts\n * const dispatch = createEventDispatcher<{\n * loaded: null; // does not take a detail argument\n * change: string; // takes a detail argument of type string, which is required\n * optional: number | null; // takes an optional detail argument of type number\n * }>();\n * ```\n *\n * @deprecated Use callback props and/or the `$host()` rune instead — see [migration guide](https://svelte.dev/docs/svelte/v5-migration-guide#Event-changes-Component-events)\n * @template {Record<string, any>} [EventMap = any]\n * @returns {EventDispatcher<EventMap>}\n */\nexport function createEventDispatcher() {\n\tconst active_component_context = component_context;\n\tif (active_component_context === null) {\n\t\te.lifecycle_outside_component('createEventDispatcher');\n\t}\n\n\t/**\n\t * @param [detail]\n\t * @param [options]\n\t */\n\treturn (type, detail, options) => {\n\t\tconst events = /** @type {Record<string, Function | Function[]>} */ (\n\t\t\tactive_component_context.s.$$events\n\t\t)?.[/** @type {string} */ (type)];\n\n\t\tif (events) {\n\t\t\tconst callbacks = is_array(events) ? events.slice() : [events];\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = create_custom_event(/** @type {string} */ (type), detail, options);\n\t\t\tfor (const fn of callbacks) {\n\t\t\t\tfn.call(active_component_context.x, event);\n\t\t\t}\n\t\t\treturn !event.defaultPrevented;\n\t\t}\n\n\t\treturn true;\n\t};\n}\n\n// TODO mark beforeUpdate and afterUpdate as deprecated in Svelte 6\n\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`.\n *\n * In runes mode use `$effect.pre` instead.\n *\n * @deprecated Use [`$effect.pre`](https://svelte.dev/docs/svelte/$effect#$effect.pre) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function beforeUpdate(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('beforeUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('beforeUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).b.push(fn);\n}\n\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`.\n *\n * In runes mode use `$effect` instead.\n *\n * @deprecated Use [`$effect`](https://svelte.dev/docs/svelte/$effect) instead\n * @param {() => void} fn\n * @returns {void}\n */\nexport function afterUpdate(fn) {\n\tif (component_context === null) {\n\t\te.lifecycle_outside_component('afterUpdate');\n\t}\n\n\tif (component_context.l === null) {\n\t\te.lifecycle_legacy_only('afterUpdate');\n\t}\n\n\tinit_update_callbacks(component_context).a.push(fn);\n}\n\n/**\n * Legacy-mode: Init callbacks object for onMount/beforeUpdate/afterUpdate\n * @param {ComponentContext} context\n */\nfunction init_update_callbacks(context) {\n\tvar l = /** @type {ComponentContextLegacy} */ (context).l;\n\treturn (l.u ??= { a: [], b: [], m: [] });\n}\n\nexport { flushSync } from './internal/client/reactivity/batch.js';\nexport { getContext, getAllContexts, hasContext, setContext } from './internal/client/context.js';\nexport { hydrate, mount, unmount } from './internal/client/render.js';\nexport { tick, untrack, settled } from './internal/client/runtime.js';\nexport { createRawSnippet } from './internal/client/dom/blocks/snippet.js';\n","<svelte:options customElement={{ tag: 'm-toaster' }} />\n\n<script lang=\"ts\">\n import { onMount, onDestroy } from 'svelte';\n import InfoCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/InfoCircleFilled32/InfoCircleFilled32.svelte';\n import WarningCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/WarningCircleFilled32/WarningCircleFilled32.svelte';\n import CrossCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/CrossCircleFilled32/CrossCircleFilled32.svelte';\n import CheckCircleFilled32 from '@mozaic-ds/icons-svelte/svelte/CheckCircleFilled32/CheckCircleFilled32.svelte';\n import Cross20 from '@mozaic-ds/icons-svelte/svelte/Cross20/Cross20.svelte';\n /**\n * A toaster is a temporary notification that appears briefly on the screen to provide feedback or updates without interrupting the user’s workflow. It is commonly used for success messages, warnings, errors, or informational updates. Toasters can disappear automatically after a few seconds, be dismissed manually via a close button, or be removed when the user performs a relevant action. They typically include an icon, a short message, and an optional close button for better usability.\n *\n * @slot action - Use this slot to insert a button or a link in the toaster\n * @event update:open {CustomEvent<boolean>} - Fired when the open state changes.\n */\n interface Props {\n /**\n * If `true`, display the Toaster.\n */\n open?: boolean;\n /**\n * Position of the toaster.\n */\n position?: 'top' | 'bottom' | 'top-center' | 'bottom-center';\n /**\n * Description of the toaster.\n */\n description: string;\n /**\n * Allows to define the toaster style.\n */\n status?: 'info' | 'success' | 'warning' | 'error';\n /**\n * If `true`, display the close button.\n */\n closable?: boolean;\n /**\n * If `true`, display the progress bar of the duration.\n */\n progress?: boolean;\n /**\n * Duration of the toaster\n */\n timeout?: number;\n }\n\n let {\n open,\n position = 'top',\n description,\n status = 'info',\n closable = true,\n progress,\n timeout,\n }: Props = $props();\n let element: HTMLElement;\n\n const iconMap = [\n { status: 'info', component: InfoCircleFilled32 },\n { status: 'success', component: CheckCircleFilled32 },\n { status: 'warning', component: WarningCircleFilled32 },\n { status: 'error', component: CrossCircleFilled32 },\n ];\n\n function getSelected(status: string) {\n return iconMap.find((icon) => icon.status === status) || iconMap[0];\n }\n\n let selected = $state(getSelected(status));\n\n let progressValue = $state(0);\n let intervalId: ReturnType<typeof setInterval> | null = null;\n let timeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const onClose = () => {\n open = false;\n\n const event = new CustomEvent('update:open', {\n detail: open,\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n };\n\n onMount(() => {\n if (timeout) {\n if (progress) {\n const intervalDuration = 100;\n const steps = timeout / intervalDuration;\n const increment = 100 / steps;\n\n intervalId = setInterval(() => {\n progressValue += increment;\n if (progressValue >= 100) {\n progressValue = 100;\n clearInterval(intervalId!);\n onClose();\n }\n }, intervalDuration);\n } else {\n timeoutId = setTimeout(() => {\n onClose();\n }, timeout);\n }\n }\n });\n\n onDestroy(() => {\n if (intervalId) clearInterval(intervalId);\n if (timeoutId) clearTimeout(timeoutId);\n });\n</script>\n\n<section\n class={[\n 'mc-toaster',\n open && 'is-open',\n `mc-toaster--${status}`,\n `mc-toaster--${position}`,\n ]}\n role=\"status\"\n tabindex=\"-1\"\n aria-hidden={!open}\n bind:this={element}\n>\n <span class=\"mc-toaster__icon\" aria-hidden=\"true\">\n <selected.component />\n </span>\n\n <div class=\"mc-toaster__content\">\n <p class=\"mc-toaster__message\">{description}</p>\n\n <div class=\"mc-toaster__action\">\n <slot name=\"action\" />\n </div>\n </div>\n\n {#if closable}\n <button\n class=\"mc-toaster__close mc-button mc-button--icon-button mc-button--inverse mc-button--s mc-button--ghost\"\n type=\"button\"\n aria-label=\"Close\"\n onclick={onClose}\n >\n <Cross20 class=\"mc-button__icon\" slot=\"icon\" aria-hidden=\"true\" />\n </button>\n {/if}\n\n {#if progress}\n <div\n class=\"mc-toaster__indicator mc-linear-progressbar-buffer mc-linear-progressbar-buffer--m\"\n >\n <div\n class=\"mc-linear-progressbar-buffer__indicator\"\n role=\"progressbar\"\n style={`--progress-value: ${progressValue};`}\n aria-valuenow={progressValue}\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n ></div>\n </div>\n {/if}\n</section>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/button';\n @use '@mozaic-ds/styles/components/linear-progressbar-buffer';\n @use '@mozaic-ds/styles/components/toaster';\n\n .mc-toaster__action:empty {\n display: none;\n }\n</style>\n"],"names":["lifecycle_outside_component","name","onMount","fn","component_context","e.lifecycle_outside_component","legacy_mode_flag","init_update_callbacks","user_effect","cleanup","untrack","onDestroy","context","l","open","$.prop","$$props","position","description","status","closable","progress","timeout","element","iconMap","InfoCircleFilled32","CheckCircleFilled32","WarningCircleFilled32","CrossCircleFilled32","getSelected","icon","selected","$.state","$.proxy","progressValue","intervalId","timeoutId","onClose","event","increment","$.get","$.set","$$render","consequent","consequent_1","$.bind_this","section","$$value"],"mappings":"gdAyCO,SAASA,EAA4BC,EAAM,CAQhD,MAAM,IAAI,MAAM,kDAAkD,CAEpE,CCuCO,SAASC,EAAQC,EAAI,CACvBC,IAAsB,MACzBC,EAAuC,EAGpCC,GAAoBF,EAAkB,IAAM,KAC/CG,GAAsBH,CAAiB,EAAE,EAAE,KAAKD,CAAE,EAElDK,EAAY,IAAM,CACjB,MAAMC,EAAUC,EAAQP,CAAE,EAC1B,GAAI,OAAOM,GAAY,WAAY,OAAkCA,CACtE,CAAC,CAEH,CAWO,SAASE,GAAUR,EAAI,CACzBC,IAAsB,MACzBC,EAAyC,EAG1CH,EAAQ,IAAM,IAAMQ,EAAQP,CAAE,CAAC,CAChC,CAsHA,SAASI,GAAsBK,EAAS,CACvC,IAAIC,EAA2CD,EAAS,EACxD,OAAQC,EAAE,IAAFA,EAAE,EAAM,CAAE,EAAG,CAAA,EAAI,EAAG,CAAA,EAAI,EAAG,EAAE,EACtC;;;;;;;;6uECjPA,uBA+CIC,EAAIC,EAAAC,EAAA,OAAA,CAAA,EACJC,mBAAW,KAAK,EAChBC,EAAWH,EAAAC,EAAA,cAAA,CAAA,EACXG,iBAAS,MAAM,EACfC,mBAAW,EAAI,EACfC,EAAQN,EAAAC,EAAA,WAAA,CAAA,EACRM,EAAOP,EAAAC,EAAA,UAAA,CAAA,EAELO,QAEEC,EAAO,CACT,CAAA,OAAQ,OAAQ,UAAWC,EAAkB,EAC7C,CAAA,OAAQ,UAAW,UAAWC,EAAmB,EACjD,CAAA,OAAQ,UAAW,UAAWC,EAAqB,EACnD,CAAA,OAAQ,QAAS,UAAWC,EAAmB,YAG1CC,EAAYV,EAAgB,CAC5B,OAAAK,EAAQ,KAAMM,GAASA,EAAK,SAAWX,CAAM,GAAKK,EAAQ,CAAC,CACpE,KAEIO,EAAQC,EAAAC,GAAUJ,EAAYV,EAAM,CAAA,CAAA,CAAA,EAEpCe,IAAuB,CAAC,EACxBC,EAAoD,KACpDC,EAAkD,KAEhD,MAAAC,EAAO,IAAS,CACpBvB,EAAO,EAAK,EAEN,MAAAwB,EAAK,IAAO,YAAY,eAC5B,OAAQxB,EAAI,EACZ,QAAS,GACT,SAAU,EAAI,CAAA,EAEhBS,EAAQ,cAAce,CAAK,CAC7B,EAEApC,EAAO,IAAO,CACR,GAAAoB,EAAO,EACL,GAAAD,EAAQ,EAAE,OAGNkB,EAAY,KADJjB,EAAO,EAAG,KAGxBa,EAAa,YAAkB,IAAA,GAC7BD,EAAaM,EAAbN,CAAa,EAAIK,CAAS,IACtBL,CAAa,GAAI,MACnBO,EAAAP,EAAgB,GAAG,EACnB,cAAcC,CAAU,EACxBE,EAAO,EAEX,EAAG,IACL,MACED,EAAY,WAAiB,IAAA,CAC3BC,EAAO,CACT,EAAGf,EAAO,EAGhB,CAAC,EAEDX,GAAS,IAAO,CACVwB,GAAY,cAAcA,CAAU,EACpCC,GAAW,aAAaA,CAAS,CACvC,CAAC,gGA/DY,MAAK,4GAEP,OAAM,qDACJ,GAAI,0TA4FJC,mGALRjB,EAAQ,GAAAsB,EAAAC,CAAA,sFAkBqBT,CAAa,CAAA,GAAA,wBAC1BA,CAAa,CAAA,oBAR7Bb,EAAQ,GAAAqB,EAAAE,CAAA,gBAzBFC,GAAAC,EAAAC,GAAAxB,QAAAA,CAAO,oBARhB,aACAT,EAAI,GAAI,yBACOK,EAAM,CAAA,kBACNF,GAAQ,yCAIXH,EAAI,CAAA,OAQgBI,GAAW,gBAnB/C","x_google_ignoreList":[0,1]}
@@ -0,0 +1,100 @@
1
+ import { describe, it, expect, vi } from 'vitest';
2
+ import { render, fireEvent, waitFor } from '@testing-library/svelte';
3
+ import Toaster from './Toaster.svelte';
4
+ describe('m-toaster component', () => {
5
+ it('renders with description and proper classes', () => {
6
+ const { container } = render(Toaster, {
7
+ props: {
8
+ open: true,
9
+ description: 'This is a toaster message',
10
+ status: 'success',
11
+ position: 'top',
12
+ },
13
+ });
14
+ const toaster = container.querySelector('.mc-toaster');
15
+ expect(toaster).toBeTruthy();
16
+ expect(toaster.textContent).toContain('This is a toaster message');
17
+ expect(toaster.classList.contains('is-open')).toBe(true);
18
+ expect(toaster.classList.contains('mc-toaster--success')).toBe(true);
19
+ expect(toaster.classList.contains('mc-toaster--top')).toBe(true);
20
+ });
21
+ it('emits "update:open" when closed via close button', async () => {
22
+ const { container } = render(Toaster, {
23
+ props: {
24
+ open: true,
25
+ description: 'Closable toaster',
26
+ closable: true,
27
+ },
28
+ });
29
+ const toaster = container.querySelector('section');
30
+ const mockHandler = vi.fn();
31
+ toaster?.addEventListener('update:open', mockHandler);
32
+ const closeButton = container.querySelector('button');
33
+ expect(closeButton).toBeTruthy();
34
+ await fireEvent.click(closeButton);
35
+ expect(mockHandler).toHaveBeenCalledTimes(1);
36
+ expect(mockHandler.mock.calls[0][0].detail).toBe(false);
37
+ });
38
+ it('automatically closes after timeout', async () => {
39
+ vi.useFakeTimers();
40
+ const { container } = render(Toaster, {
41
+ props: {
42
+ open: true,
43
+ description: 'Timeout toaster',
44
+ timeout: 2000,
45
+ },
46
+ });
47
+ const toaster = container.querySelector('section');
48
+ const mockHandler = vi.fn();
49
+ toaster?.addEventListener('update:open', mockHandler);
50
+ vi.advanceTimersByTime(2000);
51
+ await waitFor(() => {
52
+ expect(mockHandler).toHaveBeenCalled();
53
+ expect(mockHandler.mock.calls[0][0].detail).toBe(false);
54
+ });
55
+ vi.useRealTimers();
56
+ });
57
+ it('shows progress bar when enabled', async () => {
58
+ vi.useFakeTimers();
59
+ const { container } = render(Toaster, {
60
+ props: {
61
+ open: true,
62
+ description: 'Progress toaster',
63
+ timeout: 3000,
64
+ progress: true,
65
+ },
66
+ });
67
+ const progressBar = container.querySelector('.mc-linear-progressbar-buffer__indicator');
68
+ expect(progressBar).toBeTruthy();
69
+ vi.advanceTimersByTime(1500);
70
+ await waitFor(() => {
71
+ const now = parseFloat(progressBar.getAttribute('aria-valuenow') || '0');
72
+ expect(now).toBeGreaterThan(0);
73
+ expect(now).toBeLessThanOrEqual(100);
74
+ });
75
+ vi.useRealTimers();
76
+ });
77
+ it('does not render close button when closable is false', () => {
78
+ const { container } = render(Toaster, {
79
+ props: {
80
+ open: true,
81
+ description: 'Non-closable toaster',
82
+ closable: false,
83
+ },
84
+ });
85
+ const closeButton = container.querySelector('button');
86
+ expect(closeButton).toBeNull();
87
+ });
88
+ it('does not show progress bar if progress is false', () => {
89
+ const { container } = render(Toaster, {
90
+ props: {
91
+ open: true,
92
+ description: 'No progress bar',
93
+ progress: false,
94
+ timeout: 3000,
95
+ },
96
+ });
97
+ const progressBar = container.querySelector('.mc-linear-progressbar-buffer');
98
+ expect(progressBar).toBeNull();
99
+ });
100
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.stories.d.ts","sourceRoot":"","sources":["../../../src/components/toaster/Toaster.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAMrE,QAAA,MAAM,IAAI,EAAE,IA4HX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,IAAI,EAAE,KAAU,CAAC;AAE9B,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;CAMtB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;CAQpB,CAAC"}
1
+ {"version":3,"file":"Toaster.stories.d.ts","sourceRoot":"","sources":["../../../src/components/toaster/Toaster.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAMrE,QAAA,MAAM,IAAI,EAAE,IAsDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,IAAI,EAAE,KAAU,CAAC;AAE9B,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;CAMtB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;CAQpB,CAAC"}