atomicuilibrary 0.0.1 → 0.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 (395) hide show
  1. package/dist/cjs/category-section.cjs.entry.js +1 -1
  2. package/dist/cjs/exploration-project-tailwind.cjs.js +1 -1
  3. package/dist/cjs/layout-manager.cjs.entry.js +1 -1
  4. package/dist/cjs/library-card.cjs.entry.js +1 -1
  5. package/dist/cjs/lm-container_2.cjs.entry.js +1 -1
  6. package/dist/cjs/lm-panel_3.cjs.entry.js +4 -4
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/my-step.cjs.entry.js +1 -1
  9. package/dist/cjs/nav-bar.cjs.entry.js +2 -2
  10. package/dist/cjs/{security-E1JcwxGc.js → security-CNaNip8F.js} +88 -154
  11. package/dist/cjs/smart-step.cjs.entry.js +2 -2
  12. package/dist/cjs/timeline-item.cjs.entry.js +1 -1
  13. package/dist/cjs/{ui-accordion_10.cjs.entry.js → ui-accordion_11.cjs.entry.js} +613 -26
  14. package/dist/cjs/ui-advanced-data-table.cjs.entry.js +1 -1
  15. package/dist/cjs/ui-anchor.cjs.entry.js +1 -1
  16. package/dist/cjs/ui-aside-panel.cjs.entry.js +5 -5
  17. package/dist/cjs/ui-avatar-group_3.cjs.entry.js +5 -5
  18. package/dist/cjs/ui-callout-banner.cjs.entry.js +1 -1
  19. package/dist/cjs/ui-card.cjs.entry.js +26 -4
  20. package/dist/cjs/ui-checkbox.cjs.entry.js +2 -2
  21. package/dist/cjs/ui-code-editor.cjs.entry.js +2 -2
  22. package/dist/cjs/ui-code-preview.cjs.entry.js +1 -1
  23. package/dist/cjs/ui-color-controller.cjs.entry.js +1 -1
  24. package/dist/cjs/ui-dialog-box.cjs.entry.js +1 -1
  25. package/dist/cjs/ui-dock-host.cjs.entry.js +3 -3
  26. package/dist/cjs/ui-drag-drop.cjs.entry.js +1 -1
  27. package/dist/cjs/ui-empty-state.cjs.entry.js +1 -1
  28. package/dist/cjs/ui-fab-item.cjs.entry.js +1 -1
  29. package/dist/cjs/ui-fab.cjs.entry.js +2 -2
  30. package/dist/cjs/ui-library.cjs.entry.js +1 -1
  31. package/dist/cjs/ui-list-group_2.cjs.entry.js +9 -5
  32. package/dist/cjs/ui-list.cjs.entry.js +4 -4
  33. package/dist/cjs/ui-navigation-item.cjs.entry.js +3 -3
  34. package/dist/cjs/ui-otp-input.cjs.entry.js +2 -2
  35. package/dist/cjs/{ui-pagination_3.cjs.entry.js → ui-pagination_4.cjs.entry.js} +202 -0
  36. package/dist/cjs/ui-pattern-input.cjs.entry.js +5 -5
  37. package/dist/cjs/ui-popover.cjs.entry.js +1 -1
  38. package/dist/cjs/ui-progress.cjs.entry.js +101 -17
  39. package/dist/cjs/ui-resizable-panel.cjs.entry.js +1 -1
  40. package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +2 -2
  41. package/dist/cjs/ui-smart-stepper.cjs.entry.js +1 -1
  42. package/dist/cjs/ui-snackbar.cjs.entry.js +1 -1
  43. package/dist/cjs/ui-step.cjs.entry.js +1 -1
  44. package/dist/cjs/ui-stepper.cjs.entry.js +1 -1
  45. package/dist/cjs/ui-switch.cjs.entry.js +9 -9
  46. package/dist/cjs/ui-tabs.cjs.entry.js +1 -1
  47. package/dist/cjs/ui-timeline.cjs.entry.js +1 -1
  48. package/dist/cjs/ui-toolbar.cjs.entry.js +1 -1
  49. package/dist/cjs/ui-tooltip.cjs.entry.js +4 -4
  50. package/dist/cjs/ui-transfer-list.cjs.entry.js +1 -1
  51. package/dist/cjs/ui-workspace-manager.cjs.entry.js +1 -1
  52. package/dist/collection/assets/js/demo-loader.js +0 -1
  53. package/dist/collection/assets/js/demos/accordion-demo.js +189 -0
  54. package/dist/collection/assets/js/demos/advanced-data-table-demo.js +213 -214
  55. package/dist/collection/assets/js/demos/aside-panel-demo.js +6 -6
  56. package/dist/collection/assets/js/demos/button-demo.js +60 -1
  57. package/dist/collection/assets/js/demos/callout-banner-demo.js +324 -34
  58. package/dist/collection/assets/js/demos/card-demo.js +108 -61
  59. package/dist/collection/assets/js/demos/context-menu-demo.js +433 -12
  60. package/dist/collection/assets/js/demos/dock-demo.js +80 -60
  61. package/dist/collection/assets/js/demos/documentation-demo.js +227 -22
  62. package/dist/collection/assets/js/demos/empty-state-demo.js +10 -10
  63. package/dist/collection/assets/js/demos/list-demo.js +41 -18
  64. package/dist/collection/assets/js/demos/masonry-demo.js +164 -0
  65. package/dist/collection/assets/js/demos/progress-demo.js +701 -8
  66. package/dist/collection/assets/js/demos/radio-demo.js +1 -1
  67. package/dist/collection/assets/js/demos/splitter-demo.js +137 -0
  68. package/dist/collection/assets/js/demos/tag-demo.js +48 -18
  69. package/dist/collection/assets/js/demos/timeline-demo.js +20 -7
  70. package/dist/collection/assets/js/demos/tooltip-demo.js +26 -26
  71. package/dist/collection/assets/js/demos/tree-demo.js +28 -10
  72. package/dist/collection/collection-manifest.json +1 -4
  73. package/dist/collection/components/accordion/accordion.css +301 -0
  74. package/dist/collection/components/accordion/accordion.js +40 -8
  75. package/dist/collection/components/advanced-data-table/advanced-data-table.css +19 -5
  76. package/dist/collection/components/anchor/anchor.css +0 -2
  77. package/dist/collection/components/aside-panel/aside-panel.css +1 -3
  78. package/dist/collection/components/aside-panel/aside-panel.js +5 -5
  79. package/dist/collection/components/avatar/avatar.js +1 -1
  80. package/dist/collection/components/badge/badge.css +1 -0
  81. package/dist/collection/components/badge/badge.js +1 -1
  82. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  83. package/dist/collection/components/button/button.css +131 -0
  84. package/dist/collection/components/button/button.js +128 -9
  85. package/dist/collection/components/card/card.css +83 -31
  86. package/dist/collection/components/card/card.js +46 -3
  87. package/dist/collection/components/checkbox/checkbox.css +8 -10
  88. package/dist/collection/components/checkbox/checkbox.js +2 -2
  89. package/dist/collection/components/code-editor/code-editor.js +1 -1
  90. package/dist/collection/components/code-preview/ui-code-preview.js +1 -1
  91. package/dist/collection/components/color-controller/color-controller.js +1 -1
  92. package/dist/collection/components/context-menu/context-menu.css +3 -3
  93. package/dist/collection/components/dialog-box/dialog-box.js +1 -1
  94. package/dist/collection/components/dialog-header/dialog-header.js +1 -1
  95. package/dist/collection/components/dock-host/ui-dock-host.js +3 -3
  96. package/dist/collection/components/drag-drop/drag-drop.js +1 -1
  97. package/dist/collection/components/empty-state/empty-state.js +1 -1
  98. package/dist/collection/components/fab/fab.js +2 -2
  99. package/dist/collection/components/fab-item/fab-item.js +1 -1
  100. package/dist/collection/components/horizontal-nav/horizontal-nav.js +2 -2
  101. package/dist/collection/components/icon/icon.js +1 -1
  102. package/dist/collection/components/input/input.js +4 -4
  103. package/dist/collection/components/layout-manager/layout-manager.js +1 -1
  104. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +1 -1
  105. package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +1 -1
  106. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +1 -1
  107. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +1 -1
  108. package/dist/collection/components/library/category-section.js +1 -1
  109. package/dist/collection/components/library/library-card.js +1 -1
  110. package/dist/collection/components/library/library.js +1 -1
  111. package/dist/collection/components/list/list.js +4 -4
  112. package/dist/collection/components/list-item/list-item.css +24 -0
  113. package/dist/collection/components/list-item/list-item.js +35 -4
  114. package/dist/collection/components/loader/loader.css +1635 -0
  115. package/dist/collection/components/loader/loader.js +1120 -0
  116. package/dist/collection/components/my-step/my-step.js +1 -1
  117. package/dist/collection/components/nav-bar/nav-bar.js +6 -6
  118. package/dist/collection/components/otp-input/otp-input.js +2 -2
  119. package/dist/collection/components/pattern-input/pattern-input.js +5 -5
  120. package/dist/collection/components/progress/progress.css +150 -15
  121. package/dist/collection/components/progress/progress.js +180 -18
  122. package/dist/collection/components/radio/radio.css +3 -3
  123. package/dist/collection/components/radio/radio.js +1 -1
  124. package/dist/collection/components/resizable-panel/resizable-panel.js +1 -1
  125. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +2 -2
  126. package/dist/collection/components/smart-stepper/smart-step.js +2 -2
  127. package/dist/collection/components/smart-stepper/smart-stepper.js +1 -1
  128. package/dist/collection/components/snackbar/snackbar.js +1 -1
  129. package/dist/collection/components/speed-dial/speed-dial.js +1 -1
  130. package/dist/collection/components/stack/stack.js +2 -2
  131. package/dist/collection/components/step/step.js +1 -1
  132. package/dist/collection/components/switch/switch.js +10 -10
  133. package/dist/collection/components/tag-group/tag-group.js +2 -2
  134. package/dist/collection/components/timeline-item/timeline-item.js +1 -1
  135. package/dist/collection/components/toolbar/toolbar.js +1 -1
  136. package/dist/collection/components/tooltip/tooltip.js +3 -3
  137. package/dist/collection/components/top-bar/top-bar.js +2 -2
  138. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +19 -4
  139. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +6 -6
  140. package/dist/collection/components/ui-navigation-bar/navigation-item.js +3 -3
  141. package/dist/collection/components.js +1 -0
  142. package/dist/components/avatar-group.js +1 -1
  143. package/dist/components/avatar.js +1 -1
  144. package/dist/components/badge.js +1 -1
  145. package/dist/components/button-toggle.js +1 -1
  146. package/dist/components/category-section2.js +1 -1
  147. package/dist/components/checkbox.js +1 -1
  148. package/dist/components/context-menu.js +1 -1
  149. package/dist/components/dialog-header.js +1 -1
  150. package/dist/components/dropdown.js +1 -1
  151. package/dist/components/icon.js +2 -2
  152. package/dist/components/input.js +1 -1
  153. package/dist/components/layout-manager.js +1 -1
  154. package/dist/components/library-card2.js +1 -1
  155. package/dist/components/list-group.js +1 -1
  156. package/dist/components/list-item.js +1 -1
  157. package/dist/components/lm-container2.js +1 -1
  158. package/dist/components/lm-floating-window2.js +1 -1
  159. package/dist/components/lm-panel2.js +1 -1
  160. package/dist/components/lm-splitter2.js +1 -1
  161. package/dist/components/lm-tabs2.js +1 -1
  162. package/dist/components/loader.js +1 -0
  163. package/dist/components/my-step.js +1 -1
  164. package/dist/components/nav-bar.js +1 -1
  165. package/dist/components/pagination.js +1 -1
  166. package/dist/components/radio.js +1 -1
  167. package/dist/components/range-slider.js +1 -1
  168. package/dist/components/rating.js +1 -1
  169. package/dist/components/resizable-panel.js +1 -1
  170. package/dist/components/skeleton-loader.js +1 -1
  171. package/dist/components/smart-step.js +1 -1
  172. package/dist/components/stack.js +1 -1
  173. package/dist/components/switch.js +1 -1
  174. package/dist/components/tag-group.js +1 -1
  175. package/dist/components/tag.js +1 -1
  176. package/dist/components/timeline-item.js +1 -1
  177. package/dist/components/toggle-group.js +1 -1
  178. package/dist/components/tooltip.js +1 -1
  179. package/dist/components/ui-accordion.js +1 -1
  180. package/dist/components/ui-advanced-data-table.js +1 -1
  181. package/dist/components/ui-anchor.js +1 -1
  182. package/dist/components/ui-aside-panel.js +1 -1
  183. package/dist/components/ui-breadcrumb-item.js +1 -1
  184. package/dist/components/ui-breadcrumb.js +1 -1
  185. package/dist/components/ui-button-toggle-group.js +1 -1
  186. package/dist/components/ui-callout-banner.js +1 -1
  187. package/dist/components/ui-card.js +1 -1
  188. package/dist/components/ui-carousel.js +1 -1
  189. package/dist/components/ui-code-editor.js +1 -1
  190. package/dist/components/ui-code-preview.js +1 -1
  191. package/dist/components/ui-color-controller.js +1 -1
  192. package/dist/components/ui-color-picker.js +1 -1
  193. package/dist/components/ui-command-palette.js +1 -1
  194. package/dist/components/ui-dialog-box.js +1 -1
  195. package/dist/components/ui-divider.js +1 -1
  196. package/dist/components/ui-dock-host.js +1 -1
  197. package/dist/components/ui-dock.js +1 -1
  198. package/dist/components/ui-drag-drop.js +1 -1
  199. package/dist/components/ui-empty-state.js +1 -1
  200. package/dist/components/ui-fab-item.js +1 -1
  201. package/dist/components/ui-fab.js +1 -1
  202. package/dist/components/ui-file-upload.js +1 -1
  203. package/dist/components/ui-horizontal-nav.js +1 -1
  204. package/dist/components/ui-knob.js +1 -1
  205. package/dist/components/ui-library.js +1 -1
  206. package/dist/components/ui-list.js +1 -1
  207. package/dist/components/{ui-input-pair.d.ts → ui-loader.d.ts} +4 -4
  208. package/dist/components/ui-loader.js +1 -0
  209. package/dist/components/ui-masonry.js +1 -1
  210. package/dist/components/ui-meter-group.js +1 -1
  211. package/dist/components/ui-navigation-bar.js +1 -1
  212. package/dist/components/ui-navigation-item.js +1 -1
  213. package/dist/components/ui-number-input.js +1 -1
  214. package/dist/components/ui-otp-input.js +1 -1
  215. package/dist/components/ui-panel.js +1 -1
  216. package/dist/components/ui-pattern-input.js +1 -1
  217. package/dist/components/ui-popover.js +1 -1
  218. package/dist/components/ui-progress.js +1 -1
  219. package/dist/components/ui-scroll-top.js +1 -1
  220. package/dist/components/ui-smart-context-menu.js +1 -1
  221. package/dist/components/ui-smart-location-dropdown.js +1 -1
  222. package/dist/components/ui-smart-stepper.js +1 -1
  223. package/dist/components/ui-snackbar.js +1 -1
  224. package/dist/components/ui-speed-dial.js +1 -1
  225. package/dist/components/ui-splitter.js +1 -1
  226. package/dist/components/ui-step.js +1 -1
  227. package/dist/components/ui-stepper.js +1 -1
  228. package/dist/components/ui-tabs.js +1 -1
  229. package/dist/components/ui-timeline.js +1 -1
  230. package/dist/components/ui-timer.js +1 -1
  231. package/dist/components/ui-toolbar.js +1 -1
  232. package/dist/components/ui-top-bar.js +1 -1
  233. package/dist/components/ui-transfer-list.js +1 -1
  234. package/dist/components/ui-tree.js +1 -1
  235. package/dist/components/ui-workspace-manager.js +1 -1
  236. package/dist/esm/category-section.entry.js +1 -1
  237. package/dist/esm/exploration-project-tailwind.js +1 -1
  238. package/dist/esm/layout-manager.entry.js +1 -1
  239. package/dist/esm/library-card.entry.js +1 -1
  240. package/dist/esm/lm-container_2.entry.js +1 -1
  241. package/dist/esm/lm-panel_3.entry.js +4 -4
  242. package/dist/esm/loader.js +1 -1
  243. package/dist/esm/my-step.entry.js +1 -1
  244. package/dist/esm/nav-bar.entry.js +2 -2
  245. package/dist/esm/{security-D2WzX6vR.js → security-Dyu3Nplq.js} +88 -154
  246. package/dist/esm/smart-step.entry.js +2 -2
  247. package/dist/esm/timeline-item.entry.js +1 -1
  248. package/dist/esm/{ui-accordion_10.entry.js → ui-accordion_11.entry.js} +613 -27
  249. package/dist/esm/ui-advanced-data-table.entry.js +1 -1
  250. package/dist/esm/ui-anchor.entry.js +1 -1
  251. package/dist/esm/ui-aside-panel.entry.js +5 -5
  252. package/dist/esm/ui-avatar-group_3.entry.js +5 -5
  253. package/dist/esm/ui-callout-banner.entry.js +1 -1
  254. package/dist/esm/ui-card.entry.js +26 -4
  255. package/dist/esm/ui-checkbox.entry.js +2 -2
  256. package/dist/esm/ui-code-editor.entry.js +2 -2
  257. package/dist/esm/ui-code-preview.entry.js +1 -1
  258. package/dist/esm/ui-color-controller.entry.js +1 -1
  259. package/dist/esm/ui-dialog-box.entry.js +1 -1
  260. package/dist/esm/ui-dock-host.entry.js +3 -3
  261. package/dist/esm/ui-drag-drop.entry.js +1 -1
  262. package/dist/esm/ui-empty-state.entry.js +1 -1
  263. package/dist/esm/ui-fab-item.entry.js +1 -1
  264. package/dist/esm/ui-fab.entry.js +2 -2
  265. package/dist/esm/ui-library.entry.js +1 -1
  266. package/dist/esm/ui-list-group_2.entry.js +9 -5
  267. package/dist/esm/ui-list.entry.js +4 -4
  268. package/dist/esm/ui-navigation-item.entry.js +3 -3
  269. package/dist/esm/ui-otp-input.entry.js +2 -2
  270. package/dist/esm/{ui-pagination_3.entry.js → ui-pagination_4.entry.js} +202 -1
  271. package/dist/esm/ui-pattern-input.entry.js +5 -5
  272. package/dist/esm/ui-popover.entry.js +1 -1
  273. package/dist/esm/ui-progress.entry.js +101 -17
  274. package/dist/esm/ui-resizable-panel.entry.js +1 -1
  275. package/dist/esm/ui-smart-location-dropdown.entry.js +2 -2
  276. package/dist/esm/ui-smart-stepper.entry.js +1 -1
  277. package/dist/esm/ui-snackbar.entry.js +1 -1
  278. package/dist/esm/ui-step.entry.js +1 -1
  279. package/dist/esm/ui-stepper.entry.js +1 -1
  280. package/dist/esm/ui-switch.entry.js +9 -9
  281. package/dist/esm/ui-tabs.entry.js +1 -1
  282. package/dist/esm/ui-timeline.entry.js +1 -1
  283. package/dist/esm/ui-toolbar.entry.js +1 -1
  284. package/dist/esm/ui-tooltip.entry.js +4 -4
  285. package/dist/esm/ui-transfer-list.entry.js +1 -1
  286. package/dist/esm/ui-workspace-manager.entry.js +1 -1
  287. package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -1
  288. package/dist/exploration-project-tailwind/{p-c7e87fbb.entry.js → p-036d2a44.entry.js} +1 -1
  289. package/dist/exploration-project-tailwind/{p-62352ef2.entry.js → p-05a436d3.entry.js} +1 -1
  290. package/dist/exploration-project-tailwind/{p-a4f52a76.entry.js → p-16bdd162.entry.js} +1 -1
  291. package/dist/exploration-project-tailwind/{p-85bf89fd.entry.js → p-20ecc116.entry.js} +1 -1
  292. package/dist/exploration-project-tailwind/p-2347d21b.entry.js +1 -0
  293. package/dist/exploration-project-tailwind/p-3d381f75.entry.js +1 -0
  294. package/dist/exploration-project-tailwind/{p-e5322e59.entry.js → p-4288c158.entry.js} +1 -1
  295. package/dist/exploration-project-tailwind/{p-2f1aebb3.entry.js → p-4417a9d8.entry.js} +1 -1
  296. package/dist/exploration-project-tailwind/{p-049744f9.entry.js → p-44742ddd.entry.js} +1 -1
  297. package/dist/exploration-project-tailwind/{p-73d29a4a.entry.js → p-4aaa8e40.entry.js} +1 -1
  298. package/dist/exploration-project-tailwind/{p-6fa9dc15.entry.js → p-4bef8bed.entry.js} +1 -1
  299. package/dist/exploration-project-tailwind/{p-64e3a484.entry.js → p-4efd63ce.entry.js} +1 -1
  300. package/dist/exploration-project-tailwind/{p-c5ddc817.entry.js → p-54965530.entry.js} +1 -1
  301. package/dist/exploration-project-tailwind/p-5c835d90.entry.js +1 -0
  302. package/dist/exploration-project-tailwind/{p-4de419d5.entry.js → p-6b838549.entry.js} +1 -1
  303. package/dist/exploration-project-tailwind/{p-c174a372.entry.js → p-6ddbee42.entry.js} +1 -1
  304. package/dist/exploration-project-tailwind/{p-7515b1e3.entry.js → p-70bacda8.entry.js} +1 -1
  305. package/dist/exploration-project-tailwind/{p-9fa70359.entry.js → p-71d95bb1.entry.js} +1 -1
  306. package/dist/exploration-project-tailwind/{p-2d273118.entry.js → p-7889bfc4.entry.js} +1 -1
  307. package/dist/exploration-project-tailwind/{p-0b004861.entry.js → p-790556f0.entry.js} +1 -1
  308. package/dist/exploration-project-tailwind/{p-f5719913.entry.js → p-7ba2258a.entry.js} +1 -1
  309. package/dist/exploration-project-tailwind/{p-81961fb1.entry.js → p-81ebba11.entry.js} +1 -1
  310. package/dist/exploration-project-tailwind/{p-5e3e80ae.entry.js → p-8578b616.entry.js} +1 -1
  311. package/dist/exploration-project-tailwind/{p-3d3d48fd.entry.js → p-8b57fe4e.entry.js} +1 -1
  312. package/dist/exploration-project-tailwind/{p-ffb1754a.entry.js → p-97af03cc.entry.js} +1 -1
  313. package/dist/exploration-project-tailwind/{p-f0830120.entry.js → p-98e91da5.entry.js} +1 -1
  314. package/dist/exploration-project-tailwind/{p-d2308a00.entry.js → p-9bd14f69.entry.js} +1 -1
  315. package/dist/exploration-project-tailwind/p-Dyu3Nplq.js +2 -0
  316. package/dist/exploration-project-tailwind/{p-ba21fed3.entry.js → p-a27f59d2.entry.js} +1 -1
  317. package/dist/exploration-project-tailwind/{p-70d82d79.entry.js → p-a7b07cf4.entry.js} +1 -1
  318. package/dist/exploration-project-tailwind/{p-5508874f.entry.js → p-bd89d060.entry.js} +1 -1
  319. package/dist/exploration-project-tailwind/{p-9d0c8760.entry.js → p-c02284ea.entry.js} +1 -1
  320. package/dist/exploration-project-tailwind/{p-d419eaf0.entry.js → p-c1c8ac28.entry.js} +1 -1
  321. package/dist/exploration-project-tailwind/p-c63c522e.entry.js +1 -0
  322. package/dist/exploration-project-tailwind/{p-c90722ec.entry.js → p-cbee2607.entry.js} +1 -1
  323. package/dist/exploration-project-tailwind/{p-287dbf09.entry.js → p-d114a347.entry.js} +1 -1
  324. package/dist/exploration-project-tailwind/{p-8d951aef.entry.js → p-d2e45c5e.entry.js} +1 -1
  325. package/dist/exploration-project-tailwind/{p-77cc333a.entry.js → p-d59da767.entry.js} +1 -1
  326. package/dist/exploration-project-tailwind/{p-46596a28.entry.js → p-d6ce9721.entry.js} +1 -1
  327. package/dist/exploration-project-tailwind/{p-875be805.entry.js → p-dc92a343.entry.js} +1 -1
  328. package/dist/exploration-project-tailwind/{p-4f6bba75.entry.js → p-e22317c1.entry.js} +1 -1
  329. package/dist/exploration-project-tailwind/{p-d16c9635.entry.js → p-e76318c7.entry.js} +1 -1
  330. package/dist/exploration-project-tailwind/p-e8c6d395.entry.js +1 -0
  331. package/dist/exploration-project-tailwind/{p-c2ca71ac.entry.js → p-eab5ad36.entry.js} +1 -1
  332. package/dist/exploration-project-tailwind/p-f0bc5d7e.entry.js +1 -0
  333. package/dist/exploration-project-tailwind/p-f1beee72.entry.js +1 -0
  334. package/dist/exploration-project-tailwind/p-f543392f.entry.js +1 -0
  335. package/dist/exploration-project-tailwind/{p-46efdea3.entry.js → p-f61cfb7c.entry.js} +1 -1
  336. package/dist/exploration-project-tailwind/{p-77124686.entry.js → p-fb4aca69.entry.js} +1 -1
  337. package/dist/types/components/accordion/accordion.d.ts +10 -2
  338. package/dist/types/components/button/button.d.ts +9 -0
  339. package/dist/types/components/card/card.d.ts +4 -0
  340. package/dist/types/components/list-item/list-item.d.ts +1 -0
  341. package/dist/types/components/loader/loader.d.ts +145 -0
  342. package/dist/types/components/progress/progress.d.ts +34 -2
  343. package/dist/types/components.d.ts +509 -993
  344. package/dist/types/types/common.d.ts +1 -1
  345. package/dist/types/types/common.type.d.ts +1 -1
  346. package/package.json +8 -7
  347. package/dist/cjs/ui-checkbox-group.cjs.entry.js +0 -330
  348. package/dist/cjs/ui-image-button.cjs.entry.js +0 -67
  349. package/dist/cjs/ui-input-pair.cjs.entry.js +0 -44
  350. package/dist/cjs/ui-radio-group.cjs.entry.js +0 -205
  351. package/dist/cjs/ui-radio.cjs.entry.js +0 -206
  352. package/dist/collection/components/checkbox-group/checkbox-group.css +0 -223
  353. package/dist/collection/components/checkbox-group/checkbox-group.js +0 -1001
  354. package/dist/collection/components/checkbox-group/types.js +0 -1
  355. package/dist/collection/components/image-button/image-button.css +0 -154
  356. package/dist/collection/components/image-button/image-button.js +0 -310
  357. package/dist/collection/components/image-button/types.js +0 -1
  358. package/dist/collection/components/input-pair/input-pair.css +0 -72
  359. package/dist/collection/components/input-pair/input-pair.js +0 -309
  360. package/dist/collection/components/radio-group/radio-group.css +0 -202
  361. package/dist/collection/components/radio-group/radio-group.js +0 -903
  362. package/dist/collection/components/radio-group/types.js +0 -1
  363. package/dist/components/ui-checkbox-group.d.ts +0 -11
  364. package/dist/components/ui-checkbox-group.js +0 -1
  365. package/dist/components/ui-image-button.d.ts +0 -11
  366. package/dist/components/ui-image-button.js +0 -1
  367. package/dist/components/ui-input-pair.js +0 -1
  368. package/dist/components/ui-radio-group.d.ts +0 -11
  369. package/dist/components/ui-radio-group.js +0 -1
  370. package/dist/esm/ui-checkbox-group.entry.js +0 -328
  371. package/dist/esm/ui-image-button.entry.js +0 -65
  372. package/dist/esm/ui-input-pair.entry.js +0 -42
  373. package/dist/esm/ui-radio-group.entry.js +0 -203
  374. package/dist/esm/ui-radio.entry.js +0 -204
  375. package/dist/exploration-project-tailwind/p-01c7db7a.entry.js +0 -1
  376. package/dist/exploration-project-tailwind/p-5ce0dbd8.entry.js +0 -1
  377. package/dist/exploration-project-tailwind/p-6ab80ead.entry.js +0 -1
  378. package/dist/exploration-project-tailwind/p-6e9694f2.entry.js +0 -1
  379. package/dist/exploration-project-tailwind/p-7376ac95.entry.js +0 -1
  380. package/dist/exploration-project-tailwind/p-77a21491.entry.js +0 -1
  381. package/dist/exploration-project-tailwind/p-7f91d949.entry.js +0 -1
  382. package/dist/exploration-project-tailwind/p-807c6555.entry.js +0 -1
  383. package/dist/exploration-project-tailwind/p-D2WzX6vR.js +0 -2
  384. package/dist/exploration-project-tailwind/p-ab752761.entry.js +0 -1
  385. package/dist/exploration-project-tailwind/p-ce1222a1.entry.js +0 -1
  386. package/dist/exploration-project-tailwind/p-e90d5307.entry.js +0 -1
  387. package/dist/exploration-project-tailwind/p-ecda1cc3.entry.js +0 -1
  388. package/dist/exploration-project-tailwind/p-f11e5cae.entry.js +0 -1
  389. package/dist/types/components/checkbox-group/checkbox-group.d.ts +0 -87
  390. package/dist/types/components/checkbox-group/types.d.ts +0 -8
  391. package/dist/types/components/image-button/image-button.d.ts +0 -31
  392. package/dist/types/components/image-button/types.d.ts +0 -1
  393. package/dist/types/components/input-pair/input-pair.d.ts +0 -28
  394. package/dist/types/components/radio-group/radio-group.d.ts +0 -74
  395. package/dist/types/components/radio-group/types.d.ts +0 -2
@@ -1 +1 @@
1
- import{proxyCustomElement as t,HTMLElement as o,h as s,Host as i,transformTag as r}from"@stencil/core/internal/client";import{d as e,a as l}from"./badge.js";import{d as a}from"./icon.js";const n=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}get el(){return this}mode="top";threshold=300;behavior="smooth";position="bottom-right";quickJump=!1;strategy="fixed";icon="arrow-up";label;size="md";color="primary";variant="solid";target;showProgress=!1;progressColor;showProgressValue=!1;glassy=!1;magnetic=!1;magneticStrength=.3;magneticRadius=150;autoHide=!1;persistenceId;onPersistenceIdChange(){this.loadPersistedPosition()}isDraggable=!1;autoHideHoldTime=3e3;shape="rounded";iconLibrary="default";animation="scale";tooltip;zIndex=1e3;portal=!1;haptic=!1;skeleton=!1;loading=!1;textDirection="auto";isVisible=!1;isUserScrolling=!1;scrollProgress=0;dir="ltr";pulse=!1;anchors=[];isMenuOpen=!1;magneticTransform={x:0,y:0};dragOffset={x:0,y:0};isDragging=!1;targetElement;autoHideTimer;pulseTimer;dragStartPos={x:0,y:0};initialOffset={x:0,y:0};handleModeChange(){this.triggerPulse()}onTextDirectionChange(){this.updateDir()}componentWillLoad(){this.updateDir(),this.loadPersistedPosition(),this.computeScrollState(document.documentElement,window.pageYOffset??document.documentElement?.scrollTop??0)}componentDidLoad(){this.portal&&document.body&&this.el.parentNode!==document.body&&document.body.appendChild(this.el),this.initTarget()}componentDidUpdate(){this.targetElement||this.initTarget()}scanAnchors(){if(!this.quickJump)return;const t=Array.from(document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id], [data-ui-anchor]"));this.anchors=t.map((t=>({title:t.getAttribute("data-ui-anchor-title")||t.textContent.trim(),id:t.id||(t.hasAttribute("data-ui-anchor")?t.getAttribute("data-ui-anchor")??"":"")}))).filter((t=>!!t.id&&!!t.title))}loadPersistedPosition(){if(this.persistenceId&&this.isDraggable){const t=localStorage.getItem("ui-scroll-top-pos-"+this.persistenceId);if(t)try{this.dragOffset=JSON.parse(t)}catch(t){console.error("Failed to load ScrollTop position",t)}}}savePersistedPosition(){this.persistenceId&&this.isDraggable&&localStorage.setItem("ui-scroll-top-pos-"+this.persistenceId,JSON.stringify(this.dragOffset))}triggerPulse(){this.pulse=!0,this.pulseTimer&&clearTimeout(this.pulseTimer),this.pulseTimer=setTimeout((()=>this.pulse=!1),600)}updateDir(){if("rtl"===this.textDirection)this.dir="rtl";else if("ltr"===this.textDirection)this.dir="ltr";else{const t=getComputedStyle(this.el).direction;this.dir="rtl"===t?"rtl":"ltr"}}initTarget(){if(this.targetElement=this.target?document.querySelector(this.target):window,this.targetElement){this.targetElement.addEventListener("scroll",this.handleScroll);const t=this.targetElement instanceof Window?document.documentElement:this.targetElement,o=this.targetElement instanceof Window?window.pageYOffset||document.documentElement.scrollTop:this.targetElement.scrollTop;this.computeScrollState(t,o)}}computeScrollState(t,o){if(this.isVisible="top"===this.mode?o>this.threshold:"bottom"===this.mode?o<t.scrollHeight-t.clientHeight-this.threshold:!(o<this.threshold&&o>t.scrollHeight-t.clientHeight-this.threshold),this.showProgress){const s=t.scrollHeight-t.clientHeight;s>0&&(this.scrollProgress=Math.min(100,Math.max(0,o/s*100)))}}disconnectedCallback(){this.targetElement&&this.targetElement.removeEventListener("scroll",this.handleScroll),this.clearAutoHideTimer(),this.clearPulseTimer()}clearPulseTimer(){this.pulseTimer&&(clearTimeout(this.pulseTimer),this.pulseTimer=null)}clearAutoHideTimer(){this.autoHideTimer&&(clearTimeout(this.autoHideTimer),this.autoHideTimer=null)}handleScroll=()=>{const t=this.targetElement instanceof Window?document.documentElement:this.targetElement,o=this.targetElement instanceof Window?window.pageYOffset||document.documentElement.scrollTop:this.targetElement.scrollTop,s=this.isVisible;this.computeScrollState(t,o),this.autoHide&&this.isVisible?(this.isUserScrolling=!0,this.clearAutoHideTimer(),this.autoHideTimer=setTimeout((()=>{this.isUserScrolling=!1}),this.autoHideHoldTime)):this.autoHide||(this.isUserScrolling=!0),!s&&this.isVisible&&this.haptic&&"vibrate"in navigator&&navigator.vibrate(30)};handleAction=()=>{if(this.haptic&&"vibrate"in navigator&&navigator.vibrate(50),this.targetElement instanceof Window){let t=0;"bottom"===this.mode?t=document.documentElement.scrollHeight:"both"===this.mode&&(t=(window.pageYOffset||document.documentElement.scrollTop)>(document.documentElement.scrollHeight-document.documentElement.clientHeight)/2?0:document.documentElement.scrollHeight),window.scrollTo({top:t,behavior:this.behavior})}else{const t=this.targetElement;let o=0;"bottom"===this.mode?o=t.scrollHeight:"both"===this.mode&&(o=t.scrollTop>(t.scrollHeight-t.clientHeight)/2?0:t.scrollHeight),t.scrollTo({top:o,behavior:this.behavior})}};handleMouseMove(t){if(!this.magnetic||!this.isVisible)return;const o=this.el.getBoundingClientRect(),s=t.clientX-(o.left+o.width/2),i=t.clientY-(o.top+o.height/2),r=Math.sqrt(s*s+i*i);if(r<this.magneticRadius){const t=1-r/this.magneticRadius;this.magneticTransform={x:s*this.magneticStrength*t,y:i*this.magneticStrength*t}}else 0===this.magneticTransform.x&&0===this.magneticTransform.y||(this.magneticTransform={x:0,y:0})}handleContextMenu=t=>{this.quickJump&&(t.preventDefault(),this.scanAnchors(),this.isMenuOpen=!this.isMenuOpen)};jumpTo=t=>{const o=document.getElementById(t);o&&o.scrollIntoView({behavior:"smooth"}),this.isMenuOpen=!1};onMouseDown(t){this.isDraggable&&(this.isDragging=!0,this.dragStartPos={x:t.clientX,y:t.clientY},this.initialOffset={...this.dragOffset},this.isMenuOpen=!1,document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("mouseup",this.onMouseUp))}onMouseMove=t=>{this.isDragging&&(this.dragOffset={x:this.initialOffset.x+(t.clientX-this.dragStartPos.x),y:this.initialOffset.y+(t.clientY-this.dragStartPos.y)})};onMouseUp=()=>{this.isDragging=!1,document.removeEventListener("mousemove",this.onMouseMove),document.removeEventListener("mouseup",this.onMouseUp),this.savePersistedPosition()};render(){if(this.skeleton)return s(i,{class:`scroll-top-skeleton scroll-top-${this.position} scroll-top-${this.size}`},s("div",{class:"skeleton-btn"}));const t=this.isVisible&&(!this.autoHide||this.isUserScrolling),o=2*Math.PI*22,r=o-this.scrollProgress/100*o;return s(i,{style:this.portal?{display:"contents"}:{}},s("ui-button",{variant:"solid"===this.variant?"primary":this.variant,class:{"scroll-top":!0,["scroll-top-"+this.position]:!0,["scroll-top-"+this.size]:!0,["scroll-top-"+this.color]:!0,["scroll-top-variant-"+this.variant]:!0,["scroll-top-shape-"+this.shape]:!0,["scroll-top-anim-"+this.animation]:!0,"scroll-top-visible":t,"scroll-top-active":this.isUserScrolling,"scroll-top-with-label":!!this.label,"scroll-top-loading":this.loading,"scroll-top-pulse":this.pulse,"scroll-top-glassy":this.glassy,"scroll-top-rtl":"rtl"===this.dir,"scroll-top-strategy-absolute":"absolute"===this.strategy},style:{"--z-index":""+this.zIndex,"--magnetic-x":this.magneticTransform.x+"px","--magnetic-y":this.magneticTransform.y+"px","--drag-x":this.dragOffset.x+"px","--drag-y":this.dragOffset.y+"px",transform:"translate(calc(var(--magnetic-x, 0px) + var(--drag-x, 0px)), calc(var(--magnetic-y, 0px) + var(--drag-y, 0px)))",transition:0!==this.magneticTransform.x||this.isDragging?"none":"transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)","pointer-events":t?"auto":"none",cursor:this.isDraggable?this.isDragging?"grabbing":"grab":"pointer"},onClick:()=>this.handleAction(),onKeyDown:t=>"Enter"===t.key&&this.handleAction(),onContextMenu:this.handleContextMenu,disabled:!t,ariaLabel:"top"===this.mode?"Scroll to top":"Scroll to bottom","aria-haspopup":this.quickJump?"true":"false","aria-expanded":this.isMenuOpen?"true":"false",title:this.quickJump?"Right-click for sections":this.tooltip||("top"===this.mode?"Top":"Bottom"),icon:this.loading?"loading":"top"===this.mode?this.icon:"bottom"===this.mode?"arrow-up"===this.icon?"arrow-down":this.icon:this.scrollProgress>50?"arrow-up"===this.icon?"arrow-up":this.icon:"arrow-up"===this.icon?"arrow-down":this.icon,iconLibrary:this.iconLibrary,loading:this.loading,label:this.label},this.showProgress&&s("svg",{class:"progress-ring",width:"100%",height:"100%",viewBox:"0 0 60 60",slot:"start"},s("circle",{class:"progress-ring__background",stroke:"rgba(255,255,255,0.1)","stroke-width":"3",fill:"transparent",r:22,cx:"30",cy:"30"}),s("circle",{class:"progress-ring__circle",stroke:this.progressColor||"currentColor","stroke-width":"3","stroke-dasharray":`${o} ${o}`,style:{strokeDashoffset:""+r},"stroke-linecap":"round",fill:"transparent",r:22,cx:"30",cy:"30"})),this.showProgress&&this.showProgressValue&&s("span",{class:"progress-value",slot:"start"},Math.round(this.scrollProgress),"%"),this.isMenuOpen&&s("div",{class:"scroll-top-anchors scroll-top-anchors-"+this.position,slot:"end"},s("div",{class:"scroll-top-anchors-header"},"Quick Jump"),s("div",{class:"scroll-top-anchors-list"},this.anchors.map((t=>s("ui-button",{key:t.id,variant:"ghost",class:"scroll-top-anchor-item",onClick:o=>{o.stopPropagation(),this.jumpTo(t.id)},label:t.title,block:!0})))))))}static get watchers(){return{persistenceId:[{onPersistenceIdChange:0}],mode:[{handleModeChange:0}],textDirection:[{onTextDirectionChange:0}]}}static get style(){return".sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:contents;--z-index:1000}.scroll-top{position:fixed;z-index:var(--z-index, 1000);display:flex;align-items:center;justify-content:center;padding:0;border:none;cursor:pointer;background:transparent !important;transition:all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);opacity:0;transform:scale(0);pointer-events:none}.scroll-top.scroll-top-strategy-absolute{position:absolute}.scroll-top.scroll-top-visible{opacity:1 !important;pointer-events:auto !important;transform:scale(1)}.scroll-top.scroll-top-visible.scroll-top-bottom-center,.scroll-top.scroll-top-visible.scroll-top-top-center{transform:translateX(-50%) scale(1) !important}.scroll-top.scroll-top-visible.scroll-top-center{transform:translate(-50%, -50%) scale(1) !important}.scroll-top.scroll-top-visible.scroll-top-center-left,.scroll-top.scroll-top-visible.scroll-top-center-right{transform:translateY(-50%) scale(1) !important}.scroll-top{font-family:inherit;font-weight:600;user-select:none;overflow:visible}.scroll-top.scroll-top-glassy{backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%)}.scroll-top-visible{opacity:1 !important;visibility:visible !important}.scroll-top:hover{box-shadow:0 6px 20px rgba(0, 0, 0, 0.2);filter:brightness(1.1)}.scroll-top:active{transform:scale(0.92) !important}.scroll-top-shape-circle{border-radius:50%}.scroll-top-shape-square,.scroll-top-shape-sharp{border-radius:0}.scroll-top-shape-rounded{border-radius:12px}.scroll-top-shape-pill,.scroll-top-shape-oval{border-radius:999px}.scroll-top-shape-chip{border-radius:100px}.scroll-top-sm{width:40px;height:40px;font-size:14px}.scroll-top-md{width:50px;height:50px;font-size:16px}.scroll-top-lg{width:64px;height:64px;font-size:18px}.scroll-top-bottom-right{right:24px;bottom:24px}.scroll-top-bottom-left{left:24px;bottom:24px}.scroll-top-bottom-center{left:50%;bottom:24px;transform:translateX(-50%)}.scroll-top-top-center{top:24px;left:50%;transform:translateX(-50%)}.scroll-top-center-left{top:50%;left:24px;transform:translateY(-50%)}.scroll-top-center-right{top:50%;right:24px;transform:translateY(-50%)}.scroll-top-center{top:50%;left:50%;transform:translate(-50%, -50%)}.scroll-top-top-right{right:24px;top:24px}.scroll-top-top-left{left:24px;top:24px}.scroll-top-anim-scale{transform:scale(0.5)}.scroll-top-anim-scale.scroll-top-visible{transform:scale(1)}.scroll-top-bottom-center.scroll-top-anim-scale{transform:translateX(-50%) scale(0.5)}.scroll-top-bottom-center.scroll-top-anim-scale.scroll-top-visible{transform:translateX(-50%) scale(1)}.scroll-top-anim-fade{transform:none}.scroll-top-anim-slide.scroll-top-bottom-right{transform:translateY(40px)}.scroll-top-anim-slide.scroll-top-bottom-left{transform:translateY(40px)}.scroll-top-anim-slide.scroll-top-bottom-center{transform:translate(-50%, 40px)}.scroll-top-anim-slide.scroll-top-top-right{transform:translateY(-40px)}.scroll-top-anim-slide.scroll-top-top-left{transform:translateY(-40px)}.scroll-top-anim-slide.scroll-top-visible{transform:translate(0, 0) !important}.scroll-top-bottom-center.scroll-top-anim-slide.scroll-top-visible{transform:translate(-50%, 0) !important}.scroll-top-sm{width:40px;height:40px;min-width:40px}.scroll-top-md{width:56px;height:56px;min-width:56px}.scroll-top-lg{width:72px;height:72px;min-width:72px}.progress-ring{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;transform:rotate(-90deg)}.progress-ring__circle{transition:stroke-dashoffset 0.1s}.scroll-top-anchors{position:absolute;background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 10px 25px rgba(0, 0, 0, 0.2);width:200px;max-height:300px;overflow:hidden;display:flex;flex-direction:column;z-index:1000;border:1px solid rgba(0, 0, 0, 0.05);animation:scroll-top-menu-fade 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.scroll-top-glassy .scroll-top-anchors{background:rgba(255, 255, 255, 0.8);backdrop-filter:blur(16px)}.scroll-top-anchors-bottom-right{bottom:120%;right:0;transform-origin:bottom right}.scroll-top-anchors-bottom-left{bottom:120%;left:0;transform-origin:bottom left}.scroll-top-anchors-bottom-center{bottom:120%;left:50%;transform:translateX(-50%);transform-origin:bottom center}.scroll-top-anchors-top-right{top:120%;right:0;transform-origin:top right}.scroll-top-anchors-top-left{top:120%;left:0;transform-origin:top left}@keyframes scroll-top-menu-fade{from{opacity:0;transform:scale(0.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.scroll-top-anchors-header{padding:12px 16px;font-size:11px;font-weight:800;text-transform:uppercase;color:var(--text-muted, #6b7280);background:rgba(0, 0, 0, 0.02);border-bottom:1px solid rgba(0, 0, 0, 0.05);letter-spacing:0.1em}.scroll-top-anchors-list{overflow-y:auto;padding:4px}.scroll-top-anchor-item{width:100%;padding:10px 12px;text-align:left;background:transparent;border:none;border-radius:6px;font-size:13px;color:var(--text-secondary, #374151);cursor:pointer;transition:all 0.2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scroll-top-anchor-item:hover{background:rgba(0, 0, 0, 0.05);color:var(--text-primary, #111827)}.progress-value{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:10px;font-weight:700;z-index:3;opacity:0.8}.scroll-top-content{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px}.scroll-top-with-label{width:auto !important;min-width:50px;border-radius:30px !important}.scroll-top-label{font-size:0.85em;white-space:nowrap}.scroll-top-icon{display:flex;align-items:center;justify-content:center}:host([target]) .scroll-top{position:absolute}"}},[513,"ui-scroll-top",{mode:[1],threshold:[2],behavior:[1],position:[1],quickJump:[4,"quick-jump"],strategy:[1],icon:[1],label:[1],size:[1],color:[1],variant:[1],target:[1],showProgress:[4,"show-progress"],progressColor:[1,"progress-color"],showProgressValue:[4,"show-progress-value"],glassy:[4],magnetic:[4],magneticStrength:[2,"magnetic-strength"],magneticRadius:[2,"magnetic-radius"],autoHide:[4,"auto-hide"],persistenceId:[1,"persistence-id"],isDraggable:[4,"is-draggable"],autoHideHoldTime:[2,"auto-hide-hold-time"],shape:[1],iconLibrary:[1,"icon-library"],animation:[1],tooltip:[1],zIndex:[2,"z-index"],portal:[4],haptic:[4],skeleton:[4],loading:[4],textDirection:[1,"text-direction"],isVisible:[32],isUserScrolling:[32],scrollProgress:[32],dir:[32],pulse:[32],anchors:[32],isMenuOpen:[32],magneticTransform:[32],dragOffset:[32],isDragging:[32]},[[9,"mousemove","handleMouseMove"],[1,"mousedown","onMouseDown"]],{persistenceId:[{onPersistenceIdChange:0}],mode:[{handleModeChange:0}],textDirection:[{onTextDirectionChange:0}]}]),c=n,p=function(){"undefined"!=typeof customElements&&["ui-scroll-top","ui-badge","ui-button","ui-icon"].forEach((t=>{switch(t){case"ui-scroll-top":customElements.get(r(t))||customElements.define(r(t),n);break;case"ui-badge":customElements.get(r(t))||l();break;case"ui-button":customElements.get(r(t))||e();break;case"ui-icon":customElements.get(r(t))||a()}}))};export{c as UiScrollTop,p as defineCustomElement}
1
+ import{proxyCustomElement as t,HTMLElement as o,h as s,Host as i,transformTag as r}from"@stencil/core/internal/client";import{d as e,a as l}from"./badge.js";import{d as a}from"./icon.js";import{d as n}from"./loader.js";const c=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}get el(){return this}mode="top";threshold=300;behavior="smooth";position="bottom-right";quickJump=!1;strategy="fixed";icon="arrow-up";label;size="md";color="primary";variant="solid";target;showProgress=!1;progressColor;showProgressValue=!1;glassy=!1;magnetic=!1;magneticStrength=.3;magneticRadius=150;autoHide=!1;persistenceId;onPersistenceIdChange(){this.loadPersistedPosition()}isDraggable=!1;autoHideHoldTime=3e3;shape="rounded";iconLibrary="default";animation="scale";tooltip;zIndex=1e3;portal=!1;haptic=!1;skeleton=!1;loading=!1;textDirection="auto";isVisible=!1;isUserScrolling=!1;scrollProgress=0;dir="ltr";pulse=!1;anchors=[];isMenuOpen=!1;magneticTransform={x:0,y:0};dragOffset={x:0,y:0};isDragging=!1;targetElement;autoHideTimer;pulseTimer;dragStartPos={x:0,y:0};initialOffset={x:0,y:0};handleModeChange(){this.triggerPulse()}onTextDirectionChange(){this.updateDir()}componentWillLoad(){this.updateDir(),this.loadPersistedPosition(),this.computeScrollState(document.documentElement,window.pageYOffset??document.documentElement?.scrollTop??0)}componentDidLoad(){this.portal&&document.body&&this.el.parentNode!==document.body&&document.body.appendChild(this.el),this.initTarget()}componentDidUpdate(){this.targetElement||this.initTarget()}scanAnchors(){if(!this.quickJump)return;const t=Array.from(document.querySelectorAll("h1[id], h2[id], h3[id], h4[id], h5[id], h6[id], [data-ui-anchor]"));this.anchors=t.map((t=>({title:t.getAttribute("data-ui-anchor-title")||t.textContent.trim(),id:t.id||(t.hasAttribute("data-ui-anchor")?t.getAttribute("data-ui-anchor")??"":"")}))).filter((t=>!!t.id&&!!t.title))}loadPersistedPosition(){if(this.persistenceId&&this.isDraggable){const t=localStorage.getItem("ui-scroll-top-pos-"+this.persistenceId);if(t)try{this.dragOffset=JSON.parse(t)}catch(t){console.error("Failed to load ScrollTop position",t)}}}savePersistedPosition(){this.persistenceId&&this.isDraggable&&localStorage.setItem("ui-scroll-top-pos-"+this.persistenceId,JSON.stringify(this.dragOffset))}triggerPulse(){this.pulse=!0,this.pulseTimer&&clearTimeout(this.pulseTimer),this.pulseTimer=setTimeout((()=>this.pulse=!1),600)}updateDir(){if("rtl"===this.textDirection)this.dir="rtl";else if("ltr"===this.textDirection)this.dir="ltr";else{const t=getComputedStyle(this.el).direction;this.dir="rtl"===t?"rtl":"ltr"}}initTarget(){if(this.targetElement=this.target?document.querySelector(this.target):window,this.targetElement){this.targetElement.addEventListener("scroll",this.handleScroll);const t=this.targetElement instanceof Window?document.documentElement:this.targetElement,o=this.targetElement instanceof Window?window.pageYOffset||document.documentElement.scrollTop:this.targetElement.scrollTop;this.computeScrollState(t,o)}}computeScrollState(t,o){if(this.isVisible="top"===this.mode?o>this.threshold:"bottom"===this.mode?o<t.scrollHeight-t.clientHeight-this.threshold:!(o<this.threshold&&o>t.scrollHeight-t.clientHeight-this.threshold),this.showProgress){const s=t.scrollHeight-t.clientHeight;s>0&&(this.scrollProgress=Math.min(100,Math.max(0,o/s*100)))}}disconnectedCallback(){this.targetElement&&this.targetElement.removeEventListener("scroll",this.handleScroll),this.clearAutoHideTimer(),this.clearPulseTimer()}clearPulseTimer(){this.pulseTimer&&(clearTimeout(this.pulseTimer),this.pulseTimer=null)}clearAutoHideTimer(){this.autoHideTimer&&(clearTimeout(this.autoHideTimer),this.autoHideTimer=null)}handleScroll=()=>{const t=this.targetElement instanceof Window?document.documentElement:this.targetElement,o=this.targetElement instanceof Window?window.pageYOffset||document.documentElement.scrollTop:this.targetElement.scrollTop,s=this.isVisible;this.computeScrollState(t,o),this.autoHide&&this.isVisible?(this.isUserScrolling=!0,this.clearAutoHideTimer(),this.autoHideTimer=setTimeout((()=>{this.isUserScrolling=!1}),this.autoHideHoldTime)):this.autoHide||(this.isUserScrolling=!0),!s&&this.isVisible&&this.haptic&&"vibrate"in navigator&&navigator.vibrate(30)};handleAction=()=>{if(this.haptic&&"vibrate"in navigator&&navigator.vibrate(50),this.targetElement instanceof Window){let t=0;"bottom"===this.mode?t=document.documentElement.scrollHeight:"both"===this.mode&&(t=(window.pageYOffset||document.documentElement.scrollTop)>(document.documentElement.scrollHeight-document.documentElement.clientHeight)/2?0:document.documentElement.scrollHeight),window.scrollTo({top:t,behavior:this.behavior})}else{const t=this.targetElement;let o=0;"bottom"===this.mode?o=t.scrollHeight:"both"===this.mode&&(o=t.scrollTop>(t.scrollHeight-t.clientHeight)/2?0:t.scrollHeight),t.scrollTo({top:o,behavior:this.behavior})}};handleMouseMove(t){if(!this.magnetic||!this.isVisible)return;const o=this.el.getBoundingClientRect(),s=t.clientX-(o.left+o.width/2),i=t.clientY-(o.top+o.height/2),r=Math.sqrt(s*s+i*i);if(r<this.magneticRadius){const t=1-r/this.magneticRadius;this.magneticTransform={x:s*this.magneticStrength*t,y:i*this.magneticStrength*t}}else 0===this.magneticTransform.x&&0===this.magneticTransform.y||(this.magneticTransform={x:0,y:0})}handleContextMenu=t=>{this.quickJump&&(t.preventDefault(),this.scanAnchors(),this.isMenuOpen=!this.isMenuOpen)};jumpTo=t=>{const o=document.getElementById(t);o&&o.scrollIntoView({behavior:"smooth"}),this.isMenuOpen=!1};onMouseDown(t){this.isDraggable&&(this.isDragging=!0,this.dragStartPos={x:t.clientX,y:t.clientY},this.initialOffset={...this.dragOffset},this.isMenuOpen=!1,document.addEventListener("mousemove",this.onMouseMove),document.addEventListener("mouseup",this.onMouseUp))}onMouseMove=t=>{this.isDragging&&(this.dragOffset={x:this.initialOffset.x+(t.clientX-this.dragStartPos.x),y:this.initialOffset.y+(t.clientY-this.dragStartPos.y)})};onMouseUp=()=>{this.isDragging=!1,document.removeEventListener("mousemove",this.onMouseMove),document.removeEventListener("mouseup",this.onMouseUp),this.savePersistedPosition()};render(){if(this.skeleton)return s(i,{class:`scroll-top-skeleton scroll-top-${this.position} scroll-top-${this.size}`},s("div",{class:"skeleton-btn"}));const t=this.isVisible&&(!this.autoHide||this.isUserScrolling),o=2*Math.PI*22,r=o-this.scrollProgress/100*o;return s(i,{style:this.portal?{display:"contents"}:{}},s("ui-button",{variant:"solid"===this.variant?"primary":this.variant,class:{"scroll-top":!0,["scroll-top-"+this.position]:!0,["scroll-top-"+this.size]:!0,["scroll-top-"+this.color]:!0,["scroll-top-variant-"+this.variant]:!0,["scroll-top-shape-"+this.shape]:!0,["scroll-top-anim-"+this.animation]:!0,"scroll-top-visible":t,"scroll-top-active":this.isUserScrolling,"scroll-top-with-label":!!this.label,"scroll-top-loading":this.loading,"scroll-top-pulse":this.pulse,"scroll-top-glassy":this.glassy,"scroll-top-rtl":"rtl"===this.dir,"scroll-top-strategy-absolute":"absolute"===this.strategy},style:{"--z-index":""+this.zIndex,"--magnetic-x":this.magneticTransform.x+"px","--magnetic-y":this.magneticTransform.y+"px","--drag-x":this.dragOffset.x+"px","--drag-y":this.dragOffset.y+"px",transform:"translate(calc(var(--magnetic-x, 0px) + var(--drag-x, 0px)), calc(var(--magnetic-y, 0px) + var(--drag-y, 0px)))",transition:0!==this.magneticTransform.x||this.isDragging?"none":"transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)","pointer-events":t?"auto":"none",cursor:this.isDraggable?this.isDragging?"grabbing":"grab":"pointer"},onClick:()=>this.handleAction(),onKeyDown:t=>"Enter"===t.key&&this.handleAction(),onContextMenu:this.handleContextMenu,disabled:!t,ariaLabel:"top"===this.mode?"Scroll to top":"Scroll to bottom","aria-haspopup":this.quickJump?"true":"false","aria-expanded":this.isMenuOpen?"true":"false",title:this.quickJump?"Right-click for sections":this.tooltip||("top"===this.mode?"Top":"Bottom"),icon:this.loading?"loading":"top"===this.mode?this.icon:"bottom"===this.mode?"arrow-up"===this.icon?"arrow-down":this.icon:this.scrollProgress>50?"arrow-up"===this.icon?"arrow-up":this.icon:"arrow-up"===this.icon?"arrow-down":this.icon,iconLibrary:this.iconLibrary,loading:this.loading,label:this.label},this.showProgress&&s("svg",{class:"progress-ring",width:"100%",height:"100%",viewBox:"0 0 60 60",slot:"start"},s("circle",{class:"progress-ring__background",stroke:"rgba(255,255,255,0.1)","stroke-width":"3",fill:"transparent",r:22,cx:"30",cy:"30"}),s("circle",{class:"progress-ring__circle",stroke:this.progressColor||"currentColor","stroke-width":"3","stroke-dasharray":`${o} ${o}`,style:{strokeDashoffset:""+r},"stroke-linecap":"round",fill:"transparent",r:22,cx:"30",cy:"30"})),this.showProgress&&this.showProgressValue&&s("span",{class:"progress-value",slot:"start"},Math.round(this.scrollProgress),"%"),this.isMenuOpen&&s("div",{class:"scroll-top-anchors scroll-top-anchors-"+this.position,slot:"end"},s("div",{class:"scroll-top-anchors-header"},"Quick Jump"),s("div",{class:"scroll-top-anchors-list"},this.anchors.map((t=>s("ui-button",{key:t.id,variant:"ghost",class:"scroll-top-anchor-item",onClick:o=>{o.stopPropagation(),this.jumpTo(t.id)},label:t.title,block:!0})))))))}static get watchers(){return{persistenceId:[{onPersistenceIdChange:0}],mode:[{handleModeChange:0}],textDirection:[{onTextDirectionChange:0}]}}static get style(){return".sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:contents;--z-index:1000}.scroll-top{position:fixed;z-index:var(--z-index, 1000);display:flex;align-items:center;justify-content:center;padding:0;border:none;cursor:pointer;background:transparent !important;transition:all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);opacity:0;transform:scale(0);pointer-events:none}.scroll-top.scroll-top-strategy-absolute{position:absolute}.scroll-top.scroll-top-visible{opacity:1 !important;pointer-events:auto !important;transform:scale(1)}.scroll-top.scroll-top-visible.scroll-top-bottom-center,.scroll-top.scroll-top-visible.scroll-top-top-center{transform:translateX(-50%) scale(1) !important}.scroll-top.scroll-top-visible.scroll-top-center{transform:translate(-50%, -50%) scale(1) !important}.scroll-top.scroll-top-visible.scroll-top-center-left,.scroll-top.scroll-top-visible.scroll-top-center-right{transform:translateY(-50%) scale(1) !important}.scroll-top{font-family:inherit;font-weight:600;user-select:none;overflow:visible}.scroll-top.scroll-top-glassy{backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%)}.scroll-top-visible{opacity:1 !important;visibility:visible !important}.scroll-top:hover{box-shadow:0 6px 20px rgba(0, 0, 0, 0.2);filter:brightness(1.1)}.scroll-top:active{transform:scale(0.92) !important}.scroll-top-shape-circle{border-radius:50%}.scroll-top-shape-square,.scroll-top-shape-sharp{border-radius:0}.scroll-top-shape-rounded{border-radius:12px}.scroll-top-shape-pill,.scroll-top-shape-oval{border-radius:999px}.scroll-top-shape-chip{border-radius:100px}.scroll-top-sm{width:40px;height:40px;font-size:14px}.scroll-top-md{width:50px;height:50px;font-size:16px}.scroll-top-lg{width:64px;height:64px;font-size:18px}.scroll-top-bottom-right{right:24px;bottom:24px}.scroll-top-bottom-left{left:24px;bottom:24px}.scroll-top-bottom-center{left:50%;bottom:24px;transform:translateX(-50%)}.scroll-top-top-center{top:24px;left:50%;transform:translateX(-50%)}.scroll-top-center-left{top:50%;left:24px;transform:translateY(-50%)}.scroll-top-center-right{top:50%;right:24px;transform:translateY(-50%)}.scroll-top-center{top:50%;left:50%;transform:translate(-50%, -50%)}.scroll-top-top-right{right:24px;top:24px}.scroll-top-top-left{left:24px;top:24px}.scroll-top-anim-scale{transform:scale(0.5)}.scroll-top-anim-scale.scroll-top-visible{transform:scale(1)}.scroll-top-bottom-center.scroll-top-anim-scale{transform:translateX(-50%) scale(0.5)}.scroll-top-bottom-center.scroll-top-anim-scale.scroll-top-visible{transform:translateX(-50%) scale(1)}.scroll-top-anim-fade{transform:none}.scroll-top-anim-slide.scroll-top-bottom-right{transform:translateY(40px)}.scroll-top-anim-slide.scroll-top-bottom-left{transform:translateY(40px)}.scroll-top-anim-slide.scroll-top-bottom-center{transform:translate(-50%, 40px)}.scroll-top-anim-slide.scroll-top-top-right{transform:translateY(-40px)}.scroll-top-anim-slide.scroll-top-top-left{transform:translateY(-40px)}.scroll-top-anim-slide.scroll-top-visible{transform:translate(0, 0) !important}.scroll-top-bottom-center.scroll-top-anim-slide.scroll-top-visible{transform:translate(-50%, 0) !important}.scroll-top-sm{width:40px;height:40px;min-width:40px}.scroll-top-md{width:56px;height:56px;min-width:56px}.scroll-top-lg{width:72px;height:72px;min-width:72px}.progress-ring{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;transform:rotate(-90deg)}.progress-ring__circle{transition:stroke-dashoffset 0.1s}.scroll-top-anchors{position:absolute;background:var(--bg-primary, #ffffff);border-radius:12px;box-shadow:0 10px 25px rgba(0, 0, 0, 0.2);width:200px;max-height:300px;overflow:hidden;display:flex;flex-direction:column;z-index:1000;border:1px solid rgba(0, 0, 0, 0.05);animation:scroll-top-menu-fade 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.scroll-top-glassy .scroll-top-anchors{background:rgba(255, 255, 255, 0.8);backdrop-filter:blur(16px)}.scroll-top-anchors-bottom-right{bottom:120%;right:0;transform-origin:bottom right}.scroll-top-anchors-bottom-left{bottom:120%;left:0;transform-origin:bottom left}.scroll-top-anchors-bottom-center{bottom:120%;left:50%;transform:translateX(-50%);transform-origin:bottom center}.scroll-top-anchors-top-right{top:120%;right:0;transform-origin:top right}.scroll-top-anchors-top-left{top:120%;left:0;transform-origin:top left}@keyframes scroll-top-menu-fade{from{opacity:0;transform:scale(0.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.scroll-top-anchors-header{padding:12px 16px;font-size:11px;font-weight:800;text-transform:uppercase;color:var(--text-muted, #6b7280);background:rgba(0, 0, 0, 0.02);border-bottom:1px solid rgba(0, 0, 0, 0.05);letter-spacing:0.1em}.scroll-top-anchors-list{overflow-y:auto;padding:4px}.scroll-top-anchor-item{width:100%;padding:10px 12px;text-align:left;background:transparent;border:none;border-radius:6px;font-size:13px;color:var(--text-secondary, #374151);cursor:pointer;transition:all 0.2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scroll-top-anchor-item:hover{background:rgba(0, 0, 0, 0.05);color:var(--text-primary, #111827)}.progress-value{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:10px;font-weight:700;z-index:3;opacity:0.8}.scroll-top-content{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 12px}.scroll-top-with-label{width:auto !important;min-width:50px;border-radius:30px !important}.scroll-top-label{font-size:0.85em;white-space:nowrap}.scroll-top-icon{display:flex;align-items:center;justify-content:center}:host([target]) .scroll-top{position:absolute}"}},[513,"ui-scroll-top",{mode:[1],threshold:[2],behavior:[1],position:[1],quickJump:[4,"quick-jump"],strategy:[1],icon:[1],label:[1],size:[1],color:[1],variant:[1],target:[1],showProgress:[4,"show-progress"],progressColor:[1,"progress-color"],showProgressValue:[4,"show-progress-value"],glassy:[4],magnetic:[4],magneticStrength:[2,"magnetic-strength"],magneticRadius:[2,"magnetic-radius"],autoHide:[4,"auto-hide"],persistenceId:[1,"persistence-id"],isDraggable:[4,"is-draggable"],autoHideHoldTime:[2,"auto-hide-hold-time"],shape:[1],iconLibrary:[1,"icon-library"],animation:[1],tooltip:[1],zIndex:[2,"z-index"],portal:[4],haptic:[4],skeleton:[4],loading:[4],textDirection:[1,"text-direction"],isVisible:[32],isUserScrolling:[32],scrollProgress:[32],dir:[32],pulse:[32],anchors:[32],isMenuOpen:[32],magneticTransform:[32],dragOffset:[32],isDragging:[32]},[[9,"mousemove","handleMouseMove"],[1,"mousedown","onMouseDown"]],{persistenceId:[{onPersistenceIdChange:0}],mode:[{handleModeChange:0}],textDirection:[{onTextDirectionChange:0}]}]),p=c,h=function(){"undefined"!=typeof customElements&&["ui-scroll-top","ui-badge","ui-button","ui-icon","ui-loader"].forEach((t=>{switch(t){case"ui-scroll-top":customElements.get(r(t))||customElements.define(r(t),c);break;case"ui-badge":customElements.get(r(t))||l();break;case"ui-button":customElements.get(r(t))||e();break;case"ui-icon":customElements.get(r(t))||a();break;case"ui-loader":customElements.get(r(t))||n()}}))};export{p as UiScrollTop,h as defineCustomElement}
@@ -1 +1 @@
1
- import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as s,transformTag as n}from"@stencil/core/internal/client";import{d as o}from"./icon.js";const a=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.menuItemClick=i(this,"menuItemClick",7)}items=[];target;menuItemClick;visible=!1;position={x:0,y:0};activeSubmenus={};submenuPositions={};parsedItems=[];submenuOpenTimeouts={};submenuCloseTimeouts={};menuRef;targetElement=null;contextMenuHandler;targetRetryCount=0;maxTargetRetries=10;targetRetryDelay=100;handleItemsChange(t){this.parseItems(t)}componentWillLoad(){this.parseItems(this.items)}componentDidLoad(){if(this.attachContextMenuHandler(),this.target){const t=new MutationObserver((()=>{this.attachContextMenuHandler()}));t.observe(document.body,{childList:!0,subtree:!0}),this._targetObserver=t}}parseItems(t){if("string"==typeof t)try{this.parsedItems=JSON.parse(t)}catch{this.parsedItems=[]}else this.parsedItems=t||[]}attachContextMenuHandler(){if(!this.target)return void(this.contextMenuHandler||(this.contextMenuHandler=t=>{t.preventDefault(),t.stopPropagation(),this.show(t.clientX,t.clientY)},document.addEventListener("contextmenu",this.contextMenuHandler)));const t=document.querySelector(this.target);t!==this.targetElement&&(this.targetElement&&this.contextMenuHandler&&this.targetElement.removeEventListener("contextmenu",this.contextMenuHandler),this.targetElement=t),this.targetElement?(this.contextMenuHandler||(this.contextMenuHandler=t=>{t.preventDefault(),t.stopPropagation(),this.show(t.clientX,t.clientY)}),this.targetElement.addEventListener("contextmenu",this.contextMenuHandler),this.targetRetryCount=0):this.targetRetryCount<this.maxTargetRetries&&(this.targetRetryCount++,setTimeout((()=>this.attachContextMenuHandler()),this.targetRetryDelay))}disconnectedCallback(){this.targetElement&&this.contextMenuHandler&&this.targetElement.removeEventListener("contextmenu",this.contextMenuHandler),this._targetObserver&&this._targetObserver.disconnect(),!this.target&&this.contextMenuHandler&&document.removeEventListener("contextmenu",this.contextMenuHandler)}handleClickOutside(){this.visible&&this.hide()}handleResize(){this.visible&&this.hide()}async show(t,e){this.visible=!0,this.activeSubmenus={},this.submenuPositions={},setTimeout((()=>{this.position=this.calculatePosition(t,e,this.menuRef)}),0)}async hide(){this.visible=!1,this.activeSubmenus={},this.submenuPositions={}}calculatePosition(t,e,i){if(!i)return{x:t,y:e};const s=i.getBoundingClientRect(),n=window.innerWidth,o=window.innerHeight;let a=t,r=e;return t+s.width>n&&(a=n-s.width-5),e+s.height>o&&(r=o-s.height-5),{x:Math.max(5,a),y:Math.max(5,r)}}handleItemClick(t,e){e.stopPropagation(),t.disabled||t.divider||t.submenu&&t.submenu.length>0||(t.action&&t.action(),this.menuItemClick.emit({label:t.label,item:t}),this.hide())}handleItemHover(t,e,i,s=""){const n=s?`${s}-${e}`:""+e,o=n.split("-").length-1;if(Object.keys(this.submenuOpenTimeouts).forEach((t=>{t.split("-").length-1===o&&t!==n&&(clearTimeout(this.submenuOpenTimeouts[t]),delete this.submenuOpenTimeouts[t],this.activeSubmenus[t]=!1)})),t.submenu&&t.submenu.length>0&&!t.disabled)this.submenuOpenTimeouts[n]&&clearTimeout(this.submenuOpenTimeouts[n]),this.submenuCloseTimeouts[n]&&clearTimeout(this.submenuCloseTimeouts[n]),this.submenuOpenTimeouts[n]=window.setTimeout((()=>{this.activeSubmenus={...this.activeSubmenus,[n]:!0},setTimeout((()=>{const t=this.hostElement?.shadowRoot?.querySelector(".submenu-"+n);if(t){const e=i.currentTarget.getBoundingClientRect(),s=t.getBoundingClientRect(),o=window.innerWidth,a=window.innerHeight;let r=e.right,h=e.top,u="right",c="down";r+s.width>o&&(r=e.left-s.width,u="left"),h+s.height>a&&(h=Math.max(5,a-s.height-5),h<e.top&&(c="up")),r=Math.max(5,Math.min(r,o-s.width-5)),h=Math.max(5,Math.min(h,a-s.height-5)),this.submenuPositions={...this.submenuPositions,[n]:{x:r,y:h,direction:u,vertical:c}}}}),0)}),120);else{Object.keys(this.submenuOpenTimeouts).forEach((t=>{t.startsWith(n)||n.startsWith(t)||(clearTimeout(this.submenuOpenTimeouts[t]),delete this.submenuOpenTimeouts[t],this.activeSubmenus[t]=!1)})),Object.keys(this.submenuCloseTimeouts).forEach((t=>{t.startsWith(n)||n.startsWith(t)||(clearTimeout(this.submenuCloseTimeouts[t]),delete this.submenuCloseTimeouts[t])}));const t={},e={};Object.keys(this.activeSubmenus).forEach((i=>{(i.startsWith(n)||n.startsWith(i))&&(t[i]=this.activeSubmenus[i],this.submenuPositions[i]&&(e[i]=this.submenuPositions[i]))})),this.activeSubmenus=t,this.submenuPositions=e}}handleSubmenuClick(t,e){e.stopPropagation(),t.disabled||t.divider||(t.action&&t.action(),this.hide())}iconLibrary="default";renderMenuItem(t,e){if(t.divider)return s("div",{class:"menu-divider"});const i=t.submenu&&t.submenu.length>0,n=""+e;return s("div",{class:{"menu-item":!0,disabled:t.disabled,"has-submenu":i,active:this.activeSubmenus[n]},"data-path":n,onClick:e=>this.handleItemClick(t,e),onMouseEnter:i=>this.handleItemHover(t,e,i),onMouseLeave:()=>{setTimeout((()=>{const t=this.hostElement?.shadowRoot?.querySelector(".submenu-"+n);t&&t.matches(":hover")||(this.activeSubmenus[n]=!1,this.submenuPositions[n]=void 0)}),150)}},t.icon&&s("span",{class:"menu-icon"},s("ui-icon",{name:t.icon,library:this.iconLibrary,size:"16px"})),s("div",{class:"menu-label-container"},s("span",{class:"menu-label"},t.label),t.description&&s("span",{class:"menu-description"},t.description)),i&&s("span",{class:"submenu-arrow"},s("ui-icon",{name:"chevron-right",library:"lucide",size:"14px"})))}renderSubmenu(t,e,i=1){const n=this.submenuPositions[e];return!n||i>4?null:s("div",{class:`context-menu submenu submenu-${e} submenu-${n.direction} submenu-${n.vertical}`,style:{left:n.x+"px",top:n.y+"px",zIndex:""+(1e4+i)},onMouseEnter:()=>{this.submenuCloseTimeouts[e]&&(clearTimeout(this.submenuCloseTimeouts[e]),delete this.submenuCloseTimeouts[e]),this.activeSubmenus[e]=!0},onMouseLeave:()=>{this.submenuOpenTimeouts[e]&&(clearTimeout(this.submenuOpenTimeouts[e]),delete this.submenuOpenTimeouts[e]),this.submenuCloseTimeouts[e]=window.setTimeout((()=>{this.activeSubmenus[e]=!1}),200)}},t.map(((t,i)=>{if(t.divider)return s("div",{class:"menu-divider"});const o=t.submenu&&t.submenu.length>0,a=`${e}-${i}`;return s("div",{class:{"menu-item":!0,disabled:t.disabled,"has-submenu":o,active:this.activeSubmenus[a]},onClick:e=>this.handleItemClick(t,e),onMouseEnter:s=>this.handleItemHover(t,i,s,e),onMouseLeave:()=>{this.submenuOpenTimeouts[a]&&(clearTimeout(this.submenuOpenTimeouts[a]),delete this.submenuOpenTimeouts[a]),this.submenuCloseTimeouts[a]=window.setTimeout((()=>{this.activeSubmenus[a]=!1}),200)}},t.icon&&s("span",{class:"menu-icon"},s("ui-icon",{name:t.icon,library:this.iconLibrary,size:"16px"})),s("div",{class:"menu-label-container"},s("span",{class:"menu-label"},t.label),t.description&&s("span",{class:"menu-description"},t.description)),o&&s("span",{class:"submenu-arrow"},s("ui-icon",{name:"left"===n.direction?"chevron-left":"chevron-right",library:"lucide",size:"14px"})))})),Object.keys(this.activeSubmenus).map((t=>{if(t.startsWith(e+"-")){const e=this.getItemsByPath(t);if(e&&e.length>0)return this.renderSubmenu(e,t,i+1)}return null})))}getItemsByPath(t){const e=t.split("-").map((t=>parseInt(t)));let i=this.parsedItems;for(let t=0;t<e.length;t++){const s=e[t];if(!(i&&i[s]&&i[s].submenu))return null;i=i[s].submenu}return i}get hostElement(){return this}render(){return this.visible?s("div",{id:"smart-menu-host"},s("div",{class:"context-menu",ref:t=>this.menuRef=t,style:{left:this.position.x+"px",top:this.position.y+"px"},onClick:t=>t.stopPropagation()},this.parsedItems.map(((t,e)=>this.renderMenuItem(t,e)))),Object.keys(this.activeSubmenus).map((t=>{if(this.activeSubmenus[t]){const e=this.getItemsByPath(t);if(e&&e.length>0){const i=t.split("-").length+1;return this.renderSubmenu(e,t,i)}}return null}))):null}static get watchers(){return{items:[{handleItemsChange:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}.context-menu{position:fixed;background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);backdrop-filter:blur(10px);border-radius:12px;padding:6px;min-width:220px;box-shadow:0 10px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;z-index:10000;animation:menuFadeIn 0.15s ease-out;user-select:none}.context-menu.submenu{background:linear-gradient(135deg, #f093fb 0%, #f5576c 100%)}@keyframes menuFadeIn{from{opacity:0;transform:scale(0.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.menu-item{display:flex;align-items:center;padding:10px 14px;cursor:pointer;border-radius:8px;color:white;font-size:14px;font-weight:500;transition:all 0.15s ease;position:relative;gap:10px}.menu-item:hover:not(.disabled){background:rgba(255, 255, 255, 0.2);transform:translateX(2px)}.menu-item.active{background:rgba(255, 255, 255, 0.25)}.menu-item.disabled{opacity:0.4;cursor:not-allowed}.menu-icon{font-size:16px;width:20px;display:flex;align-items:center;justify-content:center}.menu-label-container{flex:1;display:flex;flex-direction:column}.menu-label{white-space:nowrap}.menu-description{font-size:11px;opacity:0.7;font-weight:normal;margin-top:1px}.submenu-arrow{font-size:10px;opacity:0.8;margin-left:auto}.menu-divider{height:1px;background:rgba(255, 255, 255, 0.2);margin:6px 8px}'}},[513,"ui-smart-context-menu",{items:[1025],target:[1],iconLibrary:[1,"icon-library"],visible:[32],position:[32],activeSubmenus:[32],submenuPositions:[32],parsedItems:[32],show:[64],hide:[64]},[[8,"click","handleClickOutside"],[9,"resize","handleResize"]],{items:[{handleItemsChange:0}]}]),r=a,h=function(){"undefined"!=typeof customElements&&["ui-smart-context-menu","ui-icon"].forEach((t=>{switch(t){case"ui-smart-context-menu":customElements.get(n(t))||customElements.define(n(t),a);break;case"ui-icon":customElements.get(n(t))||o()}}))};export{r as UiSmartContextMenu,h as defineCustomElement}
1
+ import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as s,transformTag as n}from"@stencil/core/internal/client";import{d as o}from"./icon.js";import{d as a}from"./loader.js";const r=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.menuItemClick=i(this,"menuItemClick",7)}items=[];target;menuItemClick;visible=!1;position={x:0,y:0};activeSubmenus={};submenuPositions={};parsedItems=[];submenuOpenTimeouts={};submenuCloseTimeouts={};menuRef;targetElement=null;contextMenuHandler;targetRetryCount=0;maxTargetRetries=10;targetRetryDelay=100;handleItemsChange(t){this.parseItems(t)}componentWillLoad(){this.parseItems(this.items)}componentDidLoad(){if(this.attachContextMenuHandler(),this.target){const t=new MutationObserver((()=>{this.attachContextMenuHandler()}));t.observe(document.body,{childList:!0,subtree:!0}),this._targetObserver=t}}parseItems(t){if("string"==typeof t)try{this.parsedItems=JSON.parse(t)}catch{this.parsedItems=[]}else this.parsedItems=t||[]}attachContextMenuHandler(){if(!this.target)return void(this.contextMenuHandler||(this.contextMenuHandler=t=>{t.preventDefault(),t.stopPropagation(),this.show(t.clientX,t.clientY)},document.addEventListener("contextmenu",this.contextMenuHandler)));const t=document.querySelector(this.target);t!==this.targetElement&&(this.targetElement&&this.contextMenuHandler&&this.targetElement.removeEventListener("contextmenu",this.contextMenuHandler),this.targetElement=t),this.targetElement?(this.contextMenuHandler||(this.contextMenuHandler=t=>{t.preventDefault(),t.stopPropagation(),this.show(t.clientX,t.clientY)}),this.targetElement.addEventListener("contextmenu",this.contextMenuHandler),this.targetRetryCount=0):this.targetRetryCount<this.maxTargetRetries&&(this.targetRetryCount++,setTimeout((()=>this.attachContextMenuHandler()),this.targetRetryDelay))}disconnectedCallback(){this.targetElement&&this.contextMenuHandler&&this.targetElement.removeEventListener("contextmenu",this.contextMenuHandler),this._targetObserver&&this._targetObserver.disconnect(),!this.target&&this.contextMenuHandler&&document.removeEventListener("contextmenu",this.contextMenuHandler)}handleClickOutside(){this.visible&&this.hide()}handleResize(){this.visible&&this.hide()}async show(t,e){this.visible=!0,this.activeSubmenus={},this.submenuPositions={},setTimeout((()=>{this.position=this.calculatePosition(t,e,this.menuRef)}),0)}async hide(){this.visible=!1,this.activeSubmenus={},this.submenuPositions={}}calculatePosition(t,e,i){if(!i)return{x:t,y:e};const s=i.getBoundingClientRect(),n=window.innerWidth,o=window.innerHeight;let a=t,r=e;return t+s.width>n&&(a=n-s.width-5),e+s.height>o&&(r=o-s.height-5),{x:Math.max(5,a),y:Math.max(5,r)}}handleItemClick(t,e){e.stopPropagation(),t.disabled||t.divider||t.submenu&&t.submenu.length>0||(t.action&&t.action(),this.menuItemClick.emit({label:t.label,item:t}),this.hide())}handleItemHover(t,e,i,s=""){const n=s?`${s}-${e}`:""+e,o=n.split("-").length-1;if(Object.keys(this.submenuOpenTimeouts).forEach((t=>{t.split("-").length-1===o&&t!==n&&(clearTimeout(this.submenuOpenTimeouts[t]),delete this.submenuOpenTimeouts[t],this.activeSubmenus[t]=!1)})),t.submenu&&t.submenu.length>0&&!t.disabled)this.submenuOpenTimeouts[n]&&clearTimeout(this.submenuOpenTimeouts[n]),this.submenuCloseTimeouts[n]&&clearTimeout(this.submenuCloseTimeouts[n]),this.submenuOpenTimeouts[n]=window.setTimeout((()=>{this.activeSubmenus={...this.activeSubmenus,[n]:!0},setTimeout((()=>{const t=this.hostElement?.shadowRoot?.querySelector(".submenu-"+n);if(t){const e=i.currentTarget.getBoundingClientRect(),s=t.getBoundingClientRect(),o=window.innerWidth,a=window.innerHeight;let r=e.right,h=e.top,u="right",l="down";r+s.width>o&&(r=e.left-s.width,u="left"),h+s.height>a&&(h=Math.max(5,a-s.height-5),h<e.top&&(l="up")),r=Math.max(5,Math.min(r,o-s.width-5)),h=Math.max(5,Math.min(h,a-s.height-5)),this.submenuPositions={...this.submenuPositions,[n]:{x:r,y:h,direction:u,vertical:l}}}}),0)}),120);else{Object.keys(this.submenuOpenTimeouts).forEach((t=>{t.startsWith(n)||n.startsWith(t)||(clearTimeout(this.submenuOpenTimeouts[t]),delete this.submenuOpenTimeouts[t],this.activeSubmenus[t]=!1)})),Object.keys(this.submenuCloseTimeouts).forEach((t=>{t.startsWith(n)||n.startsWith(t)||(clearTimeout(this.submenuCloseTimeouts[t]),delete this.submenuCloseTimeouts[t])}));const t={},e={};Object.keys(this.activeSubmenus).forEach((i=>{(i.startsWith(n)||n.startsWith(i))&&(t[i]=this.activeSubmenus[i],this.submenuPositions[i]&&(e[i]=this.submenuPositions[i]))})),this.activeSubmenus=t,this.submenuPositions=e}}handleSubmenuClick(t,e){e.stopPropagation(),t.disabled||t.divider||(t.action&&t.action(),this.hide())}iconLibrary="default";renderMenuItem(t,e){if(t.divider)return s("div",{class:"menu-divider"});const i=t.submenu&&t.submenu.length>0,n=""+e;return s("div",{class:{"menu-item":!0,disabled:t.disabled,"has-submenu":i,active:this.activeSubmenus[n]},"data-path":n,onClick:e=>this.handleItemClick(t,e),onMouseEnter:i=>this.handleItemHover(t,e,i),onMouseLeave:()=>{setTimeout((()=>{const t=this.hostElement?.shadowRoot?.querySelector(".submenu-"+n);t&&t.matches(":hover")||(this.activeSubmenus[n]=!1,this.submenuPositions[n]=void 0)}),150)}},t.icon&&s("span",{class:"menu-icon"},s("ui-icon",{name:t.icon,library:this.iconLibrary,size:"16px"})),s("div",{class:"menu-label-container"},s("span",{class:"menu-label"},t.label),t.description&&s("span",{class:"menu-description"},t.description)),i&&s("span",{class:"submenu-arrow"},s("ui-icon",{name:"chevron-right",library:"lucide",size:"14px"})))}renderSubmenu(t,e,i=1){const n=this.submenuPositions[e];return!n||i>4?null:s("div",{class:`context-menu submenu submenu-${e} submenu-${n.direction} submenu-${n.vertical}`,style:{left:n.x+"px",top:n.y+"px",zIndex:""+(1e4+i)},onMouseEnter:()=>{this.submenuCloseTimeouts[e]&&(clearTimeout(this.submenuCloseTimeouts[e]),delete this.submenuCloseTimeouts[e]),this.activeSubmenus[e]=!0},onMouseLeave:()=>{this.submenuOpenTimeouts[e]&&(clearTimeout(this.submenuOpenTimeouts[e]),delete this.submenuOpenTimeouts[e]),this.submenuCloseTimeouts[e]=window.setTimeout((()=>{this.activeSubmenus[e]=!1}),200)}},t.map(((t,i)=>{if(t.divider)return s("div",{class:"menu-divider"});const o=t.submenu&&t.submenu.length>0,a=`${e}-${i}`;return s("div",{class:{"menu-item":!0,disabled:t.disabled,"has-submenu":o,active:this.activeSubmenus[a]},onClick:e=>this.handleItemClick(t,e),onMouseEnter:s=>this.handleItemHover(t,i,s,e),onMouseLeave:()=>{this.submenuOpenTimeouts[a]&&(clearTimeout(this.submenuOpenTimeouts[a]),delete this.submenuOpenTimeouts[a]),this.submenuCloseTimeouts[a]=window.setTimeout((()=>{this.activeSubmenus[a]=!1}),200)}},t.icon&&s("span",{class:"menu-icon"},s("ui-icon",{name:t.icon,library:this.iconLibrary,size:"16px"})),s("div",{class:"menu-label-container"},s("span",{class:"menu-label"},t.label),t.description&&s("span",{class:"menu-description"},t.description)),o&&s("span",{class:"submenu-arrow"},s("ui-icon",{name:"left"===n.direction?"chevron-left":"chevron-right",library:"lucide",size:"14px"})))})),Object.keys(this.activeSubmenus).map((t=>{if(t.startsWith(e+"-")){const e=this.getItemsByPath(t);if(e&&e.length>0)return this.renderSubmenu(e,t,i+1)}return null})))}getItemsByPath(t){const e=t.split("-").map((t=>parseInt(t)));let i=this.parsedItems;for(let t=0;t<e.length;t++){const s=e[t];if(!(i&&i[s]&&i[s].submenu))return null;i=i[s].submenu}return i}get hostElement(){return this}render(){return this.visible?s("div",{id:"smart-menu-host"},s("div",{class:"context-menu",ref:t=>this.menuRef=t,style:{left:this.position.x+"px",top:this.position.y+"px"},onClick:t=>t.stopPropagation()},this.parsedItems.map(((t,e)=>this.renderMenuItem(t,e)))),Object.keys(this.activeSubmenus).map((t=>{if(this.activeSubmenus[t]){const e=this.getItemsByPath(t);if(e&&e.length>0){const i=t.split("-").length+1;return this.renderSubmenu(e,t,i)}}return null}))):null}static get watchers(){return{items:[{handleItemsChange:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}.context-menu{position:fixed;background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);backdrop-filter:blur(10px);border-radius:12px;padding:6px;min-width:220px;box-shadow:0 10px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;z-index:10000;animation:menuFadeIn 0.15s ease-out;user-select:none}.context-menu.submenu{background:linear-gradient(135deg, #f093fb 0%, #f5576c 100%)}@keyframes menuFadeIn{from{opacity:0;transform:scale(0.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.menu-item{display:flex;align-items:center;padding:10px 14px;cursor:pointer;border-radius:8px;color:white;font-size:14px;font-weight:500;transition:all 0.15s ease;position:relative;gap:10px}.menu-item:hover:not(.disabled){background:rgba(255, 255, 255, 0.2);transform:translateX(2px)}.menu-item.active{background:rgba(255, 255, 255, 0.25)}.menu-item.disabled{opacity:0.4;cursor:not-allowed}.menu-icon{font-size:16px;width:20px;display:flex;align-items:center;justify-content:center}.menu-label-container{flex:1;display:flex;flex-direction:column}.menu-label{white-space:nowrap}.menu-description{font-size:11px;opacity:0.7;font-weight:normal;margin-top:1px}.submenu-arrow{font-size:10px;opacity:0.8;margin-left:auto}.menu-divider{height:1px;background:rgba(255, 255, 255, 0.2);margin:6px 8px}'}},[513,"ui-smart-context-menu",{items:[1025],target:[1],iconLibrary:[1,"icon-library"],visible:[32],position:[32],activeSubmenus:[32],submenuPositions:[32],parsedItems:[32],show:[64],hide:[64]},[[8,"click","handleClickOutside"],[9,"resize","handleResize"]],{items:[{handleItemsChange:0}]}]),h=r,u=function(){"undefined"!=typeof customElements&&["ui-smart-context-menu","ui-icon","ui-loader"].forEach((t=>{switch(t){case"ui-smart-context-menu":customElements.get(n(t))||customElements.define(n(t),r);break;case"ui-icon":customElements.get(n(t))||o();break;case"ui-loader":customElements.get(n(t))||a()}}))};export{h as UiSmartContextMenu,u as defineCustomElement}
@@ -1 +1 @@
1
- import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as s,transformTag as o}from"@stencil/core/internal/client";import{c as a}from"./dom.js";import{d as r,a as n}from"./badge.js";import{d as c}from"./icon.js";import{d as l}from"./input.js";const d=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.locationChange=i(this,"locationChange",7),this.locationSearch=i(this,"locationSearch",7),this.locationOpen=i(this,"locationOpen",7),this.locationClose=i(this,"locationClose",7),this.locationLoadError=i(this,"locationLoadError",7),this.locationCreate=i(this,"locationCreate",7)}get hostElement(){return this}options=[];value="";multiSelect=!1;placeholder="Select location";searchable=!0;searchPlaceholder="Search country, state, city, postal code...";disabled=!1;clearable=!0;maxHeight=360;debounceMs=250;maxSelections=0;resultLimit=250;showRecent=!0;showFavorites=!0;persistState=!0;storageKey="ui-smart-location-dropdown-state";showPath=!0;showTypeBadge=!0;allowCustomValue=!1;ignoreParentPosition=!0;portal=!1;loadLocations;remoteMinChars=2;isOpen=!1;parsedOptions=[];remoteOptions=[];selectedIds=new Set;searchQuery="";loading=!1;loadError="";highlightedIndex=-1;menuLeft=0;menuTop=0;menuWidth=0;dropdownPosition="bottom";recentIds=[];favoriteIds=[];locationChange;locationSearch;locationOpen;locationClose;locationLoadError;locationCreate;searchDebounceTimer;searchInputRef;menuElement;optionsRefs=[];rafId;isPortaled=!1;searchToken=0;watchOptions(t){this.parsedOptions=this.normalizeOptions(t)}watchValue(t){this.selectedIds=this.parseSelectedIds(t)}componentWillLoad(){this.parsedOptions=this.normalizeOptions(this.options),this.selectedIds=this.parseSelectedIds(this.value),this.restorePersistentState()}disconnectedCallback(){this.searchDebounceTimer&&clearTimeout(this.searchDebounceTimer),this.cleanupPortal(),this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=0)}handleOutsideClick(t){const e="function"==typeof t.composedPath?t.composedPath():[],i=e.includes(this.hostElement)||this.hostElement.contains(t.target),s=!!this.menuElement&&(e.includes(this.menuElement)||this.menuElement.contains(t.target));i||s||this.closeDropdown()}handleResize(){this.isOpen&&this.calculatePosition()}handleScroll(){this.isOpen&&this.calculatePosition()}normalizeOptions(t){const e="string"==typeof t?this.tryParse(t):t||[],i=[],s=(t,e,o,a=[])=>{t.forEach((t=>{if(null==t||null==t.id||!t.label)return;const r=t.id+"",n=t.type||this.inferType(e),c=[...a,t.label],l=[t.label,t.code||"",n,c.join(" "),(t.tags||[]).join(" ")].join(" ").toLowerCase();i.push({...t,idStr:r,parentIdStr:o,type:n,depth:e,pathLabels:c,searchText:l}),t.children&&t.children.length>0&&s(t.children,e+1,r,c)}))};return s(e,0),i}tryParse(t){if(!t)return[];try{const e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(t){return console.error("Invalid JSON for location options",t),[]}}inferType(t){return t<=0?"country":1===t?"state":2===t?"city":3===t?"district":"custom"}parseSelectedIds(t){return t?this.multiSelect?new Set(t.split(",").map((t=>t.trim())).filter(Boolean)):new Set([t]):new Set}get selectedOptions(){const t=new Map(this.getMergedOptions().map((t=>[t.idStr,t])));return Array.from(this.selectedIds).map((e=>t.get(e))).filter((t=>!!t))}getMergedOptions(){const t=[...this.parsedOptions],e=new Set(t.map((t=>t.idStr)));return this.remoteOptions.forEach((i=>{e.has(i.idStr)||t.push(i)})),t}get filteredOptions(){const t=this.getMergedOptions(),e=this.searchQuery.trim().toLowerCase();let i=e?t.filter((t=>t.searchText.includes(e))):t;if(!e){const t=this.favoriteIds.map((t=>i.find((e=>e.idStr===t)))).filter((t=>!!t)),e=this.recentIds.map((t=>i.find((e=>e.idStr===t&&!this.favoriteIds.includes(t))))).filter((t=>!!t)),s=new Set([...t.map((t=>t.idStr)),...e.map((t=>t.idStr))]),o=i.filter((t=>!s.has(t.idStr)));i=[...t,...e,...o]}return i.slice(0,this.resultLimit)}get typeLabelMap(){return{country:"Country",state:"State",province:"Province",city:"City",district:"District",postal:"Postal",custom:"Custom"}}toggleDropdown=()=>{this.disabled||(this.isOpen?this.closeDropdown():(this.isOpen=!0,this.locationOpen.emit(),this.highlightedIndex=this.filteredOptions.length>0?0:-1,this.schedulePositionUpdate(),this.searchable&&window.setTimeout((()=>this.searchInputRef?.focus()),25)))};closeDropdown=()=>{this.isOpen&&(this.isOpen=!1,this.locationClose.emit(),this.highlightedIndex=-1,this.searchQuery="",this.remoteOptions=[],this.loadError="",this.cleanupPortal())};schedulePositionUpdate(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=requestAnimationFrame((()=>{this.calculatePosition(),this.rafId=0}))}calculatePosition(){if(!this.isOpen||!this.menuElement)return;const t=this.hostElement.shadowRoot?.querySelector(".location-trigger");if(!t)return;this.portal&&!this.isPortaled&&this.menuElement.parentElement!==document.body&&(document.body.appendChild(this.menuElement),this.isPortaled=!0);const e=a(t,{menuWidth:t.offsetWidth,menuHeight:this.maxHeight,gap:4,placement:"auto",useTransformedAncestorOffset:!this.ignoreParentPosition});this.menuLeft=e.left,this.menuTop=e.top,this.menuWidth=e.width,this.dropdownPosition=e.placement}cleanupPortal(){this.portal&&this.isPortaled&&this.menuElement&&this.menuElement.parentElement===document.body&&(this.hostElement.appendChild(this.menuElement),this.isPortaled=!1)}onSearchInput_Custom=t=>{this.searchQuery=t||"",this.searchDebounceTimer&&clearTimeout(this.searchDebounceTimer),this.searchDebounceTimer=window.setTimeout((()=>{this.runRemoteSearch(this.searchQuery),this.emitSearchEvent(),this.highlightedIndex=this.filteredOptions.length>0?0:-1}),this.debounceMs)};async runRemoteSearch(t){if(!this.loadLocations)return;if((t||"").trim().length<this.remoteMinChars)return this.remoteOptions=[],this.loading=!1,void(this.loadError="");const e=++this.searchToken;this.loading=!0,this.loadError="";try{const i=await this.loadLocations(t.trim());if(e!==this.searchToken)return;this.remoteOptions=this.normalizeOptions(i||[])}catch(i){if(e!==this.searchToken)return;const s=i instanceof Error?i.message:"Failed to load locations";this.remoteOptions=[],this.loadError=s,this.locationLoadError.emit({query:t,message:s})}finally{e===this.searchToken&&(this.loading=!1,this.emitSearchEvent())}}emitSearchEvent(){this.locationSearch.emit({query:this.searchQuery,localResults:this.parsedOptions.filter((t=>t.searchText.includes(this.searchQuery.toLowerCase()))).length,remoteResults:this.remoteOptions.length,loading:this.loading})}handleKeyDown=t=>{if(this.disabled)return;const e=this.filteredOptions;switch(t.key){case"Enter":case" ":return this.isOpen?this.highlightedIndex>=0&&e[this.highlightedIndex]?(t.preventDefault(),void this.selectOption(e[this.highlightedIndex],"select")):void(this.allowCustomValue&&this.searchQuery.trim()&&(t.preventDefault(),this.createCustomLocation(this.searchQuery.trim()))):(t.preventDefault(),void this.toggleDropdown());case"ArrowDown":return t.preventDefault(),void(this.isOpen?e.length>0&&(this.highlightedIndex=Math.min(e.length-1,this.highlightedIndex+1),this.scrollToHighlighted()):this.toggleDropdown());case"ArrowUp":return t.preventDefault(),void(this.isOpen&&e.length>0&&(this.highlightedIndex=Math.max(0,this.highlightedIndex-1),this.scrollToHighlighted()));case"Escape":return void(this.isOpen&&(t.preventDefault(),this.closeDropdown()));case"Backspace":if(this.multiSelect&&!this.searchQuery&&this.selectedIds.size>0){const t=Array.from(this.selectedIds).at(-1);t&&this.removeSelectedId(t,"remove")}return;default:return}};scrollToHighlighted(){const t=this.optionsRefs[this.highlightedIndex];t?.scrollIntoView({block:"nearest"})}selectOption(t,e){if(!t.disabled){if(this.multiSelect){const e=new Set(this.selectedIds);if(e.has(t.idStr))e.delete(t.idStr);else{if(this.maxSelections>0&&e.size>=this.maxSelections)return;e.add(t.idStr)}this.selectedIds=e}else this.selectedIds=new Set([t.idStr]),this.closeDropdown();this.touchRecent(t.idStr),this.syncValueAndEmit(e)}}removeSelectedId(t,e){if(!this.selectedIds.has(t))return;const i=new Set(this.selectedIds);i.delete(t),this.selectedIds=i,this.syncValueAndEmit(e)}clearSelection=t=>{t?.stopPropagation(),0!==this.selectedIds.size&&(this.selectedIds=new Set,this.syncValueAndEmit("clear"))};toggleFavorite=(t,e)=>{e.stopPropagation();const i=this.favoriteIds.includes(t);this.favoriteIds=i?this.favoriteIds.filter((e=>e!==t)):[t,...this.favoriteIds].slice(0,50),this.persistCurrentState()};touchRecent(t){this.recentIds=[t,...this.recentIds.filter((e=>e!==t))].slice(0,50),this.persistCurrentState()}persistCurrentState(){if(this.persistState&&"undefined"!=typeof localStorage)try{localStorage.setItem(this.storageKey,JSON.stringify({recentIds:this.recentIds,favoriteIds:this.favoriteIds}))}catch{}}restorePersistentState(){if(this.persistState&&"undefined"!=typeof localStorage)try{const t=localStorage.getItem(this.storageKey);if(!t)return;const e=JSON.parse(t);this.recentIds=Array.isArray(e?.recentIds)?e.recentIds.map((t=>t+"")).slice(0,50):[],this.favoriteIds=Array.isArray(e?.favoriteIds)?e.favoriteIds.map((t=>t+"")).slice(0,50):[]}catch{this.recentIds=[],this.favoriteIds=[]}}syncValueAndEmit(t){const e=Array.from(this.selectedIds);this.value=this.multiSelect?e.join(","):e[0]||"",this.locationChange.emit({value:this.value,selected:this.selectedOptions,trigger:t,query:this.searchQuery})}createCustomLocation(t){const e="custom:"+t.toLowerCase().replace(/\s+/g,"-"),i={id:e,label:t,type:"custom"};this.locationCreate.emit(i);const s=this.normalizeOptions([i]);this.remoteOptions=[...s,...this.remoteOptions.filter((t=>t.idStr!==e))],s[0]&&this.selectOption(s[0],"select")}getDisplayText(){const t=this.selectedOptions;return 0===t.length?this.placeholder:this.multiSelect?1===t.length?this.showPath?t[0].pathLabels.join(" / "):t[0].label:t.length+" locations selected":this.showPath?t[0].pathLabels.join(" / "):t[0].label}renderSelectedChips(){if(!this.multiSelect||0===this.selectedOptions.length)return null;const t=this.selectedOptions.slice(0,3),e=this.selectedOptions.length-t.length;return s("div",{class:"selected-chips"},t.map((t=>s("span",{class:"selected-chip",key:"chip-"+t.idStr},s("span",{class:"chip-label"},this.showPath?t.pathLabels.join(" / "):t.label),s("ui-button",{class:"chip-remove",onButtonClick:()=>this.removeSelectedId(t.idStr,"remove"),"aria-label":"Remove "+t.label,variant:"plain",icon:"x",iconLibrary:"lucide",iconOnly:!0})))),e>0&&s("span",{class:"selected-more"},"+",e))}renderOption(t,e){const i=this.selectedIds.has(t.idStr),o=this.highlightedIndex===e,a=this.favoriteIds.includes(t.idStr),r=this.showPath?t.pathLabels.join(" / "):t.label;return s("div",{class:{"location-option":!0,"location-option-selected":i,"location-option-highlighted":o,"location-option-disabled":!!t.disabled},role:"option","aria-selected":i?"true":"false",onMouseEnter:()=>this.highlightedIndex=e,onClick:()=>this.selectOption(t,"select"),ref:t=>this.optionsRefs[e]=t},s("div",{class:"location-option-main"},this.multiSelect&&s("ui-icon",{name:i?"check-square":"square",library:"lucide",size:"18px"}),s("div",{class:"location-option-text"},s("span",{class:"location-label"},r),t.code&&s("span",{class:"location-code"},t.code))),s("div",{class:"location-option-meta"},this.showTypeBadge&&s("span",{class:"location-type"},this.typeLabelMap[t.type]),this.showFavorites&&s("ui-button",{class:{"fav-btn":!0,active:a},onButtonClick:e=>this.toggleFavorite(t.idStr,e.detail),"aria-label":a?`Remove ${t.label} from favorites`:`Add ${t.label} to favorites`,variant:"plain",icon:"star",iconLibrary:"lucide",iconOnly:!0})))}render(){const t=this.filteredOptions,e=this.selectedIds.size>0,i=this.allowCustomValue&&!!this.searchQuery.trim()&&0===t.length;return s("div",{key:"0d1270c7b8941a54d23f12b336a40248127a9515",class:{"location-dropdown":!0,open:this.isOpen,disabled:this.disabled}},s("div",{key:"454a4fb32bdfcbb31f61ab24f69dd720f1d7975c",class:"location-trigger",role:"combobox","aria-expanded":this.isOpen?"true":"false","aria-haspopup":"listbox",tabIndex:this.disabled?-1:0,onClick:this.toggleDropdown,onKeyDown:this.handleKeyDown},s("span",{key:"06e96ca6b9ce142e1c6eb4145d75de7c6753d0aa",class:{"trigger-text":!0,placeholder:!e}},this.getDisplayText()),s("div",{key:"75bf60390f1983473a30b6c7fa6906d7bd39a99d",class:"trigger-icons"},e&&this.clearable&&!this.disabled&&s("ui-button",{key:"274b970b60c84e37ba60ef76a226d8dffd21f85b",class:"clear-btn",onButtonClick:this.clearSelection,"aria-label":"Clear selected locations",variant:"plain",icon:"x",iconLibrary:"lucide",iconOnly:!0}),s("ui-icon",{key:"872eb5b33bb7c84ebdf68d0685af115d78b893ba",name:"chevron-down",library:"lucide",size:"16px",class:{arrow:!0,open:this.isOpen}}))),this.renderSelectedChips(),this.isOpen&&s("div",{key:"5285b7a36ec106df13afbfde4bae0127567dd459",class:{menu:!0,top:"top"===this.dropdownPosition},role:"listbox",ref:t=>this.menuElement=t,style:{maxHeight:this.maxHeight+"px",left:this.menuLeft+"px",width:this.menuWidth+"px",position:"fixed",zIndex:"10020",top:this.menuTop+"px"}},this.searchable&&s("div",{key:"96c9247325ad38fa7ad1378141a8de53fe23c062",class:"search-row"},s("ui-input",{key:"16e6a0e35ae37de129b1812ecd7ed7c46c3b84c3",ref:t=>this.searchInputRef=t,class:"search-input",value:this.searchQuery,placeholder:this.searchPlaceholder,onInputChange:t=>this.onSearchInput_Custom(t.detail),onKeyDown:this.handleKeyDown,variant:"plain"})),this.loading&&s("div",{key:"8be3bb6ff2b546d4b77dedea4efdced3cf456a73",class:"status loading"},"Loading locations..."),!this.loading&&this.loadError&&s("div",{key:"2990bc4eb6413fc9ad02ec4214af9701f3ddb63f",class:"status error"},this.loadError),!this.loading&&t.length>0&&s("div",{key:"cc1da47a2b1e0703c8f9cf3b12f66c53f4c72215",class:"options-list"},t.map(((t,e)=>this.renderOption(t,e)))),!this.loading&&0===t.length&&!i&&s("div",{key:"74871de825014986333f513ab8a78eee94efffca",class:"status empty"},"No locations found"),i&&s("ui-button",{key:"0fd041bedf71502bea54a09d658669ccd3bcc68f",class:"create-btn",onButtonClick:()=>this.createCustomLocation(this.searchQuery.trim()),variant:"plain",align:"start",fullWidth:!0,icon:"plus",iconLibrary:"lucide",label:`Create "${this.searchQuery.trim()}"`}),(this.showFavorites||this.showRecent)&&!this.searchQuery&&s("div",{key:"5a4c6ecc6768d6a6ee8b3731e4d12b845c936a8f",class:"footer-meta"},this.showFavorites&&s("span",{key:"e2cac6f8adb895ba9f262be9924ea9a5619c95e3"},"Favorites: ",this.favoriteIds.length),this.showRecent&&s("span",{key:"f541571f8f6dd69ce531f7a54cc8cd6d06b3d8a8"},"Recent: ",this.recentIds.length))))}static get watchers(){return{options:[{watchOptions:0}],value:[{watchValue:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;width:100%;--sld-border:#cfd8e3;--sld-border-strong:#b4c1d1;--sld-focus:#2563eb;--sld-text:#10213a;--sld-muted:#62748a;--sld-bg:#ffffff;--sld-panel:rgba(255, 255, 255, 0.98);--sld-panel-solid:#ffffff;--sld-hover:#f3f8ff;--sld-selected:#e8f1ff;--sld-chip:#edf4ff;--sld-shadow:0 18px 40px rgba(15, 23, 42, 0.16)}.location-dropdown{position:relative;width:100%;font-family:"Segoe UI", Roboto, sans-serif}.location-trigger{border:1px solid var(--sld-border);border-radius:14px;min-height:48px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);color:var(--sld-text);cursor:pointer;box-shadow:0 2px 8px rgba(15, 23, 42, 0.04);transition:border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, transform 0.2s ease}.location-trigger:hover{border-color:var(--sld-border-strong);box-shadow:0 10px 22px rgba(37, 99, 235, 0.08)}.location-trigger:focus,.location-dropdown.open .location-trigger{border-color:var(--sld-focus);box-shadow:0 0 0 4px rgba(37, 99, 235, 0.14), 0 16px 32px rgba(37, 99, 235, 0.14);outline:none}.location-dropdown.disabled .location-trigger{opacity:0.72;cursor:not-allowed}.trigger-text{flex:1;font-size:14px;font-weight:500;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trigger-text.placeholder{color:#91a0b4}.trigger-icons{display:inline-flex;align-items:center;gap:6px}.arrow{transition:transform 0.18s ease;color:var(--sld-muted)}.arrow.open{transform:rotate(180deg)}.clear-btn,.fav-btn,.chip-remove{border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sld-muted);padding:0}.clear-btn:hover,.fav-btn:hover,.chip-remove:hover{color:var(--sld-text)}.clear-btn{width:24px;height:24px;border-radius:999px;background:#eef4fb}.clear-btn:hover{background:#e2ecf8}.fav-btn.active{color:#d97706}.selected-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.selected-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid #d7e7ff;background:var(--sld-chip);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.9);max-width:100%}.chip-label{font-size:12px;color:#1c3657;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-more{font-size:12px;color:#37557b;align-self:center}.menu{border:1px solid rgba(180, 193, 209, 0.72);border-radius:18px;background:var(--sld-panel-solid);background-color:var(--sld-panel-solid);backdrop-filter:blur(18px);box-shadow:var(--sld-shadow);overflow:hidden;isolation:isolate}.search-row{position:sticky;top:0;z-index:1;padding:12px;border-bottom:1px solid #edf2f7;background:var(--sld-panel)}.search-input{width:100%;border:1px solid #d4deea;border-radius:12px;padding:11px 13px;font-size:14px;outline:none;background:#f9fbfe;color:var(--sld-text);transition:border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease}.search-input:focus{border-color:var(--sld-focus);background:#ffffff;box-shadow:0 0 0 4px rgba(37, 99, 235, 0.1)}.options-list{padding:8px;overflow-y:auto;max-height:inherit;background:var(--sld-panel-solid)}.location-option{padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;border:1px solid transparent;border-radius:14px;background:var(--sld-panel-solid);transition:background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease}.location-option:hover,.location-option-highlighted{background:var(--sld-hover);border-color:#d7e7ff;box-shadow:0 10px 24px rgba(37, 99, 235, 0.08);transform:translateY(-1px)}.location-option-selected{background:var(--sld-selected);border-color:#b9d4ff;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.85)}.location-option-disabled{opacity:0.5;cursor:not-allowed}.location-option-main{min-width:0;display:flex;align-items:center;gap:8px;flex:1}.location-option-text{min-width:0;display:flex;flex-direction:column}.location-label{font-size:13px;font-weight:600;color:var(--sld-text);white-space:normal;overflow:hidden;text-overflow:ellipsis}.location-code{font-size:11px;color:var(--sld-muted)}.location-option-meta{display:inline-flex;align-items:center;gap:8px}.location-type{font-size:10px;border:1px solid #d8e5f3;border-radius:999px;padding:4px 8px;color:#55708f;background:#f7fbff;text-transform:uppercase;letter-spacing:0.08em;font-weight:700}.fav-btn{width:28px;height:28px;border-radius:999px;background:#f6f9fc}.fav-btn:hover{background:#ebf2f8}.status{padding:14px;font-size:13px;background:var(--sld-panel-solid)}.status.loading,.status.empty{color:var(--sld-muted)}.status.error{color:#b91c1c;background:#fef2f2}.create-btn{width:100%;border:none;border-top:1px solid #edf2f7;background:#f7fbff;color:var(--sld-text);font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;padding:13px;cursor:pointer;font-weight:600}.create-btn:hover{background:#eef6ff}.footer-meta{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf2f7;padding:10px 12px 12px;font-size:11px;color:var(--sld-muted);background:var(--sld-panel)}'}},[513,"ui-smart-location-dropdown",{options:[1],value:[1025],multiSelect:[4,"multi-select"],placeholder:[1],searchable:[4],searchPlaceholder:[1,"search-placeholder"],disabled:[4],clearable:[4],maxHeight:[2,"max-height"],debounceMs:[2,"debounce-ms"],maxSelections:[2,"max-selections"],resultLimit:[2,"result-limit"],showRecent:[4,"show-recent"],showFavorites:[4,"show-favorites"],persistState:[4,"persist-state"],storageKey:[1,"storage-key"],showPath:[4,"show-path"],showTypeBadge:[4,"show-type-badge"],allowCustomValue:[4,"allow-custom-value"],ignoreParentPosition:[4,"ignore-parent-position"],portal:[4],loadLocations:[16],remoteMinChars:[2,"remote-min-chars"],isOpen:[32],parsedOptions:[32],remoteOptions:[32],selectedIds:[32],searchQuery:[32],loading:[32],loadError:[32],highlightedIndex:[32],menuLeft:[32],menuTop:[32],menuWidth:[32],dropdownPosition:[32],recentIds:[32],favoriteIds:[32]},[[4,"click","handleOutsideClick"],[9,"resize","handleResize"],[11,"scroll","handleScroll"]],{options:[{watchOptions:0}],value:[{watchValue:0}]}]),h=d,p=function(){"undefined"!=typeof customElements&&["ui-smart-location-dropdown","ui-badge","ui-button","ui-icon","ui-input"].forEach((t=>{switch(t){case"ui-smart-location-dropdown":customElements.get(o(t))||customElements.define(o(t),d);break;case"ui-badge":customElements.get(o(t))||n();break;case"ui-button":customElements.get(o(t))||r();break;case"ui-icon":customElements.get(o(t))||c();break;case"ui-input":customElements.get(o(t))||l()}}))};export{h as UiSmartLocationDropdown,p as defineCustomElement}
1
+ import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as s,transformTag as o}from"@stencil/core/internal/client";import{c as a}from"./dom.js";import{d as r,a as n}from"./badge.js";import{d as c}from"./icon.js";import{d as l}from"./input.js";import{d as h}from"./loader.js";const d=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.locationChange=i(this,"locationChange",7),this.locationSearch=i(this,"locationSearch",7),this.locationOpen=i(this,"locationOpen",7),this.locationClose=i(this,"locationClose",7),this.locationLoadError=i(this,"locationLoadError",7),this.locationCreate=i(this,"locationCreate",7)}get hostElement(){return this}options=[];value="";multiSelect=!1;placeholder="Select location";searchable=!0;searchPlaceholder="Search country, state, city, postal code...";disabled=!1;clearable=!0;maxHeight=360;debounceMs=250;maxSelections=0;resultLimit=250;showRecent=!0;showFavorites=!0;persistState=!0;storageKey="ui-smart-location-dropdown-state";showPath=!0;showTypeBadge=!0;allowCustomValue=!1;ignoreParentPosition=!0;portal=!1;loadLocations;remoteMinChars=2;isOpen=!1;parsedOptions=[];remoteOptions=[];selectedIds=new Set;searchQuery="";loading=!1;loadError="";highlightedIndex=-1;menuLeft=0;menuTop=0;menuWidth=0;dropdownPosition="bottom";recentIds=[];favoriteIds=[];locationChange;locationSearch;locationOpen;locationClose;locationLoadError;locationCreate;searchDebounceTimer;searchInputRef;menuElement;optionsRefs=[];rafId;isPortaled=!1;searchToken=0;watchOptions(t){this.parsedOptions=this.normalizeOptions(t)}watchValue(t){this.selectedIds=this.parseSelectedIds(t)}componentWillLoad(){this.parsedOptions=this.normalizeOptions(this.options),this.selectedIds=this.parseSelectedIds(this.value),this.restorePersistentState()}disconnectedCallback(){this.searchDebounceTimer&&clearTimeout(this.searchDebounceTimer),this.cleanupPortal(),this.rafId&&(cancelAnimationFrame(this.rafId),this.rafId=0)}handleOutsideClick(t){const e="function"==typeof t.composedPath?t.composedPath():[],i=e.includes(this.hostElement)||this.hostElement.contains(t.target),s=!!this.menuElement&&(e.includes(this.menuElement)||this.menuElement.contains(t.target));i||s||this.closeDropdown()}handleResize(){this.isOpen&&this.calculatePosition()}handleScroll(){this.isOpen&&this.calculatePosition()}normalizeOptions(t){const e="string"==typeof t?this.tryParse(t):t||[],i=[],s=(t,e,o,a=[])=>{t.forEach((t=>{if(null==t||null==t.id||!t.label)return;const r=t.id+"",n=t.type||this.inferType(e),c=[...a,t.label],l=[t.label,t.code||"",n,c.join(" "),(t.tags||[]).join(" ")].join(" ").toLowerCase();i.push({...t,idStr:r,parentIdStr:o,type:n,depth:e,pathLabels:c,searchText:l}),t.children&&t.children.length>0&&s(t.children,e+1,r,c)}))};return s(e,0),i}tryParse(t){if(!t)return[];try{const e=JSON.parse(t);return Array.isArray(e)?e:[]}catch(t){return console.error("Invalid JSON for location options",t),[]}}inferType(t){return t<=0?"country":1===t?"state":2===t?"city":3===t?"district":"custom"}parseSelectedIds(t){return t?this.multiSelect?new Set(t.split(",").map((t=>t.trim())).filter(Boolean)):new Set([t]):new Set}get selectedOptions(){const t=new Map(this.getMergedOptions().map((t=>[t.idStr,t])));return Array.from(this.selectedIds).map((e=>t.get(e))).filter((t=>!!t))}getMergedOptions(){const t=[...this.parsedOptions],e=new Set(t.map((t=>t.idStr)));return this.remoteOptions.forEach((i=>{e.has(i.idStr)||t.push(i)})),t}get filteredOptions(){const t=this.getMergedOptions(),e=this.searchQuery.trim().toLowerCase();let i=e?t.filter((t=>t.searchText.includes(e))):t;if(!e){const t=this.favoriteIds.map((t=>i.find((e=>e.idStr===t)))).filter((t=>!!t)),e=this.recentIds.map((t=>i.find((e=>e.idStr===t&&!this.favoriteIds.includes(t))))).filter((t=>!!t)),s=new Set([...t.map((t=>t.idStr)),...e.map((t=>t.idStr))]),o=i.filter((t=>!s.has(t.idStr)));i=[...t,...e,...o]}return i.slice(0,this.resultLimit)}get typeLabelMap(){return{country:"Country",state:"State",province:"Province",city:"City",district:"District",postal:"Postal",custom:"Custom"}}toggleDropdown=()=>{this.disabled||(this.isOpen?this.closeDropdown():(this.isOpen=!0,this.locationOpen.emit(),this.highlightedIndex=this.filteredOptions.length>0?0:-1,this.schedulePositionUpdate(),this.searchable&&window.setTimeout((()=>this.searchInputRef?.focus()),25)))};closeDropdown=()=>{this.isOpen&&(this.isOpen=!1,this.locationClose.emit(),this.highlightedIndex=-1,this.searchQuery="",this.remoteOptions=[],this.loadError="",this.cleanupPortal())};schedulePositionUpdate(){this.rafId&&cancelAnimationFrame(this.rafId),this.rafId=requestAnimationFrame((()=>{this.calculatePosition(),this.rafId=0}))}calculatePosition(){if(!this.isOpen||!this.menuElement)return;const t=this.hostElement.shadowRoot?.querySelector(".location-trigger");if(!t)return;this.portal&&!this.isPortaled&&this.menuElement.parentElement!==document.body&&(document.body.appendChild(this.menuElement),this.isPortaled=!0);const e=a(t,{menuWidth:t.offsetWidth,menuHeight:this.maxHeight,gap:4,placement:"auto",useTransformedAncestorOffset:!this.ignoreParentPosition});this.menuLeft=e.left,this.menuTop=e.top,this.menuWidth=e.width,this.dropdownPosition=e.placement}cleanupPortal(){this.portal&&this.isPortaled&&this.menuElement&&this.menuElement.parentElement===document.body&&(this.hostElement.appendChild(this.menuElement),this.isPortaled=!1)}onSearchInput_Custom=t=>{this.searchQuery=t||"",this.searchDebounceTimer&&clearTimeout(this.searchDebounceTimer),this.searchDebounceTimer=window.setTimeout((()=>{this.runRemoteSearch(this.searchQuery),this.emitSearchEvent(),this.highlightedIndex=this.filteredOptions.length>0?0:-1}),this.debounceMs)};async runRemoteSearch(t){if(!this.loadLocations)return;if((t||"").trim().length<this.remoteMinChars)return this.remoteOptions=[],this.loading=!1,void(this.loadError="");const e=++this.searchToken;this.loading=!0,this.loadError="";try{const i=await this.loadLocations(t.trim());if(e!==this.searchToken)return;this.remoteOptions=this.normalizeOptions(i||[])}catch(i){if(e!==this.searchToken)return;const s=i instanceof Error?i.message:"Failed to load locations";this.remoteOptions=[],this.loadError=s,this.locationLoadError.emit({query:t,message:s})}finally{e===this.searchToken&&(this.loading=!1,this.emitSearchEvent())}}emitSearchEvent(){this.locationSearch.emit({query:this.searchQuery,localResults:this.parsedOptions.filter((t=>t.searchText.includes(this.searchQuery.toLowerCase()))).length,remoteResults:this.remoteOptions.length,loading:this.loading})}handleKeyDown=t=>{if(this.disabled)return;const e=this.filteredOptions;switch(t.key){case"Enter":case" ":return this.isOpen?this.highlightedIndex>=0&&e[this.highlightedIndex]?(t.preventDefault(),void this.selectOption(e[this.highlightedIndex],"select")):void(this.allowCustomValue&&this.searchQuery.trim()&&(t.preventDefault(),this.createCustomLocation(this.searchQuery.trim()))):(t.preventDefault(),void this.toggleDropdown());case"ArrowDown":return t.preventDefault(),void(this.isOpen?e.length>0&&(this.highlightedIndex=Math.min(e.length-1,this.highlightedIndex+1),this.scrollToHighlighted()):this.toggleDropdown());case"ArrowUp":return t.preventDefault(),void(this.isOpen&&e.length>0&&(this.highlightedIndex=Math.max(0,this.highlightedIndex-1),this.scrollToHighlighted()));case"Escape":return void(this.isOpen&&(t.preventDefault(),this.closeDropdown()));case"Backspace":if(this.multiSelect&&!this.searchQuery&&this.selectedIds.size>0){const t=Array.from(this.selectedIds).at(-1);t&&this.removeSelectedId(t,"remove")}return;default:return}};scrollToHighlighted(){const t=this.optionsRefs[this.highlightedIndex];t?.scrollIntoView({block:"nearest"})}selectOption(t,e){if(!t.disabled){if(this.multiSelect){const e=new Set(this.selectedIds);if(e.has(t.idStr))e.delete(t.idStr);else{if(this.maxSelections>0&&e.size>=this.maxSelections)return;e.add(t.idStr)}this.selectedIds=e}else this.selectedIds=new Set([t.idStr]),this.closeDropdown();this.touchRecent(t.idStr),this.syncValueAndEmit(e)}}removeSelectedId(t,e){if(!this.selectedIds.has(t))return;const i=new Set(this.selectedIds);i.delete(t),this.selectedIds=i,this.syncValueAndEmit(e)}clearSelection=t=>{t?.stopPropagation(),0!==this.selectedIds.size&&(this.selectedIds=new Set,this.syncValueAndEmit("clear"))};toggleFavorite=(t,e)=>{e.stopPropagation();const i=this.favoriteIds.includes(t);this.favoriteIds=i?this.favoriteIds.filter((e=>e!==t)):[t,...this.favoriteIds].slice(0,50),this.persistCurrentState()};touchRecent(t){this.recentIds=[t,...this.recentIds.filter((e=>e!==t))].slice(0,50),this.persistCurrentState()}persistCurrentState(){if(this.persistState&&"undefined"!=typeof localStorage)try{localStorage.setItem(this.storageKey,JSON.stringify({recentIds:this.recentIds,favoriteIds:this.favoriteIds}))}catch{}}restorePersistentState(){if(this.persistState&&"undefined"!=typeof localStorage)try{const t=localStorage.getItem(this.storageKey);if(!t)return;const e=JSON.parse(t);this.recentIds=Array.isArray(e?.recentIds)?e.recentIds.map((t=>t+"")).slice(0,50):[],this.favoriteIds=Array.isArray(e?.favoriteIds)?e.favoriteIds.map((t=>t+"")).slice(0,50):[]}catch{this.recentIds=[],this.favoriteIds=[]}}syncValueAndEmit(t){const e=Array.from(this.selectedIds);this.value=this.multiSelect?e.join(","):e[0]||"",this.locationChange.emit({value:this.value,selected:this.selectedOptions,trigger:t,query:this.searchQuery})}createCustomLocation(t){const e="custom:"+t.toLowerCase().replace(/\s+/g,"-"),i={id:e,label:t,type:"custom"};this.locationCreate.emit(i);const s=this.normalizeOptions([i]);this.remoteOptions=[...s,...this.remoteOptions.filter((t=>t.idStr!==e))],s[0]&&this.selectOption(s[0],"select")}getDisplayText(){const t=this.selectedOptions;return 0===t.length?this.placeholder:this.multiSelect?1===t.length?this.showPath?t[0].pathLabels.join(" / "):t[0].label:t.length+" locations selected":this.showPath?t[0].pathLabels.join(" / "):t[0].label}renderSelectedChips(){if(!this.multiSelect||0===this.selectedOptions.length)return null;const t=this.selectedOptions.slice(0,3),e=this.selectedOptions.length-t.length;return s("div",{class:"selected-chips"},t.map((t=>s("span",{class:"selected-chip",key:"chip-"+t.idStr},s("span",{class:"chip-label"},this.showPath?t.pathLabels.join(" / "):t.label),s("ui-button",{class:"chip-remove",onButtonClick:()=>this.removeSelectedId(t.idStr,"remove"),"aria-label":"Remove "+t.label,variant:"plain",icon:"x",iconLibrary:"lucide",iconOnly:!0})))),e>0&&s("span",{class:"selected-more"},"+",e))}renderOption(t,e){const i=this.selectedIds.has(t.idStr),o=this.highlightedIndex===e,a=this.favoriteIds.includes(t.idStr),r=this.showPath?t.pathLabels.join(" / "):t.label;return s("div",{class:{"location-option":!0,"location-option-selected":i,"location-option-highlighted":o,"location-option-disabled":!!t.disabled},role:"option","aria-selected":i?"true":"false",onMouseEnter:()=>this.highlightedIndex=e,onClick:()=>this.selectOption(t,"select"),ref:t=>this.optionsRefs[e]=t},s("div",{class:"location-option-main"},this.multiSelect&&s("ui-icon",{name:i?"check-square":"square",library:"lucide",size:"18px"}),s("div",{class:"location-option-text"},s("span",{class:"location-label"},r),t.code&&s("span",{class:"location-code"},t.code))),s("div",{class:"location-option-meta"},this.showTypeBadge&&s("span",{class:"location-type"},this.typeLabelMap[t.type]),this.showFavorites&&s("ui-button",{class:{"fav-btn":!0,active:a},onButtonClick:e=>this.toggleFavorite(t.idStr,e.detail),"aria-label":a?`Remove ${t.label} from favorites`:`Add ${t.label} to favorites`,variant:"plain",icon:"star",iconLibrary:"lucide",iconOnly:!0})))}render(){const t=this.filteredOptions,e=this.selectedIds.size>0,i=this.allowCustomValue&&!!this.searchQuery.trim()&&0===t.length;return s("div",{key:"b1807bf502b50ae9fc48efa846426ab643d6516d",class:{"location-dropdown":!0,open:this.isOpen,disabled:this.disabled}},s("div",{key:"de7b775e9b312bd39da8927975e588648b4ca809",class:"location-trigger",role:"combobox","aria-expanded":this.isOpen?"true":"false","aria-haspopup":"listbox",tabIndex:this.disabled?-1:0,onClick:this.toggleDropdown,onKeyDown:this.handleKeyDown},s("span",{key:"e608f40b0ef1251ae3f9c303338ff415eb31b0cd",class:{"trigger-text":!0,placeholder:!e}},this.getDisplayText()),s("div",{key:"afbfc578336c32718d974e0ca2b28df8ae1bae2f",class:"trigger-icons"},e&&this.clearable&&!this.disabled&&s("ui-button",{key:"65ce58563ea6447785f79325425f410ccac696b5",class:"clear-btn",onButtonClick:this.clearSelection,"aria-label":"Clear selected locations",variant:"plain",icon:"x",iconLibrary:"lucide",iconOnly:!0}),s("ui-icon",{key:"c30d26150e745053e5c64c7747692dc0e16de079",name:"chevron-down",library:"lucide",size:"16px",class:{arrow:!0,open:this.isOpen}}))),this.renderSelectedChips(),this.isOpen&&s("div",{key:"17e2bda731910b2eacdcfa94c40697cb8cad6792",class:{menu:!0,top:"top"===this.dropdownPosition},role:"listbox",ref:t=>this.menuElement=t,style:{maxHeight:this.maxHeight+"px",left:this.menuLeft+"px",width:this.menuWidth+"px",position:"fixed",zIndex:"10020",top:this.menuTop+"px"}},this.searchable&&s("div",{key:"927ac16ca61d07d1e0d9acf9cc6712ccd5e3be8a",class:"search-row"},s("ui-input",{key:"95af520eb196a47d11ac31489237314049532bc2",ref:t=>this.searchInputRef=t,class:"search-input",value:this.searchQuery,placeholder:this.searchPlaceholder,onInputChange:t=>this.onSearchInput_Custom(t.detail),onKeyDown:this.handleKeyDown,variant:"plain"})),this.loading&&s("div",{key:"c5b48b1d0f1e08353dc8def6b7b962c15918f724",class:"status loading"},"Loading locations..."),!this.loading&&this.loadError&&s("div",{key:"3a8f50555d86a4cf07fd27b810fe9c74168cac0e",class:"status error"},this.loadError),!this.loading&&t.length>0&&s("div",{key:"07298b5d440946c7a6d11e3ebae2d3c28d16c467",class:"options-list"},t.map(((t,e)=>this.renderOption(t,e)))),!this.loading&&0===t.length&&!i&&s("div",{key:"a01eb5729544c38466b7c16de2fe6e11baba36e4",class:"status empty"},"No locations found"),i&&s("ui-button",{key:"06c249712c8bf168d522678abe6fd68ae4d25949",class:"create-btn",onButtonClick:()=>this.createCustomLocation(this.searchQuery.trim()),variant:"plain",align:"start",fullWidth:!0,icon:"plus",iconLibrary:"lucide",label:`Create "${this.searchQuery.trim()}"`}),(this.showFavorites||this.showRecent)&&!this.searchQuery&&s("div",{key:"0cfe965844fa111cb8888b1392e3dcac8b35c51a",class:"footer-meta"},this.showFavorites&&s("span",{key:"0b5f1c8816ed31ab7cdc5988f1271a2c7b384372"},"Favorites: ",this.favoriteIds.length),this.showRecent&&s("span",{key:"aec4a486adee16e6100efa773475fc03d8b2f155"},"Recent: ",this.recentIds.length))))}static get watchers(){return{options:[{watchOptions:0}],value:[{watchValue:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;width:100%;--sld-border:#cfd8e3;--sld-border-strong:#b4c1d1;--sld-focus:#2563eb;--sld-text:#10213a;--sld-muted:#62748a;--sld-bg:#ffffff;--sld-panel:rgba(255, 255, 255, 0.98);--sld-panel-solid:#ffffff;--sld-hover:#f3f8ff;--sld-selected:#e8f1ff;--sld-chip:#edf4ff;--sld-shadow:0 18px 40px rgba(15, 23, 42, 0.16)}.location-dropdown{position:relative;width:100%;font-family:"Segoe UI", Roboto, sans-serif}.location-trigger{border:1px solid var(--sld-border);border-radius:14px;min-height:48px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);color:var(--sld-text);cursor:pointer;box-shadow:0 2px 8px rgba(15, 23, 42, 0.04);transition:border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, transform 0.2s ease}.location-trigger:hover{border-color:var(--sld-border-strong);box-shadow:0 10px 22px rgba(37, 99, 235, 0.08)}.location-trigger:focus,.location-dropdown.open .location-trigger{border-color:var(--sld-focus);box-shadow:0 0 0 4px rgba(37, 99, 235, 0.14), 0 16px 32px rgba(37, 99, 235, 0.14);outline:none}.location-dropdown.disabled .location-trigger{opacity:0.72;cursor:not-allowed}.trigger-text{flex:1;font-size:14px;font-weight:500;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trigger-text.placeholder{color:#91a0b4}.trigger-icons{display:inline-flex;align-items:center;gap:6px}.arrow{transition:transform 0.18s ease;color:var(--sld-muted)}.arrow.open{transform:rotate(180deg)}.clear-btn,.fav-btn,.chip-remove{border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sld-muted);padding:0}.clear-btn:hover,.fav-btn:hover,.chip-remove:hover{color:var(--sld-text)}.clear-btn{width:24px;height:24px;border-radius:999px;background:#eef4fb}.clear-btn:hover{background:#e2ecf8}.fav-btn.active{color:#d97706}.selected-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.selected-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid #d7e7ff;background:var(--sld-chip);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.9);max-width:100%}.chip-label{font-size:12px;color:#1c3657;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-more{font-size:12px;color:#37557b;align-self:center}.menu{border:1px solid rgba(180, 193, 209, 0.72);border-radius:18px;background:var(--sld-panel-solid);background-color:var(--sld-panel-solid);backdrop-filter:blur(18px);box-shadow:var(--sld-shadow);overflow:hidden;isolation:isolate}.search-row{position:sticky;top:0;z-index:1;padding:12px;border-bottom:1px solid #edf2f7;background:var(--sld-panel)}.search-input{width:100%;border:1px solid #d4deea;border-radius:12px;padding:11px 13px;font-size:14px;outline:none;background:#f9fbfe;color:var(--sld-text);transition:border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease}.search-input:focus{border-color:var(--sld-focus);background:#ffffff;box-shadow:0 0 0 4px rgba(37, 99, 235, 0.1)}.options-list{padding:8px;overflow-y:auto;max-height:inherit;background:var(--sld-panel-solid)}.location-option{padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;border:1px solid transparent;border-radius:14px;background:var(--sld-panel-solid);transition:background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease}.location-option:hover,.location-option-highlighted{background:var(--sld-hover);border-color:#d7e7ff;box-shadow:0 10px 24px rgba(37, 99, 235, 0.08);transform:translateY(-1px)}.location-option-selected{background:var(--sld-selected);border-color:#b9d4ff;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.85)}.location-option-disabled{opacity:0.5;cursor:not-allowed}.location-option-main{min-width:0;display:flex;align-items:center;gap:8px;flex:1}.location-option-text{min-width:0;display:flex;flex-direction:column}.location-label{font-size:13px;font-weight:600;color:var(--sld-text);white-space:normal;overflow:hidden;text-overflow:ellipsis}.location-code{font-size:11px;color:var(--sld-muted)}.location-option-meta{display:inline-flex;align-items:center;gap:8px}.location-type{font-size:10px;border:1px solid #d8e5f3;border-radius:999px;padding:4px 8px;color:#55708f;background:#f7fbff;text-transform:uppercase;letter-spacing:0.08em;font-weight:700}.fav-btn{width:28px;height:28px;border-radius:999px;background:#f6f9fc}.fav-btn:hover{background:#ebf2f8}.status{padding:14px;font-size:13px;background:var(--sld-panel-solid)}.status.loading,.status.empty{color:var(--sld-muted)}.status.error{color:#b91c1c;background:#fef2f2}.create-btn{width:100%;border:none;border-top:1px solid #edf2f7;background:#f7fbff;color:var(--sld-text);font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;padding:13px;cursor:pointer;font-weight:600}.create-btn:hover{background:#eef6ff}.footer-meta{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf2f7;padding:10px 12px 12px;font-size:11px;color:var(--sld-muted);background:var(--sld-panel)}'}},[513,"ui-smart-location-dropdown",{options:[1],value:[1025],multiSelect:[4,"multi-select"],placeholder:[1],searchable:[4],searchPlaceholder:[1,"search-placeholder"],disabled:[4],clearable:[4],maxHeight:[2,"max-height"],debounceMs:[2,"debounce-ms"],maxSelections:[2,"max-selections"],resultLimit:[2,"result-limit"],showRecent:[4,"show-recent"],showFavorites:[4,"show-favorites"],persistState:[4,"persist-state"],storageKey:[1,"storage-key"],showPath:[4,"show-path"],showTypeBadge:[4,"show-type-badge"],allowCustomValue:[4,"allow-custom-value"],ignoreParentPosition:[4,"ignore-parent-position"],portal:[4],loadLocations:[16],remoteMinChars:[2,"remote-min-chars"],isOpen:[32],parsedOptions:[32],remoteOptions:[32],selectedIds:[32],searchQuery:[32],loading:[32],loadError:[32],highlightedIndex:[32],menuLeft:[32],menuTop:[32],menuWidth:[32],dropdownPosition:[32],recentIds:[32],favoriteIds:[32]},[[4,"click","handleOutsideClick"],[9,"resize","handleResize"],[11,"scroll","handleScroll"]],{options:[{watchOptions:0}],value:[{watchValue:0}]}]),p=d,u=function(){"undefined"!=typeof customElements&&["ui-smart-location-dropdown","ui-badge","ui-button","ui-icon","ui-input","ui-loader"].forEach((t=>{switch(t){case"ui-smart-location-dropdown":customElements.get(o(t))||customElements.define(o(t),d);break;case"ui-badge":customElements.get(o(t))||n();break;case"ui-button":customElements.get(o(t))||r();break;case"ui-icon":customElements.get(o(t))||c();break;case"ui-input":customElements.get(o(t))||l();break;case"ui-loader":customElements.get(o(t))||h()}}))};export{p as UiSmartLocationDropdown,u as defineCustomElement}
@@ -1 +1 @@
1
- import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as o,transformTag as r}from"@stencil/core/internal/client";const s=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.stepperChange=i(this,"stepperChange",7)}orientation="horizontal";size="md";activeStep=0;get host(){return this}stepperChange;async next(){const t=this.getStepsSync();return this.activeStep<t.length-1&&this.goTo(this.activeStep+1)}async prev(){return this.activeStep>0&&this.goTo(this.activeStep-1)}async goTo(t){const e=this.getStepsSync();return t>=0&&t<e.length&&(this.activeStep=t,this.updateStepVisibility(),this.stepperChange.emit({index:t,step:e[t]}),!0)}async getCurrentStep(){return this.getStepsSync()[this.activeStep]||null}async getSteps(){return this.getStepsSync()}getStepsSync(){return Array.from(this.host.querySelectorAll("smart-step"))}updateStepVisibility(){this.getStepsSync().forEach(((t,e)=>{const i=t.querySelector(".stepper-content");i&&(i.style.display=e===this.activeStep?"block":"none");const o=t.querySelector(".step-header");o&&(o.classList.remove("active","completed"),e===this.activeStep?o.classList.add("active"):e<this.activeStep&&o.classList.add("completed"))}))}handleStepClick=t=>{const e=t.target.closest("smart-step");if(e){const t=this.getStepsSync().indexOf(e);-1!==t&&this.goTo(t)}};componentDidLoad(){this.updateStepVisibility()}componentDidUpdate(){this.updateStepVisibility()}handleStepClickEvent(t){t.stopPropagation();const e=t.target,i=this.getStepsSync().indexOf(e);-1!==i&&this.goTo(i)}render(){return o("div",{key:"055f2373e201924afcb4c2038ff1bd6c0d096111",class:["smart-stepper-container","stepper-"+this.orientation,"stepper-"+this.size].join(" ")},o("div",{key:"f0f5dbbb155ba61648a4633bff44548cd4cb28e3",class:"stepper-header",onClick:this.handleStepClick},o("slot",{key:"fa4ef01b0c1b248dd5ac90b8ab9bc7689b943caa"})),o("div",{key:"592f2c79d4916c14c1e7a5a3ffaad77a257a01a3",class:"stepper-content-area"},o("slot",{key:"958a6697b165c1b0499ac1433476a8cccf14bf9f",name:"content"})))}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block}.stepper-header{display:flex;gap:16px;margin-bottom:16px}.step-header{padding:12px 16px;border-radius:4px;background:#fff;cursor:pointer;transition:all 0.2s;border:1px solid #e5e7eb;display:flex;align-items:center;gap:12px;position:relative;flex:1;min-width:0;}:host-context(.stepper-horizontal) .step-header:not(:last-child)::after{content:"";position:absolute;right:-16px;top:50%;width:16px;height:2px;background:#e5e7eb;z-index:1;display:none;}.step-header:hover:not(.disabled){background:#f9fafb;border-color:#d1d5db}.step-header.active{border-color:#3b82f6;background:#eff6ff}.step-header.completed{border-color:#10b981;background:#f0fdf4;}.step-header.disabled{opacity:0.5;cursor:not-allowed;background:#f3f4f6}.step-icon{width:32px;height:32px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;transition:all 0.2s}.step-header.active .step-icon{background:#3b82f6;color:#fff}.step-header.completed .step-icon{background:#10b981;color:#fff}.step-text{display:flex;flex-direction:column;min-width:0}.step-title{font-weight:600;font-size:14px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-desc{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper-content{min-height:80px;background:#fff;border-radius:4px;box-shadow:0 1px 4px rgba(0, 0, 0, 0.04);padding:16px}'}},[769,"ui-smart-stepper",{orientation:[1],size:[1],activeStep:[1026,"active-step"],next:[64],prev:[64],goTo:[64],getCurrentStep:[64],getSteps:[64]},[[0,"stepClick","handleStepClickEvent"]]]),n=s,p=function(){"undefined"!=typeof customElements&&["ui-smart-stepper"].forEach((t=>{"ui-smart-stepper"===t&&(customElements.get(r(t))||customElements.define(r(t),s))}))};export{n as UiSmartStepper,p as defineCustomElement}
1
+ import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as o,transformTag as r}from"@stencil/core/internal/client";const s=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.stepperChange=i(this,"stepperChange",7)}orientation="horizontal";size="md";activeStep=0;get host(){return this}stepperChange;async next(){const t=this.getStepsSync();return this.activeStep<t.length-1&&this.goTo(this.activeStep+1)}async prev(){return this.activeStep>0&&this.goTo(this.activeStep-1)}async goTo(t){const e=this.getStepsSync();return t>=0&&t<e.length&&(this.activeStep=t,this.updateStepVisibility(),this.stepperChange.emit({index:t,step:e[t]}),!0)}async getCurrentStep(){return this.getStepsSync()[this.activeStep]||null}async getSteps(){return this.getStepsSync()}getStepsSync(){return Array.from(this.host.querySelectorAll("smart-step"))}updateStepVisibility(){this.getStepsSync().forEach(((t,e)=>{const i=t.querySelector(".stepper-content");i&&(i.style.display=e===this.activeStep?"block":"none");const o=t.querySelector(".step-header");o&&(o.classList.remove("active","completed"),e===this.activeStep?o.classList.add("active"):e<this.activeStep&&o.classList.add("completed"))}))}handleStepClick=t=>{const e=t.target.closest("smart-step");if(e){const t=this.getStepsSync().indexOf(e);-1!==t&&this.goTo(t)}};componentDidLoad(){this.updateStepVisibility()}componentDidUpdate(){this.updateStepVisibility()}handleStepClickEvent(t){t.stopPropagation();const e=t.target,i=this.getStepsSync().indexOf(e);-1!==i&&this.goTo(i)}render(){return o("div",{key:"5243803a66e8bfae497796c6bf73d4f006fa35e4",class:["smart-stepper-container","stepper-"+this.orientation,"stepper-"+this.size].join(" ")},o("div",{key:"6a7b4c7d81107e2f42ededb0e598c18ad0c8966a",class:"stepper-header",onClick:this.handleStepClick},o("slot",{key:"dcec321fde59e2b21f49344fd1d105a822d2d9c4"})),o("div",{key:"d9fff061e8c196a8eef547c036ba9c9a384d59d8",class:"stepper-content-area"},o("slot",{key:"a89db3104943e20880b5633732e801dfdcd70dff",name:"content"})))}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block}.stepper-header{display:flex;gap:16px;margin-bottom:16px}.step-header{padding:12px 16px;border-radius:4px;background:#fff;cursor:pointer;transition:all 0.2s;border:1px solid #e5e7eb;display:flex;align-items:center;gap:12px;position:relative;flex:1;min-width:0;}:host-context(.stepper-horizontal) .step-header:not(:last-child)::after{content:"";position:absolute;right:-16px;top:50%;width:16px;height:2px;background:#e5e7eb;z-index:1;display:none;}.step-header:hover:not(.disabled){background:#f9fafb;border-color:#d1d5db}.step-header.active{border-color:#3b82f6;background:#eff6ff}.step-header.completed{border-color:#10b981;background:#f0fdf4;}.step-header.disabled{opacity:0.5;cursor:not-allowed;background:#f3f4f6}.step-icon{width:32px;height:32px;border-radius:50%;background:#e5e7eb;color:#6b7280;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;transition:all 0.2s}.step-header.active .step-icon{background:#3b82f6;color:#fff}.step-header.completed .step-icon{background:#10b981;color:#fff}.step-text{display:flex;flex-direction:column;min-width:0}.step-title{font-weight:600;font-size:14px;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-desc{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper-content{min-height:80px;background:#fff;border-radius:4px;box-shadow:0 1px 4px rgba(0, 0, 0, 0.04);padding:16px}'}},[769,"ui-smart-stepper",{orientation:[1],size:[1],activeStep:[1026,"active-step"],next:[64],prev:[64],goTo:[64],getCurrentStep:[64],getSteps:[64]},[[0,"stepClick","handleStepClickEvent"]]]),n=s,p=function(){"undefined"!=typeof customElements&&["ui-smart-stepper"].forEach((t=>{"ui-smart-stepper"===t&&(customElements.get(r(t))||customElements.define(r(t),s))}))};export{n as UiSmartStepper,p as defineCustomElement}
@@ -1 +1 @@
1
- import{proxyCustomElement as a,HTMLElement as t,createEvent as r,h as e,transformTag as i}from"@stencil/core/internal/client";import{s as n,d as o}from"./icon.js";import{d as s,a as c}from"./badge.js";import{d as l}from"./input.js";const b=a(class extends t{constructor(a){super(),!1!==a&&this.__registerHost(),this.__attachShadow(),this.snackbarClosed=r(this,"snackbarClosed",7),this.snackbarAdded=r(this,"snackbarAdded",7),this.snackbarUpdated=r(this,"snackbarUpdated",7),this.snackbarLinkClicked=r(this,"snackbarLinkClicked",7),this.snackbarActionClicked=r(this,"snackbarActionClicked",7)}get element(){return this}position="top-right";maxVisible=5;stackMode="stack";openMode="slide-down";variant="filled";size="md";theme="auto";cardStack=!1;groupThreshold=3e3;duration=5e3;coalesce=!1;maxDuration=0;showCountdown=!1;textDirection="auto";onTextDirectionChange(){this.updateDir()}iconLibrary="lucide";portal=!0;pauseOnHover=!0;pauseOnFocusLoss=!0;soundMode="synth";particles=!0;enableSlots=!1;snackbarClosed;snackbarAdded;snackbarUpdated;snackbarLinkClicked;snackbarActionClicked;snackbars=[];visibleSnackbars=[];animatedItems=new Set;isHovered=!1;expandedSnackbars=new Set;dragX={};isDragging=null;dir="ltr";countdownSeconds={};timers={};startX=0;componentWillLoad(){this.updateVisibleSnackbars(),this.updateDir(),window.addEventListener("keydown",this.handleGlobalKeyDown),this.portal&&document.body&&this.element.parentElement!==document.body&&document.body.appendChild(this.element),window.addEventListener("blur",(()=>this.handleWindowBlur())),window.addEventListener("focus",(()=>this.handleWindowFocus()))}updateDir(){if("rtl"===this.textDirection)return void(this.dir="rtl");if("ltr"===this.textDirection)return void(this.dir="ltr");const a=getComputedStyle(this.element).direction;this.dir="rtl"===a?"rtl":"ltr"}disconnectedCallback(){window.removeEventListener("keydown",this.handleGlobalKeyDown),window.removeEventListener("blur",(()=>this.handleWindowBlur())),window.removeEventListener("focus",(()=>this.handleWindowFocus()))}handleGlobalKeyDown=a=>{"Escape"===a.key&&this.snackbars.length>0&&(a.preventDefault(),a.stopPropagation(),this.closeAll())};positionChanged(){this.updateVisibleSnackbars()}maxVisibleChanged(){this.updateVisibleSnackbars()}stackModeChanged(){this.updateVisibleSnackbars()}handleWindowBlur(){this.pauseOnFocusLoss&&(this.isHovered=!0)}handleWindowFocus(){if(this.pauseOnFocusLoss){this.isHovered=!1;const a=Date.now();Object.values(this.timers).forEach((t=>{t.lastTime=a}))}}updateVisibleSnackbars(){this.visibleSnackbars=[...this.snackbars].sort(((a,t)=>"urgent"===a.priority&&"urgent"!==t.priority?-1:"urgent"!==a.priority&&"urgent"===t.priority?1:0)).slice(0,this.maxVisible)}async add(a){if(this.coalesce){const t=this.snackbars.findIndex((t=>t.message===a.message&&t.type===a.type));if(-1!==t){const r=this.snackbars[t].id;return this.update(r,{count:(this.snackbars[t].count||1)+1,duration:a.duration||this.snackbars[t].duration||this.duration,history:[...this.snackbars[t].history||[],{message:a.message,title:a.title,timestamp:Date.now()}]}),r}}const t=this.generateId(),r={id:t,type:a.type||"info",title:a.title,message:a.message,html:a.html||!1,avatar:a.avatar,icon:a.icon,iconLibrary:a.iconLibrary||this.iconLibrary,link:a.link,action:a.action,actions:a.actions||[],duration:0===a.duration?0:this.clampDuration(a.duration||this.duration),variant:a.variant||this.variant,size:a.size||this.size,customClass:a.customClass,closable:!1!==a.closable,count:1,haptic:a.haptic||"error"===a.type,sound:a.sound,progress:a.progress||"bar",priority:a.priority||("error"===a.type?"urgent":"high"),theme:a.theme||this.theme,input:a.input,sticky:!!a.sticky,onClose:a.onClose,slot:a.slot,history:[{message:a.message,title:a.title,timestamp:Date.now()}]};return"sovereign"===r.type&&this.particles&&this.spawnParticles(t),r.haptic&&"vibrate"in navigator&&("sovereign"===r.type?navigator.vibrate([100,30,100,30,100]):navigator.vibrate("error"===r.type?[50,50,50]:30)),"synth"===this.soundMode?this.playSynthSound(r.type):r.sound&&new Audio(r.sound).play().catch((()=>{})),this.snackbars="stack"===this.stackMode||"lifo"===this.stackMode?[r,...this.snackbars]:[...this.snackbars,r],this.snackbars.length>this.maxVisible&&this.close(this.snackbars[this.snackbars.length-1].id),this.updateVisibleSnackbars(),this.startTimer(t,r.duration??0),this.snackbarAdded.emit({id:t,item:r}),t}clampDuration(a){return this.maxDuration>0&&a>this.maxDuration?this.maxDuration:a}async close(a){const t=this.snackbars.findIndex((t=>t.id===a));if(-1!==t){if(this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),delete this.timers[a]),this.animatedItems.add(a+"-closing"),this.snackbars[t]?.onClose&&this.snackbars[t].onClose(),this.snackbarClosed.emit({id:a,item:this.snackbars[t]}),this.snackbars=this.snackbars.filter((t=>t.id!==a)),this.animatedItems.delete(a),this.animatedItems.delete(a+"-closing"),void 0!==this.countdownSeconds[a]){const{[a]:t,...r}=this.countdownSeconds;this.countdownSeconds=r}this.updateVisibleSnackbars()}}async closeAll(){Object.values(this.timers).forEach((a=>cancelAnimationFrame(a.id))),this.timers={},this.snackbars.forEach((a=>{a.onClose&&a.onClose(),this.snackbarClosed.emit({id:a.id,item:a})})),this.snackbars=[],this.visibleSnackbars=[],this.animatedItems.clear()}async closeNext(){if(0===this.snackbars.length)return;let a;a="queue"===this.stackMode?this.snackbars[this.snackbars.length-1].id:this.snackbars[0].id,await this.close(a)}async getAll(){return[...this.snackbars]}async pause(a){this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),this.timers[a].id=0)}async resume(a){if(this.timers[a]&&0===this.timers[a].id&&this.timers[a].remaining>0){this.timers[a].lastTime=Date.now();const t=()=>{if(!this.timers[a])return;const r=Date.now(),e=r-this.timers[a].lastTime;this.timers[a].lastTime=r,this.isHovered||(this.timers[a].remaining-=e),this.timers[a].remaining<=0?this.close(a):this.timers[a].id=requestAnimationFrame(t)};this.timers[a].id=requestAnimationFrame(t)}}async replace(a,t){const r=this.snackbars.findIndex((t=>t.id===a));if(-1===r)return;const e={...t,id:a},i=[...this.snackbars];i[r]=e,this.snackbars=i,this.updateVisibleSnackbars(),this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),delete this.timers[a]),(e.duration??0)>0&&this.startTimer(a,e.duration),this.snackbarUpdated.emit({id:a,item:e})}async promise(a,t){const r=await this.add({type:"loading",message:t.loading,duration:0,closable:!0});try{const e=await("function"==typeof a?a():a),i="function"==typeof t.success?t.success(e):t.success;return this.update(r,{type:"success",message:i,duration:t.duration||4e3,closable:!0}),e}catch(a){const e="function"==typeof t.error?t.error(a):t.error;throw this.update(r,{type:"error",message:e,duration:t.duration||5e3,closable:!0}),a}}async undoable(a){const t=await this.add({message:a.message,title:a.title,type:a.type||"neutral",duration:a.duration||6e3,action:a.action||{label:"UNDO",onClick:()=>{a.onUndo(),this.close(t)}},link:a.link}),r=e=>{e.detail.id===t&&(a.onDismiss&&a.onDismiss(),this.element.removeEventListener("snackbarClosed",r))};return this.element.addEventListener("snackbarClosed",r),t}async update(a,t){const r=this.snackbars.findIndex((t=>t.id===a));if(-1!==r){const e=void 0!==t.count&&t.count!==this.snackbars[r].count,i={...this.snackbars[r],...t},n=[...this.snackbars];n[r]=i,this.snackbars=n,this.updateVisibleSnackbars(),e&&this.triggerBadgePulse(a),void 0!==t.duration&&(this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),delete this.timers[a]),t.duration>0&&this.startTimer(a,t.duration)),this.snackbarUpdated.emit({id:a,item:i})}}generateId(){return`snackbar-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}startTimer(a,t){const r=this.snackbars.find((t=>t.id===a));if(t<=0||r&&r.sticky)return;this.timers[a]={remaining:t,lastTime:Date.now(),duration:t,id:0};const e=()=>{if(!this.timers[a])return;const t=Date.now(),r=t-this.timers[a].lastTime;this.timers[a].lastTime=t,this.isHovered||(this.timers[a].remaining-=r);const i=Math.min(100,Math.max(0,100-this.timers[a].remaining/this.timers[a].duration*100)),n=this.getProgressBarElement(a);n&&(n.style.width=i+"%");const o=this.getProgressRingElement(a);if(o&&(o.style.strokeDashoffset=""+(56.5-i/100*56.5)),this.showCountdown){const t=Math.ceil(this.timers[a].remaining/1e3);this.countdownSeconds[a]!==t&&(this.countdownSeconds={...this.countdownSeconds,[a]:t})}this.timers[a].remaining<=0?this.close(a):this.timers[a].id=requestAnimationFrame(e)};this.timers[a].id=requestAnimationFrame(e)}getProgressBarElement(a){return this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"] .snackbar-progress`)}getProgressRingElement(a){return this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"] .snackbar-progress-ring circle`)}handleCloseClick=a=>{this.close(a)};handleLinkClick=(a,t)=>{t.link&&this.snackbarLinkClicked.emit({id:a,item:t,link:t.link})};playSynthSound(a){try{const t=new(window.AudioContext||window.webkitAudioContext),r=t.createOscillator(),e=t.createGain();r.connect(e),e.connect(t.destination),"success"===a||"sovereign"===a?(r.type="sine",r.frequency.setValueAtTime(880,t.currentTime),r.frequency.exponentialRampToValueAtTime(1320,t.currentTime+.1),e.gain.setValueAtTime(.05,t.currentTime),e.gain.exponentialRampToValueAtTime(.01,t.currentTime+.3)):"error"===a||"warning"===a?(r.type="square",r.frequency.setValueAtTime(220,t.currentTime),r.frequency.exponentialRampToValueAtTime(110,t.currentTime+.1),e.gain.setValueAtTime(.05,t.currentTime),e.gain.exponentialRampToValueAtTime(.01,t.currentTime+.4)):(r.type="sine",r.frequency.setValueAtTime(440,t.currentTime),e.gain.setValueAtTime(.03,t.currentTime),e.gain.exponentialRampToValueAtTime(.01,t.currentTime+.2)),r.start(),r.stop(t.currentTime+.5)}catch(a){}}toggleExpand(a){const t=new Set(this.expandedSnackbars);t.has(a)?t.delete(a):t.add(a),this.expandedSnackbars=t}triggerBadgePulse(a){const t=this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"] .snackbar-badge`);t&&(t.classList.remove("pulse"),t.classList.add("pulse"))}spawnParticles(a){if("undefined"==typeof window)return;const t=["✨","⭐","💫","🌟"];setTimeout((()=>{const r=this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"]`);if(!r)return;"static"===getComputedStyle(r).position&&(r.style.position="relative",r.style.overflow="visible");const e=(a,e,i)=>{const n=document.createElement("span");n.className="sb-particle sb-particle--"+a;const o=2*Math.PI*e/i,s=80+120*Math.random(),c=Math.round(Math.cos(o)*s),l=Math.round(Math.sin(o)*s),b=Math.round(1080*Math.random()-540),d=(1+.8*Math.random()).toFixed(2),p=(.15*Math.random()).toFixed(2);if("burst"===a){const a=(6+6*Math.random()).toFixed(1);n.style.cssText=`--tx:${c};--ty:${l};--r:${b};--d:${d}s;--delay:${p}s;--size:${a}px`}else if("float"===a){const a=(12+10*Math.random()).toFixed(1);n.textContent=t[Math.floor(Math.random()*t.length)],n.style.cssText=`--tx:${c};--ty:${l};--r:${b};--d:${d}s;--delay:${p}s;--size:${a}px`}else{const a=(4+5*Math.random()).toFixed(1),t=Math.round(60*(Math.random()-.5)),r=Math.round(30*(Math.random()-.5));n.style.cssText=`top:calc(50% + ${r}px);left:calc(50% + ${t}px);--d:${(.6+.5*Math.random()).toFixed(2)}s;--delay:${p}s;--size:${a}px`}r.appendChild(n),setTimeout((()=>n.remove()),1e3*(parseFloat(d)+parseFloat(p))+50)};let i=0,n=0,o=0;for(let a=0;a<24;a++){const t=a%3;0===t&&i<10?e("burst",i++,10):1===t&&n<8?e("float",n++,8):o<6&&e("glint",o++,6)}}),80)}handleKeyDown=(a,t,r)=>{if("Delete"===a.key||"Backspace"===a.key)this.close(t);else if("ArrowDown"===a.key){const a=this.element.shadowRoot?.querySelector(`[data-stack-index="${r+1}"]`);a&&a.focus()}else if("ArrowUp"===a.key){const a=this.element.shadowRoot?.querySelector(`[data-stack-index="${r-1}"]`);a&&a.focus()}};handleActionClick=(a,t)=>{this.snackbarActionClicked.emit({id:a,item:t}),t.action&&t.action.onClick&&t.action.onClick()};handleMouseDown=(a,t)=>{this.isDragging=t,this.startX=a.clientX,this.dragX={...this.dragX,[t]:0},document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)};handleMouseMove=a=>{if(!this.isDragging)return;const t=a.clientX-this.startX;this.dragX={...this.dragX,[this.isDragging]:t}};handleMouseUp=()=>{if(!this.isDragging)return;const a=this.isDragging,t=this.dragX[a]||0;Math.abs(t)>120?(this.dragX={...this.dragX,[a]:t>0?500:-500},setTimeout((()=>this.close(a)),200)):this.dragX={...this.dragX,[a]:0},this.isDragging=null,document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp)};handleMouseEnter=()=>{if(!this.pauseOnHover)return;this.isHovered=!0;const a=Date.now();Object.values(this.timers).forEach((t=>{t.lastTime=a}))};handleTouchStart=(a,t)=>{this.isDragging=t,this.startX=a.touches[0].clientX,this.dragX={...this.dragX,[t]:0}};handleTouchMove=(a,t)=>{if(this.isDragging!==t)return;const r=a.touches[0].clientX-this.startX,e=this.position.includes("rtl"===this.dir?"left":"right"),i=this.position.includes("rtl"===this.dir?"right":"left"),n=e&&r<0||i&&r>0?.2:1;this.dragX={...this.dragX,[t]:r*n},Math.abs(r)>10&&a.preventDefault()};handleTouchEnd=a=>{if(this.isDragging!==a)return;const t=this.dragX[a]||0,r=this.position.includes("rtl"===this.dir?"left":"right"),e=this.position.includes("rtl"===this.dir?"right":"left");r&&t>100||e&&t<-100||this.position.includes("center")&&Math.abs(t)>100?(this.dragX={...this.dragX,[a]:t>0?500:-500},setTimeout((()=>this.close(a)),200)):this.dragX={...this.dragX,[a]:0},this.isDragging=null};handleMouseLeave=()=>{if(!this.pauseOnHover)return;this.isHovered=!1;const a=Date.now();Object.values(this.timers).forEach((t=>{t.lastTime=a}))};handleInputSubmit=(a,t,r)=>{t.input&&t.input.onSubmit&&(t.input.onSubmit(r),this.close(a))};renderIcon(a){if(a.avatar)return e("div",{class:"snackbar-avatar"},e("img",{src:a.avatar,alt:""}));if(a.icon)return e("div",{class:"snackbar-custom-icon"},e("ui-icon",{name:a.icon,library:a.iconLibrary||this.iconLibrary,size:"1.5rem"}));const t=a.type;if("success"===t)return e("div",{class:"snackbar-icon-draw "+t},e("svg",{viewBox:"0 0 52 52"},e("circle",{class:"circle",cx:"26",cy:"26",r:"25",fill:"none"}),e("path",{class:"check",fill:"none",d:"M14.1 27.2l7.1 7.2 16.7-16.8"})));if("error"===t)return e("div",{class:"snackbar-icon-draw "+t},e("svg",{viewBox:"0 0 52 52"},e("circle",{class:"circle",cx:"26",cy:"26",r:"25",fill:"none"}),e("path",{class:"cross",fill:"none",d:"M16 16 36 36 M36 16 16 36"})));const r={success:e("ui-icon",{name:"check-circle",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-success-600)"}}),error:e("ui-icon",{name:"alert-circle",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-danger-600)"}}),warning:e("ui-icon",{name:"alert-triangle",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-warning-600)"}}),info:e("ui-icon",{name:"info",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-info-600)"}}),neutral:e("ui-icon",{name:"bell",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-neutral-600, #6b7280)"}}),loading:e("span",{class:"snackbar-loading-spinner"}),sovereign:e("ui-icon",{name:"crown",library:this.iconLibrary,size:"1.25em",style:{color:"#fbbf24"}})};return e("div",{class:"snackbar-icon "+t},r[t])}getAriaLive(a){return"urgent"===a.priority?"assertive":"high"===a.priority||"error"===a.type?"polite":"off"}render(){return e("div",{key:"2ca2794f89a74dc183c6490ffcc65e493eaaea30",class:`snackbar-container ${this.position} ${this.cardStack?"card-stack":""} ${this.isHovered?"hovered":""} ${"rtl"===this.dir?"rtl":""}`,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,role:this.visibleSnackbars.some((a=>"error"===a.type||"urgent"===a.priority))?"alert":"status","aria-atomic":"true"},this.snackbars.length>1&&e("ui-button",{key:"e8288b58adc2f402e120dcacbb3d88993d535123",variant:"ghost",size:"sm",icon:"list-x",iconLibrary:this.iconLibrary,iconSize:"14px",onClick:()=>this.closeAll(),ariaLabel:"Clear all notifications",class:"snackbar-clear-all",label:`Clear All (${this.snackbars.length})`},e("span",{key:"608cb677315ac751d626e2d615ca4636e9d4a11e",class:"kb-hint",slot:"end"},"Esc")),this.cardStack&&!this.isHovered&&this.snackbars.length>1&&e("div",{key:"63bfc95aa5d3b7b5daa77cd286eadf2a57fcfcb4",class:"stack-count-badge",onClick:()=>{this.isHovered=!0},title:"Click to expand all notifications"},e("span",{key:"1b3e099e53747efe22a51b6d27aacf7e7b2ad069",class:"stack-count-number"},this.snackbars.length),e("span",{key:"e2c05e3e0334dfe39043a0bdbc05680de497f473",class:"stack-count-label"},"notifications")),this.visibleSnackbars.map(((a,t)=>{const r=this.cardStack&&!this.isHovered?t:0,i=this.animatedItems.has(a.id+"-closing");return e("div",{key:a.id,"data-snackbar-id":a.id,"data-stack-index":t,class:`snackbar-item ${a.type} ${a.variant||"filled"} ${a.size||"md"} ${this.openMode} ${a.customClass||""} ${this.isDragging===a.id?"dragging":""} ${i?"closing":""} theme-${a.theme||this.theme}`,style:{animationDelay:.1*t+"s","--stack-index":""+r,transform:this.dragX[a.id]?`translateX(${this.dragX[a.id]}px) rotate(${this.dragX[a.id]/20}deg)`:void 0,opacity:this.dragX[a.id]?""+Math.max(0,1-Math.abs(this.dragX[a.id])/400):void 0,cursor:this.isDragging===a.id?"grabbing":void 0},role:"off"!==this.getAriaLive(a)?"log":void 0,"aria-live":this.getAriaLive(a),onMouseDown:t=>this.handleMouseDown(t,a.id),onKeyDown:r=>this.handleKeyDown(r,a.id,t),onTouchStart:t=>this.handleTouchStart(t,a.id),onTouchMove:t=>this.handleTouchMove(t,a.id),onTouchEnd:()=>this.handleTouchEnd(a.id),tabIndex:0},e("div",{class:"item-main-row"},this.renderIcon(a),e("div",{class:"snackbar-content"},e("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},a.title&&e("div",{class:"snackbar-title","aria-label":"Title: "+a.title},a.title),(a.count??0)>1&&e("ui-button",{variant:"ghost",size:"sm",onClick:()=>this.toggleExpand(a.id),ariaLabel:a.count+" occurrences. Click to toggle history.",label:""+a.count,icon:this.expandedSnackbars.has(a.id)?"chevron-up":"chevron-down",iconLibrary:this.iconLibrary,iconSize:"10px",iconPosition:"right"})),this.expandedSnackbars.has(a.id)&&a.history&&e("div",{class:"snackbar-history"},a.history.map(((a,t)=>e("div",{class:"history-item",key:t},e("span",{class:"history-time"},new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})),e("span",{class:"history-msg"},a.message))))),a.html?e("div",{class:"snackbar-message",innerHTML:n(a.message),role:"document"}):a.slot?e("div",{class:"snackbar-slot-content"},e("slot",{name:a.slot})):e("p",{class:"snackbar-message","aria-label":"Message: "+a.message},a.message)),!1!==a.closable&&e("ui-button",{variant:"ghost",size:"sm",iconOnly:!0,icon:"x",iconLibrary:this.iconLibrary,iconSize:"1.2em",onButtonClick:()=>this.handleCloseClick(a.id),ariaLabel:"Close snackbar",class:"snackbar-close"})),a.input&&e("div",{class:"snackbar-quick-input"},e("ui-input",{type:a.input.type||"text",placeholder:a.input.placeholder,onInputKeydown:t=>{"Enter"===t.detail.key&&this.handleInputSubmit(a.id,a,t.detail.target.value)},autoFocus:!0,size:"sm",fullWidth:!0})),(a.link||a.action||a.actions&&a.actions.length>0)&&e("div",{class:"snackbar-actions"},a.action&&e("ui-button",{variant:"ghost",size:"sm",onButtonClick:()=>this.handleActionClick(a.id,a),icon:a.action.icon,iconLibrary:this.iconLibrary,iconSize:"12px",label:a.action.label}),a.actions&&a.actions.map((t=>e("ui-button",{variant:t.variant,size:"sm",onButtonClick:()=>{t.onClick&&t.onClick(),this.handleActionClick(a.id,a)},icon:t.icon,iconLibrary:this.iconLibrary,iconSize:"12px",label:t.label}))),a.link&&e("a",{class:"snackbar-link",href:a.link.url,onClick:t=>{t.preventDefault(),this.handleLinkClick(a.id,a)}},a.link.text)),(a.duration??0)>0&&"ring"===a.progress&&e("svg",{class:"snackbar-progress-ring",viewBox:"0 0 20 20","aria-hidden":"true"},e("circle",{cx:"10",cy:"10",r:"9"})),(a.duration??0)>0&&"ring"!==a.progress&&e("div",{class:"snackbar-progress "+a.type,"aria-hidden":"true"}),(a.duration??0)>0&&this.showCountdown&&!a.sticky&&e("span",{class:"snackbar-countdown","aria-hidden":"true"},this.countdownSeconds[a.id]??Math.ceil((a.duration??0)/1e3),"s"),a.history&&a.history.length>1&&e("div",{class:"snackbar-history-indicator"},e("ui-button",{variant:"ghost",size:"sm",onButtonClick:t=>{const r=t.detail;r.stopPropagation();const e=r.currentTarget.closest(".snackbar-item"),i=e?.classList.toggle("history-expanded");r.currentTarget.label=i?"Hide history":`View previous history (${(a.history??[]).length-1})`},label:`View previous history (${(a.history??[]).length-1})`}),e("div",{class:"snackbar-history-list"},a.history.slice(0,-1).reverse().map((a=>e("div",{class:"history-item"},e("span",{class:"history-time"},new Date(a.timestamp).toLocaleTimeString()),e("span",{class:"history-msg"},a.message)))))))})),this.enableSlots&&e("slot",{key:"5a2fd1ebe5ba293ecf8dae3e83cbfe40ce25c995"}))}componentDidRender(){this.visibleSnackbars.forEach((a=>{this.animatedItems.has(a.id)||(this.animatedItems.add(a.id),setTimeout((()=>{const t=this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a.id}"]`);t&&t.classList.add("show")}),10))}))}static get watchers(){return{textDirection:[{onTextDirectionChange:0}],position:[{positionChanged:0}],maxVisible:[{maxVisibleChanged:0}],stackMode:[{stackModeChanged:0}]}}static get style(){return'@charset "UTF-8";.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.snackbar-quick-input{width:100%;margin:12px 0 0 0;display:flex;align-items:center;pointer-events:auto}.snackbar-quick-input input{width:100%;min-width:0;box-sizing:border-box;padding:8px 12px;border-radius:6px;border:1px solid var(--border-default, #e5e7eb);font-size:15px;background:var(--bg-primary, #ffffff);outline:none;transition:border 0.2s, box-shadow 0.2s}.snackbar-quick-input input:focus{border:1.5px solid var(--color-primary, #6366f1);box-shadow:0 0 0 2px var(--color-primary, #c7d2fe)}:host{display:block;position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:var(--snackbar-z-index, 10500);transform:translateZ(0);--snackbar-radius:12px;--snackbar-font:inherit;--snackbar-min-width:320px;--snackbar-max-width:440px;--snackbar-z-index:10500;--snackbar-bg:var(--bg-primary, #fdfdfd);--snackbar-color:var(--text-primary, #1f2937);--snackbar-border:rgba(0, 0, 0, 0.08);--snackbar-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);--snackbar-success-bg:var(--color-success-hover, #059669);--snackbar-error-bg:var(--color-danger-hover, #dc2626);--snackbar-warning-bg:var(--color-warning-hover, #d97706);--snackbar-info-bg:var(--color-primary-hover, #2563eb);--snackbar-neutral-bg:var(--color-primary, #4b5563);--snackbar-badge-bg:rgba(15, 23, 42, 0.85);--snackbar-badge-color:var(--color-primary, #60a5fa)}.snackbar-container{display:block;position:absolute;z-index:10501;pointer-events:none;width:auto;max-width:100vw;box-sizing:border-box;padding:16px;display:flex;flex-direction:column;gap:12px;transition:all 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28);max-height:calc(100vh - 40px)}.snackbar-clear-all{pointer-events:auto;align-self:center;margin-bottom:8px;background:rgba(255, 255, 255, 0.9);border:1px solid rgba(0, 0, 0, 0.1);border-radius:20px;padding:6px 14px;font-size:11px;font-weight:600;color:var(--text-secondary, #4b5563);display:flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1);backdrop-filter:blur(8px);transition:all 0.2s;z-index:2000;}.snackbar-container.card-stack:not(.hovered) .snackbar-clear-all{display:none}.snackbar-clear-all:hover{background:var(--bg-primary, #ffffff);transform:translateY(-1px);box-shadow:0 6px 10px -1px rgba(0, 0, 0, 0.15)}.snackbar-clear-all .kb-hint{background:rgba(0, 0, 0, 0.05);padding:1px 4px;border-radius:3px;font-size:9px;opacity:0.6}.snackbar-badge-btn{background:var(--snackbar-badge-bg, rgba(15, 23, 42, 0.85));color:#fff;border-radius:12px;padding:2px 8px;font-size:10px;border:none;cursor:pointer;display:flex;align-items:center;transition:transform 0.2s;pointer-events:auto}.snackbar-badge-btn:hover{transform:scale(1.05)}.snackbar-badge-btn ui-icon{margin-left:4px;display:flex}.snackbar-history{margin-top:8px;padding:8px;background:rgba(0, 0, 0, 0.03);border-radius:6px;font-size:12px;max-height:120px;overflow-y:auto;scrollbar-width:thin}.snackbar-history .history-item{display:flex;gap:8px;padding:4px 0;border-bottom:1px solid rgba(0, 0, 0, 0.05)}.snackbar-history .history-item:last-child{border-bottom:none}.snackbar-history .history-item .history-time{color:var(--text-secondary, #6b7280);font-family:monospace;white-space:nowrap}.snackbar-history .history-item .history-msg{color:var(--text-primary, #111827)}.theme-dark .snackbar-clear-all{background:var(--bg-primary, #1e293b);color:var(--text-standard, #e2e8f0);border-color:rgba(255, 255, 255, 0.1)}.snackbar-countdown{position:absolute;bottom:28px;right:12px;background:rgba(0, 0, 0, 0.55);color:rgba(255, 255, 255, 0.9);border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700;letter-spacing:0.02em;pointer-events:none;opacity:1;transition:opacity 0.3s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10;min-width:24px;text-align:center;font-variant-numeric:tabular-nums;}.snackbar-container.rtl .snackbar-countdown{right:auto;left:12px}.snackbar-container:hover .snackbar-countdown{opacity:0}.snackbar-container.top-left{top:0;left:0;align-items:flex-start}.snackbar-container.top-right{top:0;right:0;align-items:flex-end}.snackbar-container.top-center{top:0;left:50%;transform:translateX(-50%);align-items:center}.snackbar-container.bottom-left{bottom:0;left:0;flex-direction:column-reverse;align-items:flex-start}.snackbar-container.bottom-right{bottom:0;right:0;flex-direction:column-reverse;align-items:flex-end}.snackbar-container.bottom-center{bottom:0;left:50%;transform:translateX(-50%);flex-direction:column-reverse;align-items:center}.snackbar-container.rtl.top-left{left:auto;right:0;align-items:flex-end}.snackbar-container.rtl.top-right{right:auto;left:0;align-items:flex-start}.snackbar-container.rtl.bottom-left{left:auto;right:0;align-items:flex-end}.snackbar-container.rtl.bottom-right{right:auto;left:0;align-items:flex-start}.snackbar-container.rtl .snackbar-item.slide-right{animation-name:slideInLeft}.snackbar-container.rtl .snackbar-item.slide-left{animation-name:slideInRight}.snackbar-container:not(.bottom-left):not(.bottom-right):not(.bottom-center) .snackbar-item{order:var(--stack-index)}.snackbar-container.bottom-left,.snackbar-container.bottom-right,.snackbar-container.bottom-center{padding-bottom:24px}.snackbar-container.top-left,.snackbar-container.top-right,.snackbar-container.top-center{padding-top:24px}.stack-count-badge{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;background:rgba(15, 23, 42, 0.85);color:var(--text-standard, #ffffff);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700;cursor:pointer;z-index:200;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255, 255, 255, 0.15);transition:all 0.2s ease;pointer-events:auto;white-space:nowrap}.stack-count-badge:hover{background:rgba(15, 23, 42, 0.98);transform:translateX(-50%) translateY(-2px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.3)}.stack-count-badge .stack-count-number{font-size:13px;font-weight:800;color:var(--color-primary, #60a5fa)}.stack-count-badge .stack-count-label{opacity:0.7;font-weight:500}.snackbar-container.bottom-left .stack-count-badge,.snackbar-container.bottom-right .stack-count-badge,.snackbar-container.bottom-center .stack-count-badge{bottom:auto;top:-18px}.snackbar-container.bottom-left .stack-count-badge:hover,.snackbar-container.bottom-right .stack-count-badge:hover,.snackbar-container.bottom-center .stack-count-badge:hover{transform:translateX(-50%) translateY(2px)}.snackbar-container.top-right .stack-count-badge,.snackbar-container.bottom-right .stack-count-badge{left:auto;right:0;transform:none}.snackbar-container.top-right .stack-count-badge:hover,.snackbar-container.bottom-right .stack-count-badge:hover{transform:translateY(-2px)}.snackbar-container.top-left .stack-count-badge,.snackbar-container.bottom-left .stack-count-badge{left:0;transform:none}.snackbar-container.top-left .stack-count-badge:hover,.snackbar-container.bottom-left .stack-count-badge:hover{transform:translateY(-2px)}.snackbar-container.card-stack{display:flex !important;flex-direction:column;width:360px;max-width:calc(100vw - 32px);min-height:160px;padding:16px;pointer-events:none;overflow:visible;--stack-gap:8px;--stack-shrink:0.04;--stack-opacity:0.15;}.snackbar-container.card-stack::before{content:"";position:absolute;inset:-8px;background:transparent;pointer-events:auto;z-index:0}.snackbar-container.card-stack:not(.hovered) .snackbar-item{position:absolute !important;margin:0 !important;pointer-events:none;transition:transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.5s ease, width 0.5s ease;width:calc(100% - var(--stack-index, 0) * 14px);opacity:calc(1 - var(--stack-index, 0) * var(--stack-opacity));filter:brightness(calc(1 - var(--stack-index, 0) * 0.08));z-index:calc(50 - var(--stack-index, 0))}.snackbar-container.card-stack.top-left:not(.hovered) .snackbar-item,.snackbar-container.card-stack.top-right:not(.hovered) .snackbar-item,.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item{top:16px;transform:translateY(calc(var(--stack-index, 0) * var(--stack-gap)))}.snackbar-container.card-stack.bottom-left:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-right:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{bottom:16px;transform:translateY(calc(var(--stack-index, 0) * var(--stack-gap) * -1))}.snackbar-container.card-stack.top-right:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-right:not(.hovered) .snackbar-item{right:0;left:auto !important}.snackbar-container.card-stack.top-left:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-left:not(.hovered) .snackbar-item{left:0 !important;right:auto}.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{left:50% !important;right:auto;transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap)))}.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap) * -1))}@keyframes stackSlideFromTop{from{transform:translateX(-50%) translateY(-40px);opacity:0}to{transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap)));opacity:calc(1 - var(--stack-index, 0) * var(--stack-opacity))}}@keyframes stackSlideFromBottom{from{transform:translateX(-50%) translateY(40px);opacity:0}to{transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap) * -1));opacity:calc(1 - var(--stack-index, 0) * var(--stack-opacity))}}.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item{animation:stackSlideFromTop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both;animation-delay:calc(var(--stack-index, 0) * 60ms)}.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{animation:stackSlideFromBottom 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both;animation-delay:calc(var(--stack-index, 0) * 60ms)}.snackbar-container.card-stack:not(.hovered) .snackbar-item[data-stack-index="0"]{pointer-events:auto;opacity:1 !important;filter:none !important;z-index:100 !important;box-shadow:0 8px 24px rgba(0, 0, 0, 0.18)}.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item[data-stack-index="0"],.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item[data-stack-index="0"]{transform:translateX(-50%) !important}.snackbar-container.card-stack.hovered{pointer-events:auto;align-items:stretch;}.snackbar-container.card-stack.hovered .snackbar-item{position:relative !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important;width:100% !important;transform:none !important;opacity:1 !important;filter:none !important;pointer-events:auto;margin:0 0 8px 0 !important;z-index:auto !important;box-shadow:0 4px 12px rgba(0, 0, 0, 0.1);transition:transform 0.3s ease, box-shadow 0.2s ease}.snackbar-container.card-stack.hovered .snackbar-item:last-child{margin-bottom:0 !important}.snackbar-container.card-stack.hovered .snackbar-item:hover{transform:translateY(-2px) !important;box-shadow:0 12px 24px rgba(0, 0, 0, 0.14)}.snackbar-item{box-sizing:border-box;display:flex;flex-direction:column;width:auto;min-width:var(--snackbar-min-width, 320px);max-width:var(--snackbar-max-width, 440px);padding:16px;border-radius:var(--snackbar-radius, 12px);pointer-events:auto;box-shadow:var(--snackbar-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05));background:var(--snackbar-bg, #fdfdfd);color:var(--snackbar-color, var(--text-primary, #1f2937));transition:all 0.5s cubic-bezier(0.18, 0.89, 0.32, 1.28), transform 0.2s ease;position:relative;overflow:visible;backdrop-filter:blur(16px);border:1px solid var(--snackbar-border, rgba(0, 0, 0, 0.08));z-index:calc(100 - var(--stack-index))}.snackbar-item:hover{transform:translateY(-2px);box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)}.snackbar-item:focus-visible{outline:2px solid var(--color-primary, #10b981);outline-offset:4px;box-shadow:0 0 0 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.4);background:var(--bg-primary, #ffffff) !important}.snackbar-item{}.snackbar-item.sm{min-width:280px;padding:10px 12px;--snackbar-title-size:13px;--snackbar-msg-size:12px;--snackbar-icon-size:1.1rem;gap:8px}.snackbar-item.md{min-width:320px;padding:16px;--snackbar-title-size:15px;--snackbar-msg-size:14px;--snackbar-icon-size:1.25rem}.snackbar-item.lg{min-width:400px;padding:20px 24px;--snackbar-title-size:18px;--snackbar-msg-size:16px;--snackbar-icon-size:1.5rem;gap:16px}.item-main-row{display:flex;align-items:flex-start;gap:12px;width:100%}.snackbar-content{flex:1;min-width:0}.snackbar-title{font-weight:700;font-size:var(--snackbar-title-size, 15px);color:inherit;margin-bottom:2px;display:flex;align-items:center;gap:8px}.snackbar-message{font-size:var(--snackbar-msg-size, 14px);line-height:1.5;color:inherit;opacity:0.9;margin:0;word-break:break-word;white-space:pre-wrap}.snackbar-icon,.snackbar-custom-icon{font-size:var(--snackbar-icon-size, 1.25rem)}.snackbar-badge{background:rgba(0, 0, 0, 0.1);padding:2px 8px;border-radius:12px;font-size:11px;font-weight:800;transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.snackbar-badge.pulse{animation:badgePop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)}@keyframes badgePop{0%{transform:scale(1)}50%{transform:scale(1.6);background:var(--color-danger, #fbbf24);color:var(--text-primary, #000);box-shadow:0 0 15px rgba(251, 191, 36, 0.5)}100%{transform:scale(1)}}.snackbar-item.filled{color:var(--text-standard, #ffffff);border:none}.snackbar-item.filled.success{background:var(--snackbar-success-bg, var(--color-success-hover, #059669))}.snackbar-item.filled.error{background:var(--snackbar-error-bg, var(--color-danger-hover, #dc2626))}.snackbar-item.filled.warning{background:var(--snackbar-warning-bg, var(--color-warning-hover, #d97706))}.snackbar-item.filled.info{background:var(--snackbar-info-bg, var(--color-primary-hover, #2563eb))}.snackbar-item.filled.neutral{background:var(--snackbar-neutral-bg, #4b5563)}.snackbar-item.filled.loading{background:var(--snackbar-neutral-bg, #4b5563)}.snackbar-item.glass{background:rgba(255, 255, 255, 0.6);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255, 255, 255, 0.4);box-shadow:0 8px 32px 0 rgba(31, 38, 135, 0.15);color:var(--text-primary, #1e293b)}.snackbar-item.glass.success{border-left:4px solid var(--color-success, #10b981);background:rgba(236, 253, 245, 0.6)}.snackbar-item.glass.error{border-left:4px solid var(--color-danger, #ef4444);background:rgba(254, 242, 242, 0.6)}.snackbar-item.glass.warning{border-left:4px solid var(--color-warning, #f59e0b);background:rgba(255, 251, 235, 0.6)}.snackbar-item.glass.info{border-left:4px solid var(--color-primary, #10b981);background:rgba(239, 246, 255, 0.6)}.snackbar-item.glass .snackbar-action-btn:not(.variant-danger){background:rgba(0, 0, 0, 0.05);border-color:rgba(0, 0, 0, 0.1);color:var(--color-primary, #334155)}.snackbar-item.glass .snackbar-action-btn:not(.variant-danger):hover{background:rgba(0, 0, 0, 0.1)}.snackbar-item.outlined{background:rgba(255, 255, 255, 0.9);border-width:1.5px;border-style:solid}.snackbar-item.outlined.success{border-color:var(--color-success-hover, #059669);color:var(--color-success-hover, #059669)}.snackbar-item.outlined.error{border-color:var(--color-danger-hover, #dc2626);color:var(--color-danger-hover, #dc2626)}.snackbar-item.outlined.warning{border-color:var(--color-warning-hover, #d97706);color:var(--color-warning-hover, #d97706)}.snackbar-item.outlined.info{border-color:var(--color-primary-hover, #2563eb);color:var(--color-primary-hover, #2563eb)}.snackbar-item.outlined.neutral{border-color:var(--border-strong, #4b5563);color:var(--text-secondary, #4b5563)}.snackbar-item.soft{background:rgba(255, 255, 255, 0.95)}.snackbar-item.soft.success{border-left:4px solid var(--color-success, #10b981);background:var(--bg-primary, #ecfdf5);color:var(--color-primary, #065f46)}.snackbar-item.soft.success .snackbar-title,.snackbar-item.soft.success .snackbar-icon{color:var(--color-success-hover, #059669)}.snackbar-item.soft.error{border-left:4px solid var(--color-danger, #ef4444);background:var(--bg-primary, #fef2f2);color:var(--color-danger, #991b1b)}.snackbar-item.soft.error .snackbar-title,.snackbar-item.soft.error .snackbar-icon{color:var(--color-danger-hover, #dc2626)}.snackbar-item.soft.warning{border-left:4px solid var(--color-warning, #f59e0b);background:var(--bg-primary, #fffbeb);color:var(--color-danger, #92400e)}.snackbar-item.soft.warning .snackbar-title,.snackbar-item.soft.warning .snackbar-icon{color:var(--color-warning-hover, #d97706)}.snackbar-item.soft.info{border-left:4px solid var(--color-primary, #10b981);background:var(--bg-primary, #eff6ff);color:var(--color-primary, #1e40af)}.snackbar-item.soft.info .snackbar-title,.snackbar-item.soft.info .snackbar-icon{color:var(--color-primary-hover, #2563eb)}.snackbar-item.soft.neutral{border-left:4px solid var(--color-primary, #475569);background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #374151)}.snackbar-item.soft.neutral .snackbar-title,.snackbar-item.soft.neutral .snackbar-icon{color:var(--color-primary, #475569)}.snackbar-item.neutral:not(.filled),.snackbar-item.loading:not(.filled){background:var(--bg-primary, #f8fafc);border-color:var(--border-subtle, #e2e8f0);color:var(--color-primary, #334155)}.snackbar-item.filled.success{background:var(--color-success, #10b981);color:var(--text-standard, #ffffff)}.snackbar-item.filled.error{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff)}.snackbar-item.filled.warning{background:var(--color-warning, #f59e0b);color:var(--text-standard, #ffffff)}.snackbar-item.filled.info{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff)}.snackbar-item.filled.neutral{background:var(--color-primary, #334155);color:var(--text-standard, #ffffff)}.snackbar-item.filled.loading{background:var(--color-primary, #475569);color:var(--text-standard, #ffffff)}.snackbar-item.sovereign{background:linear-gradient(135deg, var(--bg-primary, #1e293b) 0%, var(--bg-secondary, #0f172a) 100%);color:var(--color-danger, #fbbf24);border:1px solid rgba(251, 191, 36, 0.4);box-shadow:0 0 20px rgba(251, 191, 36, 0.15), 0 10px 15px -3px rgba(0, 0, 0, 0.3);overflow:hidden}.snackbar-item.sovereign::after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle, rgba(251, 191, 36, 0.1) 0%, transparent 70%);opacity:0.5;animation:sovereignPulse 4s infinite alternate}.snackbar-item.sovereign .snackbar-title{color:var(--color-danger, #fbbf24);text-shadow:0 0 8px rgba(251, 191, 36, 0.4);letter-spacing:0.05em}.snackbar-item.sovereign .snackbar-badge{background:var(--color-danger, #fbbf24);color:var(--text-primary, #0f172a)}.snackbar-item.sovereign .snackbar-progress{background:var(--color-danger, #fbbf24);box-shadow:0 0 10px var(--color-danger, #fbbf24);height:3px}.snackbar-item.sovereign .snackbar-icon{color:var(--color-danger, #fbbf24);filter:drop-shadow(0 0 5px rgba(251, 191, 36, 0.6))}@keyframes sovereignPulse{0%{transform:scale(1) translate(0, 0);opacity:0.3}100%{transform:scale(1.2) translate(5%, 5%);opacity:0.6}}.snackbar-item.theme-dark{background:var(--bg-secondary, #111827);color:var(--text-standard, #ffffff);border-color:rgba(255, 255, 255, 0.1);box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.5)}.snackbar-item{opacity:0;transition:all 0.5s cubic-bezier(0.18, 0.89, 0.32, 1.28), opacity 0.3s ease, max-height 0.4s ease, margin 0.4s ease;max-height:200px}.snackbar-item.slide-up{transform:translateY(40px) scale(0.9)}.snackbar-item.slide-down{transform:translateY(-40px) scale(0.9)}.snackbar-item.slide-left{transform:translateX(-100%) scale(0.9)}.snackbar-item.slide-right{transform:translateX(100%) scale(0.9)}.snackbar-item.fade{transform:scale(0.95)}.snackbar-item.scale{transform:scale(0.1)}.snackbar-item.spring{transform:translateY(100px)}.snackbar-item.show{opacity:1;transform:translate(0, 0) scale(1)}.snackbar-item.closing{opacity:0 !important;transform:scale(0.8) translateY(20px) !important;pointer-events:none;max-height:0 !important;margin-top:0 !important;margin-bottom:0 !important;padding-top:0 !important;padding-bottom:0 !important;overflow:hidden;filter:blur(8px)}.snackbar-container.top-left .snackbar-item.closing,.snackbar-container.top-right .snackbar-item.closing,.snackbar-container.top-center .snackbar-item.closing{transform:scale(0.8) translateY(-20px) !important}.snackbar-item.spring.show{animation:springEntry 0.6s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards}@keyframes springEntry{0%{transform:translateY(100px) scale(0.4);opacity:0}70%{transform:translateY(-10px) scale(1.05);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}.snackbar-item.bounce.show{animation:bounceIn 0.5s cubic-bezier(0.36, 0, 0.66, -0.56) forwards}@keyframes bounceIn{0%{transform:scale(0.3);opacity:0}50%{transform:scale(1.1);opacity:1}70%{transform:scale(0.9)}100%{transform:scale(1)}}.snackbar-actions{display:flex;align-items:center;gap:12px;margin-top:10px}.snackbar-action-btn{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;background:rgba(0, 0, 0, 0.1);border:1px solid rgba(0, 0, 0, 0.1);color:inherit;cursor:pointer;transition:all 0.2s}.snackbar-action-btn:hover{background:rgba(0, 0, 0, 0.2)}.snackbar-item.filled .snackbar-action-btn{background:rgba(255, 255, 255, 0.2);border-color:rgba(255, 255, 255, 0.3)}.snackbar-item.filled .snackbar-action-btn:hover{background:rgba(255, 255, 255, 0.3)}.snackbar-action-btn.variant-primary{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-color:var(--color-primary-hover, #2563eb)}.snackbar-action-btn.variant-primary:hover{background:var(--color-primary-hover, #2563eb)}.snackbar-action-btn.variant-danger{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff);border-color:var(--color-danger-hover, #dc2626)}.snackbar-action-btn.variant-danger:hover{background:var(--color-danger-hover, #dc2626)}.snackbar-action-btn.variant-text{background:transparent;border:none;font-weight:600;padding:4px 6px}.snackbar-action-btn.variant-text:hover{text-decoration:underline;background:rgba(0, 0, 0, 0.05)}.snackbar-link{font-size:12px;text-decoration:underline;color:inherit;opacity:0.8;font-weight:500}.snackbar-link:hover{opacity:1}.snackbar-progress{position:absolute;bottom:0;left:0;height:4px;background:rgba(255, 255, 255, 0.5);width:0%;transition:width linear;}.snackbar-container.hovered .snackbar-progress{animation:progressPulse 2s infinite ease-in-out}@keyframes progressPulse{0%,100%{opacity:0.5}50%{opacity:0.8}}.snackbar-item:not(.filled) .snackbar-progress,.snackbar-item.neutral.filled .snackbar-progress,.snackbar-item.outlined .snackbar-progress,.snackbar-item.soft .snackbar-progress{background:currentColor;opacity:0.15}.snackbar-progress-ring{position:absolute;top:12px;right:12px;width:20px;height:20px;transform:rotate(-90deg)}.snackbar-progress-ring circle{fill:none;stroke:currentColor;stroke-width:2;stroke-dasharray:56.5;stroke-dashoffset:56.5;opacity:0.3}.snackbar-close{background:none;border:none;color:inherit;cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0.6;transition:all 0.2s}.snackbar-close:hover{opacity:1;background:rgba(0, 0, 0, 0.05)}.snackbar-icon-draw{width:24px;height:24px}.circle{stroke-dasharray:157;stroke-dashoffset:157;stroke-width:2;stroke-miterlimit:10;stroke:currentColor;fill:none;animation:stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards}.check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;stroke:currentColor;stroke-width:3;animation:stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards}@keyframes stroke{100%{stroke-dashoffset:0}}.snackbar-history-indicator{margin-top:12px;border-top:1px solid rgba(0, 0, 0, 0.05);padding-top:8px;width:100%}.expand-history-btn{background:transparent;border:none;font-size:11px;font-weight:600;color:inherit;opacity:0.6;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:4px}.expand-history-btn:hover{opacity:1;text-decoration:underline}.snackbar-history-list{max-height:0;overflow:hidden;transition:max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);display:flex;flex-direction:column;gap:6px}.snackbar-item.history-expanded .snackbar-history-list{max-height:150px;margin-top:8px;overflow-y:auto}.history-item{display:flex;flex-direction:column;padding:6px 8px;background:rgba(0, 0, 0, 0.03);border-radius:4px;font-size:12px}.history-item .history-time{font-size:10px;font-weight:700;opacity:0.5}.history-item .history-msg{opacity:0.8}.theme-dark .history-item{background:rgba(255, 255, 255, 0.05)}.snackbar-item.filled .history-item{background:rgba(255, 255, 255, 0.1)}.snackbar-loading-spinner{width:18px;height:18px;border:2px solid rgba(255, 255, 255, 0.3);border-radius:50%;border-top-color:var(--bg-primary, #ffffff);animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.snackbar-quick-input{width:100%;margin-top:8px}.snackbar-quick-input input{width:100%;padding:8px 12px;border-radius:6px;border:1px solid rgba(0, 0, 0, 0.1);background:rgba(255, 255, 255, 0.5);font-size:13px;outline:none}.snackbar-quick-input input:focus{border-color:var(--color-primary, #10b981);background:var(--bg-primary, #ffffff)}@media (max-width: 500px){.snackbar-container{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;transform:none !important;padding:12px !important;bottom:0 !important;top:auto !important;}.snackbar-container.top-left,.snackbar-container.top-right,.snackbar-container.top-center{top:0 !important;bottom:auto !important}.snackbar-item{width:100% !important;min-width:0 !important;max-width:100% !important;margin-left:0 !important;margin-right:0 !important}.snackbar-clear-all{width:auto;align-self:center}.snackbar-container.card-stack{min-width:0 !important}.snackbar-container.card-stack::before{display:none}.snackbar-container.card-stack{}}@keyframes sb-particle-burst{0%{transform:translate(-50%, -50%) translate(0, 0) scale(0) rotate(0deg);opacity:0}15%{opacity:1;transform:translate(-50%, -50%) translate(calc(var(--tx) * 0.25px), calc(var(--ty) * 0.25px)) scale(var(--s)) rotate(calc(var(--r) * 0.2deg))}80%{opacity:0.7}100%{transform:translate(-50%, -50%) translate(calc(var(--tx) * 1px), calc(var(--ty) * 1px)) scale(0) rotate(calc(var(--r) * 1deg));opacity:0}}@keyframes sb-particle-float{0%{transform:translate(-50%, -50%) translate(0, 0) scale(0.5) rotate(0deg);opacity:0}20%{opacity:1}100%{transform:translate(-50%, -50%) translate(calc(var(--tx) * 0.5px), calc(var(--ty) * 1px)) scale(0) rotate(calc(var(--r) * 0.5deg));opacity:0}}@keyframes sb-particle-glint{0%{transform:translate(-50%, -50%) scale(0);opacity:0}30%{transform:translate(-50%, -50%) scale(1.6);opacity:1}100%{transform:translate(-50%, -50%) scale(0.3);opacity:0}}.sb-particle{position:absolute;top:50%;left:50%;pointer-events:none;will-change:transform, opacity;z-index:1000;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(0.19, 1, 0.22, 1);animation-duration:var(--d, 1.2s);animation-delay:var(--delay, 0s)}.sb-particle.sb-particle--burst{width:var(--size, 8px);height:var(--size, 8px);border-radius:50%;background:radial-gradient(circle, #fbbf24 0%, #f97316 60%, transparent 100%);box-shadow:0 0 6px 1px rgba(251, 191, 36, 0.5019607843);animation-name:sb-particle-burst}.sb-particle.sb-particle--float{font-size:var(--size, 14px);line-height:1;animation-name:sb-particle-float}.sb-particle.sb-particle--glint{width:var(--size, 6px);height:var(--size, 6px);border-radius:50%;background:#fff;box-shadow:0 0 4px 2px rgba(255, 255, 255, 0.5019607843);animation-name:sb-particle-glint}.snackbar-particle{position:absolute;top:50%;left:50%;pointer-events:none;z-index:1000;opacity:0;will-change:transform, opacity}.snackbar-particle.type-glow{width:8px;height:8px;background:radial-gradient(circle, #fbbf24 0%, transparent 70%);border-radius:50%;box-shadow:0 0 10px #fbbf24;animation:snackbarParticleExplode 1.6s cubic-bezier(0.19, 1, 0.22, 1) forwards}.snackbar-particle.type-emoji{animation:snackbarParticleExplodeRotate 1.8s cubic-bezier(0.19, 1, 0.22, 1) forwards;white-space:nowrap}@keyframes snackbarParticleExplode{0%{transform:translate(-50%, -50%) scale(0);opacity:0}20%{transform:translate(-50%, -50%) scale(1.5);opacity:1}100%{transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(0);opacity:0}}@keyframes snackbarParticleExplodeRotate{0%{transform:translate(-50%, -50%) scale(0) rotate(0deg);opacity:0}20%{transform:translate(-50%, -50%) scale(1.5) rotate(0deg);opacity:1}100%{transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(0) rotate(var(--rot));opacity:0}}'}},[769,"ui-snackbar",{position:[1],maxVisible:[2,"max-visible"],stackMode:[1,"stack-mode"],openMode:[1,"open-mode"],variant:[1],size:[1],theme:[1],cardStack:[4,"card-stack"],groupThreshold:[2,"group-threshold"],duration:[2],coalesce:[4],maxDuration:[2,"max-duration"],showCountdown:[4,"show-countdown"],textDirection:[1,"text-direction"],iconLibrary:[1,"icon-library"],portal:[4],pauseOnHover:[4,"pause-on-hover"],pauseOnFocusLoss:[4,"pause-on-focus-loss"],soundMode:[1,"sound-mode"],particles:[4],enableSlots:[4,"enable-slots"],snackbars:[32],visibleSnackbars:[32],animatedItems:[32],isHovered:[32],expandedSnackbars:[32],dragX:[32],isDragging:[32],dir:[32],countdownSeconds:[32],add:[64],close:[64],closeAll:[64],closeNext:[64],getAll:[64],pause:[64],resume:[64],replace:[64],promise:[64],undoable:[64],update:[64]},void 0,{textDirection:[{onTextDirectionChange:0}],position:[{positionChanged:0}],maxVisible:[{maxVisibleChanged:0}],stackMode:[{stackModeChanged:0}]}]),d=b,p=function(){"undefined"!=typeof customElements&&["ui-snackbar","ui-badge","ui-button","ui-icon","ui-input"].forEach((a=>{switch(a){case"ui-snackbar":customElements.get(i(a))||customElements.define(i(a),b);break;case"ui-badge":customElements.get(i(a))||c();break;case"ui-button":customElements.get(i(a))||s();break;case"ui-icon":customElements.get(i(a))||o();break;case"ui-input":customElements.get(i(a))||l()}}))};export{d as UiSnackbar,p as defineCustomElement}
1
+ import{proxyCustomElement as a,HTMLElement as t,createEvent as r,h as e,transformTag as i}from"@stencil/core/internal/client";import{s as n,d as o}from"./icon.js";import{d as s,a as c}from"./badge.js";import{d as l}from"./input.js";import{d as b}from"./loader.js";const d=a(class extends t{constructor(a){super(),!1!==a&&this.__registerHost(),this.__attachShadow(),this.snackbarClosed=r(this,"snackbarClosed",7),this.snackbarAdded=r(this,"snackbarAdded",7),this.snackbarUpdated=r(this,"snackbarUpdated",7),this.snackbarLinkClicked=r(this,"snackbarLinkClicked",7),this.snackbarActionClicked=r(this,"snackbarActionClicked",7)}get element(){return this}position="top-right";maxVisible=5;stackMode="stack";openMode="slide-down";variant="filled";size="md";theme="auto";cardStack=!1;groupThreshold=3e3;duration=5e3;coalesce=!1;maxDuration=0;showCountdown=!1;textDirection="auto";onTextDirectionChange(){this.updateDir()}iconLibrary="lucide";portal=!0;pauseOnHover=!0;pauseOnFocusLoss=!0;soundMode="synth";particles=!0;enableSlots=!1;snackbarClosed;snackbarAdded;snackbarUpdated;snackbarLinkClicked;snackbarActionClicked;snackbars=[];visibleSnackbars=[];animatedItems=new Set;isHovered=!1;expandedSnackbars=new Set;dragX={};isDragging=null;dir="ltr";countdownSeconds={};timers={};startX=0;componentWillLoad(){this.updateVisibleSnackbars(),this.updateDir(),window.addEventListener("keydown",this.handleGlobalKeyDown),this.portal&&document.body&&this.element.parentElement!==document.body&&document.body.appendChild(this.element),window.addEventListener("blur",(()=>this.handleWindowBlur())),window.addEventListener("focus",(()=>this.handleWindowFocus()))}updateDir(){if("rtl"===this.textDirection)return void(this.dir="rtl");if("ltr"===this.textDirection)return void(this.dir="ltr");const a=getComputedStyle(this.element).direction;this.dir="rtl"===a?"rtl":"ltr"}disconnectedCallback(){window.removeEventListener("keydown",this.handleGlobalKeyDown),window.removeEventListener("blur",(()=>this.handleWindowBlur())),window.removeEventListener("focus",(()=>this.handleWindowFocus()))}handleGlobalKeyDown=a=>{"Escape"===a.key&&this.snackbars.length>0&&(a.preventDefault(),a.stopPropagation(),this.closeAll())};positionChanged(){this.updateVisibleSnackbars()}maxVisibleChanged(){this.updateVisibleSnackbars()}stackModeChanged(){this.updateVisibleSnackbars()}handleWindowBlur(){this.pauseOnFocusLoss&&(this.isHovered=!0)}handleWindowFocus(){if(this.pauseOnFocusLoss){this.isHovered=!1;const a=Date.now();Object.values(this.timers).forEach((t=>{t.lastTime=a}))}}updateVisibleSnackbars(){this.visibleSnackbars=[...this.snackbars].sort(((a,t)=>"urgent"===a.priority&&"urgent"!==t.priority?-1:"urgent"!==a.priority&&"urgent"===t.priority?1:0)).slice(0,this.maxVisible)}async add(a){if(this.coalesce){const t=this.snackbars.findIndex((t=>t.message===a.message&&t.type===a.type));if(-1!==t){const r=this.snackbars[t].id;return this.update(r,{count:(this.snackbars[t].count||1)+1,duration:a.duration||this.snackbars[t].duration||this.duration,history:[...this.snackbars[t].history||[],{message:a.message,title:a.title,timestamp:Date.now()}]}),r}}const t=this.generateId(),r={id:t,type:a.type||"info",title:a.title,message:a.message,html:a.html||!1,avatar:a.avatar,icon:a.icon,iconLibrary:a.iconLibrary||this.iconLibrary,link:a.link,action:a.action,actions:a.actions||[],duration:0===a.duration?0:this.clampDuration(a.duration||this.duration),variant:a.variant||this.variant,size:a.size||this.size,customClass:a.customClass,closable:!1!==a.closable,count:1,haptic:a.haptic||"error"===a.type,sound:a.sound,progress:a.progress||"bar",priority:a.priority||("error"===a.type?"urgent":"high"),theme:a.theme||this.theme,input:a.input,sticky:!!a.sticky,onClose:a.onClose,slot:a.slot,history:[{message:a.message,title:a.title,timestamp:Date.now()}]};return"sovereign"===r.type&&this.particles&&this.spawnParticles(t),r.haptic&&"vibrate"in navigator&&("sovereign"===r.type?navigator.vibrate([100,30,100,30,100]):navigator.vibrate("error"===r.type?[50,50,50]:30)),"synth"===this.soundMode?this.playSynthSound(r.type):r.sound&&new Audio(r.sound).play().catch((()=>{})),this.snackbars="stack"===this.stackMode||"lifo"===this.stackMode?[r,...this.snackbars]:[...this.snackbars,r],this.snackbars.length>this.maxVisible&&this.close(this.snackbars[this.snackbars.length-1].id),this.updateVisibleSnackbars(),this.startTimer(t,r.duration??0),this.snackbarAdded.emit({id:t,item:r}),t}clampDuration(a){return this.maxDuration>0&&a>this.maxDuration?this.maxDuration:a}async close(a){const t=this.snackbars.findIndex((t=>t.id===a));if(-1!==t){if(this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),delete this.timers[a]),this.animatedItems.add(a+"-closing"),this.snackbars[t]?.onClose&&this.snackbars[t].onClose(),this.snackbarClosed.emit({id:a,item:this.snackbars[t]}),this.snackbars=this.snackbars.filter((t=>t.id!==a)),this.animatedItems.delete(a),this.animatedItems.delete(a+"-closing"),void 0!==this.countdownSeconds[a]){const{[a]:t,...r}=this.countdownSeconds;this.countdownSeconds=r}this.updateVisibleSnackbars()}}async closeAll(){Object.values(this.timers).forEach((a=>cancelAnimationFrame(a.id))),this.timers={},this.snackbars.forEach((a=>{a.onClose&&a.onClose(),this.snackbarClosed.emit({id:a.id,item:a})})),this.snackbars=[],this.visibleSnackbars=[],this.animatedItems.clear()}async closeNext(){if(0===this.snackbars.length)return;let a;a="queue"===this.stackMode?this.snackbars[this.snackbars.length-1].id:this.snackbars[0].id,await this.close(a)}async getAll(){return[...this.snackbars]}async pause(a){this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),this.timers[a].id=0)}async resume(a){if(this.timers[a]&&0===this.timers[a].id&&this.timers[a].remaining>0){this.timers[a].lastTime=Date.now();const t=()=>{if(!this.timers[a])return;const r=Date.now(),e=r-this.timers[a].lastTime;this.timers[a].lastTime=r,this.isHovered||(this.timers[a].remaining-=e),this.timers[a].remaining<=0?this.close(a):this.timers[a].id=requestAnimationFrame(t)};this.timers[a].id=requestAnimationFrame(t)}}async replace(a,t){const r=this.snackbars.findIndex((t=>t.id===a));if(-1===r)return;const e={...t,id:a},i=[...this.snackbars];i[r]=e,this.snackbars=i,this.updateVisibleSnackbars(),this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),delete this.timers[a]),(e.duration??0)>0&&this.startTimer(a,e.duration),this.snackbarUpdated.emit({id:a,item:e})}async promise(a,t){const r=await this.add({type:"loading",message:t.loading,duration:0,closable:!0});try{const e=await("function"==typeof a?a():a),i="function"==typeof t.success?t.success(e):t.success;return this.update(r,{type:"success",message:i,duration:t.duration||4e3,closable:!0}),e}catch(a){const e="function"==typeof t.error?t.error(a):t.error;throw this.update(r,{type:"error",message:e,duration:t.duration||5e3,closable:!0}),a}}async undoable(a){const t=await this.add({message:a.message,title:a.title,type:a.type||"neutral",duration:a.duration||6e3,action:a.action||{label:"UNDO",onClick:()=>{a.onUndo(),this.close(t)}},link:a.link}),r=e=>{e.detail.id===t&&(a.onDismiss&&a.onDismiss(),this.element.removeEventListener("snackbarClosed",r))};return this.element.addEventListener("snackbarClosed",r),t}async update(a,t){const r=this.snackbars.findIndex((t=>t.id===a));if(-1!==r){const e=void 0!==t.count&&t.count!==this.snackbars[r].count,i={...this.snackbars[r],...t},n=[...this.snackbars];n[r]=i,this.snackbars=n,this.updateVisibleSnackbars(),e&&this.triggerBadgePulse(a),void 0!==t.duration&&(this.timers[a]&&(cancelAnimationFrame(this.timers[a].id),delete this.timers[a]),t.duration>0&&this.startTimer(a,t.duration)),this.snackbarUpdated.emit({id:a,item:i})}}generateId(){return`snackbar-${Date.now()}-${Math.random().toString(36).substr(2,9)}`}startTimer(a,t){const r=this.snackbars.find((t=>t.id===a));if(t<=0||r&&r.sticky)return;this.timers[a]={remaining:t,lastTime:Date.now(),duration:t,id:0};const e=()=>{if(!this.timers[a])return;const t=Date.now(),r=t-this.timers[a].lastTime;this.timers[a].lastTime=t,this.isHovered||(this.timers[a].remaining-=r);const i=Math.min(100,Math.max(0,100-this.timers[a].remaining/this.timers[a].duration*100)),n=this.getProgressBarElement(a);n&&(n.style.width=i+"%");const o=this.getProgressRingElement(a);if(o&&(o.style.strokeDashoffset=""+(56.5-i/100*56.5)),this.showCountdown){const t=Math.ceil(this.timers[a].remaining/1e3);this.countdownSeconds[a]!==t&&(this.countdownSeconds={...this.countdownSeconds,[a]:t})}this.timers[a].remaining<=0?this.close(a):this.timers[a].id=requestAnimationFrame(e)};this.timers[a].id=requestAnimationFrame(e)}getProgressBarElement(a){return this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"] .snackbar-progress`)}getProgressRingElement(a){return this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"] .snackbar-progress-ring circle`)}handleCloseClick=a=>{this.close(a)};handleLinkClick=(a,t)=>{t.link&&this.snackbarLinkClicked.emit({id:a,item:t,link:t.link})};playSynthSound(a){try{const t=new(window.AudioContext||window.webkitAudioContext),r=t.createOscillator(),e=t.createGain();r.connect(e),e.connect(t.destination),"success"===a||"sovereign"===a?(r.type="sine",r.frequency.setValueAtTime(880,t.currentTime),r.frequency.exponentialRampToValueAtTime(1320,t.currentTime+.1),e.gain.setValueAtTime(.05,t.currentTime),e.gain.exponentialRampToValueAtTime(.01,t.currentTime+.3)):"error"===a||"warning"===a?(r.type="square",r.frequency.setValueAtTime(220,t.currentTime),r.frequency.exponentialRampToValueAtTime(110,t.currentTime+.1),e.gain.setValueAtTime(.05,t.currentTime),e.gain.exponentialRampToValueAtTime(.01,t.currentTime+.4)):(r.type="sine",r.frequency.setValueAtTime(440,t.currentTime),e.gain.setValueAtTime(.03,t.currentTime),e.gain.exponentialRampToValueAtTime(.01,t.currentTime+.2)),r.start(),r.stop(t.currentTime+.5)}catch(a){}}toggleExpand(a){const t=new Set(this.expandedSnackbars);t.has(a)?t.delete(a):t.add(a),this.expandedSnackbars=t}triggerBadgePulse(a){const t=this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"] .snackbar-badge`);t&&(t.classList.remove("pulse"),t.classList.add("pulse"))}spawnParticles(a){if("undefined"==typeof window)return;const t=["✨","⭐","💫","🌟"];setTimeout((()=>{const r=this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a}"]`);if(!r)return;"static"===getComputedStyle(r).position&&(r.style.position="relative",r.style.overflow="visible");const e=(a,e,i)=>{const n=document.createElement("span");n.className="sb-particle sb-particle--"+a;const o=2*Math.PI*e/i,s=80+120*Math.random(),c=Math.round(Math.cos(o)*s),l=Math.round(Math.sin(o)*s),b=Math.round(1080*Math.random()-540),d=(1+.8*Math.random()).toFixed(2),p=(.15*Math.random()).toFixed(2);if("burst"===a){const a=(6+6*Math.random()).toFixed(1);n.style.cssText=`--tx:${c};--ty:${l};--r:${b};--d:${d}s;--delay:${p}s;--size:${a}px`}else if("float"===a){const a=(12+10*Math.random()).toFixed(1);n.textContent=t[Math.floor(Math.random()*t.length)],n.style.cssText=`--tx:${c};--ty:${l};--r:${b};--d:${d}s;--delay:${p}s;--size:${a}px`}else{const a=(4+5*Math.random()).toFixed(1),t=Math.round(60*(Math.random()-.5)),r=Math.round(30*(Math.random()-.5));n.style.cssText=`top:calc(50% + ${r}px);left:calc(50% + ${t}px);--d:${(.6+.5*Math.random()).toFixed(2)}s;--delay:${p}s;--size:${a}px`}r.appendChild(n),setTimeout((()=>n.remove()),1e3*(parseFloat(d)+parseFloat(p))+50)};let i=0,n=0,o=0;for(let a=0;a<24;a++){const t=a%3;0===t&&i<10?e("burst",i++,10):1===t&&n<8?e("float",n++,8):o<6&&e("glint",o++,6)}}),80)}handleKeyDown=(a,t,r)=>{if("Delete"===a.key||"Backspace"===a.key)this.close(t);else if("ArrowDown"===a.key){const a=this.element.shadowRoot?.querySelector(`[data-stack-index="${r+1}"]`);a&&a.focus()}else if("ArrowUp"===a.key){const a=this.element.shadowRoot?.querySelector(`[data-stack-index="${r-1}"]`);a&&a.focus()}};handleActionClick=(a,t)=>{this.snackbarActionClicked.emit({id:a,item:t}),t.action&&t.action.onClick&&t.action.onClick()};handleMouseDown=(a,t)=>{this.isDragging=t,this.startX=a.clientX,this.dragX={...this.dragX,[t]:0},document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp)};handleMouseMove=a=>{if(!this.isDragging)return;const t=a.clientX-this.startX;this.dragX={...this.dragX,[this.isDragging]:t}};handleMouseUp=()=>{if(!this.isDragging)return;const a=this.isDragging,t=this.dragX[a]||0;Math.abs(t)>120?(this.dragX={...this.dragX,[a]:t>0?500:-500},setTimeout((()=>this.close(a)),200)):this.dragX={...this.dragX,[a]:0},this.isDragging=null,document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp)};handleMouseEnter=()=>{if(!this.pauseOnHover)return;this.isHovered=!0;const a=Date.now();Object.values(this.timers).forEach((t=>{t.lastTime=a}))};handleTouchStart=(a,t)=>{this.isDragging=t,this.startX=a.touches[0].clientX,this.dragX={...this.dragX,[t]:0}};handleTouchMove=(a,t)=>{if(this.isDragging!==t)return;const r=a.touches[0].clientX-this.startX,e=this.position.includes("rtl"===this.dir?"left":"right"),i=this.position.includes("rtl"===this.dir?"right":"left"),n=e&&r<0||i&&r>0?.2:1;this.dragX={...this.dragX,[t]:r*n},Math.abs(r)>10&&a.preventDefault()};handleTouchEnd=a=>{if(this.isDragging!==a)return;const t=this.dragX[a]||0,r=this.position.includes("rtl"===this.dir?"left":"right"),e=this.position.includes("rtl"===this.dir?"right":"left");r&&t>100||e&&t<-100||this.position.includes("center")&&Math.abs(t)>100?(this.dragX={...this.dragX,[a]:t>0?500:-500},setTimeout((()=>this.close(a)),200)):this.dragX={...this.dragX,[a]:0},this.isDragging=null};handleMouseLeave=()=>{if(!this.pauseOnHover)return;this.isHovered=!1;const a=Date.now();Object.values(this.timers).forEach((t=>{t.lastTime=a}))};handleInputSubmit=(a,t,r)=>{t.input&&t.input.onSubmit&&(t.input.onSubmit(r),this.close(a))};renderIcon(a){if(a.avatar)return e("div",{class:"snackbar-avatar"},e("img",{src:a.avatar,alt:""}));if(a.icon)return e("div",{class:"snackbar-custom-icon"},e("ui-icon",{name:a.icon,library:a.iconLibrary||this.iconLibrary,size:"1.5rem"}));const t=a.type;if("success"===t)return e("div",{class:"snackbar-icon-draw "+t},e("svg",{viewBox:"0 0 52 52"},e("circle",{class:"circle",cx:"26",cy:"26",r:"25",fill:"none"}),e("path",{class:"check",fill:"none",d:"M14.1 27.2l7.1 7.2 16.7-16.8"})));if("error"===t)return e("div",{class:"snackbar-icon-draw "+t},e("svg",{viewBox:"0 0 52 52"},e("circle",{class:"circle",cx:"26",cy:"26",r:"25",fill:"none"}),e("path",{class:"cross",fill:"none",d:"M16 16 36 36 M36 16 16 36"})));const r={success:e("ui-icon",{name:"check-circle",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-success-600)"}}),error:e("ui-icon",{name:"alert-circle",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-danger-600)"}}),warning:e("ui-icon",{name:"alert-triangle",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-warning-600)"}}),info:e("ui-icon",{name:"info",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-info-600)"}}),neutral:e("ui-icon",{name:"bell",library:this.iconLibrary,size:"1.25em",style:{color:"var(--color-neutral-600, #6b7280)"}}),loading:e("span",{class:"snackbar-loading-spinner"}),sovereign:e("ui-icon",{name:"crown",library:this.iconLibrary,size:"1.25em",style:{color:"#fbbf24"}})};return e("div",{class:"snackbar-icon "+t},r[t])}getAriaLive(a){return"urgent"===a.priority?"assertive":"high"===a.priority||"error"===a.type?"polite":"off"}render(){return e("div",{key:"2ca2794f89a74dc183c6490ffcc65e493eaaea30",class:`snackbar-container ${this.position} ${this.cardStack?"card-stack":""} ${this.isHovered?"hovered":""} ${"rtl"===this.dir?"rtl":""}`,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,role:this.visibleSnackbars.some((a=>"error"===a.type||"urgent"===a.priority))?"alert":"status","aria-atomic":"true"},this.snackbars.length>1&&e("ui-button",{key:"e8288b58adc2f402e120dcacbb3d88993d535123",variant:"ghost",size:"sm",icon:"list-x",iconLibrary:this.iconLibrary,iconSize:"14px",onClick:()=>this.closeAll(),ariaLabel:"Clear all notifications",class:"snackbar-clear-all",label:`Clear All (${this.snackbars.length})`},e("span",{key:"608cb677315ac751d626e2d615ca4636e9d4a11e",class:"kb-hint",slot:"end"},"Esc")),this.cardStack&&!this.isHovered&&this.snackbars.length>1&&e("div",{key:"63bfc95aa5d3b7b5daa77cd286eadf2a57fcfcb4",class:"stack-count-badge",onClick:()=>{this.isHovered=!0},title:"Click to expand all notifications"},e("span",{key:"1b3e099e53747efe22a51b6d27aacf7e7b2ad069",class:"stack-count-number"},this.snackbars.length),e("span",{key:"e2c05e3e0334dfe39043a0bdbc05680de497f473",class:"stack-count-label"},"notifications")),this.visibleSnackbars.map(((a,t)=>{const r=this.cardStack&&!this.isHovered?t:0,i=this.animatedItems.has(a.id+"-closing");return e("div",{key:a.id,"data-snackbar-id":a.id,"data-stack-index":t,class:`snackbar-item ${a.type} ${a.variant||"filled"} ${a.size||"md"} ${this.openMode} ${a.customClass||""} ${this.isDragging===a.id?"dragging":""} ${i?"closing":""} theme-${a.theme||this.theme}`,style:{animationDelay:.1*t+"s","--stack-index":""+r,transform:this.dragX[a.id]?`translateX(${this.dragX[a.id]}px) rotate(${this.dragX[a.id]/20}deg)`:void 0,opacity:this.dragX[a.id]?""+Math.max(0,1-Math.abs(this.dragX[a.id])/400):void 0,cursor:this.isDragging===a.id?"grabbing":void 0},role:"off"!==this.getAriaLive(a)?"log":void 0,"aria-live":this.getAriaLive(a),onMouseDown:t=>this.handleMouseDown(t,a.id),onKeyDown:r=>this.handleKeyDown(r,a.id,t),onTouchStart:t=>this.handleTouchStart(t,a.id),onTouchMove:t=>this.handleTouchMove(t,a.id),onTouchEnd:()=>this.handleTouchEnd(a.id),tabIndex:0},e("div",{class:"item-main-row"},this.renderIcon(a),e("div",{class:"snackbar-content"},e("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},a.title&&e("div",{class:"snackbar-title","aria-label":"Title: "+a.title},a.title),(a.count??0)>1&&e("ui-button",{variant:"ghost",size:"sm",onClick:()=>this.toggleExpand(a.id),ariaLabel:a.count+" occurrences. Click to toggle history.",label:""+a.count,icon:this.expandedSnackbars.has(a.id)?"chevron-up":"chevron-down",iconLibrary:this.iconLibrary,iconSize:"10px",iconPosition:"right"})),this.expandedSnackbars.has(a.id)&&a.history&&e("div",{class:"snackbar-history"},a.history.map(((a,t)=>e("div",{class:"history-item",key:t},e("span",{class:"history-time"},new Date(a.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})),e("span",{class:"history-msg"},a.message))))),a.html?e("div",{class:"snackbar-message",innerHTML:n(a.message),role:"document"}):a.slot?e("div",{class:"snackbar-slot-content"},e("slot",{name:a.slot})):e("p",{class:"snackbar-message","aria-label":"Message: "+a.message},a.message)),!1!==a.closable&&e("ui-button",{variant:"ghost",size:"sm",iconOnly:!0,icon:"x",iconLibrary:this.iconLibrary,iconSize:"1.2em",onButtonClick:()=>this.handleCloseClick(a.id),ariaLabel:"Close snackbar",class:"snackbar-close"})),a.input&&e("div",{class:"snackbar-quick-input"},e("ui-input",{type:a.input.type||"text",placeholder:a.input.placeholder,onInputKeydown:t=>{"Enter"===t.detail.key&&this.handleInputSubmit(a.id,a,t.detail.target.value)},autoFocus:!0,size:"sm",fullWidth:!0})),(a.link||a.action||a.actions&&a.actions.length>0)&&e("div",{class:"snackbar-actions"},a.action&&e("ui-button",{variant:"ghost",size:"sm",onButtonClick:()=>this.handleActionClick(a.id,a),icon:a.action.icon,iconLibrary:this.iconLibrary,iconSize:"12px",label:a.action.label}),a.actions&&a.actions.map((t=>e("ui-button",{variant:t.variant,size:"sm",onButtonClick:()=>{t.onClick&&t.onClick(),this.handleActionClick(a.id,a)},icon:t.icon,iconLibrary:this.iconLibrary,iconSize:"12px",label:t.label}))),a.link&&e("a",{class:"snackbar-link",href:a.link.url,onClick:t=>{t.preventDefault(),this.handleLinkClick(a.id,a)}},a.link.text)),(a.duration??0)>0&&"ring"===a.progress&&e("svg",{class:"snackbar-progress-ring",viewBox:"0 0 20 20","aria-hidden":"true"},e("circle",{cx:"10",cy:"10",r:"9"})),(a.duration??0)>0&&"ring"!==a.progress&&e("div",{class:"snackbar-progress "+a.type,"aria-hidden":"true"}),(a.duration??0)>0&&this.showCountdown&&!a.sticky&&e("span",{class:"snackbar-countdown","aria-hidden":"true"},this.countdownSeconds[a.id]??Math.ceil((a.duration??0)/1e3),"s"),a.history&&a.history.length>1&&e("div",{class:"snackbar-history-indicator"},e("ui-button",{variant:"ghost",size:"sm",onButtonClick:t=>{const r=t.detail;r.stopPropagation();const e=r.currentTarget.closest(".snackbar-item"),i=e?.classList.toggle("history-expanded");r.currentTarget.label=i?"Hide history":`View previous history (${(a.history??[]).length-1})`},label:`View previous history (${(a.history??[]).length-1})`}),e("div",{class:"snackbar-history-list"},a.history.slice(0,-1).reverse().map((a=>e("div",{class:"history-item"},e("span",{class:"history-time"},new Date(a.timestamp).toLocaleTimeString()),e("span",{class:"history-msg"},a.message)))))))})),this.enableSlots&&e("slot",{key:"5a2fd1ebe5ba293ecf8dae3e83cbfe40ce25c995"}))}componentDidRender(){this.visibleSnackbars.forEach((a=>{this.animatedItems.has(a.id)||(this.animatedItems.add(a.id),setTimeout((()=>{const t=this.element.shadowRoot?.querySelector(`[data-snackbar-id="${a.id}"]`);t&&t.classList.add("show")}),10))}))}static get watchers(){return{textDirection:[{onTextDirectionChange:0}],position:[{positionChanged:0}],maxVisible:[{maxVisibleChanged:0}],stackMode:[{stackModeChanged:0}]}}static get style(){return'@charset "UTF-8";.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.snackbar-quick-input{width:100%;margin:12px 0 0 0;display:flex;align-items:center;pointer-events:auto}.snackbar-quick-input input{width:100%;min-width:0;box-sizing:border-box;padding:8px 12px;border-radius:6px;border:1px solid var(--border-default, #e5e7eb);font-size:15px;background:var(--bg-primary, #ffffff);outline:none;transition:border 0.2s, box-shadow 0.2s}.snackbar-quick-input input:focus{border:1.5px solid var(--color-primary, #6366f1);box-shadow:0 0 0 2px var(--color-primary, #c7d2fe)}:host{display:block;position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:var(--snackbar-z-index, 10500);transform:translateZ(0);--snackbar-radius:12px;--snackbar-font:inherit;--snackbar-min-width:320px;--snackbar-max-width:440px;--snackbar-z-index:10500;--snackbar-bg:var(--bg-primary, #fdfdfd);--snackbar-color:var(--text-primary, #1f2937);--snackbar-border:rgba(0, 0, 0, 0.08);--snackbar-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);--snackbar-success-bg:var(--color-success-hover, #059669);--snackbar-error-bg:var(--color-danger-hover, #dc2626);--snackbar-warning-bg:var(--color-warning-hover, #d97706);--snackbar-info-bg:var(--color-primary-hover, #2563eb);--snackbar-neutral-bg:var(--color-primary, #4b5563);--snackbar-badge-bg:rgba(15, 23, 42, 0.85);--snackbar-badge-color:var(--color-primary, #60a5fa)}.snackbar-container{display:block;position:absolute;z-index:10501;pointer-events:none;width:auto;max-width:100vw;box-sizing:border-box;padding:16px;display:flex;flex-direction:column;gap:12px;transition:all 0.4s cubic-bezier(0.18, 0.89, 0.32, 1.28);max-height:calc(100vh - 40px)}.snackbar-clear-all{pointer-events:auto;align-self:center;margin-bottom:8px;background:rgba(255, 255, 255, 0.9);border:1px solid rgba(0, 0, 0, 0.1);border-radius:20px;padding:6px 14px;font-size:11px;font-weight:600;color:var(--text-secondary, #4b5563);display:flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1);backdrop-filter:blur(8px);transition:all 0.2s;z-index:2000;}.snackbar-container.card-stack:not(.hovered) .snackbar-clear-all{display:none}.snackbar-clear-all:hover{background:var(--bg-primary, #ffffff);transform:translateY(-1px);box-shadow:0 6px 10px -1px rgba(0, 0, 0, 0.15)}.snackbar-clear-all .kb-hint{background:rgba(0, 0, 0, 0.05);padding:1px 4px;border-radius:3px;font-size:9px;opacity:0.6}.snackbar-badge-btn{background:var(--snackbar-badge-bg, rgba(15, 23, 42, 0.85));color:#fff;border-radius:12px;padding:2px 8px;font-size:10px;border:none;cursor:pointer;display:flex;align-items:center;transition:transform 0.2s;pointer-events:auto}.snackbar-badge-btn:hover{transform:scale(1.05)}.snackbar-badge-btn ui-icon{margin-left:4px;display:flex}.snackbar-history{margin-top:8px;padding:8px;background:rgba(0, 0, 0, 0.03);border-radius:6px;font-size:12px;max-height:120px;overflow-y:auto;scrollbar-width:thin}.snackbar-history .history-item{display:flex;gap:8px;padding:4px 0;border-bottom:1px solid rgba(0, 0, 0, 0.05)}.snackbar-history .history-item:last-child{border-bottom:none}.snackbar-history .history-item .history-time{color:var(--text-secondary, #6b7280);font-family:monospace;white-space:nowrap}.snackbar-history .history-item .history-msg{color:var(--text-primary, #111827)}.theme-dark .snackbar-clear-all{background:var(--bg-primary, #1e293b);color:var(--text-standard, #e2e8f0);border-color:rgba(255, 255, 255, 0.1)}.snackbar-countdown{position:absolute;bottom:28px;right:12px;background:rgba(0, 0, 0, 0.55);color:rgba(255, 255, 255, 0.9);border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700;letter-spacing:0.02em;pointer-events:none;opacity:1;transition:opacity 0.3s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10;min-width:24px;text-align:center;font-variant-numeric:tabular-nums;}.snackbar-container.rtl .snackbar-countdown{right:auto;left:12px}.snackbar-container:hover .snackbar-countdown{opacity:0}.snackbar-container.top-left{top:0;left:0;align-items:flex-start}.snackbar-container.top-right{top:0;right:0;align-items:flex-end}.snackbar-container.top-center{top:0;left:50%;transform:translateX(-50%);align-items:center}.snackbar-container.bottom-left{bottom:0;left:0;flex-direction:column-reverse;align-items:flex-start}.snackbar-container.bottom-right{bottom:0;right:0;flex-direction:column-reverse;align-items:flex-end}.snackbar-container.bottom-center{bottom:0;left:50%;transform:translateX(-50%);flex-direction:column-reverse;align-items:center}.snackbar-container.rtl.top-left{left:auto;right:0;align-items:flex-end}.snackbar-container.rtl.top-right{right:auto;left:0;align-items:flex-start}.snackbar-container.rtl.bottom-left{left:auto;right:0;align-items:flex-end}.snackbar-container.rtl.bottom-right{right:auto;left:0;align-items:flex-start}.snackbar-container.rtl .snackbar-item.slide-right{animation-name:slideInLeft}.snackbar-container.rtl .snackbar-item.slide-left{animation-name:slideInRight}.snackbar-container:not(.bottom-left):not(.bottom-right):not(.bottom-center) .snackbar-item{order:var(--stack-index)}.snackbar-container.bottom-left,.snackbar-container.bottom-right,.snackbar-container.bottom-center{padding-bottom:24px}.snackbar-container.top-left,.snackbar-container.top-right,.snackbar-container.top-center{padding-top:24px}.stack-count-badge{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:4px;background:rgba(15, 23, 42, 0.85);color:var(--text-standard, #ffffff);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700;cursor:pointer;z-index:200;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255, 255, 255, 0.15);transition:all 0.2s ease;pointer-events:auto;white-space:nowrap}.stack-count-badge:hover{background:rgba(15, 23, 42, 0.98);transform:translateX(-50%) translateY(-2px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.3)}.stack-count-badge .stack-count-number{font-size:13px;font-weight:800;color:var(--color-primary, #60a5fa)}.stack-count-badge .stack-count-label{opacity:0.7;font-weight:500}.snackbar-container.bottom-left .stack-count-badge,.snackbar-container.bottom-right .stack-count-badge,.snackbar-container.bottom-center .stack-count-badge{bottom:auto;top:-18px}.snackbar-container.bottom-left .stack-count-badge:hover,.snackbar-container.bottom-right .stack-count-badge:hover,.snackbar-container.bottom-center .stack-count-badge:hover{transform:translateX(-50%) translateY(2px)}.snackbar-container.top-right .stack-count-badge,.snackbar-container.bottom-right .stack-count-badge{left:auto;right:0;transform:none}.snackbar-container.top-right .stack-count-badge:hover,.snackbar-container.bottom-right .stack-count-badge:hover{transform:translateY(-2px)}.snackbar-container.top-left .stack-count-badge,.snackbar-container.bottom-left .stack-count-badge{left:0;transform:none}.snackbar-container.top-left .stack-count-badge:hover,.snackbar-container.bottom-left .stack-count-badge:hover{transform:translateY(-2px)}.snackbar-container.card-stack{display:flex !important;flex-direction:column;width:360px;max-width:calc(100vw - 32px);min-height:160px;padding:16px;pointer-events:none;overflow:visible;--stack-gap:8px;--stack-shrink:0.04;--stack-opacity:0.15;}.snackbar-container.card-stack::before{content:"";position:absolute;inset:-8px;background:transparent;pointer-events:auto;z-index:0}.snackbar-container.card-stack:not(.hovered) .snackbar-item{position:absolute !important;margin:0 !important;pointer-events:none;transition:transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.5s ease, width 0.5s ease;width:calc(100% - var(--stack-index, 0) * 14px);opacity:calc(1 - var(--stack-index, 0) * var(--stack-opacity));filter:brightness(calc(1 - var(--stack-index, 0) * 0.08));z-index:calc(50 - var(--stack-index, 0))}.snackbar-container.card-stack.top-left:not(.hovered) .snackbar-item,.snackbar-container.card-stack.top-right:not(.hovered) .snackbar-item,.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item{top:16px;transform:translateY(calc(var(--stack-index, 0) * var(--stack-gap)))}.snackbar-container.card-stack.bottom-left:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-right:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{bottom:16px;transform:translateY(calc(var(--stack-index, 0) * var(--stack-gap) * -1))}.snackbar-container.card-stack.top-right:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-right:not(.hovered) .snackbar-item{right:0;left:auto !important}.snackbar-container.card-stack.top-left:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-left:not(.hovered) .snackbar-item{left:0 !important;right:auto}.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item,.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{left:50% !important;right:auto;transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap)))}.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap) * -1))}@keyframes stackSlideFromTop{from{transform:translateX(-50%) translateY(-40px);opacity:0}to{transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap)));opacity:calc(1 - var(--stack-index, 0) * var(--stack-opacity))}}@keyframes stackSlideFromBottom{from{transform:translateX(-50%) translateY(40px);opacity:0}to{transform:translateX(-50%) translateY(calc(var(--stack-index, 0) * var(--stack-gap) * -1));opacity:calc(1 - var(--stack-index, 0) * var(--stack-opacity))}}.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item{animation:stackSlideFromTop 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both;animation-delay:calc(var(--stack-index, 0) * 60ms)}.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item{animation:stackSlideFromBottom 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both;animation-delay:calc(var(--stack-index, 0) * 60ms)}.snackbar-container.card-stack:not(.hovered) .snackbar-item[data-stack-index="0"]{pointer-events:auto;opacity:1 !important;filter:none !important;z-index:100 !important;box-shadow:0 8px 24px rgba(0, 0, 0, 0.18)}.snackbar-container.card-stack.top-center:not(.hovered) .snackbar-item[data-stack-index="0"],.snackbar-container.card-stack.bottom-center:not(.hovered) .snackbar-item[data-stack-index="0"]{transform:translateX(-50%) !important}.snackbar-container.card-stack.hovered{pointer-events:auto;align-items:stretch;}.snackbar-container.card-stack.hovered .snackbar-item{position:relative !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important;width:100% !important;transform:none !important;opacity:1 !important;filter:none !important;pointer-events:auto;margin:0 0 8px 0 !important;z-index:auto !important;box-shadow:0 4px 12px rgba(0, 0, 0, 0.1);transition:transform 0.3s ease, box-shadow 0.2s ease}.snackbar-container.card-stack.hovered .snackbar-item:last-child{margin-bottom:0 !important}.snackbar-container.card-stack.hovered .snackbar-item:hover{transform:translateY(-2px) !important;box-shadow:0 12px 24px rgba(0, 0, 0, 0.14)}.snackbar-item{box-sizing:border-box;display:flex;flex-direction:column;width:auto;min-width:var(--snackbar-min-width, 320px);max-width:var(--snackbar-max-width, 440px);padding:16px;border-radius:var(--snackbar-radius, 12px);pointer-events:auto;box-shadow:var(--snackbar-shadow, 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05));background:var(--snackbar-bg, #fdfdfd);color:var(--snackbar-color, var(--text-primary, #1f2937));transition:all 0.5s cubic-bezier(0.18, 0.89, 0.32, 1.28), transform 0.2s ease;position:relative;overflow:visible;backdrop-filter:blur(16px);border:1px solid var(--snackbar-border, rgba(0, 0, 0, 0.08));z-index:calc(100 - var(--stack-index))}.snackbar-item:hover{transform:translateY(-2px);box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)}.snackbar-item:focus-visible{outline:2px solid var(--color-primary, #10b981);outline-offset:4px;box-shadow:0 0 0 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.4);background:var(--bg-primary, #ffffff) !important}.snackbar-item{}.snackbar-item.sm{min-width:280px;padding:10px 12px;--snackbar-title-size:13px;--snackbar-msg-size:12px;--snackbar-icon-size:1.1rem;gap:8px}.snackbar-item.md{min-width:320px;padding:16px;--snackbar-title-size:15px;--snackbar-msg-size:14px;--snackbar-icon-size:1.25rem}.snackbar-item.lg{min-width:400px;padding:20px 24px;--snackbar-title-size:18px;--snackbar-msg-size:16px;--snackbar-icon-size:1.5rem;gap:16px}.item-main-row{display:flex;align-items:flex-start;gap:12px;width:100%}.snackbar-content{flex:1;min-width:0}.snackbar-title{font-weight:700;font-size:var(--snackbar-title-size, 15px);color:inherit;margin-bottom:2px;display:flex;align-items:center;gap:8px}.snackbar-message{font-size:var(--snackbar-msg-size, 14px);line-height:1.5;color:inherit;opacity:0.9;margin:0;word-break:break-word;white-space:pre-wrap}.snackbar-icon,.snackbar-custom-icon{font-size:var(--snackbar-icon-size, 1.25rem)}.snackbar-badge{background:rgba(0, 0, 0, 0.1);padding:2px 8px;border-radius:12px;font-size:11px;font-weight:800;transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.snackbar-badge.pulse{animation:badgePop 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)}@keyframes badgePop{0%{transform:scale(1)}50%{transform:scale(1.6);background:var(--color-danger, #fbbf24);color:var(--text-primary, #000);box-shadow:0 0 15px rgba(251, 191, 36, 0.5)}100%{transform:scale(1)}}.snackbar-item.filled{color:var(--text-standard, #ffffff);border:none}.snackbar-item.filled.success{background:var(--snackbar-success-bg, var(--color-success-hover, #059669))}.snackbar-item.filled.error{background:var(--snackbar-error-bg, var(--color-danger-hover, #dc2626))}.snackbar-item.filled.warning{background:var(--snackbar-warning-bg, var(--color-warning-hover, #d97706))}.snackbar-item.filled.info{background:var(--snackbar-info-bg, var(--color-primary-hover, #2563eb))}.snackbar-item.filled.neutral{background:var(--snackbar-neutral-bg, #4b5563)}.snackbar-item.filled.loading{background:var(--snackbar-neutral-bg, #4b5563)}.snackbar-item.glass{background:rgba(255, 255, 255, 0.6);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255, 255, 255, 0.4);box-shadow:0 8px 32px 0 rgba(31, 38, 135, 0.15);color:var(--text-primary, #1e293b)}.snackbar-item.glass.success{border-left:4px solid var(--color-success, #10b981);background:rgba(236, 253, 245, 0.6)}.snackbar-item.glass.error{border-left:4px solid var(--color-danger, #ef4444);background:rgba(254, 242, 242, 0.6)}.snackbar-item.glass.warning{border-left:4px solid var(--color-warning, #f59e0b);background:rgba(255, 251, 235, 0.6)}.snackbar-item.glass.info{border-left:4px solid var(--color-primary, #10b981);background:rgba(239, 246, 255, 0.6)}.snackbar-item.glass .snackbar-action-btn:not(.variant-danger){background:rgba(0, 0, 0, 0.05);border-color:rgba(0, 0, 0, 0.1);color:var(--color-primary, #334155)}.snackbar-item.glass .snackbar-action-btn:not(.variant-danger):hover{background:rgba(0, 0, 0, 0.1)}.snackbar-item.outlined{background:rgba(255, 255, 255, 0.9);border-width:1.5px;border-style:solid}.snackbar-item.outlined.success{border-color:var(--color-success-hover, #059669);color:var(--color-success-hover, #059669)}.snackbar-item.outlined.error{border-color:var(--color-danger-hover, #dc2626);color:var(--color-danger-hover, #dc2626)}.snackbar-item.outlined.warning{border-color:var(--color-warning-hover, #d97706);color:var(--color-warning-hover, #d97706)}.snackbar-item.outlined.info{border-color:var(--color-primary-hover, #2563eb);color:var(--color-primary-hover, #2563eb)}.snackbar-item.outlined.neutral{border-color:var(--border-strong, #4b5563);color:var(--text-secondary, #4b5563)}.snackbar-item.soft{background:rgba(255, 255, 255, 0.95)}.snackbar-item.soft.success{border-left:4px solid var(--color-success, #10b981);background:var(--bg-primary, #ecfdf5);color:var(--color-primary, #065f46)}.snackbar-item.soft.success .snackbar-title,.snackbar-item.soft.success .snackbar-icon{color:var(--color-success-hover, #059669)}.snackbar-item.soft.error{border-left:4px solid var(--color-danger, #ef4444);background:var(--bg-primary, #fef2f2);color:var(--color-danger, #991b1b)}.snackbar-item.soft.error .snackbar-title,.snackbar-item.soft.error .snackbar-icon{color:var(--color-danger-hover, #dc2626)}.snackbar-item.soft.warning{border-left:4px solid var(--color-warning, #f59e0b);background:var(--bg-primary, #fffbeb);color:var(--color-danger, #92400e)}.snackbar-item.soft.warning .snackbar-title,.snackbar-item.soft.warning .snackbar-icon{color:var(--color-warning-hover, #d97706)}.snackbar-item.soft.info{border-left:4px solid var(--color-primary, #10b981);background:var(--bg-primary, #eff6ff);color:var(--color-primary, #1e40af)}.snackbar-item.soft.info .snackbar-title,.snackbar-item.soft.info .snackbar-icon{color:var(--color-primary-hover, #2563eb)}.snackbar-item.soft.neutral{border-left:4px solid var(--color-primary, #475569);background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #374151)}.snackbar-item.soft.neutral .snackbar-title,.snackbar-item.soft.neutral .snackbar-icon{color:var(--color-primary, #475569)}.snackbar-item.neutral:not(.filled),.snackbar-item.loading:not(.filled){background:var(--bg-primary, #f8fafc);border-color:var(--border-subtle, #e2e8f0);color:var(--color-primary, #334155)}.snackbar-item.filled.success{background:var(--color-success, #10b981);color:var(--text-standard, #ffffff)}.snackbar-item.filled.error{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff)}.snackbar-item.filled.warning{background:var(--color-warning, #f59e0b);color:var(--text-standard, #ffffff)}.snackbar-item.filled.info{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff)}.snackbar-item.filled.neutral{background:var(--color-primary, #334155);color:var(--text-standard, #ffffff)}.snackbar-item.filled.loading{background:var(--color-primary, #475569);color:var(--text-standard, #ffffff)}.snackbar-item.sovereign{background:linear-gradient(135deg, var(--bg-primary, #1e293b) 0%, var(--bg-secondary, #0f172a) 100%);color:var(--color-danger, #fbbf24);border:1px solid rgba(251, 191, 36, 0.4);box-shadow:0 0 20px rgba(251, 191, 36, 0.15), 0 10px 15px -3px rgba(0, 0, 0, 0.3);overflow:hidden}.snackbar-item.sovereign::after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle, rgba(251, 191, 36, 0.1) 0%, transparent 70%);opacity:0.5;animation:sovereignPulse 4s infinite alternate}.snackbar-item.sovereign .snackbar-title{color:var(--color-danger, #fbbf24);text-shadow:0 0 8px rgba(251, 191, 36, 0.4);letter-spacing:0.05em}.snackbar-item.sovereign .snackbar-badge{background:var(--color-danger, #fbbf24);color:var(--text-primary, #0f172a)}.snackbar-item.sovereign .snackbar-progress{background:var(--color-danger, #fbbf24);box-shadow:0 0 10px var(--color-danger, #fbbf24);height:3px}.snackbar-item.sovereign .snackbar-icon{color:var(--color-danger, #fbbf24);filter:drop-shadow(0 0 5px rgba(251, 191, 36, 0.6))}@keyframes sovereignPulse{0%{transform:scale(1) translate(0, 0);opacity:0.3}100%{transform:scale(1.2) translate(5%, 5%);opacity:0.6}}.snackbar-item.theme-dark{background:var(--bg-secondary, #111827);color:var(--text-standard, #ffffff);border-color:rgba(255, 255, 255, 0.1);box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.5)}.snackbar-item{opacity:0;transition:all 0.5s cubic-bezier(0.18, 0.89, 0.32, 1.28), opacity 0.3s ease, max-height 0.4s ease, margin 0.4s ease;max-height:200px}.snackbar-item.slide-up{transform:translateY(40px) scale(0.9)}.snackbar-item.slide-down{transform:translateY(-40px) scale(0.9)}.snackbar-item.slide-left{transform:translateX(-100%) scale(0.9)}.snackbar-item.slide-right{transform:translateX(100%) scale(0.9)}.snackbar-item.fade{transform:scale(0.95)}.snackbar-item.scale{transform:scale(0.1)}.snackbar-item.spring{transform:translateY(100px)}.snackbar-item.show{opacity:1;transform:translate(0, 0) scale(1)}.snackbar-item.closing{opacity:0 !important;transform:scale(0.8) translateY(20px) !important;pointer-events:none;max-height:0 !important;margin-top:0 !important;margin-bottom:0 !important;padding-top:0 !important;padding-bottom:0 !important;overflow:hidden;filter:blur(8px)}.snackbar-container.top-left .snackbar-item.closing,.snackbar-container.top-right .snackbar-item.closing,.snackbar-container.top-center .snackbar-item.closing{transform:scale(0.8) translateY(-20px) !important}.snackbar-item.spring.show{animation:springEntry 0.6s cubic-bezier(0.18, 0.89, 0.32, 1.28) forwards}@keyframes springEntry{0%{transform:translateY(100px) scale(0.4);opacity:0}70%{transform:translateY(-10px) scale(1.05);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}.snackbar-item.bounce.show{animation:bounceIn 0.5s cubic-bezier(0.36, 0, 0.66, -0.56) forwards}@keyframes bounceIn{0%{transform:scale(0.3);opacity:0}50%{transform:scale(1.1);opacity:1}70%{transform:scale(0.9)}100%{transform:scale(1)}}.snackbar-actions{display:flex;align-items:center;gap:12px;margin-top:10px}.snackbar-action-btn{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;background:rgba(0, 0, 0, 0.1);border:1px solid rgba(0, 0, 0, 0.1);color:inherit;cursor:pointer;transition:all 0.2s}.snackbar-action-btn:hover{background:rgba(0, 0, 0, 0.2)}.snackbar-item.filled .snackbar-action-btn{background:rgba(255, 255, 255, 0.2);border-color:rgba(255, 255, 255, 0.3)}.snackbar-item.filled .snackbar-action-btn:hover{background:rgba(255, 255, 255, 0.3)}.snackbar-action-btn.variant-primary{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-color:var(--color-primary-hover, #2563eb)}.snackbar-action-btn.variant-primary:hover{background:var(--color-primary-hover, #2563eb)}.snackbar-action-btn.variant-danger{background:var(--color-danger, #ef4444);color:var(--text-standard, #ffffff);border-color:var(--color-danger-hover, #dc2626)}.snackbar-action-btn.variant-danger:hover{background:var(--color-danger-hover, #dc2626)}.snackbar-action-btn.variant-text{background:transparent;border:none;font-weight:600;padding:4px 6px}.snackbar-action-btn.variant-text:hover{text-decoration:underline;background:rgba(0, 0, 0, 0.05)}.snackbar-link{font-size:12px;text-decoration:underline;color:inherit;opacity:0.8;font-weight:500}.snackbar-link:hover{opacity:1}.snackbar-progress{position:absolute;bottom:0;left:0;height:4px;background:rgba(255, 255, 255, 0.5);width:0%;transition:width linear;}.snackbar-container.hovered .snackbar-progress{animation:progressPulse 2s infinite ease-in-out}@keyframes progressPulse{0%,100%{opacity:0.5}50%{opacity:0.8}}.snackbar-item:not(.filled) .snackbar-progress,.snackbar-item.neutral.filled .snackbar-progress,.snackbar-item.outlined .snackbar-progress,.snackbar-item.soft .snackbar-progress{background:currentColor;opacity:0.15}.snackbar-progress-ring{position:absolute;top:12px;right:12px;width:20px;height:20px;transform:rotate(-90deg)}.snackbar-progress-ring circle{fill:none;stroke:currentColor;stroke-width:2;stroke-dasharray:56.5;stroke-dashoffset:56.5;opacity:0.3}.snackbar-close{background:none;border:none;color:inherit;cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0.6;transition:all 0.2s}.snackbar-close:hover{opacity:1;background:rgba(0, 0, 0, 0.05)}.snackbar-icon-draw{width:24px;height:24px}.circle{stroke-dasharray:157;stroke-dashoffset:157;stroke-width:2;stroke-miterlimit:10;stroke:currentColor;fill:none;animation:stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards}.check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;stroke:currentColor;stroke-width:3;animation:stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards}@keyframes stroke{100%{stroke-dashoffset:0}}.snackbar-history-indicator{margin-top:12px;border-top:1px solid rgba(0, 0, 0, 0.05);padding-top:8px;width:100%}.expand-history-btn{background:transparent;border:none;font-size:11px;font-weight:600;color:inherit;opacity:0.6;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:4px}.expand-history-btn:hover{opacity:1;text-decoration:underline}.snackbar-history-list{max-height:0;overflow:hidden;transition:max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);display:flex;flex-direction:column;gap:6px}.snackbar-item.history-expanded .snackbar-history-list{max-height:150px;margin-top:8px;overflow-y:auto}.history-item{display:flex;flex-direction:column;padding:6px 8px;background:rgba(0, 0, 0, 0.03);border-radius:4px;font-size:12px}.history-item .history-time{font-size:10px;font-weight:700;opacity:0.5}.history-item .history-msg{opacity:0.8}.theme-dark .history-item{background:rgba(255, 255, 255, 0.05)}.snackbar-item.filled .history-item{background:rgba(255, 255, 255, 0.1)}.snackbar-loading-spinner{width:18px;height:18px;border:2px solid rgba(255, 255, 255, 0.3);border-radius:50%;border-top-color:var(--bg-primary, #ffffff);animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.snackbar-quick-input{width:100%;margin-top:8px}.snackbar-quick-input input{width:100%;padding:8px 12px;border-radius:6px;border:1px solid rgba(0, 0, 0, 0.1);background:rgba(255, 255, 255, 0.5);font-size:13px;outline:none}.snackbar-quick-input input:focus{border-color:var(--color-primary, #10b981);background:var(--bg-primary, #ffffff)}@media (max-width: 500px){.snackbar-container{left:0 !important;right:0 !important;width:100% !important;max-width:100% !important;transform:none !important;padding:12px !important;bottom:0 !important;top:auto !important;}.snackbar-container.top-left,.snackbar-container.top-right,.snackbar-container.top-center{top:0 !important;bottom:auto !important}.snackbar-item{width:100% !important;min-width:0 !important;max-width:100% !important;margin-left:0 !important;margin-right:0 !important}.snackbar-clear-all{width:auto;align-self:center}.snackbar-container.card-stack{min-width:0 !important}.snackbar-container.card-stack::before{display:none}.snackbar-container.card-stack{}}@keyframes sb-particle-burst{0%{transform:translate(-50%, -50%) translate(0, 0) scale(0) rotate(0deg);opacity:0}15%{opacity:1;transform:translate(-50%, -50%) translate(calc(var(--tx) * 0.25px), calc(var(--ty) * 0.25px)) scale(var(--s)) rotate(calc(var(--r) * 0.2deg))}80%{opacity:0.7}100%{transform:translate(-50%, -50%) translate(calc(var(--tx) * 1px), calc(var(--ty) * 1px)) scale(0) rotate(calc(var(--r) * 1deg));opacity:0}}@keyframes sb-particle-float{0%{transform:translate(-50%, -50%) translate(0, 0) scale(0.5) rotate(0deg);opacity:0}20%{opacity:1}100%{transform:translate(-50%, -50%) translate(calc(var(--tx) * 0.5px), calc(var(--ty) * 1px)) scale(0) rotate(calc(var(--r) * 0.5deg));opacity:0}}@keyframes sb-particle-glint{0%{transform:translate(-50%, -50%) scale(0);opacity:0}30%{transform:translate(-50%, -50%) scale(1.6);opacity:1}100%{transform:translate(-50%, -50%) scale(0.3);opacity:0}}.sb-particle{position:absolute;top:50%;left:50%;pointer-events:none;will-change:transform, opacity;z-index:1000;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(0.19, 1, 0.22, 1);animation-duration:var(--d, 1.2s);animation-delay:var(--delay, 0s)}.sb-particle.sb-particle--burst{width:var(--size, 8px);height:var(--size, 8px);border-radius:50%;background:radial-gradient(circle, #fbbf24 0%, #f97316 60%, transparent 100%);box-shadow:0 0 6px 1px rgba(251, 191, 36, 0.5019607843);animation-name:sb-particle-burst}.sb-particle.sb-particle--float{font-size:var(--size, 14px);line-height:1;animation-name:sb-particle-float}.sb-particle.sb-particle--glint{width:var(--size, 6px);height:var(--size, 6px);border-radius:50%;background:#fff;box-shadow:0 0 4px 2px rgba(255, 255, 255, 0.5019607843);animation-name:sb-particle-glint}.snackbar-particle{position:absolute;top:50%;left:50%;pointer-events:none;z-index:1000;opacity:0;will-change:transform, opacity}.snackbar-particle.type-glow{width:8px;height:8px;background:radial-gradient(circle, #fbbf24 0%, transparent 70%);border-radius:50%;box-shadow:0 0 10px #fbbf24;animation:snackbarParticleExplode 1.6s cubic-bezier(0.19, 1, 0.22, 1) forwards}.snackbar-particle.type-emoji{animation:snackbarParticleExplodeRotate 1.8s cubic-bezier(0.19, 1, 0.22, 1) forwards;white-space:nowrap}@keyframes snackbarParticleExplode{0%{transform:translate(-50%, -50%) scale(0);opacity:0}20%{transform:translate(-50%, -50%) scale(1.5);opacity:1}100%{transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(0);opacity:0}}@keyframes snackbarParticleExplodeRotate{0%{transform:translate(-50%, -50%) scale(0) rotate(0deg);opacity:0}20%{transform:translate(-50%, -50%) scale(1.5) rotate(0deg);opacity:1}100%{transform:translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(0) rotate(var(--rot));opacity:0}}'}},[769,"ui-snackbar",{position:[1],maxVisible:[2,"max-visible"],stackMode:[1,"stack-mode"],openMode:[1,"open-mode"],variant:[1],size:[1],theme:[1],cardStack:[4,"card-stack"],groupThreshold:[2,"group-threshold"],duration:[2],coalesce:[4],maxDuration:[2,"max-duration"],showCountdown:[4,"show-countdown"],textDirection:[1,"text-direction"],iconLibrary:[1,"icon-library"],portal:[4],pauseOnHover:[4,"pause-on-hover"],pauseOnFocusLoss:[4,"pause-on-focus-loss"],soundMode:[1,"sound-mode"],particles:[4],enableSlots:[4,"enable-slots"],snackbars:[32],visibleSnackbars:[32],animatedItems:[32],isHovered:[32],expandedSnackbars:[32],dragX:[32],isDragging:[32],dir:[32],countdownSeconds:[32],add:[64],close:[64],closeAll:[64],closeNext:[64],getAll:[64],pause:[64],resume:[64],replace:[64],promise:[64],undoable:[64],update:[64]},void 0,{textDirection:[{onTextDirectionChange:0}],position:[{positionChanged:0}],maxVisible:[{maxVisibleChanged:0}],stackMode:[{stackModeChanged:0}]}]),p=d,h=function(){"undefined"!=typeof customElements&&["ui-snackbar","ui-badge","ui-button","ui-icon","ui-input","ui-loader"].forEach((a=>{switch(a){case"ui-snackbar":customElements.get(i(a))||customElements.define(i(a),d);break;case"ui-badge":customElements.get(i(a))||c();break;case"ui-button":customElements.get(i(a))||s();break;case"ui-icon":customElements.get(i(a))||o();break;case"ui-input":customElements.get(i(a))||l();break;case"ui-loader":customElements.get(i(a))||b()}}))};export{p as UiSnackbar,h as defineCustomElement}