@mozaic-ds/web-components 1.5.0 → 1.6.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 (367) hide show
  1. package/dist/Condition20.js +1 -1
  2. package/dist/Condition20.js.map +1 -1
  3. package/dist/accordion-list.state.svelte.js +1 -1
  4. package/dist/attributes.js +1 -1
  5. package/dist/attributes.js.map +1 -1
  6. package/dist/branches.js +1 -1
  7. package/dist/branches.js.map +1 -1
  8. package/dist/bundle.d.ts +15 -0
  9. package/dist/bundle.d.ts.map +1 -1
  10. package/dist/bundle.js +15 -0
  11. package/dist/components/accordionlist/AccordionList.js +4 -4
  12. package/dist/components/accordionlist/AccordionList.js.map +1 -1
  13. package/dist/components/accordionlist/AccordionList.stories.js +2 -2
  14. package/dist/components/accordionlist/AccordionList.svelte +19 -17
  15. package/dist/components/accordionlistItem/AccordionListItem.js +4 -4
  16. package/dist/components/accordionlistItem/AccordionListItem.js.map +1 -1
  17. package/dist/components/accordionlistItem/AccordionListItem.svelte +19 -17
  18. package/dist/components/actionbottombar/ActionBottomBar.js +2 -2
  19. package/dist/components/actionlistbox/ActionListbox.js +6 -4
  20. package/dist/components/actionlistbox/ActionListbox.js.map +1 -1
  21. package/dist/components/actionlistbox/ActionListbox.spec.js +73 -16
  22. package/dist/components/actionlistbox/ActionListbox.stories.d.ts +2 -0
  23. package/dist/components/actionlistbox/ActionListbox.stories.d.ts.map +1 -1
  24. package/dist/components/actionlistbox/ActionListbox.stories.js +73 -2
  25. package/dist/components/actionlistbox/ActionListbox.svelte +157 -11
  26. package/dist/components/actionlistbox/ActionListbox.svelte.d.ts +11 -1
  27. package/dist/components/actionlistbox/ActionListbox.svelte.d.ts.map +1 -1
  28. package/dist/components/actionlistbox/README.md +3 -0
  29. package/dist/components/actionlistboxitem/ActionListboxItem.js +2 -2
  30. package/dist/components/actionlistboxitem/ActionListboxItem.js.map +1 -1
  31. package/dist/components/actionlistboxitem/ActionListboxItem.svelte +21 -5
  32. package/dist/components/actionlistboxitem/ActionListboxItem.svelte.d.ts +6 -1
  33. package/dist/components/actionlistboxitem/ActionListboxItem.svelte.d.ts.map +1 -1
  34. package/dist/components/avatar/Avatar.js +2 -2
  35. package/dist/components/breadcrumb/Breadcrumb.js +4 -6
  36. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  37. package/dist/components/breadcrumb/Breadcrumb.svelte +7 -14
  38. package/dist/components/breadcrumb/Breadcrumb.svelte.d.ts.map +1 -1
  39. package/dist/components/builtinmenu/BuiltInMenu.js +2 -2
  40. package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts +1 -1
  41. package/dist/components/builtinmenu/BuiltInMenu.stories.d.ts.map +1 -1
  42. package/dist/components/builtinmenu/BuiltInMenu.stories.js +2 -2
  43. package/dist/components/builtinmenu/BuiltInMenu.svelte +1 -1
  44. package/dist/components/builtinmenuitem/BuiltInMenuItem.js +3 -3
  45. package/dist/components/builtinmenuitem/BuiltInMenuItem.svelte +1 -1
  46. package/dist/components/button/Button.js +3 -3
  47. package/dist/components/button/Button.js.map +1 -1
  48. package/dist/components/button/Button.svelte +16 -1
  49. package/dist/components/button/Button.svelte.d.ts +6 -1
  50. package/dist/components/button/Button.svelte.d.ts.map +1 -1
  51. package/dist/components/callout/Callout.js +2 -2
  52. package/dist/components/callout/Callout.stories.d.ts +3 -3
  53. package/dist/components/callout/Callout.stories.d.ts.map +1 -1
  54. package/dist/components/callout/Callout.stories.js +3 -3
  55. package/dist/components/carousel/Carousel.js +2 -2
  56. package/dist/components/carousel/Carousel.js.map +1 -1
  57. package/dist/components/carousel/Carousel.svelte +1 -0
  58. package/dist/components/checkbox/Checkbox.js +4 -4
  59. package/dist/components/checkbox/Checkbox.js.map +1 -1
  60. package/dist/components/checkbox/Checkbox.svelte +30 -10
  61. package/dist/components/checkboxgroup/CheckboxGroup.js +4 -4
  62. package/dist/components/checkboxgroup/CheckboxGroup.js.map +1 -1
  63. package/dist/components/checkboxgroup/CheckboxGroup.svelte +30 -10
  64. package/dist/components/checklistmenu/CheckListMenu.js +2 -2
  65. package/dist/components/checklistmenu/CheckListMenu.js.map +1 -1
  66. package/dist/components/checklistmenu/CheckListMenu.stories.js +1 -1
  67. package/dist/components/circularprogressbar/CircularProgressbar.js +2 -2
  68. package/dist/components/container/Container.js +2 -2
  69. package/dist/components/datepicker/Datepicker.js +3 -3
  70. package/dist/components/datepicker/Datepicker.js.map +1 -1
  71. package/dist/components/datepicker/Datepicker.stories.d.ts +1 -1
  72. package/dist/components/datepicker/Datepicker.stories.d.ts.map +1 -1
  73. package/dist/components/datepicker/Datepicker.stories.js +2 -2
  74. package/dist/components/datepicker/Datepicker.svelte +32 -8
  75. package/dist/components/divider/Divider.js +2 -2
  76. package/dist/components/divider/Divider.js.map +1 -1
  77. package/dist/components/divider/Divider.svelte +6 -1
  78. package/dist/components/divider/Divider.svelte.d.ts.map +1 -1
  79. package/dist/components/drawer/Drawer.js +2 -2
  80. package/dist/components/drawer/Drawer.js.map +1 -1
  81. package/dist/components/drawer/Drawer.svelte +4 -1
  82. package/dist/components/field/Field.js +3 -3
  83. package/dist/components/field/Field.js.map +1 -1
  84. package/dist/components/field/Field.spec.js +1 -1
  85. package/dist/components/field/Field.svelte +7 -3
  86. package/dist/components/fileuploader/FileUploader.js +2 -2
  87. package/dist/components/fileuploader/FileUploader.js.map +1 -1
  88. package/dist/components/fileuploader/FileUploader.stories.js +3 -3
  89. package/dist/components/fileuploader/FileUploader.svelte +4 -1
  90. package/dist/components/fileuploaderitem/FileUploaderItem.js +2 -2
  91. package/dist/components/flag/Flag.js +2 -2
  92. package/dist/components/iconbutton/IconButton.js +2 -2
  93. package/dist/components/iconbutton/IconButton.js.map +1 -1
  94. package/dist/components/iconbutton/IconButton.svelte +11 -1
  95. package/dist/components/iconbutton/IconButton.svelte.d.ts +3 -1
  96. package/dist/components/iconbutton/IconButton.svelte.d.ts.map +1 -1
  97. package/dist/components/kpiitem/KpiItem.js +2 -2
  98. package/dist/components/linearprogressbarbuffer/LinearProgressbarBuffer.js +2 -2
  99. package/dist/components/linearprogressbarpercentage/LinearProgressbarPercentage.js +2 -2
  100. package/dist/components/link/Link.js +2 -2
  101. package/dist/components/link/Link.stories.js +2 -2
  102. package/dist/components/loader/Loader.js +2 -2
  103. package/dist/components/loadingoverlay/LoadingOverlay.js +2 -2
  104. package/dist/components/modal/Modal.js +3 -3
  105. package/dist/components/modal/Modal.js.map +1 -1
  106. package/dist/components/modal/Modal.svelte +5 -1
  107. package/dist/components/navigationindicator/NavigationIndicator.js +4 -0
  108. package/dist/components/navigationindicator/NavigationIndicator.js.map +1 -0
  109. package/dist/components/navigationindicator/NavigationIndicator.spec.js +130 -0
  110. package/dist/components/navigationindicator/NavigationIndicator.stories.d.ts +8 -0
  111. package/dist/components/navigationindicator/NavigationIndicator.stories.d.ts.map +1 -0
  112. package/dist/components/navigationindicator/NavigationIndicator.stories.js +40 -0
  113. package/dist/components/navigationindicator/NavigationIndicator.svelte +156 -0
  114. package/dist/components/navigationindicator/NavigationIndicator.svelte.d.ts +34 -0
  115. package/dist/components/navigationindicator/NavigationIndicator.svelte.d.ts.map +1 -0
  116. package/dist/components/navigationindicator/README.md +21 -0
  117. package/dist/components/numberbadge/NumberBadge.js +2 -2
  118. package/dist/components/overlay/Overlay.js +2 -2
  119. package/dist/components/pageheader/PageHeader.js +24 -0
  120. package/dist/components/pageheader/PageHeader.js.map +1 -0
  121. package/dist/components/pageheader/PageHeader.spec.js +75 -0
  122. package/dist/components/pageheader/PageHeader.stories.d.ts +12 -0
  123. package/dist/components/pageheader/PageHeader.stories.d.ts.map +1 -0
  124. package/dist/components/pageheader/PageHeader.stories.js +82 -0
  125. package/dist/components/pageheader/PageHeader.svelte +268 -0
  126. package/dist/components/pageheader/PageHeader.svelte.d.ts +66 -0
  127. package/dist/components/pageheader/PageHeader.svelte.d.ts.map +1 -0
  128. package/dist/components/pageheader/README.md +32 -0
  129. package/dist/components/pagination/Pagination.js +8 -8
  130. package/dist/components/pagination/Pagination.js.map +1 -1
  131. package/dist/components/pagination/Pagination.svelte +44 -28
  132. package/dist/components/pagination/Pagination.svelte.d.ts.map +1 -1
  133. package/dist/components/passwordinput/PasswordInput.js +3 -3
  134. package/dist/components/passwordinput/PasswordInput.js.map +1 -1
  135. package/dist/components/passwordinput/PasswordInput.stories.d.ts +1 -1
  136. package/dist/components/passwordinput/PasswordInput.stories.d.ts.map +1 -1
  137. package/dist/components/passwordinput/PasswordInput.stories.js +2 -2
  138. package/dist/components/passwordinput/PasswordInput.svelte +14 -5
  139. package/dist/components/phonenumber/PhoneNumber.js +13 -11
  140. package/dist/components/phonenumber/PhoneNumber.js.map +1 -1
  141. package/dist/components/phonenumber/PhoneNumber.stories.d.ts +1 -1
  142. package/dist/components/phonenumber/PhoneNumber.stories.d.ts.map +1 -1
  143. package/dist/components/phonenumber/PhoneNumber.stories.js +2 -2
  144. package/dist/components/phonenumber/PhoneNumber.svelte +84 -37
  145. package/dist/components/phonenumber/PhoneNumber.svelte.d.ts.map +1 -1
  146. package/dist/components/pincode/Pincode.js +2 -2
  147. package/dist/components/pincode/Pincode.js.map +1 -1
  148. package/dist/components/pincode/Pincode.stories.d.ts +1 -1
  149. package/dist/components/pincode/Pincode.stories.d.ts.map +1 -1
  150. package/dist/components/pincode/Pincode.stories.js +2 -2
  151. package/dist/components/popover/Popover.js +6 -0
  152. package/dist/components/popover/Popover.js.map +1 -0
  153. package/dist/components/popover/Popover.spec.js +69 -0
  154. package/dist/components/popover/Popover.stories.d.ts +36 -0
  155. package/dist/components/popover/Popover.stories.d.ts.map +1 -0
  156. package/dist/components/popover/Popover.stories.js +124 -0
  157. package/dist/components/popover/Popover.svelte +348 -0
  158. package/dist/components/popover/Popover.svelte.d.ts +79 -0
  159. package/dist/components/popover/Popover.svelte.d.ts.map +1 -0
  160. package/dist/components/popover/README.md +25 -0
  161. package/dist/components/quantityselector/QuantitySelector.js +2 -2
  162. package/dist/components/quantityselector/QuantitySelector.js.map +1 -1
  163. package/dist/components/quantityselector/QuantitySelector.stories.js +1 -1
  164. package/dist/components/quantityselector/QuantitySelector.svelte +3 -3
  165. package/dist/components/radio/Radio.js +2 -2
  166. package/dist/components/radio/Radio.js.map +1 -1
  167. package/dist/components/radiogroup/RadioGroup.js +2 -2
  168. package/dist/components/radiogroup/RadioGroup.js.map +1 -1
  169. package/dist/components/radiogroup/RadioGroup.svelte +6 -2
  170. package/dist/components/segmentedcontrol/SegmentedControl.js +2 -2
  171. package/dist/components/segmentedcontrol/SegmentedControl.js.map +1 -1
  172. package/dist/components/select/Select.js +3 -3
  173. package/dist/components/select/Select.js.map +1 -1
  174. package/dist/components/select/Select.spec.js +2 -2
  175. package/dist/components/select/Select.stories.d.ts +1 -1
  176. package/dist/components/select/Select.stories.d.ts.map +1 -1
  177. package/dist/components/select/Select.stories.js +2 -2
  178. package/dist/components/select/Select.svelte +50 -31
  179. package/dist/components/select/Select.svelte.d.ts.map +1 -1
  180. package/dist/components/sidebar/README.md +28 -0
  181. package/dist/components/sidebar/Sidebar.js +18 -0
  182. package/dist/components/sidebar/Sidebar.js.map +1 -0
  183. package/dist/components/sidebar/Sidebar.spec.js +74 -0
  184. package/dist/components/sidebar/Sidebar.stories.d.ts +23 -0
  185. package/dist/components/sidebar/Sidebar.stories.d.ts.map +1 -0
  186. package/dist/components/sidebar/Sidebar.stories.js +333 -0
  187. package/dist/components/sidebar/Sidebar.svelte +570 -0
  188. package/dist/components/sidebar/Sidebar.svelte.d.ts +47 -0
  189. package/dist/components/sidebar/Sidebar.svelte.d.ts.map +1 -0
  190. package/dist/components/sidebar/floating-item.spec.js +96 -0
  191. package/dist/components/sidebar/floating-item.svelte.d.ts +13 -0
  192. package/dist/components/sidebar/floating-item.svelte.d.ts.map +1 -0
  193. package/dist/components/sidebar/floating-item.svelte.js +95 -0
  194. package/dist/components/sidebar/sidebar-state.spec.js +112 -0
  195. package/dist/components/sidebar/sidebar-state.svelte.d.ts +9 -0
  196. package/dist/components/sidebar/sidebar-state.svelte.d.ts.map +1 -0
  197. package/dist/components/sidebar/sidebar-state.svelte.js +36 -0
  198. package/dist/components/sidebarexpandableitem/README.md +19 -0
  199. package/dist/components/sidebarexpandableitem/SidebarExpandableItem.js +18 -0
  200. package/dist/components/sidebarexpandableitem/SidebarExpandableItem.js.map +1 -0
  201. package/dist/components/sidebarexpandableitem/SidebarExpandableItem.spec.js +85 -0
  202. package/dist/components/sidebarexpandableitem/SidebarExpandableItem.svelte +578 -0
  203. package/dist/components/sidebarexpandableitem/SidebarExpandableItem.svelte.d.ts +49 -0
  204. package/dist/components/sidebarexpandableitem/SidebarExpandableItem.svelte.d.ts.map +1 -0
  205. package/dist/components/sidebarfooter/README.md +29 -0
  206. package/dist/components/sidebarfooter/SidebarFooter.js +18 -0
  207. package/dist/components/sidebarfooter/SidebarFooter.js.map +1 -0
  208. package/dist/components/sidebarfooter/SidebarFooter.spec.js +132 -0
  209. package/dist/components/sidebarfooter/SidebarFooter.svelte +1018 -0
  210. package/dist/components/sidebarfooter/SidebarFooter.svelte.d.ts +60 -0
  211. package/dist/components/sidebarfooter/SidebarFooter.svelte.d.ts.map +1 -0
  212. package/dist/components/sidebarfooter/_SidebarFooterMenu.js +18 -0
  213. package/dist/components/sidebarfooter/_SidebarFooterMenu.js.map +1 -0
  214. package/dist/components/sidebarfooter/_SidebarFooterMenu.svelte +517 -0
  215. package/dist/components/sidebarfooter/_SidebarFooterMenu.svelte.d.ts +36 -0
  216. package/dist/components/sidebarfooter/_SidebarFooterMenu.svelte.d.ts.map +1 -0
  217. package/dist/components/sidebarheader/README.md +11 -0
  218. package/dist/components/sidebarheader/SidebarHeader.js +18 -0
  219. package/dist/components/sidebarheader/SidebarHeader.js.map +1 -0
  220. package/dist/components/sidebarheader/SidebarHeader.spec.js +37 -0
  221. package/dist/components/sidebarheader/SidebarHeader.svelte +499 -0
  222. package/dist/components/sidebarheader/SidebarHeader.svelte.d.ts +17 -0
  223. package/dist/components/sidebarheader/SidebarHeader.svelte.d.ts.map +1 -0
  224. package/dist/components/sidebarnavitem/README.md +30 -0
  225. package/dist/components/sidebarnavitem/SidebarNavItem.js +18 -0
  226. package/dist/components/sidebarnavitem/SidebarNavItem.js.map +1 -0
  227. package/dist/components/sidebarnavitem/SidebarNavItem.spec.js +95 -0
  228. package/dist/components/sidebarnavitem/SidebarNavItem.svelte +617 -0
  229. package/dist/components/sidebarnavitem/SidebarNavItem.svelte.d.ts +58 -0
  230. package/dist/components/sidebarnavitem/SidebarNavItem.svelte.d.ts.map +1 -0
  231. package/dist/components/sidebarshortcutitem/README.md +17 -0
  232. package/dist/components/sidebarshortcutitem/SidebarShortcutItem.js +18 -0
  233. package/dist/components/sidebarshortcutitem/SidebarShortcutItem.js.map +1 -0
  234. package/dist/components/sidebarshortcutitem/SidebarShortcutItem.spec.js +34 -0
  235. package/dist/components/sidebarshortcutitem/SidebarShortcutItem.svelte +509 -0
  236. package/dist/components/sidebarshortcutitem/SidebarShortcutItem.svelte.d.ts +35 -0
  237. package/dist/components/sidebarshortcutitem/SidebarShortcutItem.svelte.d.ts.map +1 -0
  238. package/dist/components/sidebarshortcuts/README.md +23 -0
  239. package/dist/components/sidebarshortcuts/SidebarShortcuts.js +18 -0
  240. package/dist/components/sidebarshortcuts/SidebarShortcuts.js.map +1 -0
  241. package/dist/components/sidebarshortcuts/SidebarShortcuts.spec.js +82 -0
  242. package/dist/components/sidebarshortcuts/SidebarShortcuts.svelte +583 -0
  243. package/dist/components/sidebarshortcuts/SidebarShortcuts.svelte.d.ts +42 -0
  244. package/dist/components/sidebarshortcuts/SidebarShortcuts.svelte.d.ts.map +1 -0
  245. package/dist/components/starrating/StarRating.js +2 -2
  246. package/dist/components/starrating/StarRating.js.map +1 -1
  247. package/dist/components/starrating/StarRating.stories.d.ts +5 -5
  248. package/dist/components/starrating/StarRating.stories.d.ts.map +1 -1
  249. package/dist/components/starrating/StarRating.stories.js +5 -5
  250. package/dist/components/statusbadge/StatusBadge.js +2 -2
  251. package/dist/components/statusdot/StatusDot.js +2 -2
  252. package/dist/components/statusmessage/StatusMessage.js +2 -2
  253. package/dist/components/statusnotification/StatusNotification.js +2 -2
  254. package/dist/components/statusnotification/StatusNotification.js.map +1 -1
  255. package/dist/components/statusnotification/StatusNotification.stories.d.ts +3 -3
  256. package/dist/components/statusnotification/StatusNotification.stories.d.ts.map +1 -1
  257. package/dist/components/statusnotification/StatusNotification.stories.js +3 -3
  258. package/dist/components/statusnotification/StatusNotification.svelte +4 -1
  259. package/dist/components/stepperbottombar/StepperBottomBar.js +3 -3
  260. package/dist/components/stepperbottombar/StepperBottomBar.svelte +5 -1
  261. package/dist/components/stepperbottombar/StepperBottomBar.svelte.d.ts +1 -1
  262. package/dist/components/steppercompact/StepperCompact.js +2 -2
  263. package/dist/components/stepperinline/StepperInline.js +3 -3
  264. package/dist/components/stepperinline/StepperInline.svelte +1 -1
  265. package/dist/components/stepperinline/StepperInline.svelte.d.ts +1 -1
  266. package/dist/components/tab/Tab.js +2 -2
  267. package/dist/components/tabs/Tabs.js +2 -2
  268. package/dist/components/tabs/Tabs.stories.js +1 -1
  269. package/dist/components/tag/Tag.js +2 -2
  270. package/dist/components/tag/Tag.js.map +1 -1
  271. package/dist/components/tag/Tag.svelte +8 -5
  272. package/dist/components/textarea/Textarea.js +2 -2
  273. package/dist/components/textarea/Textarea.js.map +1 -1
  274. package/dist/components/textarea/Textarea.stories.d.ts +1 -1
  275. package/dist/components/textarea/Textarea.stories.d.ts.map +1 -1
  276. package/dist/components/textarea/Textarea.stories.js +2 -2
  277. package/dist/components/textinput/README.md +2 -0
  278. package/dist/components/textinput/Textinput.js +3 -3
  279. package/dist/components/textinput/Textinput.js.map +1 -1
  280. package/dist/components/textinput/Textinput.stories.d.ts +11 -1
  281. package/dist/components/textinput/Textinput.stories.d.ts.map +1 -1
  282. package/dist/components/textinput/Textinput.stories.js +20 -29
  283. package/dist/components/textinput/Textinput.svelte +28 -4
  284. package/dist/components/textinput/Textinput.svelte.d.ts +8 -0
  285. package/dist/components/textinput/Textinput.svelte.d.ts.map +1 -1
  286. package/dist/components/tile/README.md +19 -0
  287. package/dist/components/tile/Tile.js +111 -0
  288. package/dist/components/tile/Tile.js.map +1 -0
  289. package/dist/components/tile/Tile.spec.js +21 -0
  290. package/dist/components/tile/Tile.stories.d.ts +10 -0
  291. package/dist/components/tile/Tile.stories.d.ts.map +1 -0
  292. package/dist/components/tile/Tile.stories.js +37 -0
  293. package/dist/components/tile/Tile.svelte +894 -0
  294. package/dist/components/tile/Tile.svelte.d.ts +48 -0
  295. package/dist/components/tile/Tile.svelte.d.ts.map +1 -0
  296. package/dist/components/tileclickable/README.md +31 -0
  297. package/dist/components/tileclickable/TileClickable.js +114 -0
  298. package/dist/components/tileclickable/TileClickable.js.map +1 -0
  299. package/dist/components/tileclickable/TileClickable.spec.js +62 -0
  300. package/dist/components/tileclickable/TileClickable.stories.d.ts +10 -0
  301. package/dist/components/tileclickable/TileClickable.stories.d.ts.map +1 -0
  302. package/dist/components/tileclickable/TileClickable.stories.js +52 -0
  303. package/dist/components/tileclickable/TileClickable.svelte +954 -0
  304. package/dist/components/tileclickable/TileClickable.svelte.d.ts +65 -0
  305. package/dist/components/tileclickable/TileClickable.svelte.d.ts.map +1 -0
  306. package/dist/components/tileexpandable/README.md +20 -0
  307. package/dist/components/tileexpandable/TileExpandable.js +114 -0
  308. package/dist/components/tileexpandable/TileExpandable.js.map +1 -0
  309. package/dist/components/tileexpandable/TileExpandable.spec.js +65 -0
  310. package/dist/components/tileexpandable/TileExpandable.stories.d.ts +7 -0
  311. package/dist/components/tileexpandable/TileExpandable.stories.d.ts.map +1 -0
  312. package/dist/components/tileexpandable/TileExpandable.stories.js +38 -0
  313. package/dist/components/tileexpandable/TileExpandable.svelte +956 -0
  314. package/dist/components/tileexpandable/TileExpandable.svelte.d.ts +53 -0
  315. package/dist/components/tileexpandable/TileExpandable.svelte.d.ts.map +1 -0
  316. package/dist/components/tileselectable/README.md +21 -0
  317. package/dist/components/tileselectable/TileSelectable.js +108 -0
  318. package/dist/components/tileselectable/TileSelectable.js.map +1 -0
  319. package/dist/components/tileselectable/TileSelectable.spec.js +57 -0
  320. package/dist/components/tileselectable/TileSelectable.stories.d.ts +9 -0
  321. package/dist/components/tileselectable/TileSelectable.stories.d.ts.map +1 -0
  322. package/dist/components/tileselectable/TileSelectable.stories.js +44 -0
  323. package/dist/components/tileselectable/TileSelectable.svelte +939 -0
  324. package/dist/components/tileselectable/TileSelectable.svelte.d.ts +57 -0
  325. package/dist/components/tileselectable/TileSelectable.svelte.d.ts.map +1 -0
  326. package/dist/components/toaster/Toaster.js +3 -3
  327. package/dist/components/toaster/Toaster.js.map +1 -1
  328. package/dist/components/toaster/Toaster.stories.d.ts +2 -2
  329. package/dist/components/toaster/Toaster.stories.d.ts.map +1 -1
  330. package/dist/components/toaster/Toaster.stories.js +2 -2
  331. package/dist/components/toaster/Toaster.svelte +5 -2
  332. package/dist/components/toggle/Toggle.js +2 -2
  333. package/dist/components/toggle/Toggle.js.map +1 -1
  334. package/dist/components/toggle/Toggle.svelte +0 -14
  335. package/dist/components/togglegroup/ToggleGroup.js +2 -2
  336. package/dist/components/togglegroup/ToggleGroup.js.map +1 -1
  337. package/dist/components/togglegroup/ToggleGroup.svelte +6 -16
  338. package/dist/components/tooltip/README.md +1 -0
  339. package/dist/components/tooltip/Tooltip.js +2 -2
  340. package/dist/components/tooltip/Tooltip.js.map +1 -1
  341. package/dist/components/tooltip/Tooltip.svelte +18 -10
  342. package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
  343. package/dist/components/tooltip/Tooltip.svelte.d.ts.map +1 -1
  344. package/dist/custom-element.js +3 -3
  345. package/dist/custom-element.js.map +1 -1
  346. package/dist/each.js +1 -1
  347. package/dist/each.js.map +1 -1
  348. package/dist/floating-item.svelte.js +2 -0
  349. package/dist/floating-item.svelte.js.map +1 -0
  350. package/dist/if.js +1 -1
  351. package/dist/if.js.map +1 -1
  352. package/dist/index-client.js +1 -1
  353. package/dist/index-client.js.map +1 -1
  354. package/dist/input.js +1 -1
  355. package/dist/main.d.ts +16 -1
  356. package/dist/main.d.ts.map +1 -1
  357. package/dist/main.js +16 -1
  358. package/dist/media-query.js +2 -0
  359. package/dist/media-query.js.map +1 -0
  360. package/dist/sidebar-state.svelte.js +2 -0
  361. package/dist/sidebar-state.svelte.js.map +1 -0
  362. package/dist/slot.js +1 -1
  363. package/dist/svelte-component.js +1 -1
  364. package/dist/svelte-element.js +1 -1
  365. package/dist/svelte-element.js.map +1 -1
  366. package/dist/this.js +1 -1
  367. package/package.json +2 -2
@@ -5,7 +5,7 @@ export default meta;
5
5
  type Story = StoryObj;
6
6
  export declare const Default: Story;
7
7
  export declare const Size: Story;
8
- export declare const IsInvalid: Story;
8
+ export declare const Invalid: Story;
9
9
  export declare const NoPrefix: Story;
10
10
  export declare const NoFlag: Story;
11
11
  export declare const Disabled: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumber.stories.d.ts","sourceRoot":"","sources":["../../../src/components/phonenumber/PhoneNumber.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAMrE,OAAO,sBAAsB,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,IAwDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAY9B,CAAC"}
1
+ {"version":3,"file":"PhoneNumber.stories.d.ts","sourceRoot":"","sources":["../../../src/components/phonenumber/PhoneNumber.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAMrE,OAAO,sBAAsB,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,IAwDX,CAAC;AACF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,IAAI,EAAE,KAIlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAY9B,CAAC"}
@@ -7,7 +7,7 @@ import './PhoneNumber.svelte';
7
7
  const meta = {
8
8
  title: 'Form Elements/Phone Number',
9
9
  component: 'm-phone-number',
10
- subcomponents: { 'Field': 'm-field' },
10
+ subcomponents: { Field: 'm-field' },
11
11
  argTypes: {
12
12
  size: {
13
13
  control: 'inline-radio',
@@ -67,7 +67,7 @@ export const Size = {
67
67
  size: 's',
68
68
  },
69
69
  };
70
- export const IsInvalid = {
70
+ export const Invalid = {
71
71
  args: {
72
72
  isinvalid: true,
73
73
  value: '1912',
@@ -174,21 +174,23 @@
174
174
  !flag && 'mc-phone-number-input__select-wrapper--hidden',
175
175
  ]}
176
176
  >
177
- <select
178
- id="selectComponentId"
179
- class={['mc-select', 'mc-phone-number-input__select', size !== 'm' && `mc-select--${size}`]}
180
- bind:value={selectedCountry}
181
- {disabled}
182
- name="country-select"
183
- >
184
- <option value="" selected hidden></option>
177
+ <div class={['mc-select', 'mc-phone-number-input__select', size !== 'm' && `mc-select--${size}`]}>
178
+ <select
179
+ id="selectComponentId"
180
+ class="mc-select__control"
181
+ bind:value={selectedCountry}
182
+ {disabled}
183
+ name="country-select"
184
+ >
185
+ <option value="" selected hidden></option>
185
186
 
186
- {#each countries as country, index (index)}
187
- <option value={country} data-flag={country.toLowerCase()}>
188
- {getCountryName(country)} (+{getCountryCallingCode(country)})
189
- </option>
190
- {/each}
191
- </select>
187
+ {#each countries as country, index (index)}
188
+ <option value={country} data-flag={country.toLowerCase()}>
189
+ {getCountryName(country)} (+{getCountryCallingCode(country)})
190
+ </option>
191
+ {/each}
192
+ </select>
193
+ </div>
192
194
 
193
195
  <div class="mc-phone-number-input__select-display">
194
196
  <div class="mc-phone-number-input__flag">
@@ -282,11 +284,17 @@
282
284
  font-size: var(--font-size-150, 1rem);
283
285
  line-height: var(--line-height-s, 1.3);
284
286
  font-weight: var(--font-weight-regular, 400);
287
+ color: var(--forms-color-text-default, #000000);
285
288
  flex-grow: 1;
286
289
  }
287
290
  .mc-text-input__control::placeholder {
288
291
  color: var(--forms-color-placeholder, #666666);
289
292
  }
293
+ .mc-text-input__addon {
294
+ font-size: var(--font-size-150, 1rem);
295
+ font-weight: var(--font-weight-semi-bold, 600);
296
+ color: var(--forms-color-text-default, #000000);
297
+ }
290
298
  .mc-text-input__icon {
291
299
  fill: var(--forms-color-icon-default, #666666);
292
300
  height: 1.5rem;
@@ -314,16 +322,16 @@
314
322
  border-color: var(--forms-color-border-read-only, #cccccc);
315
323
  pointer-events: none;
316
324
  }
317
- .mc-text-input:has(.mc-text-input__icon) {
325
+ .mc-text-input:has(.mc-text-input__icon), .mc-text-input:has(.mc-text-input__addon) {
318
326
  padding-inline-start: 0.6875rem;
319
327
  }
320
- .mc-text-input:has(.mc-text-input__icon) .mc-text-input__control {
328
+ .mc-text-input:has(.mc-text-input__icon) .mc-text-input__control, .mc-text-input:has(.mc-text-input__addon) .mc-text-input__control {
321
329
  padding-inline-start: 0;
322
330
  }
323
- .mc-text-input:has(.mc-controls-options) {
331
+ .mc-text-input:has(.mc-controls-options), .mc-text-input:has(.mc-text-input__addon) {
324
332
  padding-inline-end: 0.6875rem;
325
333
  }
326
- .mc-text-input:has(.mc-controls-options) .mc-text-input__control {
334
+ .mc-text-input:has(.mc-controls-options) .mc-text-input__control, .mc-text-input:has(.mc-text-input__addon) .mc-text-input__control {
327
335
  padding-inline-end: 0;
328
336
  }
329
337
  .mc-text-input--s {
@@ -374,6 +382,7 @@
374
382
  padding: 0 calc(1rem - 0.125rem);
375
383
  min-height: 3rem;
376
384
  min-width: 3rem;
385
+ border-radius: var(--button-border-radius-m, 0.25rem);
377
386
  }
378
387
  .mc-button .mc-button__label {
379
388
  font-size: var(--font-size-150, 1rem);
@@ -384,7 +393,6 @@
384
393
  vertical-align: middle;
385
394
  text-align: center;
386
395
  border: 2px solid transparent;
387
- border-radius: var(--button-border-radius-s, 0.25rem);
388
396
  transition: all ease 200ms;
389
397
  transition: box-shadow 200ms ease;
390
398
  align-items: center;
@@ -417,6 +425,7 @@
417
425
  padding: 0 calc(0.75rem - 0.125rem);
418
426
  min-height: 2rem;
419
427
  min-width: 2rem;
428
+ border-radius: var(--button-border-radius-s, 0.25rem);
420
429
  }
421
430
  .mc-button--s .mc-button__label {
422
431
  font-size: var(--font-size-100, 0.875rem);
@@ -433,6 +442,7 @@
433
442
  padding: 0 calc(1rem - 0.125rem);
434
443
  min-height: 3rem;
435
444
  min-width: 3rem;
445
+ border-radius: var(--button-border-radius-m, 0.25rem);
436
446
  }
437
447
  .mc-button--m .mc-button__label {
438
448
  font-size: var(--font-size-150, 1rem);
@@ -449,6 +459,7 @@
449
459
  padding: 0 calc(1.25rem - 0.125rem);
450
460
  min-height: 4rem;
451
461
  min-width: 4rem;
462
+ border-radius: var(--button-border-radius-l, 0.25rem);
452
463
  }
453
464
  .mc-button--l .mc-button__label {
454
465
  font-size: var(--font-size-200, 1.125rem);
@@ -695,7 +706,7 @@
695
706
  cursor: not-allowed;
696
707
  }
697
708
 
698
- .mc-listbox {
709
+ .mc-listbox:has(.mc-listbox__content:not([popover])), .mc-listbox:has(.mc-listbox__content:popover-open) {
699
710
  position: fixed;
700
711
  inset: 0;
701
712
  display: flex;
@@ -711,17 +722,17 @@
711
722
  transition: opacity 0.4s ease, visibility 0ms 0.4s;
712
723
  z-index: var(--overlay-z-index, 2);
713
724
  }
714
- .mc-listbox.is-visible {
725
+ .mc-listbox:has(.mc-listbox__content:not([popover])).is-visible, .mc-listbox:has(.mc-listbox__content:popover-open).is-visible {
715
726
  opacity: 1;
716
727
  pointer-events: all;
717
728
  transition: opacity 0.4s ease, visibility 0ms;
718
729
  visibility: visible;
719
730
  }
720
- .mc-listbox {
731
+ .mc-listbox:has(.mc-listbox__content:not([popover])), .mc-listbox:has(.mc-listbox__content:popover-open) {
721
732
  opacity: 1;
722
733
  }
723
734
  @media (width >= 680px) {
724
- .mc-listbox {
735
+ .mc-listbox:has(.mc-listbox__content:not([popover])), .mc-listbox:has(.mc-listbox__content:popover-open) {
725
736
  position: relative;
726
737
  display: block;
727
738
  padding: 0;
@@ -770,9 +781,49 @@
770
781
  .mc-listbox__body {
771
782
  overflow: hidden;
772
783
  }
784
+ @media (width >= 680px) {
785
+ .mc-listbox--top .mc-listbox__content {
786
+ margin: 0 0 8px;
787
+ inset: auto;
788
+ position-area: span-right top;
789
+ }
790
+ .mc-listbox--bottom .mc-listbox__content {
791
+ margin: 8px 0 0;
792
+ inset: auto;
793
+ position-area: span-right bottom;
794
+ }
795
+ .mc-listbox--left .mc-listbox__content {
796
+ margin: 0 8px 0 0;
797
+ inset: auto;
798
+ position-area: span-bottom left;
799
+ }
800
+ .mc-listbox--right .mc-listbox__content {
801
+ margin: 0 0 0 8px;
802
+ inset: auto;
803
+ position-area: span-bottom right;
804
+ }
805
+ }
773
806
 
774
807
  /* stylelint-disable string-no-newline */
775
808
  .mc-select {
809
+ position: relative;
810
+ display: block;
811
+ width: 100%;
812
+ }
813
+ .mc-select::after {
814
+ content: "";
815
+ pointer-events: none;
816
+ position: absolute;
817
+ top: 50%;
818
+ right: 1rem;
819
+ transform: translateY(-50%);
820
+ width: 1rem;
821
+ height: 1rem;
822
+ background-color: var(--forms-color-icon-interactive, #000000);
823
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' 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") no-repeat center/contain;
824
+ -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='1rem' width='1rem' 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") no-repeat center/contain;
825
+ }
826
+ .mc-select__control {
776
827
  appearance: none;
777
828
  font-family: inherit;
778
829
  transition: box-shadow 200ms ease;
@@ -781,47 +832,43 @@
781
832
  height: 3rem;
782
833
  padding: 0 3rem 0 0.75rem;
783
834
  background-position: right 1rem center;
784
- 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");
785
835
  border: var(--border-width-s, 0.0625rem) solid var(--forms-color-border-default, #666666);
786
836
  display: block;
787
837
  width: 100%;
788
838
  color: var(--forms-color-text-default, #000000);
789
839
  background-color: var(--forms-color-background-default, #ffffff);
790
840
  text-overflow: ellipsis;
791
- background-repeat: no-repeat;
792
- background-size: 1rem;
793
841
  border-radius: var(--border-radius-s, 0.25rem);
794
842
  }
795
- .mc-select:hover {
843
+ .mc-select__control:hover {
796
844
  border-color: var(--forms-color-border-hover, #4d4d4d);
797
845
  box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);
798
846
  }
799
- .mc-select:focus {
847
+ .mc-select__control:focus {
800
848
  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));
801
849
  outline: 0.125rem solid transparent;
802
850
  outline-offset: 0.125rem;
803
851
  }
804
- .mc-select:disabled {
805
- 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");
852
+ .mc-select__control:disabled {
806
853
  background-color: var(--forms-color-background-disabled, #d9d9d9);
807
854
  border-color: transparent;
808
855
  cursor: not-allowed;
809
856
  box-shadow: none;
810
857
  color: var(--forms-color-text-disabled, #737373);
811
858
  }
812
- .mc-select--readonly {
859
+ .mc-select__control--readonly {
813
860
  border-color: var(--forms-color-border-read-only, #cccccc);
814
861
  pointer-events: none;
815
862
  }
816
- .mc-select.is-invalid {
863
+ .mc-select__control.is-invalid {
817
864
  border-color: var(--forms-color-border-invalid, #ea302d);
818
865
  box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid, #ea302d);
819
866
  }
820
- .mc-select.is-invalid:hover {
867
+ .mc-select__control.is-invalid:hover {
821
868
  border-color: var(--forms-color-border-invalid-hover, #c61112);
822
869
  box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid-hover, #c61112);
823
870
  }
824
- .mc-select--s {
871
+ .mc-select--s .mc-select__control {
825
872
  font-size: var(--font-size-100, 0.875rem);
826
873
  line-height: var(--line-height-s, 1.3);
827
874
  height: 2rem;
@@ -865,18 +912,18 @@
865
912
  .mc-phone-number-input__select-wrapper--hidden {
866
913
  display: none;
867
914
  }
868
- .mc-phone-number-input__select {
915
+ .mc-phone-number-input .mc-phone-number-input__select {
869
916
  width: 5.75rem;
870
917
  padding: 0;
871
918
  z-index: 2;
872
919
  opacity: 0;
873
920
  position: relative;
874
921
  }
875
- .mc-phone-number-input__select:hover + .mc-phone-number-input__select-display {
922
+ .mc-phone-number-input .mc-phone-number-input__select:hover + .mc-phone-number-input__select-display {
876
923
  border-color: var(--forms-color-border-hover, #4d4d4d);
877
924
  box-shadow: 0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);
878
925
  }
879
- .mc-phone-number-input__select :read-only .mc-phone-number-input__chevron {
926
+ .mc-phone-number-input .mc-phone-number-input__select :read-only .mc-phone-number-input__chevron {
880
927
  display: none;
881
928
  }
882
929
  .mc-phone-number-input__select-display {
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumber.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/phonenumber/PhoneNumber.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAMH,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAI3B;;;;GAIG;AACH,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AA0JH,QAAA,MAAM,WAAW,gDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"PhoneNumber.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/phonenumber/PhoneNumber.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,EAMH,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAI3B;;;;GAIG;AACH,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC9B;AA4JH,QAAA,MAAM,WAAW,gDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
@@ -1,6 +1,6 @@
1
- import{o as S,c as C,p as K,a as O,b as i,u as x,k as D,A as R,q as z,n as o,B as F,f as A,g as G,v as H,h as j,j as d,r as J,t as N,l as Q,m as T}from"../../custom-element.js";import{e as U}from"../../each.js";import{r as V,s as B,d as W}from"../../attributes.js";import{b as I}from"../../this.js";var X=j('<input type="text" inputmode="numeric" maxlength="1" pattern="\\d*" autocomplete="one-time-code"/>'),Y=j('<div class="mc-pincode-input svelte-h63szf"></div>');const Z={hash:"svelte-h63szf",code:`/**
1
+ import{o as S,c as K,e as O,a as R,p as i,v as x,g as D,B as F,q as z,l as o,C as G,b as A,d as H,w as J,f as j,i as d,r as N,t as Q,s as T,h as U,u as B}from"../../custom-element.js";import{e as V}from"../../each.js";import{r as W,s as I,e as X}from"../../attributes.js";import{b as E}from"../../this.js";var Y=j('<input type="text" inputmode="numeric" maxlength="1" pattern="\\d*" autocomplete="one-time-code"/>'),Z=j('<div class="mc-pincode-input svelte-h63szf"></div>');const $={hash:"svelte-h63szf",code:`/**
2
2
  * Do not edit directly, this file was auto-generated.
3
3
  */.mc-pincode-input.svelte-h63szf {display:inline-flex;column-gap:0.5rem;}
4
4
  @media screen and (width <= 1024px) {.mc-pincode-input.svelte-h63szf {flex-wrap:wrap;row-gap:0.75rem;}
5
- }.mc-pincode-input__control.svelte-h63szf {font-size:var(--font-size-400, 1.75rem);transition:box-shadow 200ms ease;background-color:var(--forms-color-background-default, #ffffff);border:var(--border-width-s, 0.0625rem) solid var(--forms-color-border-default, #666666);border-radius:var(--forms-border-radius, 0.25rem);transition:all ease 200ms;color:var(--forms-color-text-default, #000000);display:block;width:3rem;box-sizing:border-box;height:4rem;text-align:center;line-height:var(--line-height-s, 1.3);}.mc-pincode-input__control.svelte-h63szf::placeholder {color:var(--forms-color-placeholder, #666666);}.mc-pincode-input__control.svelte-h63szf:focus-within {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-pincode-input__control.svelte-h63szf:hover:not(:focus-within) {border-color:var(--forms-color-border-hover, #4d4d4d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);}.mc-pincode-input__control.svelte-h63szf:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;border-color:transparent;box-shadow:none;color:var(--forms-color-text-disabled, #737373);pointer-events:none;}.mc-pincode-input__control.is-invalid.svelte-h63szf {border-color:var(--forms-color-border-invalid, #ea302d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid, #ea302d);}.mc-pincode-input__control.is-invalid.svelte-h63szf:hover:not(:focus-within) {border-color:var(--forms-color-border-invalid-hover, #c61112);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid-hover, #c61112);}`};function $(k,s){K(s,!0),O(k,Z);let m=i(s,"id",7),c=i(s,"length",7,6),v=i(s,"name",7),p=i(s,"value",7),h=i(s,"isinvalid",7),b=i(s,"disabled",7),g=i(s,"readonly",7);const n=H(()=>typeof c()=="string"?parseInt(c(),10)||6:c());let l=x(D([])),_=x(D([])),y;R(()=>{const e=String(p()??"");z(l,Array(o(n)).fill(""),!0),z(l,Array.from({length:o(n)},(t,r)=>e[r]??""),!0)});const u=e=>{queueMicrotask(()=>o(_)?.[e]?.focus())},w=()=>{const e=o(l).join(""),t=new CustomEvent("input",{detail:{value:e},bubbles:!0,composed:!0});y.dispatchEvent(t)},E=(e,t)=>{const a=e.target.value.replace(/\D/g,"").slice(0,1);o(l)[t]=a,w(),a&&t+1<o(n)&&u(t+1)},q=(e,t)=>{e.key==="ArrowLeft"&&t>0?(e.preventDefault(),u(t-1)):e.key==="ArrowRight"&&t<o(n)-1?(e.preventDefault(),u(t+1)):e.key==="Backspace"&&o(l)[t]===""&&t>0&&(o(l)[t-1]="",w(),u(t-1))},L=e=>{e.preventDefault();const t=(e.clipboardData?.getData("text")??"").replace(/\D/g,"").slice(0,o(n));z(l,Array.from({length:o(n)},(r,a)=>t[a]??""),!0),w(),u(Math.min(t.length,o(n)-1))};var M={get id(){return m()},set id(e){m(e),d()},get length(){return c()},set length(e=6){c(e),d()},get name(){return v()},set name(e){v(e),d()},get value(){return p()},set value(e){p(e),d()},get isinvalid(){return h()},set isinvalid(e){h(e),d()},get disabled(){return b()},set disabled(e){b(e),d()},get readonly(){return g()},set readonly(e){g(e),d()}},f=Y();return U(f,20,()=>[...Array(o(n)).keys()],e=>e,(e,t)=>{var r=X();V(r),r.__input=a=>E(a,t),r.__keydown=a=>q(a,t),I(r,(a,P)=>o(_)[P]=a,a=>o(_)?.[a],()=>[t]),N(()=>{B(r,"id",`pincodeItem${t}`),Q(r,1,T(["mc-pincode-input__control",h()&&"is-invalid"]),"svelte-h63szf"),B(r,"name",v()??`pincode-${m()}`),r.disabled=b(),r.readOnly=g(),W(r,o(l)[t])}),A(e,r)}),J(f),I(f,e=>y=e,()=>y),F("paste",f,L),A(k,f),G(M)}S(["input","keydown"]);customElements.define("m-pincode",C($,{isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},disabled:{attribute:"disabled",reflect:!0,type:"Boolean"},readonly:{attribute:"readonly",reflect:!0,type:"Boolean"},id:{},length:{},name:{},value:{}},[],[],!0));
5
+ }.mc-pincode-input__control.svelte-h63szf {font-size:var(--font-size-400, 1.75rem);transition:box-shadow 200ms ease;background-color:var(--forms-color-background-default, #ffffff);border:var(--border-width-s, 0.0625rem) solid var(--forms-color-border-default, #666666);border-radius:var(--forms-border-radius, 0.25rem);transition:all ease 200ms;color:var(--forms-color-text-default, #000000);display:block;width:3rem;box-sizing:border-box;height:4rem;text-align:center;line-height:var(--line-height-s, 1.3);}.mc-pincode-input__control.svelte-h63szf::placeholder {color:var(--forms-color-placeholder, #666666);}.mc-pincode-input__control.svelte-h63szf:focus-within {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-pincode-input__control.svelte-h63szf:hover:not(:focus-within) {border-color:var(--forms-color-border-hover, #4d4d4d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-hover, #4d4d4d);}.mc-pincode-input__control.svelte-h63szf:disabled {background-color:var(--forms-color-background-disabled, #d9d9d9);cursor:not-allowed;border-color:transparent;box-shadow:none;color:var(--forms-color-text-disabled, #737373);pointer-events:none;}.mc-pincode-input__control.is-invalid.svelte-h63szf {border-color:var(--forms-color-border-invalid, #ea302d);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid, #ea302d);}.mc-pincode-input__control.is-invalid.svelte-h63szf:hover:not(:focus-within) {border-color:var(--forms-color-border-invalid-hover, #c61112);box-shadow:0 0 0 var(--border-width-s, 0.0625rem) var(--forms-color-border-invalid-hover, #c61112);}`};function ee(k,s){O(s,!0),R(k,$);let m=i(s,"id",7),c=i(s,"length",7,6),v=i(s,"name",7),p=i(s,"value",7),h=i(s,"isinvalid",7),b=i(s,"disabled",7),g=i(s,"readonly",7);const n=J(()=>typeof c()=="string"?parseInt(c(),10)||6:c());let l=x(D([])),_=x(D([])),y;F(()=>{const e=String(p()??"");z(l,Array(o(n)).fill(""),!0),z(l,Array.from({length:o(n)},(t,r)=>e[r]??""),!0)});const u=e=>{queueMicrotask(()=>o(_)?.[e]?.focus())},w=()=>{const e=o(l).join(""),t=new CustomEvent("input",{detail:{value:e},bubbles:!0,composed:!0});y.dispatchEvent(t)},q=(e,t)=>{const a=e.target.value.replace(/\D/g,"").slice(0,1);o(l)[t]=a,w(),a&&t+1<o(n)&&u(t+1)},C=(e,t)=>{e.key==="ArrowLeft"&&t>0?(e.preventDefault(),u(t-1)):e.key==="ArrowRight"&&t<o(n)-1?(e.preventDefault(),u(t+1)):e.key==="Backspace"&&o(l)[t]===""&&t>0&&(o(l)[t-1]="",w(),u(t-1))},L=e=>{e.preventDefault();const t=(e.clipboardData?.getData("text")??"").replace(/\D/g,"").slice(0,o(n));z(l,Array.from({length:o(n)},(r,a)=>t[a]??""),!0),w(),u(Math.min(t.length,o(n)-1))};var M={get id(){return m()},set id(e){m(e),d()},get length(){return c()},set length(e=6){c(e),d()},get name(){return v()},set name(e){v(e),d()},get value(){return p()},set value(e){p(e),d()},get isinvalid(){return h()},set isinvalid(e){h(e),d()},get disabled(){return b()},set disabled(e){b(e),d()},get readonly(){return g()},set readonly(e){g(e),d()}},f=Z();return V(f,20,()=>[...Array(o(n)).keys()],e=>e,(e,t)=>{var r=Y();W(r),E(r,(a,P)=>o(_)[P]=a,a=>o(_)?.[a],()=>[t]),Q(()=>{I(r,"id",`pincodeItem${t}`),T(r,1,U(["mc-pincode-input__control",h()&&"is-invalid"]),"svelte-h63szf"),I(r,"name",v()??`pincode-${m()}`),r.disabled=b(),r.readOnly=g(),X(r,o(l)[t])}),B("input",r,a=>q(a,t)),B("keydown",r,a=>C(a,t)),A(e,r)}),N(f),E(f,e=>y=e,()=>y),G("paste",f,L),A(k,f),H(M)}S(["input","keydown"]);customElements.define("m-pincode",K(ee,{isinvalid:{attribute:"isinvalid",reflect:!0,type:"Boolean"},disabled:{attribute:"disabled",reflect:!0,type:"Boolean"},readonly:{attribute:"readonly",reflect:!0,type:"Boolean"},id:{},length:{},name:{},value:{}},[],[],{mode:"open"}));
6
6
  //# sourceMappingURL=Pincode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pincode.js","sources":["../../../src/components/pincode/Pincode.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-pincode',\n props: {\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },\n readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },\n },\n }}\n/>\n\n<script lang=\"ts\">\n /**\n * A pincode input is a specialized input field used to enter short numeric codes, such as verification codes, security PINs, or authentication tokens. It typically separates each digit into individual fields to improve readability and ease of entry. This component is commonly used in two-factor authentication (2FA), password recovery, and secure access flows, ensuring a structured and user-friendly experience.\n *\n * @event input {CustomEvent<{ value: string }>} - Emits when the pincode value changes.\n */\n interface Props {\n /**\n * A unique identifier for the pincode element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The number of input displayed in the pincode element.\n */\n length?: 4 | 5 | 6;\n /**\n * The name attribute for the pincode element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the pincode field.\n */\n value?: string | number;\n /**\n * If `true`, applies an invalid state to the pincode.\n */\n isinvalid?: boolean;\n /**\n * If `true`, disables the pincode, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, the pincode is read-only (cannot be edited).\n */\n readonly?: boolean;\n }\n\n let { id, length = 6, name, value, isinvalid, disabled, readonly }: Props = $props();\n\n const L = $derived(typeof length === 'string' ? parseInt(length, 10) || 6 : length);\n\n let otp = $state<string[]>([]);\n let inputs = $state<HTMLInputElement[]>([]);\n let element: HTMLElement;\n\n $effect(() => {\n const incoming = String(value ?? '');\n otp = Array(L).fill('');\n otp = Array.from({ length: L }, (_, i) => incoming[i] ?? '');\n });\n\n const focusInput = (i: number) => {\n queueMicrotask(() => inputs?.[i]?.focus());\n };\n\n const emitInput = () => {\n const joined = otp.join('');\n const event = new CustomEvent('input', {\n detail: { value: joined },\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n };\n\n const onInput = (e: Event, index: number) => {\n const el = e.target as HTMLInputElement;\n const digit = el.value.replace(/\\D/g, '').slice(0, 1);\n otp[index] = digit;\n emitInput();\n if (digit && index + 1 < L) focusInput(index + 1);\n };\n\n const onKeyDown = (e: KeyboardEvent, index: number) => {\n if (e.key === 'ArrowLeft' && index > 0) {\n e.preventDefault();\n focusInput(index - 1);\n } else if (e.key === 'ArrowRight' && index < L - 1) {\n e.preventDefault();\n focusInput(index + 1);\n } else if (e.key === 'Backspace' && otp[index] === '' && index > 0) {\n otp[index - 1] = '';\n emitInput();\n focusInput(index - 1);\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n e.preventDefault();\n const pasted = (e.clipboardData?.getData('text') ?? '').replace(/\\D/g, '').slice(0, L);\n otp = Array.from({ length: L }, (_, i) => pasted[i] ?? '');\n emitInput();\n focusInput(Math.min(pasted.length, L - 1));\n };\n</script>\n\n<div class=\"mc-pincode-input\" onpaste={onPaste} bind:this={element}>\n {#each [...Array(L).keys()] as i (i)}\n <input\n id={`pincodeItem${i}`}\n bind:this={inputs[i]}\n class={['mc-pincode-input__control', isinvalid && 'is-invalid']}\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n pattern=\"\\d*\"\n autocomplete=\"one-time-code\"\n name={name ?? `pincode-${id}`}\n {disabled}\n {readonly}\n value={otp[i]}\n oninput={(e) => onInput(e, i)}\n onkeydown={(e) => onKeyDown(e as KeyboardEvent, i)}\n />\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/pincode-input';\n</style>\n"],"names":["id","$.prop","$$props","length","name","value","isinvalid","disabled","readonly","L","$.derived","otp","$.state","$.proxy","inputs","element","$.user_effect","incoming","$.set","$.get","_","i","focusInput","emitInput","joined","event","onInput","index","digit","onKeyDown","onPaste","pasted","div","root","$$anchor","input","root_1","$.remove_input_defaults","e","$.bind_this","$$value","$.set_attribute","$.set_class","$.clsx","$.append","$.event"],"mappings":"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"}
1
+ {"version":3,"file":"Pincode.js","sources":["../../../src/components/pincode/Pincode.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-pincode',\n props: {\n isinvalid: { reflect: true, type: 'Boolean', attribute: 'isinvalid' },\n disabled: { reflect: true, type: 'Boolean', attribute: 'disabled' },\n readonly: { reflect: true, type: 'Boolean', attribute: 'readonly' },\n },\n }}\n/>\n\n<script lang=\"ts\">\n /**\n * A pincode input is a specialized input field used to enter short numeric codes, such as verification codes, security PINs, or authentication tokens. It typically separates each digit into individual fields to improve readability and ease of entry. This component is commonly used in two-factor authentication (2FA), password recovery, and secure access flows, ensuring a structured and user-friendly experience.\n *\n * @event input {CustomEvent<{ value: string }>} - Emits when the pincode value changes.\n */\n interface Props {\n /**\n * A unique identifier for the pincode element, used to associate the label with the form element.\n */\n id: string;\n /**\n * The number of input displayed in the pincode element.\n */\n length?: 4 | 5 | 6;\n /**\n * The name attribute for the pincode element, typically used for form submission.\n */\n name?: string;\n /**\n * The current value of the pincode field.\n */\n value?: string | number;\n /**\n * If `true`, applies an invalid state to the pincode.\n */\n isinvalid?: boolean;\n /**\n * If `true`, disables the pincode, making it non-interactive.\n */\n disabled?: boolean;\n /**\n * If `true`, the pincode is read-only (cannot be edited).\n */\n readonly?: boolean;\n }\n\n let { id, length = 6, name, value, isinvalid, disabled, readonly }: Props = $props();\n\n const L = $derived(typeof length === 'string' ? parseInt(length, 10) || 6 : length);\n\n let otp = $state<string[]>([]);\n let inputs = $state<HTMLInputElement[]>([]);\n let element: HTMLElement;\n\n $effect(() => {\n const incoming = String(value ?? '');\n otp = Array(L).fill('');\n otp = Array.from({ length: L }, (_, i) => incoming[i] ?? '');\n });\n\n const focusInput = (i: number) => {\n queueMicrotask(() => inputs?.[i]?.focus());\n };\n\n const emitInput = () => {\n const joined = otp.join('');\n const event = new CustomEvent('input', {\n detail: { value: joined },\n bubbles: true,\n composed: true,\n });\n element.dispatchEvent(event);\n };\n\n const onInput = (e: Event, index: number) => {\n const el = e.target as HTMLInputElement;\n const digit = el.value.replace(/\\D/g, '').slice(0, 1);\n otp[index] = digit;\n emitInput();\n if (digit && index + 1 < L) focusInput(index + 1);\n };\n\n const onKeyDown = (e: KeyboardEvent, index: number) => {\n if (e.key === 'ArrowLeft' && index > 0) {\n e.preventDefault();\n focusInput(index - 1);\n } else if (e.key === 'ArrowRight' && index < L - 1) {\n e.preventDefault();\n focusInput(index + 1);\n } else if (e.key === 'Backspace' && otp[index] === '' && index > 0) {\n otp[index - 1] = '';\n emitInput();\n focusInput(index - 1);\n }\n };\n\n const onPaste = (e: ClipboardEvent) => {\n e.preventDefault();\n const pasted = (e.clipboardData?.getData('text') ?? '').replace(/\\D/g, '').slice(0, L);\n otp = Array.from({ length: L }, (_, i) => pasted[i] ?? '');\n emitInput();\n focusInput(Math.min(pasted.length, L - 1));\n };\n</script>\n\n<div class=\"mc-pincode-input\" onpaste={onPaste} bind:this={element}>\n {#each [...Array(L).keys()] as i (i)}\n <input\n id={`pincodeItem${i}`}\n bind:this={inputs[i]}\n class={['mc-pincode-input__control', isinvalid && 'is-invalid']}\n type=\"text\"\n inputmode=\"numeric\"\n maxlength=\"1\"\n pattern=\"\\d*\"\n autocomplete=\"one-time-code\"\n name={name ?? `pincode-${id}`}\n {disabled}\n {readonly}\n value={otp[i]}\n oninput={(e) => onInput(e, i)}\n onkeydown={(e) => onKeyDown(e as KeyboardEvent, i)}\n />\n {/each}\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/pincode-input';\n</style>\n"],"names":["id","$.prop","$$props","length","name","value","isinvalid","disabled","readonly","L","$.derived","otp","$.state","$.proxy","inputs","element","$.user_effect","incoming","$.set","$.get","_","i","focusInput","emitInput","joined","event","onInput","index","digit","onKeyDown","onPaste","pasted","div","root","$$anchor","input","root_1","$.remove_input_defaults","$.bind_this","$$value","$.set_attribute","$.set_class","$.clsx","$.delegated","e","$.append","$.event"],"mappings":"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"}
@@ -3,7 +3,7 @@ import './Pincode.svelte';
3
3
  declare const meta: Meta;
4
4
  export default meta;
5
5
  type Story = StoryObj;
6
- export declare const WithValue: Story;
6
+ export declare const Value: Story;
7
7
  export declare const Default: Story;
8
8
  export declare const Disabled: Story;
9
9
  export declare const ReadOnly: Story;
@@ -1 +1 @@
1
- {"version":3,"file":"Pincode.stories.d.ts","sourceRoot":"","sources":["../../../src/components/pincode/Pincode.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,kBAAkB,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IA8CX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC"}
1
+ {"version":3,"file":"Pincode.stories.d.ts","sourceRoot":"","sources":["../../../src/components/pincode/Pincode.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,kBAAkB,CAAC;AAE1B,QAAA,MAAM,IAAI,EAAE,IA8CX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,KAAK,EAAE,KAKnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC"}
@@ -5,7 +5,7 @@ import './Pincode.svelte';
5
5
  const meta = {
6
6
  title: 'Form Elements/Pincode',
7
7
  component: 'm-pincode',
8
- subcomponents: { 'Field': 'm-field' },
8
+ subcomponents: { Field: 'm-field' },
9
9
  tags: ['v2'],
10
10
  argTypes: {
11
11
  length: {
@@ -49,7 +49,7 @@ const meta = {
49
49
  },
50
50
  };
51
51
  export default meta;
52
- export const WithValue = {
52
+ export const Value = {
53
53
  args: {
54
54
  id: 'valueId',
55
55
  value: '123098',
@@ -0,0 +1,6 @@
1
+ import{o as $,c as ee,e as re,a as oe,p as s,B as te,k as f,t as U,u as pe,b as _,d as ae,f as b,j as o,i as v,r as t,s as se,h as ve,m as J}from"../../custom-element.js";import{o as ie}from"../../index-client.js";import{i as C}from"../../if.js";import{s as K}from"../../slot.js";import{s as y}from"../../attributes.js";import{b as O}from"../../this.js";import{I as ne}from"../iconbutton/IconButton.js";import{C as le}from"../../Condition20.js";import"../../branches.js";import"../loader/Loader.js";var ce=b('<p class="mc-popover__title svelte-yg26u3"> </p>'),me=b('<p class="mc-popover__description svelte-yg26u3"> </p>'),de=b('<div class="mc-popover__headings svelte-yg26u3"><!> <!></div>'),ge=b('<div class="mc-popover__close svelte-yg26u3"><!></div>'),ue=b('<div><div><!></div> <div role="dialog" tabindex="0" class="mc-popover__wrapper svelte-yg26u3" popover="manual"><div class="mc-popover__content svelte-yg26u3"><!> <div><!></div> <!> <footer class="mc-popover__footer svelte-yg26u3"><!></footer></div></div></div>');const we={hash:"svelte-yg26u3",code:`/**
2
+ * Do not edit directly, this file was auto-generated.
3
+ */.mc-popover__wrapper.svelte-yg26u3 {border-radius:var(--border-radius-m, 0.5rem);}.mc-popover__wrapper.svelte-yg26u3: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-popover__wrapper.svelte-yg26u3 {position:relative;padding:1rem;background-color:var(--popover-color-background-standard, #ffffff);box-sizing:border-box;overflow:visible;border:var(--border-width-s, 0.0625rem) solid var(--popover-color-border-standard, #cccccc);box-shadow:var(--shadow-bottom-s-x, 0px) var(--shadow-bottom-s-y, 5px) var(--shadow-bottom-s-blur, 10px) var(--shadow-bottom-s-spread, -2px) rgba(0, 0, 0, var(--shadow-bottom-s-opacity, 20%));}
4
+ @supports (width: max-content) {.mc-popover__wrapper.svelte-yg26u3 {width:max-content;}
5
+ }.mc-popover__wrapper.svelte-yg26u3::before {background-color:var(--popover-color-border-standard, #cccccc);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;content:"";height:0.625rem;position:absolute;width:0.625rem;}.mc-popover__wrapper.svelte-yg26u3::after {background-color:var(--popover-color-background-standard, #ffffff);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;content:"";height:0.5rem;position:absolute;width:0.5rem;}.mc-popover__content.svelte-yg26u3 {display:flex;flex-direction:column;gap:1rem;}.mc-popover__headings.svelte-yg26u3 {display:flex;flex-direction:column;gap:0.5rem;}.mc-popover__close.svelte-yg26u3 {position:absolute;top:4px;right:4px;}.mc-popover__title.svelte-yg26u3 {font-size:var(--font-body-s, 0.875rem);line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-semi-bold, 600);color:var(--popover-color-text-standard, #000000);margin:0;}.mc-popover__description.svelte-yg26u3 {font-size:var(--font-body-s, 0.875rem);line-height:var(--line-height-s, 1.3);font-weight:var(--font-weight-regular, 400);color:var(--popover-color-text-standard, #000000);margin:0;}.mc-popover__footer.svelte-yg26u3 {display:flex;justify-content:end;gap:1rem;}.mc-popover--inverse.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {background-color:var(--popover-color-background-inverse, #242938);border-color:var(--popover-color-border-inverse, #636d88);}.mc-popover--inverse.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {background-color:var(--popover-color-border-inverse, #636d88);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;}.mc-popover--inverse.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::after {background-color:var(--popover-color-background-inverse, #242938);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' height='0.5rem' width='0.5rem' viewBox='0 0 8 8'%3E%3Cpath d='M1.79 3.11l6.21-3.11v8l-6.21-3.11a1 1 0 0 1-.45-1.34 1 1 0 0 1 .45-.44z'/%3E%3C/svg%3E") no-repeat center/contain;}.mc-popover--inverse.svelte-yg26u3 .mc-popover__title:where(.svelte-yg26u3), .mc-popover--inverse.svelte-yg26u3 .mc-popover__description:where(.svelte-yg26u3) {color:var(--popover-color-text-inverse, #ffffff);}.mc-popover--s.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {width:18rem;}.mc-popover--m.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {width:27.75rem;}.mc-popover--l.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {width:37.5rem;}.mc-popover--top.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {margin:0 0 10px;inset:auto;position-area:top;}.mc-popover--top.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::after, .mc-popover--top.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {bottom:0;left:50%;transform:translate(-50%, 100%) rotate(-90deg);}.mc-popover--top.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {bottom:-1px;}.mc-popover--right.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {margin:0 0 0 10px;inset:auto;position-area:right;}.mc-popover--right.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::after, .mc-popover--right.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {top:50%;left:0;transform:translate(-99%, -50%);}.mc-popover--right.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {left:-1px;}.mc-popover--left.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {margin:0 10px 0 0;inset:auto;position-area:left;}.mc-popover--left.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::after, .mc-popover--left.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {top:50%;right:0;transform:translate(99%, -50%) rotate(180deg);}.mc-popover--left.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {right:-1px;}.mc-popover--bottom.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3) {margin:10px 0 0;inset:auto;position-area:bottom;}.mc-popover--bottom.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::after, .mc-popover--bottom.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {top:0;left:50%;transform:translate(-50%, -100%) rotate(90deg);}.mc-popover--bottom.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {top:-1px;}.mc-popover--no-pointer.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::after, .mc-popover--no-pointer.svelte-yg26u3 .mc-popover__wrapper:where(.svelte-yg26u3)::before {background:none;}`};function he(S,r){re(r,!0),oe(S,we);let l=s(r,"open",15),x=s(r,"appearance",7,"standard"),E=s(r,"position",7,"top"),z=s(r,"pointer",7,!0),B=s(r,"size",7,"s"),M=s(r,"closable",7,!0),c=s(r,"title",7),m=s(r,"description",7);const w=crypto.randomUUID();let P,d,g;function N(){!d||!g||(l()?(d.showPopover({source:g}),d.focus()):d.hidePopover({source:g}))}function q(e){const a=e.composedPath?e.composedPath():[];!a.includes(P)&&!a.includes(g)&&l(!1)}function Q(e){e.key==="Escape"&&l(!1)}te(N),ie(()=>(document.addEventListener("mousedown",q),()=>{document.removeEventListener("mousedown",q)}));var R={get open(){return l()},set open(e){l(e),v()},get appearance(){return x()},set appearance(e="standard"){x(e),v()},get position(){return E()},set position(e="top"){E(e),v()},get pointer(){return z()},set pointer(e=!0){z(e),v()},get size(){return B()},set size(e="s"){B(e),v()},get closable(){return M()},set closable(e=!0){M(e),v()},get title(){return c()},set title(e){c(e),v()},get description(){return m()},set description(e){m(e),v()}},h=ue(),k=o(h),T=o(k);K(T,r,"activator",{},null),t(k),O(k,e=>g=e,()=>g);var i=f(k,2),A=o(i),F=o(A);{var V=e=>{var a=de(),u=o(a);{var j=n=>{var p=ce(),L=o(p,!0);t(p),U(()=>{y(p,"id",`${w}-title`),J(L,c())}),_(n,p)};C(u,n=>{c()&&n(j)})}var D=f(u,2);{var Z=n=>{var p=me(),L=o(p,!0);t(p),U(()=>{y(p,"id",`${w}-description`),J(L,m())}),_(n,p)};C(D,n=>{m()&&n(Z)})}t(a),_(e,a)};C(F,e=>{(c()||m())&&e(V)})}var I=f(F,2),W=o(I);K(W,r,"default",{},null),t(I);var G=f(I,2);{var X=e=>{const a=D=>{le(D,{})};var u=ge(),j=o(u);ne(j,{ghost:!0,get icon(){return a},get appearance(){return x()},iconposition:"only","aria-label":"Close button",onclick:()=>l(!1)}),t(u),_(e,u)};C(G,e=>{M()&&e(X)})}var H=f(G,2),Y=o(H);return K(Y,r,"footer",{},null),t(H),t(A),t(i),O(i,e=>d=e,()=>d),t(h),O(h,e=>P=e,()=>P),U(()=>{se(h,1,ve({"mc-popover":!0,[`mc-popover--${x()}`]:!0,[`mc-popover--${E()}`]:!0,"mc-popover--no-pointer":!z(),[`mc-popover--${B()}`]:!0}),"svelte-yg26u3"),y(i,"id",`popover-${w}`),y(i,"aria-labelledby",c()?`${w}-title`:void 0),y(i,"aria-describedby",m()?`${w}-description`:void 0)}),pe("keydown",i,Q),_(S,h),ae(R)}$(["keydown"]);customElements.define("m-popover",ee(he,{open:{attribute:"open",reflect:!0,type:"Boolean"},pointer:{attribute:"pointer",reflect:!0,type:"Boolean"},closable:{attribute:"closable",reflect:!0,type:"Boolean"},appearance:{},position:{},size:{},title:{},description:{}},["activator","default","footer"],[],{mode:"open"}));
6
+ //# sourceMappingURL=Popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.js","sources":["../../../src/components/popover/Popover.svelte"],"sourcesContent":["<svelte:options\n customElement={{\n tag: 'm-popover',\n props: {\n open: { reflect: true, type: 'Boolean', attribute: 'open' },\n pointer: { reflect: true, type: 'Boolean', attribute: 'pointer' },\n closable: { reflect: true, type: 'Boolean', attribute: 'closable' },\n },\n }}\n/>\n\n<script lang=\"ts\">\n import { onMount } from 'svelte';\n import IconButton from '../iconbutton/IconButton.svelte';\n import { Cross20 } from '@mozaic-ds/icons-svelte';\n\n /**\n * A popover is a small overlay that appears above other content, typically triggered by a user interaction such as clicking or hovering over an element. It is used to display contextual information, additional actions, or interactive content without navigating away from the main interface. Popovers often include a title, description, and action buttons, and they automatically close when clicking outside or selecting an action.\n * \n * @slot default - Main content of the popover.\n * @slot footer - Use this slot to insert buttons or link in the footer.\n * @slot activator - Activator element that triggers the popover.\n */\n\n interface Props {\n /**\n * If `true`, display the popover.\n */\n open: boolean;\n /**\n * Allows to define the popover appearance.\n */\n appearance?: 'standard' | 'inverse';\n /**\n * Defines the preferred position of the popover relative to its activator.\n */\n position?: 'top' | 'right' | 'bottom' | 'left';\n /**\n * Controls the visibility of the popover pointer (arrow).\n */\n pointer?: boolean;\n /**\n * Determines the size of the popover.\n */\n size?: 's' | 'm' | 'l';\n /**\n * if `true`, display the close button.\n */\n closable?: boolean;\n /**\n * Title displayed at the top of the popover.\n */\n title?: string;\n /**\n * Supplementary text displayed below the title.\n */\n description?: string;\n }\n\n let {\n open = $bindable(),\n appearance = 'standard',\n position = 'top',\n pointer = true,\n size = 's',\n closable = true,\n title,\n description,\n }: Props = $props();\n\n // TODO: Remove when typescript is up to date\n type PopoverOptions = {\n source: HTMLElement;\n };\n\n type Popover = {\n showPopover: (options?: PopoverOptions) => void;\n hidePopover: (options?: PopoverOptions) => void;\n };\n\n const id = crypto.randomUUID();\n\n let element: HTMLElement;\n let popover: HTMLElement;\n let activator: HTMLElement;\n\n function togglePopover() {\n if (!popover || !activator) return;\n\n if (open) {\n (popover as Popover).showPopover({ source: activator });\n popover.focus();\n } else {\n (popover as Popover).hidePopover({ source: activator });\n }\n }\n\n function handleClickOutside(event: MouseEvent) {\n const path = event.composedPath ? event.composedPath() : [];\n if (!path.includes(element) && !path.includes(activator)) {\n open = false;\n }\n }\n\n function onKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n open = false;\n }\n }\n\n $effect(togglePopover);\n\n onMount(() => {\n document.addEventListener('mousedown', handleClickOutside);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n });\n</script>\n\n<div\n bind:this={element}\n class={{\n 'mc-popover': true,\n [`mc-popover--${appearance}`]: true,\n [`mc-popover--${position}`]: true,\n 'mc-popover--no-pointer': !pointer,\n [`mc-popover--${size}`]: true,\n }}\n>\n <div bind:this={activator}>\n <slot name=\"activator\" />\n </div>\n\n <div\n bind:this={popover}\n id={`popover-${id}`}\n role=\"dialog\"\n tabindex=\"0\"\n class=\"mc-popover__wrapper\"\n popover=\"manual\"\n aria-labelledby={title ? `${id}-title` : undefined}\n aria-describedby={description ? `${id}-description` : undefined}\n onkeydown={onKeydown}\n >\n <div class=\"mc-popover__content\">\n {#if title || description}\n <div class=\"mc-popover__headings\">\n {#if title}\n <p id={`${id}-title`} class=\"mc-popover__title\">\n {title}\n </p>\n {/if}\n\n {#if description}\n <p id={`${id}-description`} class=\"mc-popover__description\">\n {description}\n </p>\n {/if}\n </div>\n {/if}\n\n <div>\n <slot />\n </div>\n\n {#if closable}\n {#snippet icon()}\n <Cross20 />\n {/snippet}\n <div class=\"mc-popover__close\">\n <IconButton\n ghost\n {icon}\n appearance={appearance}\n iconposition=\"only\"\n aria-label=\"Close button\"\n onclick={() => (open = false)}\n />\n </div>\n {/if}\n \n <footer class=\"mc-popover__footer\">\n <slot name=\"footer\" />\n </footer>\n </div>\n </div>\n</div>\n\n<style lang=\"scss\">\n @use '@mozaic-ds/styles/components/popover';\n</style>\n"],"names":["open","$.prop","$$props","appearance","position","pointer","size","closable","title","description","id","element","popover","activator","togglePopover","handleClickOutside","event","path","onKeydown","$.user_effect","onMount","div","root","div_1","$.child","$$value","div_2","$.sibling","div_3","div_4","root_1","root_2","$.set_attribute","$$render","consequent","p_1","root_3","consequent_1","consequent_2","div_5","node_1","icon","$$anchor","Cross20","div_6","root_4","IconButton","node_6","consequent_3","footer","node_5","$.reset","$.delegated","$.append"],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { render, fireEvent } from '@testing-library/svelte';
2
+ import Popover from './Popover.svelte';
3
+ import { vi, describe, it, beforeAll, expect } from 'vitest';
4
+ beforeAll(() => {
5
+ HTMLElement.prototype.showPopover = vi.fn();
6
+ HTMLElement.prototype.hidePopover = vi.fn();
7
+ });
8
+ describe('m-popover', () => {
9
+ it('renders with default props', () => {
10
+ const { container } = render(Popover, { open: false });
11
+ const popover = container.querySelector('.mc-popover');
12
+ expect(popover).not.toBeNull();
13
+ expect(popover?.classList.contains('mc-popover--standard')).toBe(true);
14
+ expect(popover?.classList.contains('mc-popover--top')).toBe(true);
15
+ expect(popover?.classList.contains('mc-popover--s')).toBe(true);
16
+ expect(popover?.classList.contains('mc-popover--no-pointer')).toBe(false);
17
+ });
18
+ it('applies appearance, pointer, closable props', () => {
19
+ const { container } = render(Popover, {
20
+ open: true,
21
+ appearance: 'inverse',
22
+ pointer: false,
23
+ closable: true,
24
+ });
25
+ const popover = container.querySelector('.mc-popover');
26
+ expect(popover?.classList.contains('mc-popover--inverse')).toBe(true);
27
+ expect(popover?.classList.contains('mc-popover--no-pointer')).toBe(true);
28
+ const closeButton = container.querySelector('.mc-popover__close button');
29
+ expect(closeButton).not.toBeNull();
30
+ });
31
+ it('renders title and description', () => {
32
+ const { container } = render(Popover, {
33
+ open: true,
34
+ title: 'My Title',
35
+ description: 'My Description',
36
+ });
37
+ const titleEl = container.querySelector('.mc-popover__title');
38
+ const descEl = container.querySelector('.mc-popover__description');
39
+ expect(titleEl?.textContent).toBe('My Title');
40
+ expect(descEl?.textContent).toBe('My Description');
41
+ });
42
+ it('closes popover when clicking close button', async () => {
43
+ const { container } = render(Popover, { open: true, closable: true });
44
+ const popoverWrapper = container.querySelector('.mc-popover__wrapper');
45
+ popoverWrapper.showPopover = vi.fn();
46
+ popoverWrapper.hidePopover = vi.fn();
47
+ const closeButton = container.querySelector('.mc-popover__close button');
48
+ expect(closeButton).not.toBeNull();
49
+ await fireEvent.click(closeButton);
50
+ // L'état open devient false, popover existe toujours
51
+ expect(popoverWrapper).not.toBeNull();
52
+ });
53
+ it('closes popover when pressing Escape', async () => {
54
+ const { container } = render(Popover, { open: true });
55
+ const popoverWrapper = container.querySelector('.mc-popover__wrapper');
56
+ popoverWrapper.showPopover = vi.fn();
57
+ popoverWrapper.hidePopover = vi.fn();
58
+ await fireEvent.keyDown(popoverWrapper, { key: 'Escape' });
59
+ expect(popoverWrapper).not.toBeNull();
60
+ });
61
+ it('closes popover when clicking outside', async () => {
62
+ const { container } = render(Popover, { open: true });
63
+ const popoverWrapper = container.querySelector('.mc-popover__wrapper');
64
+ popoverWrapper.showPopover = vi.fn();
65
+ popoverWrapper.hidePopover = vi.fn();
66
+ await fireEvent.mouseDown(document.body);
67
+ expect(popoverWrapper).not.toBeNull();
68
+ });
69
+ });
@@ -0,0 +1,36 @@
1
+ import type { Meta, StoryObj } from '@storybook/web-components-vite';
2
+ import './Popover.svelte';
3
+ import '../button/Button.svelte';
4
+ import '../link/Link.svelte';
5
+ import '@mozaic-ds/icons-svelte/components/ExternalLink24/ExternalLink24.svelte';
6
+ declare const meta: Meta;
7
+ export default meta;
8
+ type Story = StoryObj;
9
+ export declare const Default: Story;
10
+ export declare const Inverse: {
11
+ args: {
12
+ appearance: string;
13
+ footer: string;
14
+ };
15
+ };
16
+ export declare const ValidationOnly: {
17
+ args: {
18
+ footer: string;
19
+ };
20
+ };
21
+ export declare const TwoOptions: {
22
+ args: {
23
+ footer: string;
24
+ };
25
+ };
26
+ export declare const Link: {
27
+ args: {
28
+ footer: string;
29
+ };
30
+ };
31
+ export declare const Navigation: {
32
+ args: {
33
+ footer: string;
34
+ };
35
+ };
36
+ //# sourceMappingURL=Popover.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.stories.d.ts","sourceRoot":"","sources":["../../../src/components/popover/Popover.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,kBAAkB,CAAC;AAC1B,OAAO,yBAAyB,CAAC;AACjC,OAAO,qBAAqB,CAAA;AAC5B,OAAO,yEAAyE,CAAC;AAEjF,QAAA,MAAM,IAAI,EAAE,IAyDX,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,OAAO;;;;;CAanB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;CAQ1B,CAAC;AAEF,eAAO,MAAM,UAAU;;;;CAWtB,CAAC;AAEF,eAAO,MAAM,IAAI;;;;CAYhB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;CAStB,CAAC"}