@mozaic-ds/web-components 1.0.0-beta.7 → 1.1.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 (491) hide show
  1. package/README.md +38 -70
  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 +25 -23
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +25 -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 +4 -32
  16. package/dist/components/avatar/Avatar.svelte +7 -5
  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 +7 -39
  25. package/dist/components/breadcrumb/Breadcrumb.svelte +12 -20
  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 +2 -5
  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 +12 -15
  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 +111 -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 +54 -49
  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 +20 -10
  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 +47 -33
  84. package/dist/components/datepicker/Datepicker.svelte.d.ts +31 -2
  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 +85 -87
  93. package/dist/components/drawer/Drawer.svelte +74 -38
  94. package/dist/components/drawer/Drawer.svelte.d.ts +34 -3
  95. package/dist/components/drawer/Drawer.svelte.d.ts.map +1 -1
  96. package/dist/components/drawer/README.md +31 -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 +98 -0
  100. package/dist/components/field/Field.stories.d.ts +10 -15
  101. package/dist/components/field/Field.stories.d.ts.map +1 -1
  102. package/dist/components/field/Field.stories.js +100 -141
  103. package/dist/components/field/Field.svelte +55 -13
  104. package/dist/components/field/Field.svelte.d.ts +42 -7
  105. package/dist/components/field/Field.svelte.d.ts.map +1 -1
  106. package/dist/components/field/README.md +25 -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 +22 -103
  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 +12 -7
  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 +73 -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 +26 -42
  162. package/dist/components/loader/Loader.svelte +37 -35
  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 +52 -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 +18 -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 +29 -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 +37 -34
  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 -28
  223. package/dist/components/passwordinput/PasswordInput.svelte.d.ts +33 -1
  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 -53
  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 +10 -15
  240. package/dist/components/quantityselector/QuantitySelector.stories.d.ts.map +1 -1
  241. package/dist/components/quantityselector/QuantitySelector.stories.js +72 -146
  242. package/dist/components/quantityselector/QuantitySelector.svelte +94 -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 +35 -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 +48 -47
  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/segmentedcontrol/README.md +19 -0
  267. package/dist/components/segmentedcontrol/SegmentedControl.js +4 -0
  268. package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -0
  269. package/dist/components/segmentedcontrol/SegmentedControl.spec.js +52 -0
  270. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts +8 -0
  271. package/dist/components/segmentedcontrol/SegmentedControl.stories.d.ts.map +1 -0
  272. package/dist/components/segmentedcontrol/SegmentedControl.stories.js +54 -0
  273. package/dist/components/segmentedcontrol/SegmentedControl.svelte +125 -0
  274. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts +32 -0
  275. package/dist/components/segmentedcontrol/SegmentedControl.svelte.d.ts.map +1 -0
  276. package/dist/components/select/README.md +18 -0
  277. package/dist/components/select/Select.js +2 -2
  278. package/dist/components/select/Select.js.map +1 -1
  279. package/dist/components/select/Select.spec.js +76 -0
  280. package/dist/components/select/Select.stories.d.ts +10 -14
  281. package/dist/components/select/Select.stories.d.ts.map +1 -1
  282. package/dist/components/select/Select.stories.js +87 -92
  283. package/dist/components/select/Select.svelte +57 -44
  284. package/dist/components/select/Select.svelte.d.ts +42 -11
  285. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  286. package/dist/components/statusbadge/README.md +11 -0
  287. package/dist/components/statusbadge/StatusBadge.js +2 -2
  288. package/dist/components/statusbadge/StatusBadge.js.map +1 -1
  289. package/dist/components/statusbadge/StatusBadge.spec.js +31 -0
  290. package/dist/components/statusbadge/StatusBadge.stories.d.ts +9 -12
  291. package/dist/components/statusbadge/StatusBadge.stories.d.ts.map +1 -1
  292. package/dist/components/statusbadge/StatusBadge.stories.js +21 -44
  293. package/dist/components/statusbadge/StatusBadge.svelte +14 -6
  294. package/dist/components/statusbadge/StatusBadge.svelte.d.ts +13 -28
  295. package/dist/components/statusbadge/StatusBadge.svelte.d.ts.map +1 -1
  296. package/dist/components/statusdot/README.md +11 -0
  297. package/dist/components/statusdot/StatusDot.js +2 -2
  298. package/dist/components/statusdot/StatusDot.js.map +1 -1
  299. package/dist/components/statusdot/StatusDot.spec.js +36 -0
  300. package/dist/components/statusdot/StatusDot.stories.d.ts.map +1 -1
  301. package/dist/components/statusdot/StatusDot.stories.js +9 -37
  302. package/dist/components/statusdot/StatusDot.svelte +5 -9
  303. package/dist/components/statusdot/StatusDot.svelte.d.ts +2 -2
  304. package/dist/components/statusdot/StatusDot.svelte.d.ts.map +1 -1
  305. package/dist/components/statusnotification/README.md +25 -0
  306. package/dist/components/statusnotification/StatusNotification.js +2 -6
  307. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  308. package/dist/components/statusnotification/StatusNotification.spec.js +54 -0
  309. package/dist/components/statusnotification/StatusNotification.stories.d.ts +16 -14
  310. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  311. package/dist/components/statusnotification/StatusNotification.stories.js +53 -86
  312. package/dist/components/statusnotification/StatusNotification.svelte +53 -64
  313. package/dist/components/statusnotification/StatusNotification.svelte.d.ts +21 -18
  314. package/dist/components/statusnotification/StatusNotification.svelte.d.ts.map +1 -1
  315. package/dist/components/tab/README.md +20 -0
  316. package/dist/components/tab/Tab.js +4 -0
  317. package/dist/components/tab/Tab.js.map +1 -0
  318. package/dist/components/tab/Tab.spec.js +58 -0
  319. package/dist/components/{tabs → tab}/Tab.svelte +44 -30
  320. package/dist/components/{tabs → tab}/Tab.svelte.d.ts +20 -3
  321. package/dist/components/tab/Tab.svelte.d.ts.map +1 -0
  322. package/dist/components/tabs/README.md +18 -0
  323. package/dist/components/tabs/Tabs.js +2 -2
  324. package/dist/components/tabs/Tabs.js.map +1 -1
  325. package/dist/components/tabs/Tabs.spec.js +51 -0
  326. package/dist/components/tabs/Tabs.stories.d.ts +9 -6
  327. package/dist/components/tabs/Tabs.stories.d.ts.map +1 -1
  328. package/dist/components/tabs/Tabs.stories.js +59 -115
  329. package/dist/components/tabs/Tabs.svelte +27 -7
  330. package/dist/components/tabs/Tabs.svelte.d.ts +21 -7
  331. package/dist/components/tabs/Tabs.svelte.d.ts.map +1 -1
  332. package/dist/components/tags/README.md +9 -0
  333. package/dist/components/tags/Tag.js +1 -1
  334. package/dist/components/tags/TagContextualised.js +2 -2
  335. package/dist/components/tags/TagContextualised.js.map +1 -1
  336. package/dist/components/tags/TagContextualised.svelte +1 -5
  337. package/dist/components/tags/TagInteractive.js +1 -1
  338. package/dist/components/tags/TagRemovable.js +2 -2
  339. package/dist/components/tags/TagRemovable.js.map +1 -1
  340. package/dist/components/tags/TagRemovable.svelte +2 -12
  341. package/dist/components/tags/TagRemovable.svelte.d.ts.map +1 -1
  342. package/dist/components/tags/TagSelectable.js +2 -2
  343. package/dist/components/tags/TagSelectable.js.map +1 -1
  344. package/dist/components/tags/TagSelectable.svelte +1 -5
  345. package/dist/components/tags/Tags.stories.d.ts.map +1 -1
  346. package/dist/components/tags/Tags.stories.js +7 -1
  347. package/dist/components/tags/TagsContextualised.stories.d.ts.map +1 -1
  348. package/dist/components/tags/TagsContextualised.stories.js +7 -1
  349. package/dist/components/tags/TagsInteractive.stories.d.ts.map +1 -1
  350. package/dist/components/tags/TagsInteractive.stories.js +7 -1
  351. package/dist/components/tags/TagsRemovable.stories.d.ts.map +1 -1
  352. package/dist/components/tags/TagsRemovable.stories.js +8 -4
  353. package/dist/components/tags/TagsSelectable.stories.d.ts.map +1 -1
  354. package/dist/components/tags/TagsSelectable.stories.js +7 -1
  355. package/dist/components/textarea/README.md +19 -0
  356. package/dist/components/textarea/Textarea.js +2 -5
  357. package/dist/components/textarea/Textarea.js.map +1 -1
  358. package/dist/components/textarea/Textarea.spec.js +67 -0
  359. package/dist/components/textarea/Textarea.stories.d.ts +9 -13
  360. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  361. package/dist/components/textarea/Textarea.stories.js +61 -92
  362. package/dist/components/textarea/Textarea.svelte +51 -97
  363. package/dist/components/textarea/Textarea.svelte.d.ts +43 -13
  364. package/dist/components/textarea/Textarea.svelte.d.ts.map +1 -1
  365. package/dist/components/textinput/README.md +26 -0
  366. package/dist/components/textinput/Textinput.js +2 -2
  367. package/dist/components/textinput/Textinput.js.map +1 -1
  368. package/dist/components/textinput/Textinput.spec.js +89 -0
  369. package/dist/components/textinput/Textinput.stories.d.ts +11 -12
  370. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  371. package/dist/components/textinput/Textinput.stories.js +78 -137
  372. package/dist/components/textinput/Textinput.svelte +68 -118
  373. package/dist/components/textinput/Textinput.svelte.d.ts +47 -23
  374. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  375. package/dist/components/toaster/README.md +29 -0
  376. package/dist/components/toaster/Toaster.js +3 -7
  377. package/dist/components/toaster/Toaster.js.map +1 -1
  378. package/dist/components/toaster/Toaster.spec.js +100 -0
  379. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  380. package/dist/components/toaster/Toaster.stories.js +5 -73
  381. package/dist/components/toaster/Toaster.svelte +21 -14
  382. package/dist/components/toaster/Toaster.svelte.d.ts +7 -0
  383. package/dist/components/toaster/Toaster.svelte.d.ts.map +1 -1
  384. package/dist/components/toggle/README.md +15 -0
  385. package/dist/components/toggle/Toggle.js +2 -2
  386. package/dist/components/toggle/Toggle.js.map +1 -1
  387. package/dist/components/toggle/Toggle.spec.js +69 -0
  388. package/dist/components/toggle/Toggle.stories.d.ts +9 -14
  389. package/dist/components/toggle/Toggle.stories.d.ts.map +1 -1
  390. package/dist/components/toggle/Toggle.stories.js +55 -64
  391. package/dist/components/toggle/Toggle.svelte +33 -33
  392. package/dist/components/toggle/Toggle.svelte.d.ts +26 -7
  393. package/dist/components/toggle/Toggle.svelte.d.ts.map +1 -1
  394. package/dist/components/togglegroup/README.md +13 -0
  395. package/dist/components/togglegroup/ToggleGroup.js +3 -3
  396. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  397. package/dist/components/togglegroup/ToggleGroup.spec.js +50 -0
  398. package/dist/components/togglegroup/ToggleGroup.stories.d.ts +5 -13
  399. package/dist/components/togglegroup/ToggleGroup.stories.d.ts.map +1 -1
  400. package/dist/components/togglegroup/ToggleGroup.stories.js +56 -104
  401. package/dist/components/togglegroup/ToggleGroup.svelte +55 -58
  402. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts +25 -14
  403. package/dist/components/togglegroup/ToggleGroup.svelte.d.ts.map +1 -1
  404. package/dist/components/tooltip/README.md +19 -0
  405. package/dist/components/tooltip/Tooltip.js +2 -2
  406. package/dist/components/tooltip/Tooltip.js.map +1 -1
  407. package/dist/components/tooltip/Tooltip.spec.js +38 -0
  408. package/dist/components/tooltip/Tooltip.stories.d.ts +6 -7
  409. package/dist/components/tooltip/Tooltip.stories.d.ts.map +1 -1
  410. package/dist/components/tooltip/Tooltip.stories.js +45 -59
  411. package/dist/components/tooltip/Tooltip.svelte +19 -14
  412. package/dist/components/tooltip/Tooltip.svelte.d.ts +17 -0
  413. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  414. package/dist/custom-element-forward-events.js.map +1 -1
  415. package/dist/custom-element.js +3 -3
  416. package/dist/custom-element.js.map +1 -1
  417. package/dist/documentation/Contributing.mdx +1 -1
  418. package/dist/documentation/Introduction.mdx +54 -11
  419. package/dist/documentation/SupportAndOnboarding.mdx +2 -2
  420. package/dist/documentation/Svelte/Introduction.mdx +1 -1
  421. package/dist/documentation/Svelte/usingPresets.mdx +5 -6
  422. package/dist/documentation/WebComponents/Introduction.mdx +0 -1
  423. package/dist/documentation/WebComponents/usingIcons.mdx +2 -3
  424. package/dist/documentation/WebComponents/usingPresets.mdx +3 -4
  425. package/dist/each.js +1 -1
  426. package/dist/each.js.map +1 -1
  427. package/dist/if.js +1 -1
  428. package/dist/if.js.map +1 -1
  429. package/dist/input.js +1 -1
  430. package/dist/input.js.map +1 -1
  431. package/dist/legacy.js +1 -1
  432. package/dist/main.d.ts +25 -23
  433. package/dist/main.d.ts.map +1 -1
  434. package/dist/main.js +25 -23
  435. package/dist/slot.js +1 -1
  436. package/dist/slot.js.map +1 -1
  437. package/dist/this.js +2 -0
  438. package/dist/this.js.map +1 -0
  439. package/dist/utils/custom-element-forward-events.d.ts.map +1 -1
  440. package/package.json +32 -22
  441. package/dist/components/button/button.types.d.ts +0 -13
  442. package/dist/components/button/button.types.d.ts.map +0 -1
  443. package/dist/components/button/button.types.js +0 -1
  444. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts +0 -9
  445. package/dist/components/checkboxgroup/checkboxgroup.types.d.ts.map +0 -1
  446. package/dist/components/checkboxgroup/checkboxgroup.types.js +0 -1
  447. package/dist/components/link/link.types.d.ts +0 -4
  448. package/dist/components/link/link.types.d.ts.map +0 -1
  449. package/dist/components/link/link.types.js +0 -1
  450. package/dist/components/loader/loader.types.d.ts +0 -3
  451. package/dist/components/loader/loader.types.d.ts.map +0 -1
  452. package/dist/components/loader/loader.types.js +0 -1
  453. package/dist/components/numberbadge/NumberBadge.types.d.ts +0 -3
  454. package/dist/components/numberbadge/NumberBadge.types.d.ts.map +0 -1
  455. package/dist/components/numberbadge/NumberBadge.types.js +0 -1
  456. package/dist/components/overlayloader/OverlayLoader.js +0 -27
  457. package/dist/components/overlayloader/OverlayLoader.js.map +0 -1
  458. package/dist/components/overlayloader/OverlayLoader.stories.d.ts +0 -8
  459. package/dist/components/overlayloader/OverlayLoader.stories.d.ts.map +0 -1
  460. package/dist/components/overlayloader/OverlayLoader.stories.js +0 -50
  461. package/dist/components/overlayloader/OverlayLoader.svelte +0 -160
  462. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts +0 -9
  463. package/dist/components/overlayloader/OverlayLoader.svelte.d.ts.map +0 -1
  464. package/dist/components/quantityselector/quantitySelector.types.d.ts +0 -2
  465. package/dist/components/quantityselector/quantitySelector.types.d.ts.map +0 -1
  466. package/dist/components/quantityselector/quantitySelector.types.js +0 -1
  467. package/dist/components/radiogroup/radioGroup.types.d.ts +0 -9
  468. package/dist/components/radiogroup/radioGroup.types.d.ts.map +0 -1
  469. package/dist/components/radiogroup/radioGroup.types.js +0 -1
  470. package/dist/components/select/select.types.d.ts +0 -9
  471. package/dist/components/select/select.types.d.ts.map +0 -1
  472. package/dist/components/select/select.types.js +0 -1
  473. package/dist/components/statusbadge/StatusBadge.types.d.ts +0 -2
  474. package/dist/components/statusbadge/StatusBadge.types.d.ts.map +0 -1
  475. package/dist/components/statusbadge/StatusBadge.types.js +0 -1
  476. package/dist/components/statusdot/StatusDot.types.d.ts +0 -3
  477. package/dist/components/statusdot/StatusDot.types.d.ts.map +0 -1
  478. package/dist/components/statusdot/StatusDot.types.js +0 -1
  479. package/dist/components/tabs/Tab.js +0 -4
  480. package/dist/components/tabs/Tab.js.map +0 -1
  481. package/dist/components/tabs/Tab.svelte.d.ts.map +0 -1
  482. package/dist/components/textinput/textinput.types.d.ts +0 -3
  483. package/dist/components/textinput/textinput.types.d.ts.map +0 -1
  484. package/dist/components/textinput/textinput.types.js +0 -1
  485. package/dist/components/toggle/toggle.types.d.ts +0 -2
  486. package/dist/components/toggle/toggle.types.d.ts.map +0 -1
  487. package/dist/components/toggle/toggle.types.js +0 -1
  488. package/dist/index-client.js +0 -2
  489. package/dist/index-client.js.map +0 -1
  490. package/dist/snippet.js +0 -2
  491. package/dist/snippet.js.map +0 -1
@@ -1,8 +1,19 @@
1
- import type { BadgeStyle, BadgeSize } from './NumberBadge.types';
1
+ /**
2
+ * A Number Badge represents a numeric count, often used to indicate notifications, updates, or items requiring attention. Its distinct appearance makes it easy to spot changes at a glance, ensuring users stay informed without breaking their workflow. Badges are commonly attached to icons, buttons, or tabs to provide contextual awareness.
3
+ */
2
4
  interface Props {
3
- label: string;
4
- appearance: BadgeStyle;
5
- size: BadgeSize;
5
+ /**
6
+ * Content of the badge.
7
+ */
8
+ label: number;
9
+ /**
10
+ * Allows to define the badge appearance.
11
+ */
12
+ appearance?: 'danger' | 'accent' | 'inverse' | 'standard';
13
+ /**
14
+ * Allows to define the badge size.
15
+ */
16
+ size?: 's' | 'm';
6
17
  }
7
18
  declare const NumberBadge: import("svelte").Component<Props, {}, "">;
8
19
  type NumberBadge = ReturnType<typeof NumberBadge>;
@@ -1 +1 @@
1
- {"version":3,"file":"NumberBadge.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/numberbadge/NumberBadge.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE/D,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,SAAS,CAAC;CACjB;AAgCH,QAAA,MAAM,WAAW,2CAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"NumberBadge.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/numberbadge/NumberBadge.svelte.ts"],"names":[],"mappings":"AAGE;;GAEG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;IAE1D;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;CAClB;AAiBH,QAAA,MAAM,WAAW,2CAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ # `m-number-badge`
2
+
3
+ A Number Badge represents a numeric count, often used to indicate notifications, updates, or items requiring attention. Its distinct appearance makes it easy to spot changes at a glance, ensuring users stay informed without breaking their workflow. Badges are commonly attached to icons, buttons, or tabs to provide contextual awareness.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `label*` | Content of the badge. | `number` | |
10
+ | `appearance` | Allows to define the badge appearance. | `'danger'` `'accent'` `'inverse'` `'standard'` | `standard` |
11
+ | `size` | Allows to define the badge size. | `'s'` `'m'` | `s` |
12
+
@@ -1,4 +1,4 @@
1
- import{c as p,p as y,a as u,b as v,f,d as n,t as g,e as _,h,i as x,j as d,r as b}from"../../custom-element.js";import{s as k}from"../../slot.js";import{s as z}from"../../attributes.js";var O=f('<div><div role="dialog" tabindex="-1"><!></div></div>');const j={hash:"svelte-smp867",code:`/**
1
+ import{c as m,p,a as y,b as r,f as u,d as v,t as f,i as g,j as _,k as n,r as d,e as x,g as h}from"../../custom-element.js";import{s as k}from"../../slot.js";import{s as z}from"../../attributes.js";var O=u('<div><div role="dialog" tabindex="-1"><!></div></div>');const j={hash:"svelte-smp867",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
- */.mc-overlay.svelte-smp867 {background-color:var(--overlay-color-background, rgba(0, 0, 0, 0.5));inset:0;opacity:0;position:fixed;pointer-events:none;transition:opacity 0.4s ease, visibility 0ms 0.4s;z-index:var(--overlay-z-index, 2);}.mc-overlay.is-visible.svelte-smp867 {opacity:1;pointer-events:all;transition:opacity 0.4s ease, visibility 0ms;visibility:visible;}`};function w(o,s){y(s,!0),u(o,j);let a=v(s,"isvisible",7,!1),t=v(s,"dialoglabel",7);var c={get isvisible(){return a()},set isvisible(e=!1){a(e),d()},get dialoglabel(){return t()},set dialoglabel(e){t(e),d()}},i=O();let r;var l=n(i),m=n(l);return k(m,s,"default",{}),b(l),b(i),g(e=>{r=_(i,1,"mc-overlay svelte-smp867",null,r,e),z(l,"aria-labelledby",t())},[()=>({"is-visible":a()})]),h(o,i),x(c)}customElements.define("m-overlay",p(w,{isvisible:{},dialoglabel:{}},["default"],[],!0));export{w as O};
3
+ */.mc-overlay.svelte-smp867 {background-color:var(--overlay-color-background, rgba(0, 0, 0, 0.5));inset:0;opacity:0;position:fixed;pointer-events:none;transition:opacity 0.4s ease, visibility 0ms 0.4s;z-index:var(--overlay-z-index, 2);}.mc-overlay.is-visible.svelte-smp867 {opacity:1;pointer-events:all;transition:opacity 0.4s ease, visibility 0ms;visibility:visible;}`};function w(o,e){p(e,!0),y(o,j);let s=r(e,"isvisible",7),a=r(e,"dialoglabel",7);var b={get isvisible(){return s()},set isvisible(l){s(l),n()},get dialoglabel(){return a()},set dialoglabel(l){a(l),n()}},i=O(),t=v(i),c=v(t);return k(c,e,"default",{}),d(t),d(i),f(()=>{x(i,1,h(["mc-overlay",s()&&"is-visible"]),"svelte-smp867"),z(t,"aria-labelledby",a())}),g(o,i),_(b)}customElements.define("m-overlay",m(w,{isvisible:{},dialoglabel:{}},["default"],[],!0));export{w as O};
4
4
  //# sourceMappingURL=Overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.js","sources":["../../../src/components/overlay/Overlay.svelte"],"sourcesContent":["<svelte:options customElement=\"m-overlay\" />\n\n<script lang=\"ts\">\n interface Props {\n isvisible?: boolean;\n dialoglabel: string;\n }\n\n let { isvisible = false, dialoglabel }: Props = $props();\n</script>\n\n<div class=\"mc-overlay\" class:is-visible={isvisible}>\n <div role=\"dialog\" tabindex=\"-1\" aria-labelledby={dialoglabel}>\n <!-- @slot Use this slot to insert a centered content inside the overlay -->\n <slot />\n </div>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/overlay';\n</style>\n"],"names":["isvisible","dialoglabel","$.prop","$$props"],"mappings":";;mYAAA,gBAQQ,IAAAA,oBAAY,EAAK,EAAEC,EAAWC,EAAAC,EAAA,cAAA,CAAA,qDAAlB,GAAK,mNAI2BF,GAAW,uBADrBD,EAAS,GAAA,cAFnD"}
1
+ {"version":3,"file":"Overlay.js","sources":["../../../src/components/overlay/Overlay.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'm-overlay' }} />\n\n<script lang=\"ts\">\n /**\n * An overlay is a semi-transparent layer that appears on top of the main content, typically used to dim the background and focus user attention on a specific element. It is often combined with modals, popovers, or loading states to create a visual separation between the foreground and background. Overlays help prevent unintended interactions while keeping the primary content accessible.\n *\n * @slot default - Use this slot to insert a centered content inside the overlay.\n */\n interface Props {\n /**\n * Controls the visibility of the overlay.\n */\n isvisible?: boolean;\n /**\n * Accessible label for the overlay dialog.\n */\n dialoglabel: string;\n }\n\n let { isvisible, dialoglabel }: Props = $props();\n</script>\n\n<div class={['mc-overlay', isvisible && 'is-visible']}>\n <div role=\"dialog\" tabindex=\"-1\" aria-labelledby={dialoglabel}>\n <slot />\n </div>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/overlay';\n</style>\n"],"names":["isvisible","$.prop","$$props","dialoglabel"],"mappings":";;mYAAA,oBAmBQA,EAASC,EAAAC,EAAA,YAAA,CAAA,EAAEC,EAAWF,EAAAC,EAAA,cAAA,CAAA,qMAGjB,aAAcF,KAAa,YAAY,CAAA,EAAA,eAAA,wBACAG,GAAW,eAH/D"}
@@ -0,0 +1,29 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render } from '@testing-library/svelte';
3
+ import Overlay from './Overlay.svelte';
4
+ describe('m-overlay component', () => {
5
+ it('applies is-visible class when isvisible is true', () => {
6
+ const { container } = render(Overlay, {
7
+ props: {
8
+ isvisible: true,
9
+ dialoglabel: 'test-dialog-label',
10
+ },
11
+ });
12
+ const overlay = container.querySelector('.mc-overlay');
13
+ expect(overlay).toBeTruthy();
14
+ expect(overlay).toHaveClass('is-visible');
15
+ const dialog = container.querySelector('[role="dialog"]');
16
+ expect(dialog).toBeTruthy();
17
+ expect(dialog).toHaveAttribute('aria-labelledby', 'test-dialog-label');
18
+ });
19
+ it('does not apply is-visible class when isvisible is false or undefined', () => {
20
+ const { container } = render(Overlay, {
21
+ props: {
22
+ dialoglabel: 'test-dialog-label',
23
+ },
24
+ });
25
+ const overlay = container.querySelector('.mc-overlay');
26
+ expect(overlay).toBeTruthy();
27
+ expect(overlay).not.toHaveClass('is-visible');
28
+ });
29
+ });
@@ -1,8 +1,6 @@
1
- import type { Meta } from '@storybook/html-vite';
2
- /**
3
- * The `MOverlay` component is the **Svelte / WebComponent** implementation of the **Overlay** component of Mozaic Design System.
4
- */
5
- declare const _default: Meta;
6
- export default _default;
7
- export declare const Default: any;
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
8
6
  //# sourceMappingURL=Overlay.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.stories.d.ts","sourceRoot":"","sources":["../../../src/components/overlay/Overlay.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;GAEG;wBAWE,IAAI;AATT,wBASU;AA2BV,eAAO,MAAM,OAAO,KAAoB,CAAC"}
1
+ {"version":3,"file":"Overlay.stories.d.ts","sourceRoot":"","sources":["../../../src/components/overlay/Overlay.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAKrE,QAAA,MAAM,IAAI,EAAE,IA4BX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
@@ -1,45 +1,34 @@
1
- import { action } from 'storybook/actions';
2
- import { userEvent, within, expect } from 'storybook/test';
3
- /**
4
- * The `MOverlay` component is the **Svelte / WebComponent** implementation of the **Overlay** component of Mozaic Design System.
5
- */
6
- export default {
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
3
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
4
+ const meta = {
7
5
  title: 'Overlay/Overlay',
8
- tags: ['autodocs', 'code-only'],
6
+ component: 'm-overlay',
7
+ parameters: {
8
+ layout: 'fullscreen',
9
+ docs: {
10
+ story: { height: '400px' },
11
+ },
12
+ },
13
+ args: {
14
+ isvisible: true,
15
+ },
9
16
  argTypes: {
10
- isvisible: {
11
- description: 'Define if the overlay is visible or not',
12
- control: 'boolean',
17
+ '--overlay-z-index': {
18
+ description: 'Customise the z-index of the overlay',
19
+ control: false,
20
+ table: {
21
+ category: 'Custom Properties',
22
+ type: { summary: 'number' },
23
+ defaultValue: { summary: '2' },
24
+ },
13
25
  },
14
26
  },
27
+ render: (args) => html `
28
+ <m-overlay isvisible=${ifDefined(args.isvisible)} dialoglabel=${ifDefined(args.dialoglabel)}>
29
+ ${unsafeHTML(ifDefined(args.default))}
30
+ </m-overlay>
31
+ `,
15
32
  };
16
- const Template = (args) => {
17
- const wrapper = document.createElement('div');
18
- const MOverlay = document.createElement('m-overlay');
19
- const trigger = document.createElement('m-button');
20
- const label = document.createElement('span');
21
- label.innerText = 'Launch Overlay';
22
- trigger.appendChild(label);
23
- trigger.addEventListener('click', () => {
24
- MOverlay.setAttribute('isvisible', 'true');
25
- setTimeout(() => {
26
- MOverlay.removeAttribute('isvisible');
27
- }, 5000);
28
- });
29
- if (args.isvisible) {
30
- MOverlay.setAttribute('isvisible', 'true');
31
- }
32
- wrapper.appendChild(trigger);
33
- wrapper.appendChild(MOverlay);
34
- return wrapper;
35
- };
36
- export const Default = Template.bind({});
37
- Default.args = {};
38
- Default.play = async ({ canvasElement }) => {
39
- const MButton = canvasElement.querySelector('m-button');
40
- const trigger = MButton?.shadowRoot.querySelector('button');
41
- expect(trigger).not.toBeNull();
42
- await userEvent.click(MButton);
43
- const overlay = canvasElement.querySelector('m-overlay');
44
- expect(overlay).toHaveAttribute('isvisible', 'true');
45
- };
33
+ export default meta;
34
+ export const Default = {};
@@ -1,17 +1,27 @@
1
- <svelte:options customElement="m-overlay" />
1
+ <svelte:options customElement={{ tag: 'm-overlay' }} />
2
2
 
3
3
  <script lang="ts">
4
+ /**
5
+ * An overlay is a semi-transparent layer that appears on top of the main content, typically used to dim the background and focus user attention on a specific element. It is often combined with modals, popovers, or loading states to create a visual separation between the foreground and background. Overlays help prevent unintended interactions while keeping the primary content accessible.
6
+ *
7
+ * @slot default - Use this slot to insert a centered content inside the overlay.
8
+ */
4
9
  interface Props {
10
+ /**
11
+ * Controls the visibility of the overlay.
12
+ */
5
13
  isvisible?: boolean;
14
+ /**
15
+ * Accessible label for the overlay dialog.
16
+ */
6
17
  dialoglabel: string;
7
18
  }
8
19
 
9
- let { isvisible = false, dialoglabel }: Props = $props();
20
+ let { isvisible, dialoglabel }: Props = $props();
10
21
  </script>
11
22
 
12
- <div class="mc-overlay" class:is-visible={isvisible}>
23
+ <div class={['mc-overlay', isvisible && 'is-visible']}>
13
24
  <div role="dialog" tabindex="-1" aria-labelledby={dialoglabel}>
14
- <!-- @slot Use this slot to insert a centered content inside the overlay -->
15
25
  <slot />
16
26
  </div>
17
27
  </div>
@@ -1,5 +1,16 @@
1
+ /**
2
+ * An overlay is a semi-transparent layer that appears on top of the main content, typically used to dim the background and focus user attention on a specific element. It is often combined with modals, popovers, or loading states to create a visual separation between the foreground and background. Overlays help prevent unintended interactions while keeping the primary content accessible.
3
+ *
4
+ * @slot default - Use this slot to insert a centered content inside the overlay.
5
+ */
1
6
  interface Props {
7
+ /**
8
+ * Controls the visibility of the overlay.
9
+ */
2
10
  isvisible?: boolean;
11
+ /**
12
+ * Accessible label for the overlay dialog.
13
+ */
3
14
  dialoglabel: string;
4
15
  }
5
16
  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> {
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/overlay/Overlay.svelte.ts"],"names":[],"mappings":"AAGE,UAAU,KAAK;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAoBH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,OAAO;;;;;;UAAqF,CAAC;AACjF,KAAK,OAAO,GAAG,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC;AAC9C,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Overlay.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/overlay/Overlay.svelte.ts"],"names":[],"mappings":"AAGE;;;;GAIG;AACH,UAAU,KAAK;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAmBH,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AACD,KAAK,gCAAgC,CAAC,KAAK,EAAE,KAAK,IAAI,KAAK,GACvD,CAAC,KAAK,SAAS;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,GAAG,GACH;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAClB,EAAE,CAAC,CAAC;AAId,QAAA,MAAM,OAAO;;;;;;UAAqF,CAAC;AACjF,KAAK,OAAO,GAAG,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC;AAC9C,eAAe,OAAO,CAAC"}
@@ -0,0 +1,17 @@
1
+ # `m-overlay`
2
+
3
+ An overlay is a semi-transparent layer that appears on top of the main content, typically used to dim the background and focus user attention on a specific element. It is often combined with modals, popovers, or loading states to create a visual separation between the foreground and background. Overlays help prevent unintended interactions while keeping the primary content accessible.
4
+
5
+ ## Props
6
+
7
+ | Name | Description | Type | Default |
8
+ |------|-------------|------|---------|
9
+ | `isvisible` | Controls the visibility of the overlay. | `boolean` | |
10
+ | `dialoglabel*` | Accessible label for the overlay dialog. | `string` | |
11
+
12
+ ## Slots
13
+
14
+ | Name | Description |
15
+ |------|-------------|
16
+ | `default` | Use this slot to insert a centered content inside the overlay. |
17
+
@@ -1,14 +1,14 @@
1
- import{c as O,p as S,b as i,q as U,t as _,h,i as q,j as o,e as V,u as W,n as ne,a as de,v as y,l as ce,f as k,s as J,d as N,r as w,m as l,z,g as K,w as B}from"../../custom-element.js";import{i as M}from"../../if.js";import{e as ue,i as fe}from"../../each.js";import{s as x,a as X,f as ve,d as ge}from"../../attributes.js";import"../../legacy.js";import{B as Q}from"../button/Button.js";import{I as T}from"../iconbutton/IconButton.js";import"../../slot.js";import"../loader/Loader.js";var me=U('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path fill-rule="evenodd" d="M14.207 6.293a1 1 0 0 1 0 1.414L9.914 12l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0"></path></svg>');function j(g,a){S(a,!1);let c=i(a,"id",12,void 0),u=i(a,"style",12,void 0),d=i(a,"className",12,void 0),f=i(a,"fill",12,void 0),v=i(a,"size",12,"1.5rem");var m={get id(){return c()},set id(t){c(t),o()},get style(){return u()},set style(t){u(t),o()},get className(){return d()},set className(t){d(t),o()},get fill(){return f()},set fill(t){f(t),o()},get size(){return v()},set size(t){v(t),o()}},n=me();return _(()=>{x(n,"id",c()),X(n,u()),V(n,0,W(d())),x(n,"fill",f())}),h(g,n),q(m)}customElements.define("chevron-left-24",O(j,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var be=U('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path fill-rule="evenodd" d="M9.793 6.293a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414-1.414L14.086 12 9.793 7.707a1 1 0 0 1 0-1.414"></path></svg>');function I(g,a){S(a,!1);let c=i(a,"id",12,void 0),u=i(a,"style",12,void 0),d=i(a,"className",12,void 0),f=i(a,"fill",12,void 0),v=i(a,"size",12,"1.5rem");var m={get id(){return c()},set id(t){c(t),o()},get style(){return u()},set style(t){u(t),o()},get className(){return d()},set className(t){d(t),o()},get fill(){return f()},set fill(t){f(t),o()},get size(){return v()},set size(t){v(t),o()}},n=be();return _(()=>{x(n,"id",c()),X(n,u()),V(n,0,W(d())),x(n,"fill",f())}),h(g,n),q(m)}customElements.define("chevron-right-24",O(I,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));function pe(g,a){const c=Number(g.target.value);a(c)}var he=k("<option> </option>"),xe=k('<div class="mc-pagination__field"><select class="mc-select mc-pagination__select svelte-19eta05"></select></div>'),we=k('<span class="mc-pagination__label svelte-19eta05" aria-current="page"> </span>'),_e=k('<nav class="mc-pagination svelte-19eta05" aria-label="pagination"><!> <!> <!></nav>');const ye={hash:"svelte-19eta05",code:`/**
1
+ import{c as I,p as S,b as o,A as U,t as _,i as h,j as D,k as i,e as V,g as W,v as ne,a as ce,w as y,l as de,f as z,d as N,s as K,m as l,L as k,r as w,x as B,h as O}from"../../custom-element.js";import{i as M}from"../../if.js";import{e as ue,i as fe}from"../../each.js";import{s as x,a as X,d as ve,f as ge}from"../../attributes.js";import"../../legacy.js";import{B as Q}from"../button/Button.js";import{I as T}from"../iconbutton/IconButton.js";import"../../slot.js";import"../loader/Loader.js";var me=U('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path fill-rule="evenodd" d="M14.207 6.293a1 1 0 0 1 0 1.414L9.914 12l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0"></path></svg>');function j(g,a){S(a,!1);let d=o(a,"id",12,void 0),u=o(a,"style",12,void 0),c=o(a,"className",12,void 0),f=o(a,"fill",12,void 0),v=o(a,"size",12,"1.5rem");var m={get id(){return d()},set id(t){d(t),i()},get style(){return u()},set style(t){u(t),i()},get className(){return c()},set className(t){c(t),i()},get fill(){return f()},set fill(t){f(t),i()},get size(){return v()},set size(t){v(t),i()}},n=me();return _(()=>{x(n,"id",d()),X(n,u()),V(n,0,W(c())),x(n,"fill",f())}),h(g,n),D(m)}customElements.define("chevron-left-24",I(j,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));var pe=U('<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24px" height="24px"><path fill-rule="evenodd" d="M9.793 6.293a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414-1.414L14.086 12 9.793 7.707a1 1 0 0 1 0-1.414"></path></svg>');function A(g,a){S(a,!1);let d=o(a,"id",12,void 0),u=o(a,"style",12,void 0),c=o(a,"className",12,void 0),f=o(a,"fill",12,void 0),v=o(a,"size",12,"1.5rem");var m={get id(){return d()},set id(t){d(t),i()},get style(){return u()},set style(t){u(t),i()},get className(){return c()},set className(t){c(t),i()},get fill(){return f()},set fill(t){f(t),i()},get size(){return v()},set size(t){v(t),i()}},n=pe();return _(()=>{x(n,"id",d()),X(n,u()),V(n,0,W(c())),x(n,"fill",f())}),h(g,n),D(m)}customElements.define("chevron-right-24",I(A,{id:{},style:{},className:{},fill:{},size:{}},[],[],!1));function be(g,a){const d=Number(g.target.value);a(d)}var he=z("<option> </option>"),xe=z('<div class="mc-pagination__field"><select class="mc-select mc-pagination__select svelte-19eta05"></select></div>'),we=z('<span class="mc-pagination__label svelte-19eta05" aria-current="page"> </span>'),_e=z('<nav class="mc-pagination svelte-19eta05" aria-label="pagination"><!> <!> <!></nav>');const ye={hash:"svelte-19eta05",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */.mc-pagination.svelte-19eta05 {align-items:center;display:flex;justify-content:center;gap:0.5rem;}.mc-pagination__label.svelte-19eta05 {clip-path:inset(100%);clip:rect(1px, 1px, 1px, 1px);height:1px;overflow:hidden;position:absolute;white-space:nowrap;padding:0;width:1px;}
4
4
 
5
5
  /* stylelint-disable string-no-newline */.mc-select.svelte-19eta05 {appearance:none;font-family:inherit;transition:box-shadow 200ms ease;font-size:var(--font-size-150, 1rem);line-height:var(--line-height-s, 1.3);height:3rem;padding:0 3rem 0 0.75rem;background-position:right 1rem center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' fill='var(--forms-color-icon-interactive, %23000000)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E");border:var(--border-s, 1px) solid var(--forms-color-border-default, #666666);border-radius:var(--radius-s, 0.25rem);display:block;width:100%;color:var(--forms-color-text-default, #000000);background-color:var(--forms-color-background-default, #ffffff);text-overflow:ellipsis;background-repeat:no-repeat;background-size:1rem;}.mc-select.svelte-19eta05:hover {border-color:var(--forms-color-border-hover, #4d4d4d);box-shadow:0 0 0 var(--border-s, 1px) var(--forms-color-border-hover, #4d4d4d);}.mc-select.svelte-19eta05:focus {box-shadow:0 0 0 0.125rem var(--focus-color-mid, var(--focus-color-outline-mid, #ffffff)), 0 0 0 0.25rem var(--focus-color-outer, var(--focus-color-outline-outer, #000000));outline:0.125rem solid transparent;outline-offset:0.125rem;}.mc-select.svelte-19eta05:disabled {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' fill='var(--forms-color-icon-disabled, %23737373)' viewBox='0 0 16 16'%3E%3Cpath d='M8 11.5a1 1 0 01-.71-.29l-5-5a1 1 0 011.42-1.42L8 9.09l4.29-4.3a1 1 0 111.42 1.42l-5 5a1 1 0 01-.71.29z'/%3E%3C/svg%3E");background-color:var(--forms-color-background-disabled, #d9d9d9);border-color:transparent;cursor:not-allowed;box-shadow:none;color:var(--forms-color-text-disabled, #737373);}
6
6
 
7
- /* stylelint-enable string-no-newline */`};function Ne(g,a){S(a,!0),de(g,ye);let c=i(a,"id",7),u=i(a,"value",15,1),d=i(a,"total",7,10),f=i(a,"compact",7,!1),v=i(a,"selectLabel",7,"Page selector"),m=i(a,"pagelabel",7,"of"),n=i(a,"prefixlabel",7,"Page"),t=y(ce(Number(u())));const P=y(()=>l(t)<=1),L=y(()=>l(t)>=d()),Y=y(()=>Array.from({length:d()},(e,r)=>r+1));function A(){l(P)()||B(t,Number(l(t))-1)}function D(){l(L)()||B(t,Number(l(t))+1)}var Z={get id(){return c()},set id(e){c(e),o()},get value(){return u()},set value(e=1){u(e),o()},get total(){return d()},set total(e=10){d(e),o()},get compact(){return f()},set compact(e=!1){f(e),o()},get selectLabel(){return v()},set selectLabel(e="Page selector"){v(e),o()},get pagelabel(){return m()},set pagelabel(e="of"){m(e),o()},get prefixlabel(){return n()},set prefixlabel(e="Page"){n(e),o()}},C=_e(),F=N(C);{var $=e=>{{let r=z(()=>l(P)());Q(e,{iconOnly:!0,"aria-label":"Previous page",get disabled(){return l(r)},onclick:A,children:(s,b)=>{j(s,{})},$$slots:{default:!0}})}},ee=e=>{{let r=z(()=>l(P)());T(e,{outlined:!0,"aria-label":"Previous page",get disabled(){return l(r)},onclick:A,$$slots:{icon:(s,b)=>{j(s,{slot:"icon"})}}})}};M(F,e=>{f()?e(ee,!1):e($)})}var R=J(F,2);{var te=e=>{var r=xe(),s=N(r);s.__change=[pe,u],ue(s,21,()=>l(Y)(),fe,(b,E)=>{var p=he(),ie=N(p);w(p);var G={};_((oe,H)=>{ve(p,oe),K(ie,`${n()??""}
7
+ /* stylelint-enable string-no-newline */`};function Ne(g,a){S(a,!0),ce(g,ye);let d=o(a,"id",7),u=o(a,"value",15,1),c=o(a,"total",7,10),f=o(a,"compact",7),v=o(a,"selectLabel",7,"Page selector"),m=o(a,"prefixlabel",7,"Page"),n=o(a,"pagelabel",7,"of"),t=y(de(Number(u())));const P=y(()=>l(t)<=1),L=y(()=>l(t)>=c()),Y=y(()=>Array.from({length:c()},(e,s)=>s+1));function F(){l(P)()||B(t,Number(l(t))-1)}function R(){l(L)()||B(t,Number(l(t))+1)}var Z={get id(){return d()},set id(e){d(e),i()},get value(){return u()},set value(e=1){u(e),i()},get total(){return c()},set total(e=10){c(e),i()},get compact(){return f()},set compact(e){f(e),i()},get selectLabel(){return v()},set selectLabel(e="Page selector"){v(e),i()},get prefixlabel(){return m()},set prefixlabel(e="Page"){m(e),i()},get pagelabel(){return n()},set pagelabel(e="of"){n(e),i()}},C=_e(),q=N(C);{var $=e=>{{let s=k(()=>l(P)());Q(e,{iconposition:"only","aria-label":"Previous page",get disabled(){return l(s)},onclick:F,$$slots:{icon:(r,p)=>{j(r,{slot:"icon"})}}})}},ee=e=>{{let s=k(()=>l(P)());T(e,{outlined:!0,"aria-label":"Previous page",get disabled(){return l(s)},onclick:F,$$slots:{icon:(r,p)=>{j(r,{slot:"icon"})}}})}};M(q,e=>{f()?e(ee,!1):e($)})}var G=K(q,2);{var te=e=>{var s=xe(),r=N(s);r.__change=[be,u],ue(r,21,()=>l(Y)(),fe,(p,E)=>{var b=he(),oe=N(b);w(b);var H={};_((ie,J)=>{ge(b,ie),O(oe,`${m()??""}
8
8
  ${l(E)??""}
9
- ${m()??""}
10
- ${d()??""}`),G!==(G=H)&&(p.value=(p.__value=H)??"")},[()=>Number(l(E))==Number(l(t)),()=>Number(l(E))]),h(b,p)}),w(s),w(r),_(()=>{x(s,"id",c()),x(s,"aria-label",v()),s.disabled=d()<=1}),ge(s,()=>l(t),b=>B(t,b)),h(e,r)},ae=e=>{var r=we(),s=N(r);w(r),_(()=>K(s,`${n()??""}
9
+ ${n()??""}
10
+ ${c()??""}`),H!==(H=J)&&(b.value=(b.__value=J)??"")},[()=>Number(l(E))==Number(l(t)),()=>Number(l(E))]),h(p,b)}),w(r),w(s),_(()=>{x(r,"id",d()),x(r,"aria-label",v()),r.disabled=c()<=1}),ve(r,()=>l(t),p=>B(t,p)),h(e,s)},ae=e=>{var s=we(),r=N(s);w(s),_(()=>O(r,`${m()??""}
11
11
  ${u()??""}
12
- ${m()??""}
13
- ${d()??""}`)),h(e,r)};M(R,e=>{f()?e(ae,!1):e(te)})}var le=J(R,2);{var re=e=>{{let r=z(()=>l(L)());Q(e,{iconOnly:!0,"aria-label":"Next page",get disabled(){return l(r)},onclick:D,children:(s,b)=>{I(s,{})},$$slots:{default:!0}})}},se=e=>{{let r=z(()=>l(L)());T(e,{outlined:!0,"aria-label":"Next page",get disabled(){return l(r)},onclick:D,$$slots:{icon:(s,b)=>{I(s,{slot:"icon"})}}})}};M(le,e=>{f()?e(se,!1):e(re)})}return w(C),h(g,C),q(Z)}ne(["change"]);customElements.define("m-pagination",O(Ne,{id:{},value:{},total:{},compact:{},selectLabel:{},pagelabel:{},prefixlabel:{}},[],[],!0));
12
+ ${n()??""}
13
+ ${c()??""}`)),h(e,s)};M(G,e=>{f()?e(ae,!1):e(te)})}var le=K(G,2);{var se=e=>{{let s=k(()=>l(L)());Q(e,{iconposition:"only","aria-label":"Next page",get disabled(){return l(s)},onclick:R,$$slots:{icon:(r,p)=>{A(r,{slot:"icon"})}}})}},re=e=>{{let s=k(()=>l(L)());T(e,{outlined:!0,"aria-label":"Next page",get disabled(){return l(s)},onclick:R,$$slots:{icon:(r,p)=>{A(r,{slot:"icon"})}}})}};M(le,e=>{f()?e(re,!1):e(se)})}return w(C),h(g,C),D(Z)}ne(["change"]);customElements.define("m-pagination",I(Ne,{id:{},value:{},total:{},compact:{},selectLabel:{},prefixlabel:{},pagelabel:{}},[],[],!0));
14
14
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../node_modules/@mozaic-ds/icons-svelte/dist/components/ChevronLeft24/ChevronLeft24.svelte","../../../node_modules/@mozaic-ds/icons-svelte/dist/components/ChevronRight24/ChevronRight24.svelte","../../../src/components/pagination/Pagination.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'chevron-left-24', 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 = \"1.5rem\";\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 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M14.207 6.293a1 1 0 0 1 0 1.414L9.914 12l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0\"/></svg>","<svelte:options customElement={{ tag: 'chevron-right-24', 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 = \"1.5rem\";\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 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M9.793 6.293a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414-1.414L14.086 12 9.793 7.707a1 1 0 0 1 0-1.414\"/></svg>","<svelte:options\n customElement={{\n tag: 'm-pagination',\n }}\n/>\n\n<script lang=\"ts\">\n import ChevronLeft24 from '@mozaic-ds/icons-svelte/svelte/ChevronLeft24/ChevronLeft24.svelte';\n import ChevronRight24 from '@mozaic-ds/icons-svelte/svelte/ChevronRight24/ChevronRight24.svelte';\n import Button from '../button/Button.svelte';\n import IconButton from '../iconbutton/IconButton.svelte';\n\n interface Props {\n id: string;\n value?: number;\n total?: number;\n compact?: boolean;\n selectLabel?: string;\n pagelabel?: string;\n prefixlabel?: string;\n [key: string]: any;\n }\n\n let {\n id,\n value = $bindable(1),\n total = 10,\n compact = false,\n selectLabel = 'Page selector',\n pagelabel = 'of',\n prefixlabel = 'Page',\n ...events\n }: Props = $props();\n\n let selected = $state(Number(value));\n\n const isFirstPage = $state(() => selected <= 1);\n const isLastPage = $state(() => selected >= total);\n\n const pages = $state(() => Array.from({ length: total }, (_, i) => i + 1));\n\n function previous() {\n if (!isFirstPage()) {\n selected = Number(selected) - 1;\n }\n }\n\n function next() {\n if (!isLastPage()) {\n selected = Number(selected) + 1;\n }\n }\n\n function onSelectChange(event: Event) {\n const selected = Number((event.target as HTMLSelectElement).value);\n value = selected;\n }\n</script>\n\n<nav class=\"mc-pagination\" aria-label=\"pagination\">\n {#if !compact}\n <Button\n iconOnly\n aria-label=\"Previous page\"\n disabled={isFirstPage()}\n onclick={previous}\n >\n <ChevronLeft24 />\n </Button>\n {:else}\n <IconButton\n outlined\n aria-label=\"Previous page\"\n disabled={isFirstPage()}\n onclick={previous}\n >\n <ChevronLeft24 slot=\"icon\" />\n </IconButton>\n {/if}\n\n {#if !compact}\n <div class=\"mc-pagination__field\">\n <select\n {id}\n class=\"mc-select mc-pagination__select\"\n aria-label={selectLabel}\n disabled={total <= 1}\n bind:value={selected}\n onchange={onSelectChange}\n >\n {#each pages() as page}\n <option\n value={Number(page)}\n selected={Number(page) == Number(selected)}\n >\n {prefixlabel}\n {page}\n {pagelabel}\n {total}\n </option>\n {/each}\n </select>\n </div>\n {:else}\n <span class=\"mc-pagination__label\" aria-current=\"page\">\n {prefixlabel}\n {value}\n {pagelabel}\n {total}\n </span>\n {/if}\n\n {#if !compact}\n <Button\n iconOnly\n aria-label=\"Next page\"\n disabled={isLastPage()}\n onclick={next}\n >\n <ChevronRight24 />\n </Button>\n {:else}\n <IconButton\n outlined\n aria-label=\"Next page\"\n disabled={isLastPage()}\n onclick={next}\n >\n <ChevronRight24 slot=\"icon\" />\n </IconButton>\n {/if}\n</nav>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/pagination';\n @use '@mozaic-ds/styles/components/select';\n</style>\n"],"names":["id","style","className","fill","size","onSelectChange","event","value","selected","$.prop","$$props","total","compact","selectLabel","pagelabel","prefixlabel","$.state","$.proxy","isFirstPage","$.get","isLastPage","pages","_","i","previous","$.set","next","$$render","alternate","consequent","$.each","select","page","$.bind_select_value","$$value","alternate_1","consequent_1","alternate_2","consequent_2"],"mappings":"6wBAAA,SAEa,IAAAA,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,iRAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,+YCPA,SAEa,IAAAH,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,iRAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,gHC8CWE,GAAeC,EAAYC,EAAE,CAC9B,MAAAC,EAAW,OAAQF,EAAM,OAA6B,KAAK,EACjEC,EAAQC,CAAQ,CAClB;;;;;;2DAxDF,sBAwBIR,EAAES,EAAAC,EAAA,KAAA,CAAA,EACFH,iBAAkB,CAAC,EACnBI,gBAAQ,EAAE,EACVC,kBAAU,EAAK,EACfC,sBAAc,eAAe,EAC7BC,oBAAY,IAAI,EAChBC,sBAAc,MAAM,EAIlBP,EAAQQ,EAAAC,GAAU,OAAOV,EAAK,CAAA,CAAA,CAAA,QAE5BW,EAAWF,EAAA,IAAAG,EAAgBX,CAAQ,GAAI,CAAC,EACxCY,EAAUJ,EAAA,IAAAG,EAAgBX,CAAQ,GAAIG,GAAK,EAE3CU,EAAKL,EAAA,IAAgB,MAAM,MAAO,OAAQL,EAAK,CAAA,EAAA,CAAKW,EAAGC,IAAMA,EAAI,CAAC,CAAA,EAE/D,SAAAC,GAAW,CACbL,EAAAD,CAAW,KACdO,EAAAjB,EAAW,OAAMW,EAACX,CAAQ,GAAI,CAAC,CAEnC,CAES,SAAAkB,GAAO,CACTP,EAAAC,CAAU,KACbK,EAAAjB,EAAW,OAAMW,EAACX,CAAQ,GAAI,CAAC,CAEnC,qFA1BoB,EAAC,+CACX,GAAE,mDACA,GAAK,2DACD,gBAAe,uDACjB,KAAI,2DACF,OAAM,oDAkCRU,CAAW,EAAA,CAAA,oFACZM,2EAQCN,CAAW,EAAA,CAAA,oFACZM,yDAdPZ,EAAO,EAAAe,EAAAC,GAAA,EAAA,EAAAD,EAAAE,CAAA,2DA4BGxB,GAAcE,CAAA,EAEjBuB,GAAAC,EAAA,GAAA,IAAAZ,EAAAE,CAAK,UAAMW,IAAI,8DAKjBjB,EAAW,GAAA,EAAA;AAAA,gBACXiB,CAAI,GAAA,EAAA;AAAA,cACJlB,EAAS,GAAA,EAAA;AAAA,cACTH,EAAK,GAAA,EAAA,EAAA,2CALI,IAAA,OAAMQ,EAACa,CAAI,CAAA,GAAK,SAAOxB,CAAQ,CAAA,EADlC,IAAA,SAAOwB,CAAI,CAAA,6DAPVnB,GAAW,EACbkB,EAAA,SAAApB,EAAK,GAAI,IACPsB,GAAAF,EAAA,IAAAZ,EAAAX,CAAQ,OAARA,EAAQ0B,CAAA,CAAA,qDAkBrBnB,EAAW,GAAA,EAAA;AAAA,QACXR,EAAK,GAAA,EAAA;AAAA,QACLO,EAAS,GAAA,EAAA;AAAA,QACTH,EAAK,GAAA,EAAA,EAAA,CAAA,kBA5BJC,EAAO,EAAAe,EAAAQ,GAAA,EAAA,EAAAR,EAAAS,EAAA,6CAoCChB,CAAU,EAAA,CAAA,gFACXM,2EAQCN,CAAU,EAAA,CAAA,gFACXM,0DAdPd,EAAO,EAAAe,EAAAU,GAAA,EAAA,EAAAV,EAAAW,EAAA,2BAvDf","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../node_modules/@mozaic-ds/icons-svelte/dist/components/ChevronLeft24/ChevronLeft24.svelte","../../../node_modules/@mozaic-ds/icons-svelte/dist/components/ChevronRight24/ChevronRight24.svelte","../../../src/components/pagination/Pagination.svelte"],"sourcesContent":["<svelte:options customElement={{ tag: 'chevron-left-24', 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 = \"1.5rem\";\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 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M14.207 6.293a1 1 0 0 1 0 1.414L9.914 12l4.293 4.293a1 1 0 0 1-1.414 1.414l-5-5a1 1 0 0 1 0-1.414l5-5a1 1 0 0 1 1.414 0\"/></svg>","<svelte:options customElement={{ tag: 'chevron-right-24', 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 = \"1.5rem\";\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 24 24\" width=\"24px\" height=\"24px\"><path fill-rule=\"evenodd\" d=\"M9.793 6.293a1 1 0 0 1 1.414 0l5 5a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414-1.414L14.086 12 9.793 7.707a1 1 0 0 1 0-1.414\"/></svg>","<svelte:options\n customElement={{\n tag: 'm-pagination',\n }}\n/>\n\n<script lang=\"ts\">\n import ChevronLeft24 from '@mozaic-ds/icons-svelte/svelte/ChevronLeft24/ChevronLeft24.svelte';\n import ChevronRight24 from '@mozaic-ds/icons-svelte/svelte/ChevronRight24/ChevronRight24.svelte';\n import Button from '../button/Button.svelte';\n import IconButton from '../iconbutton/IconButton.svelte';\n /**\n * Pagination is a navigation component that allows users to browse through large sets of content by dividing it into discrete pages. It typically includes previous and next buttons, numeric page selectors, or dropdowns to jump between pages efficiently. Pagination improves usability and performance in content-heavy applications such as tables, search results, and articles by preventing long scrolls and reducing page load times.\n */\n interface Props {\n /**\n * A unique identifier for the pagination.\n */\n id: string;\n /**\n * The current value of the selected page.\n */\n value: number;\n /**\n * If `true`, display a compact version without the select.\n */\n compact?: boolean;\n /**\n * Total number of pages.\n */\n total?: number;\n /**\n * Accessible label for the select of the pagination.\n */\n selectLabel?: string;\n /**\n * Word displayed before the current page number.\n */\n prefixlabel?: string;\n /**\n * Word displayed between the current page number and total page number.\n */\n pagelabel?: string;\n }\n\n let {\n id,\n value = $bindable(1),\n total = 10,\n compact,\n selectLabel = 'Page selector',\n prefixlabel = 'Page',\n pagelabel = 'of',\n }: Props = $props();\n\n let selected = $state(Number(value));\n\n const isFirstPage = $state(() => selected <= 1);\n const isLastPage = $state(() => selected >= total);\n\n const pages = $state(() => Array.from({ length: total }, (_, i) => i + 1));\n\n function previous() {\n if (!isFirstPage()) {\n selected = Number(selected) - 1;\n }\n }\n\n function next() {\n if (!isLastPage()) {\n selected = Number(selected) + 1;\n }\n }\n\n function onSelectChange(event: Event) {\n const selected = Number((event.target as HTMLSelectElement).value);\n value = selected;\n }\n</script>\n\n<nav class=\"mc-pagination\" aria-label=\"pagination\">\n {#if !compact}\n <Button\n iconposition=\"only\"\n aria-label=\"Previous page\"\n disabled={isFirstPage()}\n onclick={previous}\n >\n <ChevronLeft24 slot=\"icon\" />\n </Button>\n {:else}\n <IconButton outlined aria-label=\"Previous page\" disabled={isFirstPage()} onclick={previous}>\n <ChevronLeft24 slot=\"icon\" />\n </IconButton>\n {/if}\n\n {#if !compact}\n <div class=\"mc-pagination__field\">\n <select\n {id}\n class=\"mc-select mc-pagination__select\"\n aria-label={selectLabel}\n disabled={total <= 1}\n bind:value={selected}\n onchange={onSelectChange}\n >\n {#each pages() as page, index (index)}\n <option value={Number(page)} selected={Number(page) == Number(selected)}>\n {prefixlabel}\n {page}\n {pagelabel}\n {total}\n </option>\n {/each}\n </select>\n </div>\n {:else}\n <span class=\"mc-pagination__label\" aria-current=\"page\">\n {prefixlabel}\n {value}\n {pagelabel}\n {total}\n </span>\n {/if}\n\n {#if !compact}\n <Button iconposition=\"only\" aria-label=\"Next page\" disabled={isLastPage()} onclick={next}>\n <ChevronRight24 slot=\"icon\" />\n </Button>\n {:else}\n <IconButton outlined aria-label=\"Next page\" disabled={isLastPage()} onclick={next}>\n <ChevronRight24 slot=\"icon\" />\n </IconButton>\n {/if}\n</nav>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/pagination';\n @use '@mozaic-ds/styles/components/select';\n</style>\n"],"names":["id","style","className","fill","size","onSelectChange","event","value","selected","$.prop","$$props","total","compact","selectLabel","prefixlabel","pagelabel","$.state","$.proxy","isFirstPage","$.get","isLastPage","pages","_","i","previous","$.set","next","$$render","alternate","consequent","$.each","select","page","$.bind_select_value","$$value","alternate_1","consequent_1","alternate_2","consequent_2"],"mappings":"uxBAAA,SAEa,IAAAA,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,iRAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,+YCPA,SAEa,IAAAH,cAAK,MAAS,EACdC,iBAAQ,MAAS,EACjBC,qBAAY,MAAS,EACrBC,gBAAO,MAAS,EAChBC,gBAAO,QAAQ,iRAGAJ,GAAE,MAAUC,GAAK,UAASC,EAAS,CAAA,CAAA,aAAQC,GAAI,eAF3E,gHCmEWE,GAAeC,EAAYC,EAAE,CAC9B,MAAAC,EAAW,OAAQF,EAAM,OAA6B,KAAK,EACjEC,EAAQC,CAAQ,CAClB;;;;;;2DA7EF,sBA8CIR,EAAES,EAAAC,EAAA,KAAA,CAAA,EACFH,iBAAkB,CAAC,EACnBI,gBAAQ,EAAE,EACVC,EAAOH,EAAAC,EAAA,UAAA,CAAA,EACPG,sBAAc,eAAe,EAC7BC,sBAAc,MAAM,EACpBC,oBAAY,IAAI,EAGdP,EAAQQ,EAAAC,GAAU,OAAOV,EAAK,CAAA,CAAA,CAAA,QAE5BW,EAAWF,EAAA,IAAAG,EAAgBX,CAAQ,GAAI,CAAC,EACxCY,EAAUJ,EAAA,IAAAG,EAAgBX,CAAQ,GAAIG,GAAK,EAE3CU,EAAKL,EAAA,IAAgB,MAAM,MAAO,OAAQL,EAAK,CAAA,EAAA,CAAKW,EAAGC,IAAMA,EAAI,CAAC,CAAA,EAE/D,SAAAC,GAAW,CACbL,EAAAD,CAAW,KACdO,EAAAjB,EAAW,OAAMW,EAACX,CAAQ,GAAI,CAAC,CAEnC,CAES,SAAAkB,GAAO,CACTP,EAAAC,CAAU,KACbK,EAAAjB,EAAW,OAAMW,EAACX,CAAQ,GAAI,CAAC,CAEnC,qFAzBoB,EAAC,+CACX,GAAE,8GAEI,gBAAe,2DACf,OAAM,uDACR,KAAI,oDAiCJU,CAAW,EAAA,CAAA,4FACZM,uEAK+CN,CAAW,EAAA,CAAA,oFAAaM,yDAV9EZ,EAAO,EAAAe,EAAAC,GAAA,EAAA,EAAAD,EAAAE,CAAA,2DAuBGxB,GAAcE,CAAA,EAEjBuB,GAAAC,EAAA,GAAA,IAAAZ,EAAAE,CAAK,UAAMW,IAAI,8DAEjBlB,EAAW,GAAA,EAAA;AAAA,gBACXkB,CAAI,GAAA,EAAA;AAAA,cACJjB,EAAS,GAAA,EAAA;AAAA,cACTJ,EAAK,GAAA,EAAA,EAAA,2CAJ+B,IAAA,OAAMQ,EAACa,CAAI,CAAA,GAAK,SAAOxB,CAAQ,CAAA,EAAvD,IAAA,SAAOwB,CAAI,CAAA,6DANhBnB,GAAW,EACbkB,EAAA,SAAApB,EAAK,GAAI,IACPsB,GAAAF,EAAA,IAAAZ,EAAAX,CAAQ,OAARA,EAAQ0B,CAAA,CAAA,qDAerBpB,EAAW,GAAA,EAAA;AAAA,QACXP,EAAK,GAAA,EAAA;AAAA,QACLQ,EAAS,GAAA,EAAA;AAAA,QACTJ,EAAK,GAAA,EAAA,EAAA,CAAA,kBAzBJC,EAAO,EAAAe,EAAAQ,GAAA,EAAA,EAAAR,EAAAS,EAAA,6CA8BkDhB,CAAU,EAAA,CAAA,wFAAaM,uEAI9BN,CAAU,EAAA,CAAA,gFAAaM,0DALzEd,EAAO,EAAAe,EAAAU,GAAA,EAAA,EAAAV,EAAAW,EAAA,2BA/Cf","x_google_ignoreList":[0,1]}
@@ -0,0 +1,65 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { render, fireEvent } from '@testing-library/svelte';
3
+ import Pagination from './Pagination.svelte';
4
+ import { tick } from 'svelte';
5
+ describe('m-pagination component', () => {
6
+ const baseProps = {
7
+ id: 'test-pagination',
8
+ value: 1,
9
+ total: 5,
10
+ selectLabel: 'Page selector',
11
+ prefixlabel: 'Page ',
12
+ pagelabel: ' of ',
13
+ };
14
+ it('renders with correct initial state', () => {
15
+ const { container, getByLabelText } = render(Pagination, {
16
+ props: baseProps,
17
+ });
18
+ const select = getByLabelText(baseProps.selectLabel);
19
+ expect(select.value).toBe('1');
20
+ const prevBtn = container.querySelector('button[aria-label="Previous page"]');
21
+ const nextBtn = container.querySelector('button[aria-label="Next page"]');
22
+ expect(prevBtn).toBeDisabled();
23
+ expect(nextBtn).not.toBeDisabled();
24
+ });
25
+ it('updates value when select changes', async () => {
26
+ const { getByLabelText } = render(Pagination, {
27
+ props: baseProps,
28
+ });
29
+ const select = getByLabelText(baseProps.selectLabel);
30
+ await fireEvent.change(select, { target: { value: '3' } });
31
+ await tick();
32
+ expect(select.value).toBe('3');
33
+ });
34
+ it('previous and next buttons navigate pages correctly', async () => {
35
+ const { container, getByLabelText } = render(Pagination, {
36
+ props: baseProps,
37
+ });
38
+ const prevBtn = container.querySelector('button[aria-label="Previous page"]');
39
+ const nextBtn = container.querySelector('button[aria-label="Next page"]');
40
+ const select = getByLabelText(baseProps.selectLabel);
41
+ expect(prevBtn.disabled).toBe(true);
42
+ await fireEvent.click(nextBtn);
43
+ await tick();
44
+ expect(select.value).toBe('2');
45
+ expect(prevBtn.disabled).toBe(false);
46
+ await fireEvent.click(prevBtn);
47
+ await tick();
48
+ expect(select.value).toBe('1');
49
+ expect(prevBtn.disabled).toBe(true);
50
+ });
51
+ it('disables next button on last page', async () => {
52
+ const props = { ...baseProps, value: 5, total: 5 };
53
+ const { container } = render(Pagination, { props });
54
+ const nextBtn = container.querySelector('button[aria-label="Next page"]');
55
+ expect(nextBtn.disabled).toBe(true);
56
+ const prevBtn = container.querySelector('button[aria-label="Previous page"]');
57
+ expect(prevBtn.disabled).toBe(false);
58
+ });
59
+ it('renders compact version correctly', () => {
60
+ const props = { ...baseProps, compact: true };
61
+ const { container, getByText } = render(Pagination, { props });
62
+ expect(container.querySelector('select')).toBeNull();
63
+ expect(getByText(/Page 1 of 5/)).toBeTruthy();
64
+ });
65
+ });
@@ -1,12 +1,9 @@
1
- import type { Meta } from '@storybook/html-vite';
2
- /**
3
- * Pagination is a navigation component that allows users to browse through large sets of content by dividing it into discrete pages.
4
- * It typically includes previous and next buttons, numeric page selectors, or dropdowns to jump between pages efficiently.
5
- * Pagination improves usability and performance in content-heavy applications such as tables, search results, and articles by preventing long scrolls and reducing page load times.
6
- */
7
- declare const _default: Meta;
8
- export default _default;
9
- export declare const Default: any;
10
- export declare const Compact: any;
11
- export declare const LongList: any;
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
6
+ export declare const First: Story;
7
+ export declare const Last: Story;
8
+ export declare const Compact: Story;
12
9
  //# sourceMappingURL=Pagination.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.stories.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;GAIG;wBA0CE,IAAI;AAxCT,wBAwCU;AAmBV,eAAO,MAAM,OAAO,KAAoB,CAAC;AAiBzC,eAAO,MAAM,OAAO,KAAoB,CAAC;AAOzC,eAAO,MAAM,QAAQ,KAAoB,CAAC"}
1
+ {"version":3,"file":"Pagination.stories.d.ts","sourceRoot":"","sources":["../../../src/components/pagination/Pagination.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,QAAA,MAAM,IAAI,EAAE,IAoBX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAKlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC"}
@@ -1,97 +1,43 @@
1
- import { action } from 'storybook/actions';
2
- import { userEvent, expect } from 'storybook/test';
3
- /**
4
- * Pagination is a navigation component that allows users to browse through large sets of content by dividing it into discrete pages.
5
- * It typically includes previous and next buttons, numeric page selectors, or dropdowns to jump between pages efficiently.
6
- * Pagination improves usability and performance in content-heavy applications such as tables, search results, and articles by preventing long scrolls and reducing page load times.
7
- */
8
- export default {
1
+ import { html } from 'lit';
2
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
3
+ const meta = {
9
4
  title: 'Navigation/Pagination',
10
- tags: ['autodocs', 'beta'],
11
- argTypes: {
12
- id: {
13
- description: 'Unique ID of the pagination component',
14
- control: 'text',
15
- },
16
- value: {
17
- description: 'Current page number (1-based)',
18
- control: { type: 'number', min: 1 },
19
- },
20
- total: {
21
- description: 'Total number of pages',
22
- control: { type: 'number', min: 1 },
23
- },
24
- compact: {
25
- description: 'Display pagination in compact mode (icons and label only)',
26
- control: { type: 'boolean' },
27
- },
28
- selectLabel: {
29
- description: 'Aria label for the select element',
30
- control: 'text',
31
- },
32
- prefixlabel: {
33
- description: 'Label prefix before the page number',
34
- control: 'text',
35
- },
36
- pagelabel: {
37
- description: 'Label suffix after the page number',
38
- control: 'text',
39
- },
40
- changePage: {
41
- description: 'Triggered when a new page is selected',
42
- action: 'changePage',
43
- table: {
44
- category: 'Events',
45
- },
46
- },
5
+ component: 'm-pagination',
6
+ args: {
7
+ id: 'paginationId',
8
+ value: 10,
9
+ total: 99,
10
+ selectLabel: 'Select page',
47
11
  },
12
+ render: (args) => html `
13
+ <m-pagination
14
+ id=${ifDefined(args.id)}
15
+ value=${ifDefined(args.value)}
16
+ compact=${ifDefined(args.compact)}
17
+ total=${ifDefined(args.total)}
18
+ selectLabel=${ifDefined(args.selectLabel)}
19
+ prefixlabel=${ifDefined(args.prefixlabel)}
20
+ pagelabel=${ifDefined(args.pagelabel)}
21
+ ></m-pagination>
22
+ `,
48
23
  };
49
- const Template = (args) => {
50
- const el = document.createElement('m-pagination');
51
- el.setAttribute('id', args.id || 'paginationID');
52
- el.setAttribute('value', args.value?.toString() || '1');
53
- el.setAttribute('total', args.total?.toString() || '10');
54
- if (args.compact)
55
- el.setAttribute('compact', 'true');
56
- if (args.selectLabel)
57
- el.setAttribute('selectLabel', args.selectLabel);
58
- if (args.prefixlabel)
59
- el.setAttribute('prefixlabel', args.prefixlabel);
60
- if (args.pagelabel)
61
- el.setAttribute('pagelabel', args.pagelabel);
62
- el.changePage = action('changePage');
63
- return el;
64
- };
65
- export const Default = Template.bind({});
66
- Default.args = {
67
- id: 'paginationID',
68
- value: 1,
69
- total: 5,
70
- prefixlabel: 'Page',
71
- pagelabel: 'of',
72
- };
73
- Default.play = async ({ canvasElement }) => {
74
- const pagination = canvasElement.querySelector('m-pagination');
75
- const select = pagination?.shadowRoot?.querySelector('select');
76
- expect(pagination).not.toBeNull();
77
- await userEvent.selectOptions(select, '3');
78
- expect(select).toHaveValue('3');
79
- };
80
- export const Compact = Template.bind({});
81
- Compact.args = {
82
- value: 1,
83
- total: 3,
84
- compact: true,
24
+ export default meta;
25
+ export const Default = {};
26
+ export const First = {
27
+ args: {
28
+ id: 'firstId',
29
+ value: 1,
30
+ },
85
31
  };
86
- export const LongList = Template.bind({});
87
- LongList.args = {
88
- value: 50,
89
- total: 500,
32
+ export const Last = {
33
+ args: {
34
+ id: 'lastId',
35
+ value: 99,
36
+ },
90
37
  };
91
- LongList.play = async ({ canvasElement }) => {
92
- const pagination = canvasElement.querySelector('m-pagination');
93
- const select = pagination?.shadowRoot?.querySelector('select');
94
- expect(select).toBeInTheDocument();
95
- await userEvent.selectOptions(select, '51');
96
- expect(select).toHaveValue('51');
38
+ export const Compact = {
39
+ args: {
40
+ id: 'compactId',
41
+ compact: true,
42
+ },
97
43
  };