atomicuilibrary 0.0.1

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 (1108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/dist/cjs/category-section.cjs.entry.js +30 -0
  4. package/dist/cjs/component-size-DsYFUZcz.js +29 -0
  5. package/dist/cjs/dom-oP1E4Rd3.js +267 -0
  6. package/dist/cjs/event-bus-B6M2f8CQ.js +23 -0
  7. package/dist/cjs/exploration-project-tailwind.cjs.js +24 -0
  8. package/dist/cjs/focus-trap-i9T6oXLc.js +139 -0
  9. package/dist/cjs/index-ClkOYpT8.js +2275 -0
  10. package/dist/cjs/index.cjs.js +260 -0
  11. package/dist/cjs/layout-manager.cjs.entry.js +616 -0
  12. package/dist/cjs/library-card.cjs.entry.js +63 -0
  13. package/dist/cjs/lm-container_2.cjs.entry.js +79 -0
  14. package/dist/cjs/lm-panel_3.cjs.entry.js +108 -0
  15. package/dist/cjs/loader.cjs.js +12 -0
  16. package/dist/cjs/my-component.cjs.entry.js +33 -0
  17. package/dist/cjs/my-step.cjs.entry.js +29 -0
  18. package/dist/cjs/nav-bar.cjs.entry.js +247 -0
  19. package/dist/cjs/security-E1JcwxGc.js +1547 -0
  20. package/dist/cjs/smart-step.cjs.entry.js +47 -0
  21. package/dist/cjs/timeline-item.cjs.entry.js +29 -0
  22. package/dist/cjs/ui-accordion_10.cjs.entry.js +5733 -0
  23. package/dist/cjs/ui-advanced-data-table.cjs.entry.js +2684 -0
  24. package/dist/cjs/ui-anchor.cjs.entry.js +558 -0
  25. package/dist/cjs/ui-animate-on-scroll.cjs.entry.js +285 -0
  26. package/dist/cjs/ui-aside-panel.cjs.entry.js +638 -0
  27. package/dist/cjs/ui-avatar-group_3.cjs.entry.js +634 -0
  28. package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +56 -0
  29. package/dist/cjs/ui-breadcrumb.cjs.entry.js +201 -0
  30. package/dist/cjs/ui-callout-banner.cjs.entry.js +291 -0
  31. package/dist/cjs/ui-card.cjs.entry.js +411 -0
  32. package/dist/cjs/ui-carousel.cjs.entry.js +547 -0
  33. package/dist/cjs/ui-checkbox-group.cjs.entry.js +330 -0
  34. package/dist/cjs/ui-checkbox.cjs.entry.js +260 -0
  35. package/dist/cjs/ui-code-editor.cjs.entry.js +961 -0
  36. package/dist/cjs/ui-code-preview.cjs.entry.js +315 -0
  37. package/dist/cjs/ui-color-controller.cjs.entry.js +150 -0
  38. package/dist/cjs/ui-color-picker.cjs.entry.js +658 -0
  39. package/dist/cjs/ui-command-palette.cjs.entry.js +178 -0
  40. package/dist/cjs/ui-dialog-box.cjs.entry.js +1808 -0
  41. package/dist/cjs/ui-dialog-content.cjs.entry.js +31 -0
  42. package/dist/cjs/ui-dialog-footer_2.cjs.entry.js +193 -0
  43. package/dist/cjs/ui-divider.cjs.entry.js +481 -0
  44. package/dist/cjs/ui-dock-host.cjs.entry.js +128 -0
  45. package/dist/cjs/ui-dock.cjs.entry.js +221 -0
  46. package/dist/cjs/ui-drag-drop.cjs.entry.js +172 -0
  47. package/dist/cjs/ui-dropdown_2.cjs.entry.js +1552 -0
  48. package/dist/cjs/ui-empty-state.cjs.entry.js +398 -0
  49. package/dist/cjs/ui-fab-item.cjs.entry.js +39 -0
  50. package/dist/cjs/ui-fab.cjs.entry.js +277 -0
  51. package/dist/cjs/ui-file-upload.cjs.entry.js +418 -0
  52. package/dist/cjs/ui-horizontal-nav.cjs.entry.js +135 -0
  53. package/dist/cjs/ui-image-button.cjs.entry.js +67 -0
  54. package/dist/cjs/ui-input-pair.cjs.entry.js +44 -0
  55. package/dist/cjs/ui-knob.cjs.entry.js +447 -0
  56. package/dist/cjs/ui-library.cjs.entry.js +134 -0
  57. package/dist/cjs/ui-list-group_2.cjs.entry.js +586 -0
  58. package/dist/cjs/ui-list.cjs.entry.js +732 -0
  59. package/dist/cjs/ui-masonry.cjs.entry.js +478 -0
  60. package/dist/cjs/ui-meter-group.cjs.entry.js +173 -0
  61. package/dist/cjs/ui-navigation-item.cjs.entry.js +104 -0
  62. package/dist/cjs/ui-number-input.cjs.entry.js +191 -0
  63. package/dist/cjs/ui-otp-input.cjs.entry.js +246 -0
  64. package/dist/cjs/ui-pagination_3.cjs.entry.js +1621 -0
  65. package/dist/cjs/ui-panel.cjs.entry.js +614 -0
  66. package/dist/cjs/ui-pattern-input.cjs.entry.js +278 -0
  67. package/dist/cjs/ui-popover.cjs.entry.js +517 -0
  68. package/dist/cjs/ui-progress.cjs.entry.js +516 -0
  69. package/dist/cjs/ui-radio-group.cjs.entry.js +205 -0
  70. package/dist/cjs/ui-radio.cjs.entry.js +206 -0
  71. package/dist/cjs/ui-range-slider.cjs.entry.js +637 -0
  72. package/dist/cjs/ui-resizable-panel.cjs.entry.js +484 -0
  73. package/dist/cjs/ui-scroll-top.cjs.entry.js +459 -0
  74. package/dist/cjs/ui-smart-context-menu.cjs.entry.js +376 -0
  75. package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +565 -0
  76. package/dist/cjs/ui-smart-stepper.cjs.entry.js +137 -0
  77. package/dist/cjs/ui-snackbar.cjs.entry.js +863 -0
  78. package/dist/cjs/ui-speed-dial.cjs.entry.js +520 -0
  79. package/dist/cjs/ui-speedometer.cjs.entry.js +428 -0
  80. package/dist/cjs/ui-splitter.cjs.entry.js +282 -0
  81. package/dist/cjs/ui-step.cjs.entry.js +30 -0
  82. package/dist/cjs/ui-stepper.cjs.entry.js +640 -0
  83. package/dist/cjs/ui-switch.cjs.entry.js +405 -0
  84. package/dist/cjs/ui-tabs.cjs.entry.js +703 -0
  85. package/dist/cjs/ui-tag.cjs.entry.js +299 -0
  86. package/dist/cjs/ui-timeline.cjs.entry.js +267 -0
  87. package/dist/cjs/ui-timer.cjs.entry.js +502 -0
  88. package/dist/cjs/ui-toolbar.cjs.entry.js +619 -0
  89. package/dist/cjs/ui-tooltip.cjs.entry.js +697 -0
  90. package/dist/cjs/ui-top-bar.cjs.entry.js +121 -0
  91. package/dist/cjs/ui-transfer-list.cjs.entry.js +592 -0
  92. package/dist/cjs/ui-tree.cjs.entry.js +874 -0
  93. package/dist/cjs/ui-workspace-manager.cjs.entry.js +1201 -0
  94. package/dist/cjs/utils-DVZ6gul6.js +26 -0
  95. package/dist/collection/assets/js/component-config.js +41 -0
  96. package/dist/collection/assets/js/demo-loader.js +147 -0
  97. package/dist/collection/assets/js/demo-nav.js +273 -0
  98. package/dist/collection/assets/js/demos/about-demo.js +60 -0
  99. package/dist/collection/assets/js/demos/accordion-demo.js +1954 -0
  100. package/dist/collection/assets/js/demos/advanced-data-table-demo.js +2952 -0
  101. package/dist/collection/assets/js/demos/anchor-demo.js +527 -0
  102. package/dist/collection/assets/js/demos/animate-on-scroll-demo.js +174 -0
  103. package/dist/collection/assets/js/demos/aside-panel-demo.js +1109 -0
  104. package/dist/collection/assets/js/demos/avatar-demo.js +508 -0
  105. package/dist/collection/assets/js/demos/badge-demo.js +620 -0
  106. package/dist/collection/assets/js/demos/breadcrumb-demo.js +365 -0
  107. package/dist/collection/assets/js/demos/button-demo.js +1223 -0
  108. package/dist/collection/assets/js/demos/button-toggle-demo.js +978 -0
  109. package/dist/collection/assets/js/demos/callout-banner-demo.js +366 -0
  110. package/dist/collection/assets/js/demos/card-demo.js +427 -0
  111. package/dist/collection/assets/js/demos/carousel-demo.js +360 -0
  112. package/dist/collection/assets/js/demos/checkbox-demo.js +489 -0
  113. package/dist/collection/assets/js/demos/code-preview-demo.js +216 -0
  114. package/dist/collection/assets/js/demos/color-picker-demo.js +117 -0
  115. package/dist/collection/assets/js/demos/command-palette-demo.js +105 -0
  116. package/dist/collection/assets/js/demos/complex-form-demo.js +45 -0
  117. package/dist/collection/assets/js/demos/context-menu-data.js +436 -0
  118. package/dist/collection/assets/js/demos/context-menu-demo.js +829 -0
  119. package/dist/collection/assets/js/demos/dashboard-demo.js +5 -0
  120. package/dist/collection/assets/js/demos/dialog-demo-temp.js +411 -0
  121. package/dist/collection/assets/js/demos/dialog-demo.js +2567 -0
  122. package/dist/collection/assets/js/demos/divider-demo.js +853 -0
  123. package/dist/collection/assets/js/demos/dock-demo.js +422 -0
  124. package/dist/collection/assets/js/demos/dock-host-init.js +117 -0
  125. package/dist/collection/assets/js/demos/dock-host-playground.js +59 -0
  126. package/dist/collection/assets/js/demos/documentation-demo.js +34 -0
  127. package/dist/collection/assets/js/demos/drag-drop-demo.js +132 -0
  128. package/dist/collection/assets/js/demos/dropdown-demo.js +1410 -0
  129. package/dist/collection/assets/js/demos/dropdown-subtitle-demo.js +18 -0
  130. package/dist/collection/assets/js/demos/empty-state-demo.js +580 -0
  131. package/dist/collection/assets/js/demos/fab-demo.js +374 -0
  132. package/dist/collection/assets/js/demos/file-upload-demo.js +171 -0
  133. package/dist/collection/assets/js/demos/home-components.js +750 -0
  134. package/dist/collection/assets/js/demos/home-demo.js +441 -0
  135. package/dist/collection/assets/js/demos/horizontal-nav-demo.js +277 -0
  136. package/dist/collection/assets/js/demos/icon-demo.js +380 -0
  137. package/dist/collection/assets/js/demos/input-demo.js +1932 -0
  138. package/dist/collection/assets/js/demos/knob-demo.js +570 -0
  139. package/dist/collection/assets/js/demos/layout-manager-demo.js +918 -0
  140. package/dist/collection/assets/js/demos/list-demo.js +1402 -0
  141. package/dist/collection/assets/js/demos/loader-demo.js +453 -0
  142. package/dist/collection/assets/js/demos/meter-group-demo.js +499 -0
  143. package/dist/collection/assets/js/demos/multi-level-context-menu-demo.js +924 -0
  144. package/dist/collection/assets/js/demos/my-profile-demo.js +237 -0
  145. package/dist/collection/assets/js/demos/nav-bar-demo.js +187 -0
  146. package/dist/collection/assets/js/demos/number-input-demo.js +242 -0
  147. package/dist/collection/assets/js/demos/overview-demo.js +11 -0
  148. package/dist/collection/assets/js/demos/pagination-demo.js +1042 -0
  149. package/dist/collection/assets/js/demos/panel-demo.js +789 -0
  150. package/dist/collection/assets/js/demos/pattern-input-demo.js +241 -0
  151. package/dist/collection/assets/js/demos/popover-demo.js +882 -0
  152. package/dist/collection/assets/js/demos/progress-demo.js +462 -0
  153. package/dist/collection/assets/js/demos/radio-demo.js +413 -0
  154. package/dist/collection/assets/js/demos/range-slider-demo.js +1217 -0
  155. package/dist/collection/assets/js/demos/rating-demo.js +383 -0
  156. package/dist/collection/assets/js/demos/scroll-top-demo.js +353 -0
  157. package/dist/collection/assets/js/demos/skeleton-demo.js +490 -0
  158. package/dist/collection/assets/js/demos/skeleton-performance-demo.js +26 -0
  159. package/dist/collection/assets/js/demos/smart-dialog-demo.js +552 -0
  160. package/dist/collection/assets/js/demos/smart-menu-demo.js +375 -0
  161. package/dist/collection/assets/js/demos/smart-stepper-demo.js +50 -0
  162. package/dist/collection/assets/js/demos/snackbar-demo.js +1040 -0
  163. package/dist/collection/assets/js/demos/speed-dial-demo.js +764 -0
  164. package/dist/collection/assets/js/demos/speedometer-demo.js +425 -0
  165. package/dist/collection/assets/js/demos/split-button-demo.js +201 -0
  166. package/dist/collection/assets/js/demos/stack-demo.js +228 -0
  167. package/dist/collection/assets/js/demos/stepper-demo.js +798 -0
  168. package/dist/collection/assets/js/demos/switch-demo.js +849 -0
  169. package/dist/collection/assets/js/demos/tabs-demo.js +1032 -0
  170. package/dist/collection/assets/js/demos/tag-demo.js +842 -0
  171. package/dist/collection/assets/js/demos/theme-selector-demo.js +466 -0
  172. package/dist/collection/assets/js/demos/timeline-demo.js +365 -0
  173. package/dist/collection/assets/js/demos/timeline-playground.js +59 -0
  174. package/dist/collection/assets/js/demos/timer-demo.js +313 -0
  175. package/dist/collection/assets/js/demos/toolbar-demo.js +643 -0
  176. package/dist/collection/assets/js/demos/tooltip-demo.js +730 -0
  177. package/dist/collection/assets/js/demos/top-bar-demo.js +417 -0
  178. package/dist/collection/assets/js/demos/transfer-list-demo.js +555 -0
  179. package/dist/collection/assets/js/demos/tree-demo.js +693 -0
  180. package/dist/collection/assets/js/demos/workspace-manager-demo.js +241 -0
  181. package/dist/collection/assets/js/index-boot.js +104 -0
  182. package/dist/collection/assets/js/nav-bar-demo.js +20 -0
  183. package/dist/collection/assets/js/nav-bar-init.js +119 -0
  184. package/dist/collection/assets/js/utils/layout-loader.js +80 -0
  185. package/dist/collection/collection-manifest.json +113 -0
  186. package/dist/collection/components/accordion/accordion.css +2090 -0
  187. package/dist/collection/components/accordion/accordion.js +2955 -0
  188. package/dist/collection/components/accordion/types.js +1 -0
  189. package/dist/collection/components/advanced-data-table/advanced-data-table.css +2606 -0
  190. package/dist/collection/components/advanced-data-table/advanced-data-table.js +5394 -0
  191. package/dist/collection/components/advanced-data-table/types.js +1 -0
  192. package/dist/collection/components/anchor/anchor.css +395 -0
  193. package/dist/collection/components/anchor/anchor.js +1404 -0
  194. package/dist/collection/components/anchor/types.js +1 -0
  195. package/dist/collection/components/animate-on-scroll/animate-on-scroll.css +804 -0
  196. package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +696 -0
  197. package/dist/collection/components/aside-panel/aside-panel.css +472 -0
  198. package/dist/collection/components/aside-panel/aside-panel.js +1697 -0
  199. package/dist/collection/components/avatar/avatar.css +696 -0
  200. package/dist/collection/components/avatar/avatar.js +2007 -0
  201. package/dist/collection/components/avatar/types.js +1 -0
  202. package/dist/collection/components/avatar-group/avatar-group.css +253 -0
  203. package/dist/collection/components/avatar-group/avatar-group.js +405 -0
  204. package/dist/collection/components/avatar-group/types.js +1 -0
  205. package/dist/collection/components/badge/badge.css +580 -0
  206. package/dist/collection/components/badge/badge.js +723 -0
  207. package/dist/collection/components/badge/types.js +1 -0
  208. package/dist/collection/components/breadcrumb/breadcrumb-item.js +231 -0
  209. package/dist/collection/components/breadcrumb/breadcrumb.css +313 -0
  210. package/dist/collection/components/breadcrumb/breadcrumb.js +510 -0
  211. package/dist/collection/components/breadcrumb/types.js +1 -0
  212. package/dist/collection/components/button/button.css +1862 -0
  213. package/dist/collection/components/button/button.js +1380 -0
  214. package/dist/collection/components/button/types.js +1 -0
  215. package/dist/collection/components/button-toggle/button-toggle.css +97 -0
  216. package/dist/collection/components/button-toggle/button-toggle.js +620 -0
  217. package/dist/collection/components/button-toggle-group/button-toggle-group.css +401 -0
  218. package/dist/collection/components/button-toggle-group/button-toggle-group.js +1572 -0
  219. package/dist/collection/components/button-toggle-group/types.js +1 -0
  220. package/dist/collection/components/callout-banner/callout-banner.css +684 -0
  221. package/dist/collection/components/callout-banner/callout-banner.js +1076 -0
  222. package/dist/collection/components/callout-banner/types.js +1 -0
  223. package/dist/collection/components/card/card.css +663 -0
  224. package/dist/collection/components/card/card.js +1697 -0
  225. package/dist/collection/components/card/types.js +1 -0
  226. package/dist/collection/components/carousel/carousel.css +549 -0
  227. package/dist/collection/components/carousel/carousel.js +1512 -0
  228. package/dist/collection/components/carousel/types.js +1 -0
  229. package/dist/collection/components/checkbox/checkbox.css +863 -0
  230. package/dist/collection/components/checkbox/checkbox.js +1201 -0
  231. package/dist/collection/components/checkbox/types.js +1 -0
  232. package/dist/collection/components/checkbox-group/checkbox-group.css +223 -0
  233. package/dist/collection/components/checkbox-group/checkbox-group.js +1001 -0
  234. package/dist/collection/components/checkbox-group/types.js +1 -0
  235. package/dist/collection/components/code-editor/code-editor.css +1081 -0
  236. package/dist/collection/components/code-editor/code-editor.js +1211 -0
  237. package/dist/collection/components/code-editor/types.js +1 -0
  238. package/dist/collection/components/code-preview/types.js +1 -0
  239. package/dist/collection/components/code-preview/ui-code-preview.css +209 -0
  240. package/dist/collection/components/code-preview/ui-code-preview.js +548 -0
  241. package/dist/collection/components/color-controller/color-controller.css +108 -0
  242. package/dist/collection/components/color-controller/color-controller.js +224 -0
  243. package/dist/collection/components/color-picker/color-picker.css +323 -0
  244. package/dist/collection/components/color-picker/color-picker.js +1139 -0
  245. package/dist/collection/components/color-picker/types.js +1 -0
  246. package/dist/collection/components/command-palette/command-palette.css +260 -0
  247. package/dist/collection/components/command-palette/command-palette.js +429 -0
  248. package/dist/collection/components/command-palette/types.js +1 -0
  249. package/dist/collection/components/context-menu/context-menu.css +388 -0
  250. package/dist/collection/components/context-menu/context-menu.js +1412 -0
  251. package/dist/collection/components/context-menu/types.js +1 -0
  252. package/dist/collection/components/dialog-box/dialog-box.css +1261 -0
  253. package/dist/collection/components/dialog-box/dialog-box.js +4314 -0
  254. package/dist/collection/components/dialog-box/dialog-tray.css +268 -0
  255. package/dist/collection/components/dialog-box/types.js +1 -0
  256. package/dist/collection/components/dialog-content/dialog-content.css +83 -0
  257. package/dist/collection/components/dialog-content/dialog-content.js +96 -0
  258. package/dist/collection/components/dialog-footer/dialog-footer.css +89 -0
  259. package/dist/collection/components/dialog-footer/dialog-footer.js +94 -0
  260. package/dist/collection/components/dialog-footer/types.js +1 -0
  261. package/dist/collection/components/dialog-header/dialog-header.css +203 -0
  262. package/dist/collection/components/dialog-header/dialog-header.js +630 -0
  263. package/dist/collection/components/dialog-header/types.js +1 -0
  264. package/dist/collection/components/divider/divider.css +948 -0
  265. package/dist/collection/components/divider/divider.js +1612 -0
  266. package/dist/collection/components/divider/types.js +1 -0
  267. package/dist/collection/components/dock/dock.css +348 -0
  268. package/dist/collection/components/dock/dock.js +464 -0
  269. package/dist/collection/components/dock/types.js +1 -0
  270. package/dist/collection/components/dock-host/index.js +1 -0
  271. package/dist/collection/components/dock-host/types.js +1 -0
  272. package/dist/collection/components/dock-host/ui-dock-host.css +155 -0
  273. package/dist/collection/components/dock-host/ui-dock-host.js +226 -0
  274. package/dist/collection/components/drag-drop/drag-drop.css +103 -0
  275. package/dist/collection/components/drag-drop/drag-drop.js +385 -0
  276. package/dist/collection/components/drag-drop/types.js +1 -0
  277. package/dist/collection/components/dropdown/dropdown.css +1142 -0
  278. package/dist/collection/components/dropdown/dropdown.js +2033 -0
  279. package/dist/collection/components/dropdown/types.js +1 -0
  280. package/dist/collection/components/empty-state/empty-state.css +712 -0
  281. package/dist/collection/components/empty-state/empty-state.js +1256 -0
  282. package/dist/collection/components/empty-state/types.js +1 -0
  283. package/dist/collection/components/fab/fab.css +601 -0
  284. package/dist/collection/components/fab/fab.js +1124 -0
  285. package/dist/collection/components/fab-item/fab-item.css +107 -0
  286. package/dist/collection/components/fab-item/fab-item.js +177 -0
  287. package/dist/collection/components/fab-item/types.js +1 -0
  288. package/dist/collection/components/file-upload/file-upload.css +243 -0
  289. package/dist/collection/components/file-upload/file-upload.js +1022 -0
  290. package/dist/collection/components/file-upload/types.js +1 -0
  291. package/dist/collection/components/horizontal-nav/horizontal-nav.css +394 -0
  292. package/dist/collection/components/horizontal-nav/horizontal-nav.js +375 -0
  293. package/dist/collection/components/icon/icon.css +113 -0
  294. package/dist/collection/components/icon/icon.js +583 -0
  295. package/dist/collection/components/image-button/image-button.css +154 -0
  296. package/dist/collection/components/image-button/image-button.js +310 -0
  297. package/dist/collection/components/image-button/types.js +1 -0
  298. package/dist/collection/components/input/input.css +1544 -0
  299. package/dist/collection/components/input/input.js +3690 -0
  300. package/dist/collection/components/input/types.js +1 -0
  301. package/dist/collection/components/input-pair/input-pair.css +72 -0
  302. package/dist/collection/components/input-pair/input-pair.js +309 -0
  303. package/dist/collection/components/knob/knob.css +162 -0
  304. package/dist/collection/components/knob/knob.js +986 -0
  305. package/dist/collection/components/knob/types.js +1 -0
  306. package/dist/collection/components/layout-manager/layout-manager.css +41 -0
  307. package/dist/collection/components/layout-manager/layout-manager.js +525 -0
  308. package/dist/collection/components/layout-manager/lm-container/lm-container.css +117 -0
  309. package/dist/collection/components/layout-manager/lm-container/lm-container.js +110 -0
  310. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.css +0 -0
  311. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +49 -0
  312. package/dist/collection/components/layout-manager/lm-panel/lm-panel.css +97 -0
  313. package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +58 -0
  314. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.css +57 -0
  315. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +120 -0
  316. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.css +149 -0
  317. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +130 -0
  318. package/dist/collection/components/layout-manager/types.js +1 -0
  319. package/dist/collection/components/library/category-section.css +147 -0
  320. package/dist/collection/components/library/category-section.js +139 -0
  321. package/dist/collection/components/library/data.js +74 -0
  322. package/dist/collection/components/library/library-card.css +181 -0
  323. package/dist/collection/components/library/library-card.js +203 -0
  324. package/dist/collection/components/library/library.css +358 -0
  325. package/dist/collection/components/library/library.js +91 -0
  326. package/dist/collection/components/list/list.css +1029 -0
  327. package/dist/collection/components/list/list.js +2167 -0
  328. package/dist/collection/components/list-group/list-group.css +275 -0
  329. package/dist/collection/components/list-group/list-group.js +356 -0
  330. package/dist/collection/components/list-item/list-item.css +1491 -0
  331. package/dist/collection/components/list-item/list-item.js +2184 -0
  332. package/dist/collection/components/masonry/masonry.css +414 -0
  333. package/dist/collection/components/masonry/masonry.js +1104 -0
  334. package/dist/collection/components/masonry/types.js +1 -0
  335. package/dist/collection/components/meter-group/meter-group.css +184 -0
  336. package/dist/collection/components/meter-group/meter-group.js +471 -0
  337. package/dist/collection/components/meter-group/types.js +1 -0
  338. package/dist/collection/components/my-component/my-component.css +27 -0
  339. package/dist/collection/components/my-component/my-component.js +95 -0
  340. package/dist/collection/components/my-step/my-step.css +25 -0
  341. package/dist/collection/components/my-step/my-step.js +237 -0
  342. package/dist/collection/components/nav-bar/nav-bar.css +448 -0
  343. package/dist/collection/components/nav-bar/nav-bar.js +608 -0
  344. package/dist/collection/components/number-input/number-input.css +200 -0
  345. package/dist/collection/components/number-input/number-input.js +695 -0
  346. package/dist/collection/components/otp-input/otp-input.css +243 -0
  347. package/dist/collection/components/otp-input/otp-input.js +761 -0
  348. package/dist/collection/components/otp-input/types.js +1 -0
  349. package/dist/collection/components/pagination/pagination.css +1399 -0
  350. package/dist/collection/components/pagination/pagination.js +2033 -0
  351. package/dist/collection/components/pagination/types.js +1 -0
  352. package/dist/collection/components/panel/panel.css +837 -0
  353. package/dist/collection/components/panel/panel.js +1842 -0
  354. package/dist/collection/components/panel/types.js +1 -0
  355. package/dist/collection/components/pattern-input/pattern-input.css +252 -0
  356. package/dist/collection/components/pattern-input/pattern-input.js +788 -0
  357. package/dist/collection/components/popover/popover.css +399 -0
  358. package/dist/collection/components/popover/popover.js +1449 -0
  359. package/dist/collection/components/popover/types.js +1 -0
  360. package/dist/collection/components/progress/progress.css +588 -0
  361. package/dist/collection/components/progress/progress.js +1414 -0
  362. package/dist/collection/components/progress/types.js +1 -0
  363. package/dist/collection/components/radio/radio.css +773 -0
  364. package/dist/collection/components/radio/radio.js +1059 -0
  365. package/dist/collection/components/radio/types.js +1 -0
  366. package/dist/collection/components/radio-group/radio-group.css +202 -0
  367. package/dist/collection/components/radio-group/radio-group.js +903 -0
  368. package/dist/collection/components/radio-group/types.js +1 -0
  369. package/dist/collection/components/range-slider/range-slider.css +602 -0
  370. package/dist/collection/components/range-slider/range-slider.js +1369 -0
  371. package/dist/collection/components/range-slider/types.js +1 -0
  372. package/dist/collection/components/rating/rating.css +768 -0
  373. package/dist/collection/components/rating/rating.js +1062 -0
  374. package/dist/collection/components/rating/types.js +1 -0
  375. package/dist/collection/components/resizable-panel/resizable-panel.css +247 -0
  376. package/dist/collection/components/resizable-panel/resizable-panel.js +874 -0
  377. package/dist/collection/components/resizable-panel/types.js +1 -0
  378. package/dist/collection/components/scroll-top/scroll-top.css +397 -0
  379. package/dist/collection/components/scroll-top/scroll-top.js +1178 -0
  380. package/dist/collection/components/scroll-top/types.js +1 -0
  381. package/dist/collection/components/skeleton/skeleton-loader.css +429 -0
  382. package/dist/collection/components/skeleton/skeleton-loader.js +1193 -0
  383. package/dist/collection/components/skeleton/types.js +1 -0
  384. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.css +357 -0
  385. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +1190 -0
  386. package/dist/collection/components/smart-location-dropdown/types.js +1 -0
  387. package/dist/collection/components/smart-menu/menu-item.interface.js +1 -0
  388. package/dist/collection/components/smart-menu/smart-menu.css +119 -0
  389. package/dist/collection/components/smart-menu/smart-menu.js +544 -0
  390. package/dist/collection/components/smart-stepper/smart-step.css +213 -0
  391. package/dist/collection/components/smart-stepper/smart-step.js +170 -0
  392. package/dist/collection/components/smart-stepper/smart-stepper.css +146 -0
  393. package/dist/collection/components/smart-stepper/smart-stepper.js +338 -0
  394. package/dist/collection/components/snackbar/snackbar.css +1480 -0
  395. package/dist/collection/components/snackbar/snackbar.js +1759 -0
  396. package/dist/collection/components/snackbar/types.js +1 -0
  397. package/dist/collection/components/speed-dial/speed-dial.css +478 -0
  398. package/dist/collection/components/speed-dial/speed-dial.js +1183 -0
  399. package/dist/collection/components/speed-dial/types.js +1 -0
  400. package/dist/collection/components/speedometer/speedometer.css +95 -0
  401. package/dist/collection/components/speedometer/speedometer.js +868 -0
  402. package/dist/collection/components/speedometer/types.js +1 -0
  403. package/dist/collection/components/splitter/splitter.css +269 -0
  404. package/dist/collection/components/splitter/splitter.js +713 -0
  405. package/dist/collection/components/splitter/types.js +1 -0
  406. package/dist/collection/components/stack/stack.css +269 -0
  407. package/dist/collection/components/stack/stack.js +297 -0
  408. package/dist/collection/components/stack/types.js +1 -0
  409. package/dist/collection/components/step/step.css +77 -0
  410. package/dist/collection/components/step/step.js +214 -0
  411. package/dist/collection/components/step/types.js +1 -0
  412. package/dist/collection/components/stepper/stepper.css +1079 -0
  413. package/dist/collection/components/stepper/stepper.js +1850 -0
  414. package/dist/collection/components/stepper/types.js +1 -0
  415. package/dist/collection/components/switch/switch.css +1099 -0
  416. package/dist/collection/components/switch/switch.js +1578 -0
  417. package/dist/collection/components/tabs/tabs.css +1355 -0
  418. package/dist/collection/components/tabs/tabs.js +1474 -0
  419. package/dist/collection/components/tabs/types.js +1 -0
  420. package/dist/collection/components/tag/tag.css +893 -0
  421. package/dist/collection/components/tag/tag.js +1119 -0
  422. package/dist/collection/components/tag/types.js +1 -0
  423. package/dist/collection/components/tag-group/tag-group.css +144 -0
  424. package/dist/collection/components/tag-group/tag-group.js +887 -0
  425. package/dist/collection/components/tag-group/types.js +1 -0
  426. package/dist/collection/components/timeline/timeline.css +1850 -0
  427. package/dist/collection/components/timeline/timeline.js +889 -0
  428. package/dist/collection/components/timeline/types.js +1 -0
  429. package/dist/collection/components/timeline/ui-timeline.stories.js +19 -0
  430. package/dist/collection/components/timeline-item/timeline-item.css +75 -0
  431. package/dist/collection/components/timeline-item/timeline-item.js +91 -0
  432. package/dist/collection/components/timer/timer.css +367 -0
  433. package/dist/collection/components/timer/timer.js +1292 -0
  434. package/dist/collection/components/timer/types.js +1 -0
  435. package/dist/collection/components/timer/ui-timer.stories.js +19 -0
  436. package/dist/collection/components/toggle-group/toggle-group.css +361 -0
  437. package/dist/collection/components/toggle-group/toggle-group.js +1212 -0
  438. package/dist/collection/components/toggle-group/types.js +1 -0
  439. package/dist/collection/components/toolbar/toolbar-types.js +1 -0
  440. package/dist/collection/components/toolbar/toolbar.css +1186 -0
  441. package/dist/collection/components/toolbar/toolbar.js +1635 -0
  442. package/dist/collection/components/tooltip/tooltip.css +609 -0
  443. package/dist/collection/components/tooltip/tooltip.js +1882 -0
  444. package/dist/collection/components/tooltip/types.js +1 -0
  445. package/dist/collection/components/top-bar/top-bar.css +274 -0
  446. package/dist/collection/components/top-bar/top-bar.js +383 -0
  447. package/dist/collection/components/transfer-list/transfer-list.css +520 -0
  448. package/dist/collection/components/transfer-list/transfer-list.js +1225 -0
  449. package/dist/collection/components/transfer-list/types.js +1 -0
  450. package/dist/collection/components/tree/tree.css +1197 -0
  451. package/dist/collection/components/tree/tree.js +2509 -0
  452. package/dist/collection/components/tree/types.js +1 -0
  453. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +830 -0
  454. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +1231 -0
  455. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-types.js +1 -0
  456. package/dist/collection/components/ui-navigation-bar/navigation-item.css +679 -0
  457. package/dist/collection/components/ui-navigation-bar/navigation-item.js +385 -0
  458. package/dist/collection/components/ui-navigation-bar/navigation-types.js +1 -0
  459. package/dist/collection/components/workspace-manager/types.js +1 -0
  460. package/dist/collection/components/workspace-manager/workspace-manager.css +1094 -0
  461. package/dist/collection/components/workspace-manager/workspace-manager.js +1914 -0
  462. package/dist/collection/components.js +51 -0
  463. package/dist/collection/index.js +108 -0
  464. package/dist/collection/service/drag-manager.js +23 -0
  465. package/dist/collection/service/event-bus.js +19 -0
  466. package/dist/collection/service/serialization.js +8 -0
  467. package/dist/collection/service/state-engine.js +247 -0
  468. package/dist/collection/service/theme-switcher.js +146 -0
  469. package/dist/collection/stories/Button.stories.js +15 -0
  470. package/dist/collection/types/common.js +1 -0
  471. package/dist/collection/types/index.js +4 -0
  472. package/dist/collection/utils/aria-live.js +60 -0
  473. package/dist/collection/utils/component-size.js +25 -0
  474. package/dist/collection/utils/dom.js +260 -0
  475. package/dist/collection/utils/focus-trap.js +135 -0
  476. package/dist/collection/utils/security.js +10 -0
  477. package/dist/collection/utils/test/setup-component-test-env.js +92 -0
  478. package/dist/collection/utils/utils.js +21 -0
  479. package/dist/collection/utils/validation.js +74 -0
  480. package/dist/components/avatar-group.js +1 -0
  481. package/dist/components/avatar.js +1 -0
  482. package/dist/components/badge.js +1 -0
  483. package/dist/components/button-toggle.js +1 -0
  484. package/dist/components/category-section.d.ts +11 -0
  485. package/dist/components/category-section.js +1 -0
  486. package/dist/components/category-section2.js +1 -0
  487. package/dist/components/checkbox.js +1 -0
  488. package/dist/components/context-menu.js +1 -0
  489. package/dist/components/dialog-footer.js +1 -0
  490. package/dist/components/dialog-header.js +1 -0
  491. package/dist/components/dom.js +1 -0
  492. package/dist/components/dropdown.js +1 -0
  493. package/dist/components/event-bus.js +1 -0
  494. package/dist/components/focus-trap.js +1 -0
  495. package/dist/components/icon.js +2 -0
  496. package/dist/components/index.d.ts +35 -0
  497. package/dist/components/index.js +1 -0
  498. package/dist/components/input.js +1 -0
  499. package/dist/components/layout-manager.d.ts +11 -0
  500. package/dist/components/layout-manager.js +1 -0
  501. package/dist/components/library-card.d.ts +11 -0
  502. package/dist/components/library-card.js +1 -0
  503. package/dist/components/library-card2.js +1 -0
  504. package/dist/components/list-group.js +1 -0
  505. package/dist/components/list-item.js +1 -0
  506. package/dist/components/lm-container.d.ts +11 -0
  507. package/dist/components/lm-container.js +1 -0
  508. package/dist/components/lm-container2.js +1 -0
  509. package/dist/components/lm-floating-window.d.ts +11 -0
  510. package/dist/components/lm-floating-window.js +1 -0
  511. package/dist/components/lm-floating-window2.js +1 -0
  512. package/dist/components/lm-panel.d.ts +11 -0
  513. package/dist/components/lm-panel.js +1 -0
  514. package/dist/components/lm-panel2.js +1 -0
  515. package/dist/components/lm-splitter.d.ts +11 -0
  516. package/dist/components/lm-splitter.js +1 -0
  517. package/dist/components/lm-splitter2.js +1 -0
  518. package/dist/components/lm-tabs.d.ts +11 -0
  519. package/dist/components/lm-tabs.js +1 -0
  520. package/dist/components/lm-tabs2.js +1 -0
  521. package/dist/components/my-component.d.ts +11 -0
  522. package/dist/components/my-component.js +1 -0
  523. package/dist/components/my-step.d.ts +11 -0
  524. package/dist/components/my-step.js +1 -0
  525. package/dist/components/nav-bar.d.ts +11 -0
  526. package/dist/components/nav-bar.js +1 -0
  527. package/dist/components/pagination.js +1 -0
  528. package/dist/components/radio.js +1 -0
  529. package/dist/components/range-slider.js +1 -0
  530. package/dist/components/rating.js +1 -0
  531. package/dist/components/resizable-panel.js +1 -0
  532. package/dist/components/skeleton-loader.js +1 -0
  533. package/dist/components/smart-step.d.ts +11 -0
  534. package/dist/components/smart-step.js +1 -0
  535. package/dist/components/stack.js +1 -0
  536. package/dist/components/switch.js +1 -0
  537. package/dist/components/tag-group.js +1 -0
  538. package/dist/components/tag.js +1 -0
  539. package/dist/components/timeline-item.d.ts +11 -0
  540. package/dist/components/timeline-item.js +1 -0
  541. package/dist/components/toggle-group.js +1 -0
  542. package/dist/components/tooltip.js +1 -0
  543. package/dist/components/ui-accordion.d.ts +11 -0
  544. package/dist/components/ui-accordion.js +1 -0
  545. package/dist/components/ui-advanced-data-table.d.ts +11 -0
  546. package/dist/components/ui-advanced-data-table.js +1 -0
  547. package/dist/components/ui-anchor.d.ts +11 -0
  548. package/dist/components/ui-anchor.js +1 -0
  549. package/dist/components/ui-animate-on-scroll.d.ts +11 -0
  550. package/dist/components/ui-animate-on-scroll.js +1 -0
  551. package/dist/components/ui-aside-panel.d.ts +11 -0
  552. package/dist/components/ui-aside-panel.js +1 -0
  553. package/dist/components/ui-avatar-group.d.ts +11 -0
  554. package/dist/components/ui-avatar-group.js +1 -0
  555. package/dist/components/ui-avatar.d.ts +11 -0
  556. package/dist/components/ui-avatar.js +1 -0
  557. package/dist/components/ui-badge.d.ts +11 -0
  558. package/dist/components/ui-badge.js +1 -0
  559. package/dist/components/ui-breadcrumb-item.d.ts +11 -0
  560. package/dist/components/ui-breadcrumb-item.js +1 -0
  561. package/dist/components/ui-breadcrumb.d.ts +11 -0
  562. package/dist/components/ui-breadcrumb.js +1 -0
  563. package/dist/components/ui-button-toggle-group.d.ts +11 -0
  564. package/dist/components/ui-button-toggle-group.js +1 -0
  565. package/dist/components/ui-button-toggle.d.ts +11 -0
  566. package/dist/components/ui-button-toggle.js +1 -0
  567. package/dist/components/ui-button.d.ts +11 -0
  568. package/dist/components/ui-button.js +1 -0
  569. package/dist/components/ui-callout-banner.d.ts +11 -0
  570. package/dist/components/ui-callout-banner.js +1 -0
  571. package/dist/components/ui-card.d.ts +11 -0
  572. package/dist/components/ui-card.js +1 -0
  573. package/dist/components/ui-carousel.d.ts +11 -0
  574. package/dist/components/ui-carousel.js +1 -0
  575. package/dist/components/ui-checkbox-group.d.ts +11 -0
  576. package/dist/components/ui-checkbox-group.js +1 -0
  577. package/dist/components/ui-checkbox.d.ts +11 -0
  578. package/dist/components/ui-checkbox.js +1 -0
  579. package/dist/components/ui-code-editor.d.ts +11 -0
  580. package/dist/components/ui-code-editor.js +1 -0
  581. package/dist/components/ui-code-preview.d.ts +11 -0
  582. package/dist/components/ui-code-preview.js +1 -0
  583. package/dist/components/ui-color-controller.d.ts +11 -0
  584. package/dist/components/ui-color-controller.js +1 -0
  585. package/dist/components/ui-color-picker.d.ts +11 -0
  586. package/dist/components/ui-color-picker.js +1 -0
  587. package/dist/components/ui-command-palette.d.ts +11 -0
  588. package/dist/components/ui-command-palette.js +1 -0
  589. package/dist/components/ui-context-menu.d.ts +11 -0
  590. package/dist/components/ui-context-menu.js +1 -0
  591. package/dist/components/ui-dialog-box.d.ts +11 -0
  592. package/dist/components/ui-dialog-box.js +1 -0
  593. package/dist/components/ui-dialog-content.d.ts +11 -0
  594. package/dist/components/ui-dialog-content.js +1 -0
  595. package/dist/components/ui-dialog-footer.d.ts +11 -0
  596. package/dist/components/ui-dialog-footer.js +1 -0
  597. package/dist/components/ui-dialog-header.d.ts +11 -0
  598. package/dist/components/ui-dialog-header.js +1 -0
  599. package/dist/components/ui-divider.d.ts +11 -0
  600. package/dist/components/ui-divider.js +1 -0
  601. package/dist/components/ui-dock-host.d.ts +11 -0
  602. package/dist/components/ui-dock-host.js +1 -0
  603. package/dist/components/ui-dock.d.ts +11 -0
  604. package/dist/components/ui-dock.js +1 -0
  605. package/dist/components/ui-drag-drop.d.ts +11 -0
  606. package/dist/components/ui-drag-drop.js +1 -0
  607. package/dist/components/ui-dropdown.d.ts +11 -0
  608. package/dist/components/ui-dropdown.js +1 -0
  609. package/dist/components/ui-empty-state.d.ts +11 -0
  610. package/dist/components/ui-empty-state.js +1 -0
  611. package/dist/components/ui-fab-item.d.ts +11 -0
  612. package/dist/components/ui-fab-item.js +1 -0
  613. package/dist/components/ui-fab.d.ts +11 -0
  614. package/dist/components/ui-fab.js +1 -0
  615. package/dist/components/ui-file-upload.d.ts +11 -0
  616. package/dist/components/ui-file-upload.js +1 -0
  617. package/dist/components/ui-horizontal-nav.d.ts +11 -0
  618. package/dist/components/ui-horizontal-nav.js +1 -0
  619. package/dist/components/ui-icon.d.ts +11 -0
  620. package/dist/components/ui-icon.js +1 -0
  621. package/dist/components/ui-image-button.d.ts +11 -0
  622. package/dist/components/ui-image-button.js +1 -0
  623. package/dist/components/ui-input-pair.d.ts +11 -0
  624. package/dist/components/ui-input-pair.js +1 -0
  625. package/dist/components/ui-input.d.ts +11 -0
  626. package/dist/components/ui-input.js +1 -0
  627. package/dist/components/ui-knob.d.ts +11 -0
  628. package/dist/components/ui-knob.js +1 -0
  629. package/dist/components/ui-library.d.ts +11 -0
  630. package/dist/components/ui-library.js +1 -0
  631. package/dist/components/ui-list-group.d.ts +11 -0
  632. package/dist/components/ui-list-group.js +1 -0
  633. package/dist/components/ui-list-item.d.ts +11 -0
  634. package/dist/components/ui-list-item.js +1 -0
  635. package/dist/components/ui-list.d.ts +11 -0
  636. package/dist/components/ui-list.js +1 -0
  637. package/dist/components/ui-masonry.d.ts +11 -0
  638. package/dist/components/ui-masonry.js +1 -0
  639. package/dist/components/ui-meter-group.d.ts +11 -0
  640. package/dist/components/ui-meter-group.js +1 -0
  641. package/dist/components/ui-navigation-bar.d.ts +11 -0
  642. package/dist/components/ui-navigation-bar.js +1 -0
  643. package/dist/components/ui-navigation-item.d.ts +11 -0
  644. package/dist/components/ui-navigation-item.js +1 -0
  645. package/dist/components/ui-number-input.d.ts +11 -0
  646. package/dist/components/ui-number-input.js +1 -0
  647. package/dist/components/ui-otp-input.d.ts +11 -0
  648. package/dist/components/ui-otp-input.js +1 -0
  649. package/dist/components/ui-pagination.d.ts +11 -0
  650. package/dist/components/ui-pagination.js +1 -0
  651. package/dist/components/ui-panel.d.ts +11 -0
  652. package/dist/components/ui-panel.js +1 -0
  653. package/dist/components/ui-pattern-input.d.ts +11 -0
  654. package/dist/components/ui-pattern-input.js +1 -0
  655. package/dist/components/ui-popover.d.ts +11 -0
  656. package/dist/components/ui-popover.js +1 -0
  657. package/dist/components/ui-progress.d.ts +11 -0
  658. package/dist/components/ui-progress.js +1 -0
  659. package/dist/components/ui-radio-group.d.ts +11 -0
  660. package/dist/components/ui-radio-group.js +1 -0
  661. package/dist/components/ui-radio.d.ts +11 -0
  662. package/dist/components/ui-radio.js +1 -0
  663. package/dist/components/ui-range-slider.d.ts +11 -0
  664. package/dist/components/ui-range-slider.js +1 -0
  665. package/dist/components/ui-rating.d.ts +11 -0
  666. package/dist/components/ui-rating.js +1 -0
  667. package/dist/components/ui-resizable-panel.d.ts +11 -0
  668. package/dist/components/ui-resizable-panel.js +1 -0
  669. package/dist/components/ui-scroll-top.d.ts +11 -0
  670. package/dist/components/ui-scroll-top.js +1 -0
  671. package/dist/components/ui-skeleton.d.ts +11 -0
  672. package/dist/components/ui-skeleton.js +1 -0
  673. package/dist/components/ui-smart-context-menu.d.ts +11 -0
  674. package/dist/components/ui-smart-context-menu.js +1 -0
  675. package/dist/components/ui-smart-location-dropdown.d.ts +11 -0
  676. package/dist/components/ui-smart-location-dropdown.js +1 -0
  677. package/dist/components/ui-smart-stepper.d.ts +11 -0
  678. package/dist/components/ui-smart-stepper.js +1 -0
  679. package/dist/components/ui-snackbar.d.ts +11 -0
  680. package/dist/components/ui-snackbar.js +1 -0
  681. package/dist/components/ui-speed-dial.d.ts +11 -0
  682. package/dist/components/ui-speed-dial.js +1 -0
  683. package/dist/components/ui-speedometer.d.ts +11 -0
  684. package/dist/components/ui-speedometer.js +1 -0
  685. package/dist/components/ui-splitter.d.ts +11 -0
  686. package/dist/components/ui-splitter.js +1 -0
  687. package/dist/components/ui-stack.d.ts +11 -0
  688. package/dist/components/ui-stack.js +1 -0
  689. package/dist/components/ui-step.d.ts +11 -0
  690. package/dist/components/ui-step.js +1 -0
  691. package/dist/components/ui-stepper.d.ts +11 -0
  692. package/dist/components/ui-stepper.js +1 -0
  693. package/dist/components/ui-switch.d.ts +11 -0
  694. package/dist/components/ui-switch.js +1 -0
  695. package/dist/components/ui-tabs.d.ts +11 -0
  696. package/dist/components/ui-tabs.js +1 -0
  697. package/dist/components/ui-tag-group.d.ts +11 -0
  698. package/dist/components/ui-tag-group.js +1 -0
  699. package/dist/components/ui-tag.d.ts +11 -0
  700. package/dist/components/ui-tag.js +1 -0
  701. package/dist/components/ui-timeline.d.ts +11 -0
  702. package/dist/components/ui-timeline.js +1 -0
  703. package/dist/components/ui-timer.d.ts +11 -0
  704. package/dist/components/ui-timer.js +1 -0
  705. package/dist/components/ui-toggle-group.d.ts +11 -0
  706. package/dist/components/ui-toggle-group.js +1 -0
  707. package/dist/components/ui-toolbar.d.ts +11 -0
  708. package/dist/components/ui-toolbar.js +1 -0
  709. package/dist/components/ui-tooltip.d.ts +11 -0
  710. package/dist/components/ui-tooltip.js +1 -0
  711. package/dist/components/ui-top-bar.d.ts +11 -0
  712. package/dist/components/ui-top-bar.js +1 -0
  713. package/dist/components/ui-transfer-list.d.ts +11 -0
  714. package/dist/components/ui-transfer-list.js +1 -0
  715. package/dist/components/ui-tree.d.ts +11 -0
  716. package/dist/components/ui-tree.js +1 -0
  717. package/dist/components/ui-workspace-manager.d.ts +11 -0
  718. package/dist/components/ui-workspace-manager.js +1 -0
  719. package/dist/components/utils.js +1 -0
  720. package/dist/esm/category-section.entry.js +28 -0
  721. package/dist/esm/component-size-C7gf39HE.js +27 -0
  722. package/dist/esm/dom-BMFah5q3.js +262 -0
  723. package/dist/esm/event-bus-vwwmWKs9.js +21 -0
  724. package/dist/esm/exploration-project-tailwind.js +20 -0
  725. package/dist/esm/focus-trap-BSQ8klD4.js +137 -0
  726. package/dist/esm/index-DUsoYu9r.js +2264 -0
  727. package/dist/esm/index.js +256 -0
  728. package/dist/esm/layout-manager.entry.js +614 -0
  729. package/dist/esm/library-card.entry.js +61 -0
  730. package/dist/esm/lm-container_2.entry.js +76 -0
  731. package/dist/esm/lm-panel_3.entry.js +104 -0
  732. package/dist/esm/loader.js +10 -0
  733. package/dist/esm/my-component.entry.js +31 -0
  734. package/dist/esm/my-step.entry.js +27 -0
  735. package/dist/esm/nav-bar.entry.js +245 -0
  736. package/dist/esm/security-D2WzX6vR.js +1545 -0
  737. package/dist/esm/smart-step.entry.js +45 -0
  738. package/dist/esm/timeline-item.entry.js +27 -0
  739. package/dist/esm/ui-accordion_10.entry.js +5722 -0
  740. package/dist/esm/ui-advanced-data-table.entry.js +2682 -0
  741. package/dist/esm/ui-anchor.entry.js +556 -0
  742. package/dist/esm/ui-animate-on-scroll.entry.js +283 -0
  743. package/dist/esm/ui-aside-panel.entry.js +636 -0
  744. package/dist/esm/ui-avatar-group_3.entry.js +630 -0
  745. package/dist/esm/ui-breadcrumb-item.entry.js +54 -0
  746. package/dist/esm/ui-breadcrumb.entry.js +199 -0
  747. package/dist/esm/ui-callout-banner.entry.js +289 -0
  748. package/dist/esm/ui-card.entry.js +409 -0
  749. package/dist/esm/ui-carousel.entry.js +545 -0
  750. package/dist/esm/ui-checkbox-group.entry.js +328 -0
  751. package/dist/esm/ui-checkbox.entry.js +258 -0
  752. package/dist/esm/ui-code-editor.entry.js +959 -0
  753. package/dist/esm/ui-code-preview.entry.js +313 -0
  754. package/dist/esm/ui-color-controller.entry.js +148 -0
  755. package/dist/esm/ui-color-picker.entry.js +656 -0
  756. package/dist/esm/ui-command-palette.entry.js +176 -0
  757. package/dist/esm/ui-dialog-box.entry.js +1806 -0
  758. package/dist/esm/ui-dialog-content.entry.js +29 -0
  759. package/dist/esm/ui-dialog-footer_2.entry.js +190 -0
  760. package/dist/esm/ui-divider.entry.js +479 -0
  761. package/dist/esm/ui-dock-host.entry.js +126 -0
  762. package/dist/esm/ui-dock.entry.js +219 -0
  763. package/dist/esm/ui-drag-drop.entry.js +170 -0
  764. package/dist/esm/ui-dropdown_2.entry.js +1549 -0
  765. package/dist/esm/ui-empty-state.entry.js +396 -0
  766. package/dist/esm/ui-fab-item.entry.js +37 -0
  767. package/dist/esm/ui-fab.entry.js +275 -0
  768. package/dist/esm/ui-file-upload.entry.js +416 -0
  769. package/dist/esm/ui-horizontal-nav.entry.js +133 -0
  770. package/dist/esm/ui-image-button.entry.js +65 -0
  771. package/dist/esm/ui-input-pair.entry.js +42 -0
  772. package/dist/esm/ui-knob.entry.js +445 -0
  773. package/dist/esm/ui-library.entry.js +132 -0
  774. package/dist/esm/ui-list-group_2.entry.js +583 -0
  775. package/dist/esm/ui-list.entry.js +730 -0
  776. package/dist/esm/ui-masonry.entry.js +476 -0
  777. package/dist/esm/ui-meter-group.entry.js +171 -0
  778. package/dist/esm/ui-navigation-item.entry.js +102 -0
  779. package/dist/esm/ui-number-input.entry.js +189 -0
  780. package/dist/esm/ui-otp-input.entry.js +244 -0
  781. package/dist/esm/ui-pagination_3.entry.js +1617 -0
  782. package/dist/esm/ui-panel.entry.js +612 -0
  783. package/dist/esm/ui-pattern-input.entry.js +276 -0
  784. package/dist/esm/ui-popover.entry.js +515 -0
  785. package/dist/esm/ui-progress.entry.js +514 -0
  786. package/dist/esm/ui-radio-group.entry.js +203 -0
  787. package/dist/esm/ui-radio.entry.js +204 -0
  788. package/dist/esm/ui-range-slider.entry.js +635 -0
  789. package/dist/esm/ui-resizable-panel.entry.js +482 -0
  790. package/dist/esm/ui-scroll-top.entry.js +457 -0
  791. package/dist/esm/ui-smart-context-menu.entry.js +374 -0
  792. package/dist/esm/ui-smart-location-dropdown.entry.js +563 -0
  793. package/dist/esm/ui-smart-stepper.entry.js +135 -0
  794. package/dist/esm/ui-snackbar.entry.js +861 -0
  795. package/dist/esm/ui-speed-dial.entry.js +518 -0
  796. package/dist/esm/ui-speedometer.entry.js +426 -0
  797. package/dist/esm/ui-splitter.entry.js +280 -0
  798. package/dist/esm/ui-step.entry.js +28 -0
  799. package/dist/esm/ui-stepper.entry.js +638 -0
  800. package/dist/esm/ui-switch.entry.js +403 -0
  801. package/dist/esm/ui-tabs.entry.js +701 -0
  802. package/dist/esm/ui-tag.entry.js +297 -0
  803. package/dist/esm/ui-timeline.entry.js +265 -0
  804. package/dist/esm/ui-timer.entry.js +500 -0
  805. package/dist/esm/ui-toolbar.entry.js +617 -0
  806. package/dist/esm/ui-tooltip.entry.js +695 -0
  807. package/dist/esm/ui-top-bar.entry.js +119 -0
  808. package/dist/esm/ui-transfer-list.entry.js +590 -0
  809. package/dist/esm/ui-tree.entry.js +872 -0
  810. package/dist/esm/ui-workspace-manager.entry.js +1199 -0
  811. package/dist/esm/utils-Ck6jDuhz.js +23 -0
  812. package/dist/exploration-project-tailwind/exploration-project-tailwind.css +1 -0
  813. package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -0
  814. package/dist/exploration-project-tailwind/index.esm.js +1 -0
  815. package/dist/exploration-project-tailwind/p-01c7db7a.entry.js +1 -0
  816. package/dist/exploration-project-tailwind/p-049744f9.entry.js +1 -0
  817. package/dist/exploration-project-tailwind/p-06f0c679.entry.js +1 -0
  818. package/dist/exploration-project-tailwind/p-0b004861.entry.js +1 -0
  819. package/dist/exploration-project-tailwind/p-0d31c9e9.entry.js +1 -0
  820. package/dist/exploration-project-tailwind/p-148e81df.entry.js +1 -0
  821. package/dist/exploration-project-tailwind/p-200241f8.entry.js +1 -0
  822. package/dist/exploration-project-tailwind/p-287dbf09.entry.js +1 -0
  823. package/dist/exploration-project-tailwind/p-2d273118.entry.js +1 -0
  824. package/dist/exploration-project-tailwind/p-2f1aebb3.entry.js +1 -0
  825. package/dist/exploration-project-tailwind/p-2f961934.entry.js +1 -0
  826. package/dist/exploration-project-tailwind/p-35296877.entry.js +1 -0
  827. package/dist/exploration-project-tailwind/p-36861546.entry.js +1 -0
  828. package/dist/exploration-project-tailwind/p-3d3d48fd.entry.js +1 -0
  829. package/dist/exploration-project-tailwind/p-41cd6bf0.entry.js +1 -0
  830. package/dist/exploration-project-tailwind/p-45482d86.entry.js +1 -0
  831. package/dist/exploration-project-tailwind/p-46596a28.entry.js +1 -0
  832. package/dist/exploration-project-tailwind/p-46efdea3.entry.js +1 -0
  833. package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +1 -0
  834. package/dist/exploration-project-tailwind/p-4d73c143.entry.js +1 -0
  835. package/dist/exploration-project-tailwind/p-4de419d5.entry.js +1 -0
  836. package/dist/exploration-project-tailwind/p-4f6bba75.entry.js +1 -0
  837. package/dist/exploration-project-tailwind/p-5508874f.entry.js +1 -0
  838. package/dist/exploration-project-tailwind/p-5ce0dbd8.entry.js +1 -0
  839. package/dist/exploration-project-tailwind/p-5e3e80ae.entry.js +1 -0
  840. package/dist/exploration-project-tailwind/p-61717490.entry.js +1 -0
  841. package/dist/exploration-project-tailwind/p-62352ef2.entry.js +1 -0
  842. package/dist/exploration-project-tailwind/p-64e3a484.entry.js +1 -0
  843. package/dist/exploration-project-tailwind/p-6ab80ead.entry.js +1 -0
  844. package/dist/exploration-project-tailwind/p-6e9694f2.entry.js +1 -0
  845. package/dist/exploration-project-tailwind/p-6fa9dc15.entry.js +1 -0
  846. package/dist/exploration-project-tailwind/p-70d82d79.entry.js +1 -0
  847. package/dist/exploration-project-tailwind/p-717dad1f.entry.js +1 -0
  848. package/dist/exploration-project-tailwind/p-7376ac95.entry.js +1 -0
  849. package/dist/exploration-project-tailwind/p-73d29a4a.entry.js +1 -0
  850. package/dist/exploration-project-tailwind/p-7515b1e3.entry.js +1 -0
  851. package/dist/exploration-project-tailwind/p-77124686.entry.js +1 -0
  852. package/dist/exploration-project-tailwind/p-77a21491.entry.js +1 -0
  853. package/dist/exploration-project-tailwind/p-77cc333a.entry.js +1 -0
  854. package/dist/exploration-project-tailwind/p-7f91d949.entry.js +1 -0
  855. package/dist/exploration-project-tailwind/p-807c6555.entry.js +1 -0
  856. package/dist/exploration-project-tailwind/p-81961fb1.entry.js +1 -0
  857. package/dist/exploration-project-tailwind/p-85bf89fd.entry.js +1 -0
  858. package/dist/exploration-project-tailwind/p-85e36111.entry.js +1 -0
  859. package/dist/exploration-project-tailwind/p-875be805.entry.js +1 -0
  860. package/dist/exploration-project-tailwind/p-898dd0fa.entry.js +1 -0
  861. package/dist/exploration-project-tailwind/p-8d951aef.entry.js +1 -0
  862. package/dist/exploration-project-tailwind/p-9d0c8760.entry.js +1 -0
  863. package/dist/exploration-project-tailwind/p-9fa70359.entry.js +1 -0
  864. package/dist/exploration-project-tailwind/p-9fc06ff0.entry.js +1 -0
  865. package/dist/exploration-project-tailwind/p-BMFah5q3.js +1 -0
  866. package/dist/exploration-project-tailwind/p-BSQ8klD4.js +1 -0
  867. package/dist/exploration-project-tailwind/p-C7gf39HE.js +1 -0
  868. package/dist/exploration-project-tailwind/p-Ck6jDuhz.js +1 -0
  869. package/dist/exploration-project-tailwind/p-D2WzX6vR.js +2 -0
  870. package/dist/exploration-project-tailwind/p-DUsoYu9r.js +2 -0
  871. package/dist/exploration-project-tailwind/p-a1ad32a2.entry.js +1 -0
  872. package/dist/exploration-project-tailwind/p-a3f465d9.entry.js +1 -0
  873. package/dist/exploration-project-tailwind/p-a42fdc33.entry.js +1 -0
  874. package/dist/exploration-project-tailwind/p-a4f52a76.entry.js +1 -0
  875. package/dist/exploration-project-tailwind/p-aa85ff78.entry.js +1 -0
  876. package/dist/exploration-project-tailwind/p-ab752761.entry.js +1 -0
  877. package/dist/exploration-project-tailwind/p-ba21fed3.entry.js +1 -0
  878. package/dist/exploration-project-tailwind/p-c174a372.entry.js +1 -0
  879. package/dist/exploration-project-tailwind/p-c2ca71ac.entry.js +1 -0
  880. package/dist/exploration-project-tailwind/p-c4ba7e52.entry.js +1 -0
  881. package/dist/exploration-project-tailwind/p-c5ddc817.entry.js +1 -0
  882. package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +1 -0
  883. package/dist/exploration-project-tailwind/p-c6fd72e1.entry.js +1 -0
  884. package/dist/exploration-project-tailwind/p-c7e87fbb.entry.js +1 -0
  885. package/dist/exploration-project-tailwind/p-c87aeab6.entry.js +1 -0
  886. package/dist/exploration-project-tailwind/p-c90722ec.entry.js +1 -0
  887. package/dist/exploration-project-tailwind/p-ccb5c737.entry.js +1 -0
  888. package/dist/exploration-project-tailwind/p-ce1222a1.entry.js +1 -0
  889. package/dist/exploration-project-tailwind/p-d16c9635.entry.js +1 -0
  890. package/dist/exploration-project-tailwind/p-d2308a00.entry.js +1 -0
  891. package/dist/exploration-project-tailwind/p-d30e24bd.entry.js +1 -0
  892. package/dist/exploration-project-tailwind/p-d419eaf0.entry.js +1 -0
  893. package/dist/exploration-project-tailwind/p-debede45.entry.js +1 -0
  894. package/dist/exploration-project-tailwind/p-e5322e59.entry.js +1 -0
  895. package/dist/exploration-project-tailwind/p-e8ba0c95.entry.js +1 -0
  896. package/dist/exploration-project-tailwind/p-e90d5307.entry.js +1 -0
  897. package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +1 -0
  898. package/dist/exploration-project-tailwind/p-ecda1cc3.entry.js +1 -0
  899. package/dist/exploration-project-tailwind/p-f0830120.entry.js +1 -0
  900. package/dist/exploration-project-tailwind/p-f11e5cae.entry.js +1 -0
  901. package/dist/exploration-project-tailwind/p-f5719913.entry.js +1 -0
  902. package/dist/exploration-project-tailwind/p-ffb1754a.entry.js +1 -0
  903. package/dist/exploration-project-tailwind/p-vwwmWKs9.js +1 -0
  904. package/dist/index.cjs.js +1 -0
  905. package/dist/index.js +1 -0
  906. package/dist/types/components/accordion/accordion.d.ts +352 -0
  907. package/dist/types/components/accordion/types.d.ts +69 -0
  908. package/dist/types/components/advanced-data-table/advanced-data-table.d.ts +697 -0
  909. package/dist/types/components/advanced-data-table/types.d.ts +120 -0
  910. package/dist/types/components/anchor/anchor.d.ts +133 -0
  911. package/dist/types/components/anchor/types.d.ts +17 -0
  912. package/dist/types/components/animate-on-scroll/animate-on-scroll.d.ts +101 -0
  913. package/dist/types/components/aside-panel/aside-panel.d.ts +249 -0
  914. package/dist/types/components/avatar/avatar.d.ts +201 -0
  915. package/dist/types/components/avatar/types.d.ts +132 -0
  916. package/dist/types/components/avatar-group/avatar-group.d.ts +52 -0
  917. package/dist/types/components/avatar-group/types.d.ts +31 -0
  918. package/dist/types/components/badge/badge.d.ts +109 -0
  919. package/dist/types/components/badge/types.d.ts +6 -0
  920. package/dist/types/components/breadcrumb/breadcrumb-item.d.ts +36 -0
  921. package/dist/types/components/breadcrumb/breadcrumb.d.ts +73 -0
  922. package/dist/types/components/breadcrumb/types.d.ts +5 -0
  923. package/dist/types/components/button/button.d.ts +133 -0
  924. package/dist/types/components/button/types.d.ts +1 -0
  925. package/dist/types/components/button-toggle/button-toggle.d.ts +64 -0
  926. package/dist/types/components/button-toggle-group/button-toggle-group.d.ts +141 -0
  927. package/dist/types/components/button-toggle-group/types.d.ts +7 -0
  928. package/dist/types/components/callout-banner/callout-banner.d.ts +115 -0
  929. package/dist/types/components/callout-banner/types.d.ts +7 -0
  930. package/dist/types/components/card/card.d.ts +160 -0
  931. package/dist/types/components/card/types.d.ts +13 -0
  932. package/dist/types/components/carousel/carousel.d.ts +150 -0
  933. package/dist/types/components/carousel/types.d.ts +8 -0
  934. package/dist/types/components/checkbox/checkbox.d.ts +92 -0
  935. package/dist/types/components/checkbox/types.d.ts +5 -0
  936. package/dist/types/components/checkbox-group/checkbox-group.d.ts +87 -0
  937. package/dist/types/components/checkbox-group/types.d.ts +8 -0
  938. package/dist/types/components/code-editor/code-editor.d.ts +147 -0
  939. package/dist/types/components/code-editor/types.d.ts +20 -0
  940. package/dist/types/components/code-preview/types.d.ts +5 -0
  941. package/dist/types/components/code-preview/ui-code-preview.d.ts +69 -0
  942. package/dist/types/components/color-controller/color-controller.d.ts +24 -0
  943. package/dist/types/components/color-picker/color-picker.d.ts +116 -0
  944. package/dist/types/components/color-picker/types.d.ts +24 -0
  945. package/dist/types/components/command-palette/command-palette.d.ts +41 -0
  946. package/dist/types/components/command-palette/types.d.ts +7 -0
  947. package/dist/types/components/context-menu/context-menu.d.ts +135 -0
  948. package/dist/types/components/context-menu/types.d.ts +20 -0
  949. package/dist/types/components/dialog-box/dialog-box.d.ts +648 -0
  950. package/dist/types/components/dialog-box/types.d.ts +1 -0
  951. package/dist/types/components/dialog-content/dialog-content.d.ts +9 -0
  952. package/dist/types/components/dialog-footer/dialog-footer.d.ts +9 -0
  953. package/dist/types/components/dialog-footer/types.d.ts +1 -0
  954. package/dist/types/components/dialog-header/dialog-header.d.ts +102 -0
  955. package/dist/types/components/dialog-header/types.d.ts +2 -0
  956. package/dist/types/components/divider/divider.d.ts +245 -0
  957. package/dist/types/components/divider/types.d.ts +14 -0
  958. package/dist/types/components/dock/dock.d.ts +37 -0
  959. package/dist/types/components/dock/types.d.ts +11 -0
  960. package/dist/types/components/dock-host/index.d.ts +1 -0
  961. package/dist/types/components/dock-host/types.d.ts +1 -0
  962. package/dist/types/components/dock-host/ui-dock-host.d.ts +23 -0
  963. package/dist/types/components/drag-drop/drag-drop.d.ts +52 -0
  964. package/dist/types/components/drag-drop/types.d.ts +9 -0
  965. package/dist/types/components/dropdown/dropdown.d.ts +264 -0
  966. package/dist/types/components/dropdown/types.d.ts +19 -0
  967. package/dist/types/components/empty-state/empty-state.d.ts +74 -0
  968. package/dist/types/components/empty-state/types.d.ts +13 -0
  969. package/dist/types/components/fab/fab.d.ts +73 -0
  970. package/dist/types/components/fab-item/fab-item.d.ts +14 -0
  971. package/dist/types/components/fab-item/types.d.ts +3 -0
  972. package/dist/types/components/file-upload/file-upload.d.ts +91 -0
  973. package/dist/types/components/file-upload/types.d.ts +15 -0
  974. package/dist/types/components/horizontal-nav/horizontal-nav.d.ts +68 -0
  975. package/dist/types/components/icon/icon.d.ts +66 -0
  976. package/dist/types/components/image-button/image-button.d.ts +31 -0
  977. package/dist/types/components/image-button/types.d.ts +1 -0
  978. package/dist/types/components/input/input.d.ts +217 -0
  979. package/dist/types/components/input/types.d.ts +6 -0
  980. package/dist/types/components/input-pair/input-pair.d.ts +28 -0
  981. package/dist/types/components/knob/knob.d.ts +147 -0
  982. package/dist/types/components/knob/types.d.ts +4 -0
  983. package/dist/types/components/layout-manager/layout-manager.d.ts +32 -0
  984. package/dist/types/components/layout-manager/lm-container/lm-container.d.ts +7 -0
  985. package/dist/types/components/layout-manager/lm-floating-window/lm-floating-window.d.ts +6 -0
  986. package/dist/types/components/layout-manager/lm-panel/lm-panel.d.ts +7 -0
  987. package/dist/types/components/layout-manager/lm-splitter/lm-splitter.d.ts +12 -0
  988. package/dist/types/components/layout-manager/lm-tabs/lm-tabs.d.ts +12 -0
  989. package/dist/types/components/layout-manager/types.d.ts +1 -0
  990. package/dist/types/components/library/category-section.d.ts +15 -0
  991. package/dist/types/components/library/data.d.ts +11 -0
  992. package/dist/types/components/library/library-card.d.ts +19 -0
  993. package/dist/types/components/library/library.d.ts +9 -0
  994. package/dist/types/components/list/list.d.ts +183 -0
  995. package/dist/types/components/list-group/list-group.d.ts +28 -0
  996. package/dist/types/components/list-item/list-item.d.ts +200 -0
  997. package/dist/types/components/masonry/masonry.d.ts +105 -0
  998. package/dist/types/components/masonry/types.d.ts +5 -0
  999. package/dist/types/components/meter-group/meter-group.d.ts +66 -0
  1000. package/dist/types/components/meter-group/types.d.ts +12 -0
  1001. package/dist/types/components/my-component/my-component.d.ts +16 -0
  1002. package/dist/types/components/my-step/index.d.ts +12 -0
  1003. package/dist/types/components/my-step/my-step.d.ts +13 -0
  1004. package/dist/types/components/nav-bar/nav-bar.d.ts +119 -0
  1005. package/dist/types/components/number-input/number-input.d.ts +72 -0
  1006. package/dist/types/components/otp-input/otp-input.d.ts +64 -0
  1007. package/dist/types/components/otp-input/types.d.ts +3 -0
  1008. package/dist/types/components/pagination/pagination.d.ts +295 -0
  1009. package/dist/types/components/pagination/types.d.ts +1 -0
  1010. package/dist/types/components/panel/panel.d.ts +275 -0
  1011. package/dist/types/components/panel/types.d.ts +7 -0
  1012. package/dist/types/components/pattern-input/pattern-input.d.ts +88 -0
  1013. package/dist/types/components/popover/popover.d.ts +161 -0
  1014. package/dist/types/components/popover/types.d.ts +3 -0
  1015. package/dist/types/components/progress/progress.d.ts +224 -0
  1016. package/dist/types/components/progress/types.d.ts +6 -0
  1017. package/dist/types/components/radio/radio.d.ts +87 -0
  1018. package/dist/types/components/radio/types.d.ts +7 -0
  1019. package/dist/types/components/radio-group/radio-group.d.ts +74 -0
  1020. package/dist/types/components/radio-group/types.d.ts +2 -0
  1021. package/dist/types/components/range-slider/range-slider.d.ts +201 -0
  1022. package/dist/types/components/range-slider/types.d.ts +4 -0
  1023. package/dist/types/components/rating/rating.d.ts +127 -0
  1024. package/dist/types/components/rating/types.d.ts +1 -0
  1025. package/dist/types/components/resizable-panel/resizable-panel.d.ts +59 -0
  1026. package/dist/types/components/resizable-panel/types.d.ts +11 -0
  1027. package/dist/types/components/scroll-top/scroll-top.d.ts +186 -0
  1028. package/dist/types/components/scroll-top/types.d.ts +1 -0
  1029. package/dist/types/components/skeleton/skeleton-loader.d.ts +149 -0
  1030. package/dist/types/components/skeleton/types.d.ts +1 -0
  1031. package/dist/types/components/smart-location-dropdown/smart-location-dropdown.d.ts +119 -0
  1032. package/dist/types/components/smart-location-dropdown/types.d.ts +37 -0
  1033. package/dist/types/components/smart-menu/menu-item.interface.d.ts +10 -0
  1034. package/dist/types/components/smart-menu/smart-menu.d.ts +64 -0
  1035. package/dist/types/components/smart-stepper/smart-step.d.ts +29 -0
  1036. package/dist/types/components/smart-stepper/smart-stepper.d.ts +53 -0
  1037. package/dist/types/components/snackbar/snackbar.d.ts +223 -0
  1038. package/dist/types/components/snackbar/types.d.ts +104 -0
  1039. package/dist/types/components/speed-dial/speed-dial.d.ts +171 -0
  1040. package/dist/types/components/speed-dial/types.d.ts +11 -0
  1041. package/dist/types/components/speedometer/speedometer.d.ts +125 -0
  1042. package/dist/types/components/speedometer/types.d.ts +8 -0
  1043. package/dist/types/components/splitter/splitter.d.ts +63 -0
  1044. package/dist/types/components/splitter/types.d.ts +9 -0
  1045. package/dist/types/components/stack/stack.d.ts +34 -0
  1046. package/dist/types/components/stack/types.d.ts +3 -0
  1047. package/dist/types/components/step/step.d.ts +16 -0
  1048. package/dist/types/components/step/types.d.ts +1 -0
  1049. package/dist/types/components/stepper/stepper.d.ts +218 -0
  1050. package/dist/types/components/stepper/types.d.ts +39 -0
  1051. package/dist/types/components/switch/switch.d.ts +162 -0
  1052. package/dist/types/components/tabs/tabs.d.ts +182 -0
  1053. package/dist/types/components/tabs/types.d.ts +17 -0
  1054. package/dist/types/components/tag/tag.d.ts +172 -0
  1055. package/dist/types/components/tag/types.d.ts +4 -0
  1056. package/dist/types/components/tag-group/tag-group.d.ts +107 -0
  1057. package/dist/types/components/tag-group/types.d.ts +2 -0
  1058. package/dist/types/components/timeline/timeline.d.ts +73 -0
  1059. package/dist/types/components/timeline/types.d.ts +28 -0
  1060. package/dist/types/components/timeline/ui-timeline.stories.d.ts +9 -0
  1061. package/dist/types/components/timeline-item/timeline-item.d.ts +15 -0
  1062. package/dist/types/components/timer/timer.d.ts +123 -0
  1063. package/dist/types/components/timer/types.d.ts +18 -0
  1064. package/dist/types/components/timer/ui-timer.stories.d.ts +9 -0
  1065. package/dist/types/components/toggle-group/toggle-group.d.ts +136 -0
  1066. package/dist/types/components/toggle-group/types.d.ts +5 -0
  1067. package/dist/types/components/toolbar/toolbar-types.d.ts +189 -0
  1068. package/dist/types/components/toolbar/toolbar.d.ts +150 -0
  1069. package/dist/types/components/tooltip/tooltip.d.ts +166 -0
  1070. package/dist/types/components/tooltip/types.d.ts +3 -0
  1071. package/dist/types/components/top-bar/top-bar.d.ts +76 -0
  1072. package/dist/types/components/transfer-list/transfer-list.d.ts +137 -0
  1073. package/dist/types/components/transfer-list/types.d.ts +13 -0
  1074. package/dist/types/components/tree/tree.d.ts +180 -0
  1075. package/dist/types/components/tree/types.d.ts +76 -0
  1076. package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-bar.d.ts +108 -0
  1077. package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-types.d.ts +17 -0
  1078. package/dist/types/components/ui-navigation-bar/navigation-item.d.ts +26 -0
  1079. package/dist/types/components/ui-navigation-bar/navigation-types.d.ts +19 -0
  1080. package/dist/types/components/workspace-manager/types.d.ts +48 -0
  1081. package/dist/types/components/workspace-manager/workspace-manager.d.ts +211 -0
  1082. package/dist/types/components.d.ts +29634 -0
  1083. package/dist/types/index.d.ts +21 -0
  1084. package/dist/types/service/drag-manager.d.ts +8 -0
  1085. package/dist/types/service/event-bus.d.ts +9 -0
  1086. package/dist/types/service/serialization.d.ts +5 -0
  1087. package/dist/types/service/state-engine.d.ts +25 -0
  1088. package/dist/types/service/theme-switcher.d.ts +46 -0
  1089. package/dist/types/stencil-public-runtime.d.ts +1860 -0
  1090. package/dist/types/types/animation.type.d.ts +96 -0
  1091. package/dist/types/types/common.d.ts +52 -0
  1092. package/dist/types/types/common.type.d.ts +608 -0
  1093. package/dist/types/types/index.d.ts +37 -0
  1094. package/dist/types/types/text.type.d.ts +32 -0
  1095. package/dist/types/utils/aria-live.d.ts +20 -0
  1096. package/dist/types/utils/component-size.d.ts +2 -0
  1097. package/dist/types/utils/dom.d.ts +58 -0
  1098. package/dist/types/utils/focus-trap.d.ts +35 -0
  1099. package/dist/types/utils/security.d.ts +5 -0
  1100. package/dist/types/utils/test/setup-component-test-env.d.ts +14 -0
  1101. package/dist/types/utils/utils.d.ts +7 -0
  1102. package/dist/types/utils/validation.d.ts +43 -0
  1103. package/loader/cdn.js +1 -0
  1104. package/loader/index.cjs.js +1 -0
  1105. package/loader/index.d.ts +24 -0
  1106. package/loader/index.es2017.js +1 -0
  1107. package/loader/index.js +2 -0
  1108. package/package.json +77 -0
@@ -0,0 +1,1806 @@
1
+ import { r as registerInstance, c as createEvent, a as getElement, h, H as Host } from './index-DUsoYu9r.js';
2
+ import { s as sanitizeHTML } from './security-D2WzX6vR.js';
3
+ import { F as FocusTrap } from './focus-trap-BSQ8klD4.js';
4
+
5
+ const dialogBoxCss = () => `@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}:host{display:block}.ui-dialog-backdrop.minimized-backdrop,.ui-dialog-backdrop[data-minimized-backdrop]{display:none !important}.ui-dialog-backdrop{position:fixed;inset:0;width:100vw;height:100vh;background-color:rgba(0, 0, 0, 0.5);display:flex;z-index:10000;opacity:1;transition:background-color 0.2s;animation:fadeIn 0.2s ease-out}:global(body.dialog-blur-active)>*:not(ui-dialog-box){filter:blur(8px) grayscale(20%);transition:filter 0.4s ease;pointer-events:none}.ui-dialog-backdrop.backdrop-none{background-color:transparent;pointer-events:none;}.ui-dialog-backdrop.backdrop-none .ui-dialog-box{pointer-events:auto;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);border:1px solid var(--border-default, #e5e7eb)}.ui-dialog-backdrop.closing{animation:fadeOut 0.2s ease-in forwards}.ui-dialog-backdrop.hidden-mounted{display:none !important;pointer-events:none !important}.position-center{align-items:center;justify-content:center}.position-top{align-items:flex-start;justify-content:center;padding-top:3rem}.position-bottom{align-items:flex-end;justify-content:center;padding-bottom:3rem}.position-left{align-items:center;justify-content:flex-start;padding-left:3rem}.position-right{align-items:center;justify-content:flex-end;padding-right:3rem}.position-top-right{align-items:flex-start;justify-content:flex-end;padding-top:3rem;padding-right:3rem}.position-top-left{align-items:flex-start;justify-content:flex-start;padding-top:3rem;padding-left:3rem}.position-bottom-right{align-items:flex-end;justify-content:flex-end;padding-bottom:3rem;padding-right:3rem}.position-bottom-left{align-items:flex-end;justify-content:flex-start;padding-bottom:3rem;padding-left:3rem}.ui-dialog-box{background-color:var(--bg-primary, #ffffff);border-radius:var(--ui-dialog-border-radius, 8px);box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);display:flex;flex-direction:column;max-width:90vw;max-height:90vh;position:relative;animation:scaleIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);outline:none;}.ui-dialog-box.is-nested{box-shadow:0 30px 60px -10px rgba(0, 0, 0, 0.3), 0 15px 15px -10px rgba(0, 0, 0, 0.08);border:1px solid var(--ui-color-primary, #10b981);z-index:10001;transform-origin:center center}.ui-dialog-box.is-nested .ui-dialog-header-wrapper{background-color:var(--ui-bg-muted)}.ui-dialog-box{}@media (prefers-reduced-motion: reduce){.ui-dialog-box{animation:none !important;transition:none !important}}.ui-dialog-box{}.ui-dialog-box.density-compact{--dh-padding:8px 16px;--dc-padding:16px;--df-padding:8px 16px;font-size:0.875rem}.ui-dialog-box.density-compact .ui-dialog-content-wrapper{padding:16px !important}.ui-dialog-box.density-compact .ui-dialog-header-wrapper{padding:8px 16px !important}.ui-dialog-box.density-comfortable{--dh-padding:32px 32px 16px;--dc-padding:32px;--df-padding:24px 32px}.ui-dialog-box.density-comfortable .ui-dialog-content-wrapper{padding:32px !important}.ui-dialog-box{}.ui-dialog-box.variant-glass{background:rgba(255, 255, 255, 0.72) !important;backdrop-filter:blur(28px) saturate(180%) !important;-webkit-backdrop-filter:blur(28px) saturate(180%) !important;border:1px solid rgba(255, 255, 255, 0.4) !important}.ui-dialog-box.variant-minimal{border-color:transparent !important;box-shadow:0 4px 12px rgba(0, 0, 0, 0.08) !important}.ui-dialog-box.variant-ghost{background:transparent !important;box-shadow:none !important;border-color:transparent !important}.ui-dialog-box{}.ui-dialog-box.status-info{border-top:3px solid #10b981 !important}.ui-dialog-box.status-success{border-top:3px solid #10b981 !important}.ui-dialog-box.status-warning{border-top:3px solid #f59e0b !important}.ui-dialog-box.status-error{border-top:3px solid #ef4444 !important}.ui-dialog-box{}.ui-dialog-box.animation-fade{animation:fadeIn 0.25s ease-out}.ui-dialog-box.animation-slide-up{animation:slideInUp 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-box.animation-slide-down{animation:slideInDown 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-box.animation-flip{animation:flipIn 0.4s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-box.animation-scale{animation:scaleIn 0.25s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-box.closing{animation:scaleOut 0.2s ease-in forwards}.ui-dialog-box.closing.animation-fade{animation-name:fadeOut}.ui-dialog-box.closing.animation-slide-up{animation-name:slideOutDown}.ui-dialog-box.closing.animation-slide-down{animation-name:slideOutUp}.ui-dialog-box{}.ui-dialog-box.type-drawer{border-radius:0;max-width:none;max-height:none;position:fixed !important;margin:0 !important;box-shadow:var(--elevation-navigation, 0 10px 40px rgba(0, 0, 0, 0.2))}.ui-dialog-box{}.ui-dialog-backdrop.position-left .ui-dialog-box.type-drawer{height:100% !important;left:0 !important;top:0 !important;width:400px;animation:slideInLeft 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-backdrop.position-right .ui-dialog-box.type-drawer{height:100% !important;right:0 !important;top:0 !important;left:auto !important;width:400px;animation:slideInRight 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-backdrop.position-top .ui-dialog-box.type-drawer{width:100% !important;top:0 !important;left:0 !important;height:auto;max-height:80vh;animation:slideInTop 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-backdrop.position-bottom .ui-dialog-box.type-drawer{width:100% !important;bottom:0 !important;top:auto !important;left:0 !important;height:auto;max-height:80vh;animation:slideInBottom 0.3s cubic-bezier(0.16, 1, 0.3, 1)}.ui-dialog-box{}.ui-dialog-box.type-fullscreen{width:100vw !important;height:100vh !important;max-width:none !important;max-height:none !important;border-radius:0;position:fixed !important;inset:0 !important;margin:0 !important;animation:fadeIn 0.3s ease-out}.ui-dialog-box{}.ui-dialog-box.type-messagebox{width:auto;min-width:320px;max-width:650px;text-align:center;border-radius:12px}.ui-dialog-box.type-messagebox .ui-dialog-content-wrapper{padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:16px}.ui-dialog-box.type-messagebox .ui-dialog-header-wrapper{justify-content:flex-start;border-bottom:none !important}.ui-dialog-box.type-messagebox .ui-dialog-footer-wrapper{justify-content:flex-end !important;display:flex !important;width:100% !important;margin:0 !important}.ui-dialog-box.type-messagebox .ui-dialog-footer-wrapper .footer-right{justify-content:flex-end !important;width:100% !important}.ui-dialog-box.debug-mode{outline:2px dashed var(--color-success, #10b981);outline-offset:4px}.ui-dialog-box.debug-mode::after{content:"DEBUG: " attr(id) " [" attr(status) "]";position:absolute;top:-12px;right:12px;background:var(--bg-secondary, #111827);color:var(--color-success, #10b981);font-family:"JetBrains Mono", monospace;font-size:10px;padding:2px 8px;border-radius:4px;z-index:99999;border:1px solid var(--color-success, #10b981);pointer-events:none}.ui-dialog-box *:focus-visible{outline:2px solid var(--ui-primary-color, var(--color-primary, #10b981));outline-offset:2px}.ui-dialog-box-container{display:flex;flex-direction:column;height:100%;width:100%;padding:0;gap:0;box-sizing:border-box;overflow:hidden}.ui-dialog-divider-line{height:1px;width:100%;background-color:var(--border-default, #e5e7eb);margin:0;padding:0;flex-shrink:0;display:block}.ui-dialog-box.is-dragging{box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.25);z-index:100000 !important;transition:none !important}.ui-dialog-box.loading-active .ui-dialog-content-wrapper,.ui-dialog-box.loading-active .ui-dialog-side-nav{pointer-events:none}.ui-dialog-box.loading-active .ui-dialog-content-wrapper *,.ui-dialog-box.loading-active .ui-dialog-side-nav *{color:transparent !important;background:linear-gradient(90deg, var(--bg-primary, #f0f0f0) 25%, var(--bg-primary, #f7f7f7) 50%, var(--bg-primary, #f0f0f0) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;border:none !important}.ui-dialog-box.loading-active .ui-dialog-content-wrapper img,.ui-dialog-box.loading-active .ui-dialog-content-wrapper svg,.ui-dialog-box.loading-active .ui-dialog-content-wrapper button,.ui-dialog-box.loading-active .ui-dialog-side-nav img,.ui-dialog-box.loading-active .ui-dialog-side-nav svg,.ui-dialog-box.loading-active .ui-dialog-side-nav button{visibility:hidden}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.ui-dialog-progress-container{height:4px;background:rgba(0, 0, 0, 0.05);width:100%;position:relative;overflow:hidden;margin-top:-20px;margin-bottom:10px}.ui-dialog-progress-bar{height:100%;background:var(--ui-color-primary, var(--color-primary, #10b981));transition:width 0.3s ease-out}.ui-dialog-taskbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);background:rgba(255, 255, 255, 0.8);backdrop-filter:blur(10px);padding:8px 16px;border-radius:12px 12px 0 0;border:1px solid var(--ui-border-default);border-bottom:none;display:flex;gap:12px;z-index:1000000;box-shadow:0 -10px 30px rgba(0, 0, 0, 0.1);animation:slideUp 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.ui-dialog-taskbar .taskbar-item{padding:6px 14px;background:var(--bg-primary, #ffffff);border:1px solid var(--border-default, #ddd);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;gap:8px}.ui-dialog-taskbar .taskbar-item:hover{background:var(--bg-primary, #f9f9f9);transform:translateY(-2px)}.ui-dialog-taskbar .taskbar-item.active{border-color:var(--ui-color-primary);color:var(--ui-color-primary)}@keyframes slideUp{from{transform:translate(-50%, 100%)}to{transform:translate(-50%, 0)}}.ui-dialog-stepper{display:flex;justify-content:space-around;padding:16px;background:var(--ui-bg-muted);border-bottom:1px solid var(--ui-border-default)}.ui-dialog-stepper .step-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:1}.ui-dialog-stepper .step-item .step-dot{width:24px;height:24px;border-radius:50%;background:var(--bg-primary, #e5e7eb);color:var(--text-muted, #9ca3af);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;z-index:2;transition:all 0.3s}.ui-dialog-stepper .step-item .step-label{font-size:11px;margin-top:6px;color:var(--text-muted, #6b7280);transition:all 0.3s}.ui-dialog-stepper .step-item .step-line{position:absolute;top:12px;left:50%;width:100%;height:2px;background:var(--bg-primary, #e5e7eb);z-index:1}.ui-dialog-stepper .step-item.active .step-dot{background:var(--ui-color-primary);color:var(--text-standard, #ffffff);transform:scale(1.2);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.ui-dialog-stepper .step-item.active .step-label{color:var(--ui-color-primary);font-weight:600}.ui-dialog-stepper .step-item.completed .step-dot{background:var(--color-success, #10b981);color:var(--text-standard, #ffffff)}.ui-dialog-stepper .step-item.completed .step-line{background:var(--color-success, #10b981)}.ui-dialog-box.hidden-mounted{display:none !important}.ui-dialog-box.scroll-paper{overflow:hidden;display:flex;flex-direction:column}.ui-dialog-main-container{display:flex;flex:1;min-height:0;overflow:hidden}.ui-dialog-main-container.has-side-nav{flex-direction:row}.ui-dialog-side-nav{width:240px;background:var(--ui-bg-muted, var(--bg-primary, #f9fafb));border-right:1px solid var(--ui-border-default, var(--border-default, #e5e7eb));overflow-y:auto;flex-shrink:0}.ui-dialog-toolbar{padding:8px 16px;background:var(--ui-bg-default);border-bottom:1px solid var(--ui-border-default);display:flex;align-items:center;gap:12px}.ui-dialog-status-bar{padding:4px 16px;background:var(--ui-bg-muted);border-top:1px solid var(--ui-border-default);font-size:11px;color:var(--ui-text-secondary)}.ui-dialog-box.scroll-paper .ui-dialog-content-wrapper{flex:1;overflow-y:auto;font-size:16px;line-height:1.5;color:var(--text-secondary, #374151);min-height:150px;max-height:70vh;padding:24px}.ui-dialog-backdrop.scroll-body-active{position:absolute !important;top:0 !important;left:0 !important;right:0 !important;bottom:auto !important;height:auto !important;min-height:100%;overflow:visible;display:block;padding:80px 0;background-color:rgba(0, 0, 0, 0.4)}.ui-dialog-box.scroll-body{display:block !important;max-height:none !important;height:auto !important;min-height:min-content;margin:0 auto;}.ui-dialog-box.scroll-body .ui-dialog-box-container{display:block !important;height:auto !important;overflow:visible !important}.ui-dialog-box.scroll-body{}.ui-dialog-box.scroll-body .ui-dialog-main-container{display:block !important;height:auto !important;min-height:0 !important;overflow:visible !important;flex:none !important}.ui-dialog-box.scroll-body .ui-dialog-content-wrapper{overflow:visible !important;max-height:none !important;height:auto !important;padding:24px;display:block !important}.ui-dialog-prompt-container{margin-top:16px;display:flex;flex-direction:column;gap:8px}.ui-dialog-prompt-container .prompt-label{font-size:14px;font-weight:600;color:var(--text-standard)}.ui-dialog-prompt-container .ui-dialog-prompt-input{width:100%;padding:10px 12px;border:1px solid var(--border-default, #d1d5db);border-radius:6px;font-size:14px;transition:border-color 0.2s, box-shadow 0.2s;background:var(--bg-primary);color:var(--text-standard);box-sizing:border-box}.ui-dialog-prompt-container .ui-dialog-prompt-input:focus{outline:none;border-color:var(--color-primary, #10b981);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.ui-dialog-header-wrapper{min-height:fit-content;flex-shrink:0}.ui-dialog-footer-wrapper{min-height:fit-content;flex-shrink:0;width:100%}.ui-dialog-box.closing{animation:scaleOut 0.2s ease-in forwards}@keyframes shake{0%,100%{transform:translateX(0) rotate(0deg)}12.5%{transform:translateX(-6px) rotate(-1deg)}25%{transform:translateX(5px) rotate(1deg)}37.5%{transform:translateX(-4px) rotate(-0.8deg)}50%{transform:translateX(3px) rotate(0.6deg)}62.5%{transform:translateX(-2px) rotate(-0.4deg)}75%{transform:translateX(1px) rotate(0.2deg)}}.ui-dialog-box.shake .ui-dialog-box-container{animation:shake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;transform-origin:center;will-change:transform}.ui-dialog-box.variant-outlined{border:2px solid var(--border-default, #e5e7eb)}.ui-dialog-box.variant-outlined.status-info{border-color:var(--color-primary, #10b981)}.ui-dialog-box.variant-outlined.status-success{border-color:var(--color-success, #10b981)}.ui-dialog-box.variant-outlined.status-warning{border-color:var(--color-warning, #f59e0b)}.ui-dialog-box.variant-outlined.status-error{border-color:var(--color-danger, #ef4444)}.ui-dialog-box.variant-filled.status-info{background:linear-gradient(to bottom, var(--bg-primary, #dbeafe) 0%, var(--bg-primary, #ffffff) 100%);border-left:4px solid var(--color-primary, #10b981)}.ui-dialog-box.variant-filled.status-success{background:linear-gradient(to bottom, var(--bg-primary, #d1fae5) 0%, var(--bg-primary, #ffffff) 100%);border-left:4px solid var(--color-success, #10b981)}.ui-dialog-box.variant-filled.status-warning{background:linear-gradient(to bottom, var(--bg-primary, #fef3c7) 0%, var(--bg-primary, #ffffff) 100%);border-left:4px solid var(--color-warning, #f59e0b)}.ui-dialog-box.variant-filled.status-error{background:linear-gradient(to bottom, var(--bg-primary, #fee2e2) 0%, var(--bg-primary, #ffffff) 100%);border-left:4px solid var(--color-danger, #ef4444)}.ui-dialog-box.maximized{width:90vw !important;height:90vh !important;max-width:90vw;max-height:90vh;border-radius:8px;position:fixed;top:5vh !important;left:5vw !important;transform:none !important;}.ui-dialog-box.minimized{display:flex !important;flex-shrink:0;width:192px !important;height:48px !important;align-self:stretch;position:relative !important;inset:auto !important;transform:none !important;margin:0 !important;border-radius:0 !important;background:transparent !important;box-shadow:none !important;border:none !important;overflow:hidden;animation:trayTabIn 0.28s cubic-bezier(0.16, 1, 0.3, 1) forwards}.ui-dialog-box.minimized .ui-dialog-box-container{height:100%;width:100%}.ui-dialog-box.minimized .ui-tray-tab{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0 24px;gap:12px;cursor:pointer;background:transparent;border-right:1px solid rgba(255, 255, 255, 0.12);color:#ffffff !important;transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1);position:relative;font-weight:600;font-size:13.5px;min-width:160px;max-width:260px;letter-spacing:0.01em}.ui-dialog-box.minimized .ui-tray-tab:hover{background:rgba(255, 255, 255, 0.04)}.ui-dialog-box.minimized .ui-tray-tab .tab-label{color:rgba(255, 255, 255, 0.9);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;text-align:center}.ui-dialog-box.minimized .ui-tray-tab .tab-close{background:rgba(255, 255, 255, 0.1);border:none;color:#fff;font-size:16px;padding:2px 6px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all 0.2s;margin-left:4px}.ui-dialog-box.minimized .ui-tray-tab .tab-close:hover{background:#ef4444;color:#fff}.ui-dialog-box.minimized .ui-tray-tab:hover{background:rgba(255, 255, 255, 0.12);color:#fff}.ui-peek-panel{position:fixed;bottom:50px;left:50%;transform:translateX(-50%);width:500px;max-width:90vw;max-height:70vh;background:var(--bg-primary, #fff);border-radius:12px 12px 0 0;border:1px solid var(--border-default, #eee);box-shadow:0 -10px 40px rgba(0, 0, 0, 0.25);display:flex;flex-direction:column;overflow:hidden;z-index:1000002;animation:peekIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards}.ui-peek-panel.status-info{border-top:3px solid #10b981}.ui-peek-panel.status-success{border-top:3px solid #10b981}.ui-peek-panel.status-warning{border-top:3px solid #f59e0b}.ui-peek-panel.status-error{border-top:3px solid #ef4444}.ui-peek-panel .ui-dialog-content-wrapper{overflow-y:auto;flex:1;padding:20px}@keyframes trayTabIn{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes peekIn{from{opacity:0;transform:translateX(-50%) translateY(20px) scale(0.98)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}@keyframes slideInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutUp{to{opacity:0;transform:translateY(-30px)}}@keyframes slideOutDown{to{opacity:0;transform:translateY(30px)}}@keyframes flipIn{from{opacity:0;transform:perspective(1000px) rotateX(-15deg)}to{opacity:1;transform:perspective(1000px) rotateX(0)}}.resize-handle{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg, transparent 50%, var(--color-primary, #9ca3af) 50%);background-size:10px 10px;clip-path:polygon(100% 0, 100% 100%, 0 100%);margin:2px}.ui-dialog-box.draggable .ui-dialog-header-wrapper{cursor:move}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes scaleIn{from{opacity:0;transform:scale(0.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideInRight{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideInTop{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes slideInBottom{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes scaleOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.95)}}@media (max-width: 768px){.ui-dialog-box{width:95vw;max-width:95vw}}.ui-dialog-box.size-xs{width:320px}.ui-dialog-box.size-sm{width:480px}.ui-dialog-box.size-md{width:768px}.ui-dialog-box.size-lg{width:1024px}.ui-dialog-box.size-xl{width:1280px}.ui-dialog-box.size-fill{width:90vw;height:90vh}.ui-dialog-footer-wrapper{padding:0;display:flex;justify-content:flex-end;align-items:center;background-color:transparent}.footer-left,.footer-right{display:flex;gap:12px;align-items:center}.footer-right{margin-left:auto}.ui-dialog-confirmation{display:flex;align-items:center;padding:0 8px}.snap-indicator{position:fixed;background:rgba(var(--color-primary-rgb, 59, 130, 246), 0.2);border:2px solid var(--ui-color-primary, var(--color-primary, #10b981));pointer-events:none;z-index:9999;transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1);border-radius:8px}.snap-indicator.snap-left{left:0;top:0;bottom:0;width:50vw}.snap-indicator.snap-right{right:0;top:0;bottom:0;width:50vw}.snap-indicator.snap-top{left:0;top:0;right:0;height:100vh}.snap-indicator.snap-bottom{left:0;bottom:0;right:0;height:50vh}.ui-dialog-sub-overlay{position:absolute;inset:0;background:rgba(0, 0, 0, 0.4);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn 0.3s ease-out}.ui-dialog-sub-overlay .sub-overlay-card{background:var(--bg-primary, #ffffff);padding:24px;border-radius:12px;box-shadow:var(--ui-shadow-lg);max-width:80%;animation:scaleIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.ui-dialog-sub-overlay .sub-overlay-card h4{margin:0 0 10px;font-size:18px}.ui-dialog-sub-overlay .sub-overlay-card p{margin:0 0 20px;color:var(--ui-text-secondary);line-height:1.5}.ui-dialog-sub-overlay .sub-overlay-actions{display:flex;justify-content:flex-end;gap:12px}.ui-dialog-sub-overlay .sub-overlay-actions button{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all 0.2s}.ui-dialog-sub-overlay .sub-overlay-actions .btn-ghost{background:transparent;border:1px solid var(--ui-border-default);color:var(--ui-text-primary)}.ui-dialog-sub-overlay .sub-overlay-actions .btn-ghost:hover{background:rgba(0, 0, 0, 0.05)}.ui-dialog-sub-overlay .sub-overlay-actions .btn-primary{background:var(--ui-color-primary, var(--color-primary, #10b981));border:1px solid var(--ui-color-primary, var(--color-primary, #10b981));color:var(--text-standard, #ffffff)}.ui-dialog-sub-overlay .sub-overlay-actions .btn-primary:hover{background:var(--ui-color-primary-dark, var(--color-primary-hover, #2563eb))}.ui-dialog-box.glass-effect{background:rgba(255, 255, 255, 0.7);backdrop-filter:blur(20px);border-color:rgba(255, 255, 255, 0.4)}.spinner{width:16px;height:16px;border:2px solid rgba(255, 255, 255, 0.3);border-top-color:var(--bg-primary, #ffffff);border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}`;
6
+
7
+ const dialogTrayCss = () => `.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}#db-tray-dock{position:fixed;bottom:0;left:0;right:0;height:48px;z-index:1000000;pointer-events:none;display:none;flex-direction:row;align-items:flex-end;justify-content:center}#db-tray-bar{max-width:92vw;height:52px;display:flex;flex-direction:row;align-items:stretch;pointer-events:auto;overflow:hidden;border-radius:16px 16px 0 0;background:rgba(13, 17, 23, 0.98);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(200px) saturate(180%);border:1px solid rgba(255, 255, 255, 0.08);border-bottom:none;box-shadow:0 -8px 32px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.05)}#db-tray-bar .db-dock-row{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;flex:1;min-width:0;overflow-x:auto;scroll-behavior:smooth;justify-content:flex-start;-ms-overflow-style:none;scrollbar-width:none;}#db-tray-bar .db-dock-row::-webkit-scrollbar{display:none}.db-dock-arrow{display:flex;align-items:center;justify-content:center;width:36px;background:transparent;border:none;cursor:pointer;color:rgba(255, 255, 255, 0.4);opacity:0;pointer-events:none;transition:opacity 0.2s, color 0.15s, background 0.15s;font-size:20px}.db-dock-arrow.visible{opacity:1;pointer-events:auto}.db-dock-arrow:hover{color:#fff;background:rgba(255, 255, 255, 0.06)}.db-dock-arrow-left{border-right:1px solid rgba(255, 255, 255, 0.08)}.db-dock-arrow-right{border-left:1px solid rgba(255, 255, 255, 0.08)}#db-dock-menu-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px;background:rgba(255, 255, 255, 0.03);margin:8px;border-radius:10px;border:1px solid rgba(255, 255, 255, 0.05);cursor:pointer;color:rgba(255, 255, 255, 0.5);transition:all 0.2s ease;min-width:64px}#db-dock-menu-btn:hover,#db-dock-menu-btn.open{background:rgba(255, 255, 255, 0.08);color:#fff;border-color:rgba(255, 255, 255, 0.1)}#db-dock-menu-btn .db-badge{min-width:20px;height:20px;border-radius:10px;background:#4f46e5;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 12px rgba(79, 70, 229, 0.4)}#db-tray-menu-panel{position:fixed;z-index:1000003;min-width:252px;max-width:310px;background:rgba(8, 14, 30, 0.97);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(255, 255, 255, 0.11);border-radius:10px;box-shadow:0 -4px 32px rgba(0, 0, 0, 0.55), 0 16px 48px rgba(0, 0, 0, 0.4);display:none;flex-direction:column;overflow:hidden;transform-origin:bottom right;animation:sdMenuIn 0.17s cubic-bezier(0.16, 1, 0.3, 1) forwards}#db-tray-menu-panel.open{display:flex}#db-tray-menu-hdr{display:flex;align-items:center;justify-content:space-between;padding:9px 13px 7px;font-size:10px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:rgba(255, 255, 255, 0.28);border-bottom:1px solid rgba(255, 255, 255, 0.06)}#db-tray-menu-list{max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255, 255, 255, 0.12) transparent}.db-mi{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:all 0.2s;border-bottom:1px solid rgba(255, 255, 255, 0.04)}.db-mi:last-child{border-bottom:none}.db-mi:hover{background:rgba(255, 255, 255, 0.07)}.db-mi-dot{width:7px;height:7px;border-radius:50%;background:rgba(255, 255, 255, 0.18)}.db-mi-dot.info{background:#10b981}.db-mi-dot.success{background:#10b981;box-shadow:0 0 5px rgba(16, 185, 129, 0.5)}.db-mi-dot.warning{background:#f59e0b}.db-mi-dot.error{background:#ef4444;box-shadow:0 0 5px rgba(239, 68, 68, 0.5)}.db-mi-label{flex:1;font-size:12.5px;font-weight:500;color:rgba(255, 255, 255, 0.72);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#db-tray-overlay{position:fixed;inset:0;z-index:1000002;display:none}#db-tray-overlay.open{display:block}@keyframes sdMenuIn{from{opacity:0;transform:translateY(8px) scale(0.96)}to{opacity:1;transform:translateY(0) scale(1)}}`;
8
+
9
+ // ─── Global tray registry ────────────────────────────────────────────────────
10
+ // Dock bar: [‹ arrow] [scrollable tab row] [› arrow] [≡ all-tabs menu]
11
+ const DialogTray = new class {
12
+ _items = [];
13
+ _outer = null;
14
+ _row = null;
15
+ _menuBtn = null;
16
+ _menuPanel = null;
17
+ _menuList = null;
18
+ _menuOpen = false;
19
+ _originals = new Map();
20
+ _moving = new Set();
21
+ _injectStyles() {
22
+ if (document.getElementById('db-tray-dynamic-styles'))
23
+ return;
24
+ const s = document.createElement('style');
25
+ s.id = 'db-tray-dynamic-styles';
26
+ s.textContent = `
27
+ #db-tray-dock { position: fixed; bottom: 0; left: 0; right: 0; height: 52px; z-index: 1000000; pointer-events: none; display: flex; flex-direction: row; align-items: flex-end; justify-content: center; }
28
+ #db-tray-bar { max-width: 95vw; height: 52px; display: flex; flex-direction: row; align-items: stretch; pointer-events: auto; overflow: hidden; border-radius: 16px 16px 0 0; background: rgba(13, 17, 23, 0.98); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border: 1px solid rgba(255, 255, 255, 0.1); border-bottom: none; box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.6); }
29
+ #db-tray-bar .db-dock-row { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: stretch; flex: 1; min-width: 0; overflow-x: hidden; scroll-behavior: smooth; justify-content: center; }
30
+ #db-tray-bar .db-dock-row::-webkit-scrollbar { display: none; }
31
+ .db-dock-arrow { display: flex; align-items: center; justify-content: center; width: 36px; background: transparent; border: none; cursor: pointer; color: #fff; opacity: 0; pointer-events: none; transition: all 0.2s; font-size: 20px; }
32
+ .db-dock-arrow.visible { opacity: 1; pointer-events: auto; }
33
+ #db-dock-menu-btn { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 0 16px; background: rgba(255, 255, 255, 0.05); margin: 6px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.1); cursor: pointer; color: #fff; transition: all 0.2s; min-width: 64px; }
34
+ #db-dock-menu-btn .db-badge { min-width: 20px; height: 20px; border-radius: 10px; background: #4f46e5; color: #fff; font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
35
+ .ui-tray-tab { min-width: 160px; max-width: 300px; height: 52px; display: flex; align-items: center; justify-content: center; padding: 0 32px; gap: 12px; cursor: pointer; border-right: 1px solid rgba(255,255,255,0.1); transition: all 0.2s; color: #fff !important; }
36
+ .ui-tray-tab * { color: #fff !important; }
37
+ .ui-tray-tab:hover { background: rgba(255,255,255,0.08); }
38
+ .ui-tray-tab .tab-label { font-size: 13.5px; font-weight: 600; color:red; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 0 1 auto; margin: 0 4px; }
39
+ .ui-tray-btn { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 6px; border: none; background: rgba(255,255,255,0.12); cursor: pointer; }
40
+ .ui-tray-btn:hover { background: #ef4444; }
41
+ `;
42
+ document.head.appendChild(s);
43
+ }
44
+ _ensureDock() {
45
+ if (this._outer)
46
+ return;
47
+ this._injectStyles(); // Fail-safe injection
48
+ const outer = document.createElement('div');
49
+ outer.id = 'db-tray-dock';
50
+ // Use JS for critical layout to ensure it doesn't impact page height even if CSS is delayed
51
+ Object.assign(outer.style, {
52
+ position: 'fixed',
53
+ bottom: '0',
54
+ left: '0',
55
+ right: '0',
56
+ zIndex: '1000000',
57
+ display: 'none',
58
+ pointerEvents: 'none'
59
+ });
60
+ const bar = document.createElement('div');
61
+ bar.id = 'db-tray-bar';
62
+ const btnL = document.createElement('button');
63
+ btnL.className = 'db-dock-arrow db-dock-arrow-left';
64
+ btnL.textContent = '\u2039'; // ‹
65
+ const row = document.createElement('div');
66
+ row.className = 'db-dock-row';
67
+ const btnR = document.createElement('button');
68
+ btnR.className = 'db-dock-arrow db-dock-arrow-right';
69
+ btnR.textContent = '\u203A'; // ›
70
+ const menuBtn = document.createElement('button');
71
+ menuBtn.id = 'db-dock-menu-btn';
72
+ const menuIcon = document.createElement('span');
73
+ menuIcon.textContent = '\u2630'; // ☰
74
+ const badge = document.createElement('span');
75
+ badge.className = 'db-badge';
76
+ badge.textContent = '0';
77
+ menuBtn.append(menuIcon, badge);
78
+ bar.append(btnL, row, btnR, menuBtn);
79
+ outer.appendChild(bar);
80
+ document.body.appendChild(outer);
81
+ const overlay = document.createElement('div');
82
+ overlay.id = 'db-tray-overlay';
83
+ const panel = document.createElement('div');
84
+ panel.id = 'db-tray-menu-panel';
85
+ // Safety position for panel too
86
+ Object.assign(panel.style, {
87
+ position: 'fixed',
88
+ zIndex: '1000003',
89
+ display: 'none'
90
+ });
91
+ const hdr = document.createElement('div');
92
+ hdr.id = 'db-tray-menu-hdr';
93
+ hdr.textContent = 'Minimized Windows';
94
+ const list = document.createElement('div');
95
+ list.id = 'db-tray-menu-list';
96
+ panel.append(hdr, list);
97
+ document.body.append(overlay, panel);
98
+ btnL.onclick = () => { row.scrollLeft -= 180; };
99
+ btnR.onclick = () => { row.scrollLeft += 180; };
100
+ menuBtn.onclick = () => { this._menuOpen ? this._closeMenu() : this._openMenu(); };
101
+ overlay.onclick = () => this._closeMenu();
102
+ const syncArrows = () => {
103
+ btnL.classList.toggle('visible', row.scrollLeft > 5);
104
+ btnR.classList.toggle('visible', row.scrollLeft < row.scrollWidth - row.clientWidth - 5);
105
+ };
106
+ row.onscroll = syncArrows;
107
+ if (window.ResizeObserver)
108
+ new ResizeObserver(syncArrows).observe(row);
109
+ this._outer = outer;
110
+ this._row = row;
111
+ this._menuBtn = menuBtn;
112
+ this._menuPanel = panel;
113
+ this._menuList = list;
114
+ }
115
+ _openMenu() {
116
+ if (!this._menuBtn || !this._menuPanel)
117
+ return;
118
+ this._menuOpen = true;
119
+ this._syncMenu();
120
+ const r = this._menuBtn.getBoundingClientRect();
121
+ const p = this._menuPanel;
122
+ p.style.display = 'flex'; // Ensure it's rendered to get dimensions
123
+ const pr = p.getBoundingClientRect();
124
+ // Position fixed at bottom-right based on button position
125
+ p.style.left = `${r.right - pr.width}px`;
126
+ p.style.top = `${r.top - pr.height - 12}px`;
127
+ p.classList.add('open');
128
+ document.getElementById('db-tray-overlay')?.classList.add('open');
129
+ }
130
+ _closeMenu() {
131
+ this._menuOpen = false;
132
+ this._menuPanel?.classList.remove('open');
133
+ document.getElementById('db-tray-overlay')?.classList.remove('open');
134
+ }
135
+ _syncMenu() {
136
+ if (!this._menuList || !this._menuBtn)
137
+ return;
138
+ const items = this.minimized();
139
+ const badge = this._menuBtn.querySelector('.db-badge');
140
+ if (badge)
141
+ badge.textContent = String(items.length);
142
+ while (this._menuList.firstChild)
143
+ this._menuList.removeChild(this._menuList.firstChild);
144
+ if (!items.length) {
145
+ const empty = document.createElement('div');
146
+ empty.style.cssText = 'padding:16px;font-size:11px;color:#666;text-align:center;';
147
+ empty.textContent = 'No minimized windows';
148
+ this._menuList.appendChild(empty);
149
+ }
150
+ items.forEach(d => {
151
+ const row = document.createElement('div');
152
+ row.className = 'db-mi';
153
+ const dot = document.createElement('span');
154
+ dot.className = `db-mi-dot ${d.status}`;
155
+ const label = document.createElement('span');
156
+ label.className = 'db-mi-label';
157
+ label.textContent = d.dockLabel || d.dialogTitle || 'Dialog';
158
+ row.append(dot, label);
159
+ row.onclick = () => { this.openPeekFor(d); this._closeMenu(); };
160
+ this._menuList?.appendChild(row);
161
+ });
162
+ }
163
+ openPeekFor(d) {
164
+ const wasPeek = d._dockPeek;
165
+ this.minimized().forEach(i => i._dockPeek = false);
166
+ if (wasPeek) {
167
+ d.restore(); // If was already peeking, clicking again restores it
168
+ }
169
+ else {
170
+ d._dockPeek = true;
171
+ }
172
+ this._syncMenu();
173
+ requestAnimationFrame(() => d.el.scrollIntoView({ behavior: 'smooth', inline: 'center' }));
174
+ }
175
+ register(d) {
176
+ if (!this._items.includes(d)) {
177
+ this._items.push(d);
178
+ this._reflow(); // Update counter when added
179
+ }
180
+ }
181
+ unregister(d) {
182
+ if (this._moving.has(d))
183
+ return;
184
+ this._originals.forEach((orig, item) => {
185
+ if (item === d && this._row && d.el.parentElement === this._row) {
186
+ orig.parent.insertBefore(d.el, orig.nextSibling);
187
+ this._originals.delete(d);
188
+ }
189
+ });
190
+ this._items = this._items.filter(i => i !== d);
191
+ this._reflow();
192
+ }
193
+ minimized() { return this._items.filter(d => d.minimized && d.open); }
194
+ // Only items that should physically live inside the tray bar row (non-peeked tabs)
195
+ inTray() { return this.minimized().filter(d => !d._dockPeek); }
196
+ reflow() { this._reflow(); }
197
+ get() { return this; }
198
+ getAll() { return this._items; }
199
+ getMinimized() { return this.minimized(); }
200
+ _reflow() {
201
+ const allMin = this.minimized();
202
+ const itemsInTray = this.inTray();
203
+ if (allMin.length > 0)
204
+ this._ensureDock();
205
+ const row = this._row;
206
+ if (!row)
207
+ return;
208
+ itemsInTray.forEach(d => {
209
+ if (d.el.parentElement !== row) {
210
+ // Only save original parent if it's NOT the tray bar itself
211
+ const parent = d.el.parentNode;
212
+ if (parent && parent !== row) {
213
+ this._originals.set(d, { parent: parent, nextSibling: d.el.nextSibling });
214
+ }
215
+ else if (!this._originals.has(d)) {
216
+ this._originals.set(d, { parent: document.body, nextSibling: null });
217
+ }
218
+ this._moving.add(d);
219
+ row.appendChild(d.el);
220
+ this._moving.delete(d);
221
+ }
222
+ });
223
+ this._originals.forEach((orig, d) => {
224
+ const shouldBeInTray = itemsInTray.includes(d);
225
+ if (!shouldBeInTray && d.el.parentElement === row) {
226
+ // Safe restoration: check if nextSibling is still valid/attached
227
+ if (orig.nextSibling && orig.nextSibling.parentNode === orig.parent) {
228
+ orig.parent.insertBefore(d.el, orig.nextSibling);
229
+ }
230
+ else {
231
+ // Fallback to append if sibling is gone or parent is inconsistent
232
+ orig.parent.appendChild(d.el);
233
+ }
234
+ this._originals.delete(d);
235
+ }
236
+ });
237
+ if (this._outer)
238
+ this._outer.style.display = allMin.length > 0 ? 'flex' : 'none';
239
+ this._syncMenu();
240
+ }
241
+ }();
242
+ const DialogBox = class {
243
+ constructor(hostRef) {
244
+ registerInstance(this, hostRef);
245
+ this.dialogClosed = createEvent(this, "dialogClosed");
246
+ this.undo = createEvent(this, "undo");
247
+ this.redo = createEvent(this, "redo");
248
+ this.dialogOpened = createEvent(this, "dialogOpened");
249
+ this.toastRequest = createEvent(this, "toastRequest");
250
+ this.auditLog = createEvent(this, "auditLog");
251
+ this.beforeOpen = createEvent(this, "beforeOpen");
252
+ this.openStarted = createEvent(this, "openStarted");
253
+ this.afterOpen = createEvent(this, "afterOpen");
254
+ this.beforeCloseEvent = createEvent(this, "beforeCloseEvent");
255
+ this.closeStarted = createEvent(this, "closeStarted");
256
+ this.afterClose = createEvent(this, "afterClose");
257
+ this.menuAction = createEvent(this, "menuAction");
258
+ this.ok = createEvent(this, "ok");
259
+ this.cancel = createEvent(this, "cancel");
260
+ this.dialogReset = createEvent(this, "dialogReset");
261
+ this.dialogMaximized = createEvent(this, "dialogMaximized");
262
+ this.dialogMinimized = createEvent(this, "dialogMinimized");
263
+ this.menu = createEvent(this, "menu");
264
+ }
265
+ _defaultDialogTitle = '';
266
+ _defaultOkText = '';
267
+ get el() { return getElement(this); }
268
+ _restoredLayout = undefined;
269
+ _isShaking = false;
270
+ _sessionTimedOut = false;
271
+ /**
272
+ * Whether the dialog is open
273
+ */
274
+ open = false;
275
+ /**
276
+ * Dialog title
277
+ */
278
+ dialogTitle = '';
279
+ /**
280
+ * Dialog subtitle
281
+ */
282
+ subtitle = '';
283
+ /**
284
+ * Whether the dialog is maximized
285
+ */
286
+ maximized = false;
287
+ /**
288
+ * Whether the dialog is minimized
289
+ */
290
+ minimized = false;
291
+ /**
292
+ * Dialog width. Explicit width takes precedence over size if size is 'custom'.
293
+ */
294
+ width = '500px';
295
+ /**
296
+ * Dialog height
297
+ */
298
+ height = 'auto';
299
+ /**
300
+ * Path to header image
301
+ */
302
+ headerImage;
303
+ /**
304
+ * Icon name to show in the header
305
+ */
306
+ icon = '';
307
+ /**
308
+ * User avatar URL to show in the header
309
+ */
310
+ avatar = '';
311
+ /**
312
+ * Whether to show maximize button
313
+ */
314
+ showMaximize = false;
315
+ /**
316
+ * Whether to show minimize button
317
+ */
318
+ showMinimize = false;
319
+ /**
320
+ * Whether to show close button
321
+ */
322
+ showClose = true;
323
+ /**
324
+ * Whether to show menu button (Action Menu)
325
+ */
326
+ showMenu = false;
327
+ /**
328
+ * Icon for the menu trigger button in the header.
329
+ * Defaults to 'more-horizontal' (⋯). Use 'settings' for a gear, 'sliders-horizontal' for filters, etc.
330
+ */
331
+ menuIcon = 'more-horizontal';
332
+ /**
333
+ * Tooltip text for the menu trigger button.
334
+ */
335
+ menuTitle = 'Menu';
336
+ /**
337
+ * Whether to show the header
338
+ */
339
+ showHeader = true;
340
+ /**
341
+ * Whether to show the footer
342
+ */
343
+ showFooter = true;
344
+ /**
345
+ * Dialog variant style
346
+ */
347
+ variant = 'outlined';
348
+ /**
349
+ * Dialog status/type
350
+ */
351
+ status = 'default';
352
+ /**
353
+ * Backdrop Behavior. 'default' (closes on click), 'static' (no close), 'none' (no backdrop).
354
+ */
355
+ backdrop = 'default';
356
+ /**
357
+ * Scroll behavior. 'paper' (scroll inside content), 'body' (scroll whole dialog).
358
+ */
359
+ scrollArea = 'paper';
360
+ /**
361
+ * Dialog functional type.
362
+ * - 'modal': Standard centered modal.
363
+ * - 'drawer': Slides from an edge (determined by position).
364
+ * - 'fullscreen': Occupies entire screen.
365
+ * - 'alert': Emphasis on the message, simple actions.
366
+ * - 'confirm': Standard confirmation with OK/Cancel flow.
367
+ * - 'prompt': Modal with an input field for user entry.
368
+ * - 'messagebox': Simplified modal for informational messages.
369
+ * - (Legacy): 'default' | 'delete' | 'upload' | 'session' | 'terms'
370
+ */
371
+ type = 'modal';
372
+ /**
373
+ * Label for the input field (only for 'prompt' type).
374
+ */
375
+ promptLabel = '';
376
+ /**
377
+ * Placeholder text for the prompt input.
378
+ */
379
+ promptPlaceholder = '';
380
+ /**
381
+ * Input type for the prompt (text, password, etc.).
382
+ */
383
+ promptType = 'text';
384
+ /**
385
+ * Initial value for the prompt input.
386
+ */
387
+ promptInitialValue = '';
388
+ /**
389
+ * Session timeout duration in seconds (only for 'session' type).
390
+ */
391
+ sessionTimeout = 60;
392
+ /**
393
+ * Whether to automatically submit 'session' dialog on timeout.
394
+ * If false, it will just close (cancel).
395
+ */
396
+ autoSubmitOnTimeout = false;
397
+ /**
398
+ * Position of the dialog.
399
+ * For 'drawer' type, these determine the slide direction.
400
+ */
401
+ position = 'center';
402
+ /**
403
+ * Predefined horizontal sizing.
404
+ */
405
+ size = 'md';
406
+ /**
407
+ * Visual density mode.
408
+ */
409
+ density = 'cozy';
410
+ /**
411
+ * Whether clicking the backdrop closes the dialog.
412
+ */
413
+ closeOnBackdrop = true;
414
+ /**
415
+ * Whether the ESC key closes the dialog.
416
+ */
417
+ closeOnEsc = true;
418
+ /**
419
+ * Draggable dialog (only for 'modal' type).
420
+ */
421
+ isDraggable = false;
422
+ /**
423
+ * Resizable dialog.
424
+ */
425
+ resizable = false;
426
+ /**
427
+ * Stepper steps for Wizard mode. Either an array of strings or a number.
428
+ */
429
+ steps = 0;
430
+ /**
431
+ * Current step in Wizard mode (1-indexed).
432
+ */
433
+ currentStep = 1;
434
+ _currentStep = 1;
435
+ currentStepChanged(newValue) {
436
+ this._currentStep = newValue;
437
+ }
438
+ /**
439
+ * Whether to blur the entire webpage behind this dialog.
440
+ */
441
+ globalBlur = false;
442
+ /**
443
+ * Dialog layout mode.
444
+ * 'default': Standard dialog
445
+ * 'side-nav': Includes a sidebar for master/detail views
446
+ */
447
+ layout = 'default';
448
+ /**
449
+ * Whether to show a toolbar below the header
450
+ */
451
+ showToolbar = false;
452
+ /**
453
+ * Whether to show a status bar above the footer
454
+ */
455
+ showStatusBar = false;
456
+ /**
457
+ * Snap to screen edges when dragging
458
+ */
459
+ snapToEdges = true;
460
+ /**
461
+ * Skeleton loading state. Transforms the dialog UI into placeholders.
462
+ */
463
+ loading = false;
464
+ /**
465
+ * Enable OS-level shortcuts (Ctrl+Enter to OK, Esc to Close).
466
+ */
467
+ shortcuts = true;
468
+ /**
469
+ * Whether the dialog contents are "dirty" (unsaved changes).
470
+ * Triggers the confirmation prompt on close.
471
+ */
472
+ dirty = false;
473
+ /**
474
+ * Animation duration in ms.
475
+ */
476
+ animationDuration = 250;
477
+ /**
478
+ * CSS selector for the element to focus initially when opened.
479
+ */
480
+ initialFocus;
481
+ /**
482
+ * Show a "pop-out" button to open content in a separate browser window.
483
+ */
484
+ allowPopOut = false;
485
+ /**
486
+ * Whether the dialog is starred/favorited
487
+ */
488
+ starred = false;
489
+ /**
490
+ * Label for the dock when minimized.
491
+ */
492
+ dockLabel = '';
493
+ /**
494
+ * Confirmation text for checkbox (e.g. "I accept the Terms & Conditions").
495
+ * If provided, the OK button will be disabled until checked.
496
+ */
497
+ confirmationText = '';
498
+ promptValue = '';
499
+ isConfirmed = false;
500
+ _sessionTimeLeft = 0;
501
+ _termsScrolled = false;
502
+ /**
503
+ * Header size.
504
+ */
505
+ headerSize = 'md';
506
+ /**
507
+ * Header background color override.
508
+ */
509
+ headerColor;
510
+ /**
511
+ * Whether the dialog should have a more pronounced border.
512
+ */
513
+ bordered = false;
514
+ /**
515
+ * Text for the OK button. If provided, renders an OK button in the footer.
516
+ */
517
+ okText;
518
+ /**
519
+ * Preset button set for confirmation dialogs.
520
+ * - `'ok-cancel'` → OK / Cancel
521
+ * - `'yes-no'` → Yes / No
522
+ * - `'yes-no-cancel'` → Yes / No / Cancel (No maps to resetText slot, left-aligned)
523
+ * - `'save-discard'` → Save / Discard
524
+ * - `'retry-cancel'` → Retry / Cancel
525
+ * Explicit `okText` / `cancelText` / `resetText` props always override the preset labels.
526
+ */
527
+ buttonSet = 'custom';
528
+ /**
529
+ * Text for the Cancel button. If provided, renders a Cancel button in the footer.
530
+ */
531
+ /**
532
+ * Text for the Cancel button.
533
+ */
534
+ cancelText;
535
+ /**
536
+ * Whether to portal the dialog to body
537
+ */
538
+ portal = false;
539
+ /**
540
+ * Loading state for the OK button.
541
+ */
542
+ okLoading = false;
543
+ /**
544
+ * Disable the OK button.
545
+ */
546
+ okDisabled = false;
547
+ /**
548
+ * Text for the Reset button (left-aligned).
549
+ */
550
+ resetText;
551
+ /**
552
+ * Disable the Cancel button.
553
+ */
554
+ cancelDisabled = false;
555
+ // ── Button-set resolution ─────────────────────────────────────────────────
556
+ // Returns the effective {okLabel, cancelLabel, resetLabel} for the footer,
557
+ // merging the `buttonSet` preset with any explicit text prop overrides.
558
+ _resolveButtons() {
559
+ const presets = {
560
+ 'ok-cancel': { ok: 'OK', cancel: 'Cancel', reset: '' },
561
+ 'yes-no': { ok: 'Yes', cancel: 'No', reset: '' },
562
+ 'yes-no-cancel': { ok: 'Yes', cancel: 'Cancel', reset: 'No' },
563
+ 'save-discard': { ok: 'Save', cancel: 'Discard', reset: '' },
564
+ 'retry-cancel': { ok: 'Retry', cancel: 'Cancel', reset: '' },
565
+ 'custom': { ok: '', cancel: '', reset: '' },
566
+ };
567
+ const p = presets[this.buttonSet] ?? presets['custom'];
568
+ return {
569
+ okLabel: this.okText ?? p.ok,
570
+ cancelLabel: this.cancelText ?? p.cancel,
571
+ resetLabel: this.resetText ?? p.reset,
572
+ };
573
+ }
574
+ /**
575
+ * Fullscreen on mobile devices automatically.
576
+ */
577
+ fullscreenOnMobile = true;
578
+ /**
579
+ * Keep content mounted when closed.
580
+ */
581
+ keepMounted = false;
582
+ /**
583
+ * Custom animation name.
584
+ */
585
+ animation = 'scale';
586
+ /**
587
+ * Return focus to trigger element on close.
588
+ */
589
+ returnFocus = true;
590
+ /**
591
+ * Z-Index for the dialog. Useful for nested dialogs.
592
+ */
593
+ zIndex = 10000;
594
+ /**
595
+ * Minimum Width
596
+ */
597
+ minWidth;
598
+ /**
599
+ * Minimum Height
600
+ */
601
+ minHeight;
602
+ /**
603
+ * Maximum Width
604
+ */
605
+ maxWidth;
606
+ /**
607
+ * Maximum Height
608
+ */
609
+ maxHeight;
610
+ /**
611
+ * Remember dialog position and size between sessions (requires id).
612
+ */
613
+ remember = false;
614
+ /**
615
+ * Allow swipe-to-close gesture on mobile devices.
616
+ */
617
+ swipeToClose = false;
618
+ /**
619
+ * Fire confetti when the dialog opens.
620
+ */
621
+ confetti = false;
622
+ /**
623
+ * Enable glassmorphism effect (blur) on backdrop.
624
+ */
625
+ glass = false;
626
+ /**
627
+ * Background color of the dialog panel
628
+ */
629
+ backgroundColor = 'white';
630
+ /**
631
+ * Visual progress bar percentage (0-100).
632
+ */
633
+ progress = -1;
634
+ /**
635
+ * Whether the dialog is nested (inside another dialog).
636
+ * Triggers visual differentiation (smer size, deeper shadow).
637
+ */
638
+ isNested = false;
639
+ /**
640
+ * Whether the primary action is sensitive (requires double-confirmation).
641
+ */
642
+ sensitive = false;
643
+ /**
644
+ * Auto-close timeout in milliseconds.
645
+ */
646
+ autoClose = 0;
647
+ /**
648
+ * Alias for autoClose.
649
+ */
650
+ timeout = 0;
651
+ /**
652
+ * Enable subtle sound feedback for interactions.
653
+ */
654
+ sound = false;
655
+ /**
656
+ * Enable haptic feedback for mobile devices.
657
+ */
658
+ haptics = false;
659
+ /**
660
+ * Required permissions to view this dialog.
661
+ */
662
+ permissions = [];
663
+ /**
664
+ * Enable debug mode (shows layout boundaries and metadata).
665
+ */
666
+ debug = false;
667
+ /**
668
+ * Optional callback function to execute before closing.
669
+ * Return false or a Promise resolving to false to prevent closing.
670
+ */
671
+ beforeClose;
672
+ /**
673
+ * Library to use for icons
674
+ */
675
+ iconLibrary = 'default';
676
+ /**
677
+ * Semantic tag for the title (h1-h6)
678
+ */
679
+ titleTag = 'h3';
680
+ /**
681
+ * Position of the icon/avatar relative to the title
682
+ */
683
+ iconPosition = 'left';
684
+ /**
685
+ * Event emitted when dialog is closed
686
+ */
687
+ dialogClosed;
688
+ /**
689
+ * Event emitted for undo action
690
+ */
691
+ undo;
692
+ /**
693
+ * Event emitted for redo action
694
+ */
695
+ redo;
696
+ /**
697
+ * Event emitted when the dialog is opened.
698
+ */
699
+ dialogOpened;
700
+ /**
701
+ * Event emitted to request a toast notification.
702
+ */
703
+ toastRequest;
704
+ /**
705
+ * Event emitted for security audit logging.
706
+ */
707
+ auditLog;
708
+ /**
709
+ * Emitted before the dialog opens. Can be cancelled via event.preventDefault().
710
+ */
711
+ beforeOpen;
712
+ /**
713
+ * Emitted when opening animation starts.
714
+ */
715
+ openStarted;
716
+ /**
717
+ * Emitted when opening animation finishes.
718
+ */
719
+ afterOpen;
720
+ /**
721
+ * Emitted before the dialog closes. Can be cancelled by event.preventDefault().
722
+ */
723
+ beforeCloseEvent;
724
+ /**
725
+ * Emitted when closing animation starts.
726
+ */
727
+ closeStarted;
728
+ /**
729
+ * Emitted when closing animation finishes.
730
+ */
731
+ afterClose;
732
+ /**
733
+ * Menu items for the built-in context menu.
734
+ * Can be a JSON string or an array of objects.
735
+ * If provided, clicking the menu button automatically opens a context menu.
736
+ */
737
+ menuItems = [];
738
+ /**
739
+ * Event emitted when a menu item is clicked (if using built-in menuItems)
740
+ */
741
+ menuAction;
742
+ /**
743
+ * Event emitted when OK button is clicked
744
+ */
745
+ ok;
746
+ /**
747
+ * Event emitted when Cancel button is clicked
748
+ */
749
+ cancel;
750
+ /**
751
+ * Event emitted when Reset button is clicked
752
+ */
753
+ dialogReset;
754
+ /**
755
+ * Event emitted when dialog is maximized
756
+ */
757
+ dialogMaximized;
758
+ /**
759
+ * Event emitted when dialog is minimized
760
+ */
761
+ dialogMinimized;
762
+ /**
763
+ * Event emitted when menu button is clicked
764
+ */
765
+ menu;
766
+ dragStartX = 0;
767
+ dragStartY = 0;
768
+ isDragging = false;
769
+ dragAnchored = false;
770
+ isClosing = false;
771
+ snappedEdge = 'none';
772
+ subOverlay = null;
773
+ minimizedToDock = false;
774
+ _dockPeek = false;
775
+ _autoCloseTimer = null;
776
+ resultResolver;
777
+ resultRejecter;
778
+ returnValue = null;
779
+ // Previously saved position before minimization
780
+ lastPosition = null;
781
+ // Resize state
782
+ isResizing = false;
783
+ resizeStartX = 0;
784
+ resizeStartY = 0;
785
+ initialWidth = 0;
786
+ initialHeight = 0;
787
+ initialLeft = 0;
788
+ initialTop = 0;
789
+ dialogElement;
790
+ backdropElement;
791
+ // Gmail Style Organizer for minimized tabs
792
+ minimizedChanged(newValue) {
793
+ if (newValue) {
794
+ this._dockPeek = false;
795
+ // Saving current position state
796
+ if (this.dialogElement) {
797
+ this.lastPosition = {
798
+ left: this.dialogElement.style.left,
799
+ top: this.dialogElement.style.top,
800
+ transform: this.dialogElement.style.transform,
801
+ position: this.dialogElement.style.position,
802
+ margin: this.dialogElement.style.margin
803
+ };
804
+ }
805
+ this.unlockScroll();
806
+ if (this.focusTrap)
807
+ this.focusTrap.deactivate();
808
+ DialogTray.reflow();
809
+ this.dialogMinimized.emit({ minimized: true });
810
+ }
811
+ else {
812
+ this._dockPeek = false;
813
+ DialogTray.reflow();
814
+ this.dialogMinimized.emit({ minimized: false });
815
+ requestAnimationFrame(() => {
816
+ // Restoring position (deferred until DOM is rendered and ref is ready)
817
+ if (this.lastPosition && this.dialogElement) {
818
+ Object.assign(this.dialogElement.style, this.lastPosition);
819
+ }
820
+ else if (this.remember && this.el.id) {
821
+ this.loadLayout();
822
+ }
823
+ this.initFocusTrap();
824
+ });
825
+ }
826
+ }
827
+ onDockPeekChange(val) {
828
+ if (val) {
829
+ document.addEventListener('pointerdown', this._onDocPeekOutside, true);
830
+ }
831
+ else {
832
+ document.removeEventListener('pointerdown', this._onDocPeekOutside, true);
833
+ }
834
+ // Sync the tray menu badge etc
835
+ DialogTray.reflow();
836
+ }
837
+ _onDocPeekOutside = (e) => {
838
+ if (!e.composedPath().includes(this.el)) {
839
+ this._dockPeek = false;
840
+ }
841
+ };
842
+ focusTrap;
843
+ ignoreBackdropClick = false;
844
+ componentWillLoad() {
845
+ this._currentStep = this.currentStep;
846
+ // Detect nesting
847
+ this.isNested = !!this.el.parentElement?.closest('ui-dialog-box');
848
+ // Presets: set local defaults, do not mutate props
849
+ this._defaultDialogTitle = '';
850
+ this._defaultOkText = '';
851
+ if (this.type === 'delete') {
852
+ this._defaultDialogTitle = 'Confirm Deletion';
853
+ this._defaultOkText = 'Delete';
854
+ this.headerColor = '#fee2e2'; // Light red background (for header component)
855
+ this.bordered = true;
856
+ }
857
+ else if (this.type === 'session') {
858
+ this._defaultDialogTitle = 'Session Timeout';
859
+ this._defaultOkText = 'Extend Session';
860
+ }
861
+ else if (this.type === 'terms') {
862
+ this._defaultDialogTitle = 'Terms & Conditions';
863
+ this._defaultOkText = 'Accept & Continue';
864
+ this.scrollArea = 'paper';
865
+ // Do NOT mutate this.size here
866
+ }
867
+ // Automatic Z-Index for Nested Dialogs
868
+ const openDialogs = DialogTray.get().getAll().filter(w => w.open).length;
869
+ if (this.zIndex === 10000) { // If default
870
+ this.zIndex = 10000 + (openDialogs * 10);
871
+ }
872
+ // Check Widget drag compatibility
873
+ if (this.el.getAttribute('draggable') === 'true' && !this.isDraggable) {
874
+ this.isDraggable = true;
875
+ }
876
+ // Restore layout if needed
877
+ if (this.remember && this.el.id) {
878
+ this.loadLayout();
879
+ }
880
+ }
881
+ connectedCallback() {
882
+ // Fires on initial connect AND after a tray reflow move.
883
+ DialogTray.register(this);
884
+ }
885
+ disconnectedCallback() {
886
+ DialogTray.unregister(this);
887
+ }
888
+ componentDidLoad() {
889
+ // register() already called by connectedCallback above;
890
+ // just handle open/layout init here.
891
+ if (this.open) {
892
+ this.lockScroll();
893
+ this.initFocusTrap();
894
+ if (this.portal) {
895
+ document.body.appendChild(this.el);
896
+ }
897
+ }
898
+ }
899
+ saveLayout() {
900
+ if (!this.el.id || !this.dialogElement)
901
+ return;
902
+ const rect = this.dialogElement.getBoundingClientRect();
903
+ const state = {
904
+ left: rect.left,
905
+ top: rect.top,
906
+ width: rect.width,
907
+ height: rect.height,
908
+ maximized: this.maximized
909
+ };
910
+ this._restoredLayout = state;
911
+ localStorage.setItem(`ui-dialog-layout-${this.el.id}`, JSON.stringify(state));
912
+ }
913
+ loadLayout() {
914
+ if (!this.el.id)
915
+ return;
916
+ const saved = localStorage.getItem(`ui-dialog-layout-${this.el.id}`);
917
+ if (saved) {
918
+ try {
919
+ const state = JSON.parse(saved);
920
+ if (state.maximized) {
921
+ this.maximized = true;
922
+ }
923
+ else {
924
+ this._restoredLayout = state;
925
+ if (state.width)
926
+ this.width = `${state.width}px`;
927
+ if (state.height)
928
+ this.height = `${state.height}px`;
929
+ }
930
+ }
931
+ catch (e) { /* ignore */ }
932
+ }
933
+ }
934
+ async openChanged(newValue) {
935
+ if (newValue) {
936
+ if (typeof this.beforeOpen?.emit === 'function') {
937
+ const { defaultPrevented } = this.beforeOpen.emit();
938
+ if (defaultPrevented) {
939
+ this.open = false;
940
+ return;
941
+ }
942
+ }
943
+ this.isClosing = false;
944
+ this.openStarted.emit();
945
+ // Always rise above all currently open dialogs
946
+ this.handleDialogClick();
947
+ if (this.remember && this.el.id) {
948
+ this.loadLayout();
949
+ }
950
+ this.lockScroll();
951
+ // Elite/Security Hooks
952
+ if (this.permissions && this.permissions.length > 0) {
953
+ this.auditLog.emit({ action: 'permission_check', timestamp: Date.now(), metadata: { required: this.permissions } });
954
+ }
955
+ if (this.type === 'prompt') {
956
+ this.promptValue = this.promptInitialValue;
957
+ }
958
+ this.dialogOpened.emit();
959
+ this.auditLog.emit({ action: 'dialog_open', timestamp: Date.now() });
960
+ const delay = this.autoClose || this.timeout;
961
+ if (delay > 0) {
962
+ if (this._autoCloseTimer)
963
+ clearTimeout(this._autoCloseTimer);
964
+ this._autoCloseTimer = setTimeout(() => this.hide('timeout'), delay);
965
+ }
966
+ if (this.sound) {
967
+ // Accessibility/UX Audio Hook
968
+ this.auditLog.emit({ action: 'sound_feedback', timestamp: Date.now() });
969
+ }
970
+ // Initialize/Activate Focus Trap
971
+ if (this.type === 'session') {
972
+ this.startSessionTimer();
973
+ }
974
+ if (this.type === 'terms') {
975
+ this._termsScrolled = false;
976
+ }
977
+ requestAnimationFrame(() => {
978
+ setTimeout(() => {
979
+ if (!this.minimized) {
980
+ this.initFocusTrap();
981
+ this.autoFocusFirstElement();
982
+ }
983
+ if (this.globalBlur)
984
+ this.updateBodyBlur();
985
+ if (this.confetti)
986
+ this.triggerConfetti();
987
+ this.afterOpen.emit();
988
+ }, 50);
989
+ });
990
+ }
991
+ else {
992
+ if (!this.isClosing) {
993
+ await this.hide('programmatic');
994
+ }
995
+ }
996
+ DialogTray.reflow();
997
+ }
998
+ updateBodyBlur() {
999
+ if (this.globalBlur && this.open) {
1000
+ document.body.classList.add('dialog-blur-active');
1001
+ }
1002
+ else {
1003
+ document.body.classList.remove('dialog-blur-active');
1004
+ }
1005
+ }
1006
+ initFocusTrap() {
1007
+ if (!this.dialogElement)
1008
+ return;
1009
+ if (!this.focusTrap) {
1010
+ this.focusTrap = new FocusTrap(this.dialogElement, {
1011
+ returnFocus: this.returnFocus,
1012
+ escapeDeactivates: false, // We handle Escape manually
1013
+ clickOutsideDeactivates: false
1014
+ });
1015
+ }
1016
+ this.focusTrap.activate();
1017
+ }
1018
+ autoFocusFirstElement() {
1019
+ if (!this.dialogElement)
1020
+ return;
1021
+ // 1. Check explicit initialFocus selector
1022
+ if (this.initialFocus) {
1023
+ const el = this.dialogElement.querySelector(this.initialFocus);
1024
+ if (el) {
1025
+ el.focus();
1026
+ return;
1027
+ }
1028
+ }
1029
+ // 2. Look for autofocus attribute first, then common inputs
1030
+ const el = this.dialogElement.querySelector('[autofocus]') ||
1031
+ this.dialogElement.querySelector('input:not([disabled]), textarea:not([disabled]), select:not([disabled]), .ui-dialog-btn-ok');
1032
+ if (el)
1033
+ el.focus();
1034
+ }
1035
+ lockScroll() {
1036
+ if (this.scrollArea !== 'body') {
1037
+ document.body.style.overflow = 'hidden';
1038
+ }
1039
+ }
1040
+ unlockScroll() {
1041
+ document.body.style.overflow = '';
1042
+ }
1043
+ /**
1044
+ * Open the dialog
1045
+ */
1046
+ /**
1047
+ * Open the dialog and return a promise that resolves to true when OK is clicked, false on Cancel/Close.
1048
+ */
1049
+ async openDialog() {
1050
+ this.open = true;
1051
+ return new Promise((resolve) => {
1052
+ this.resultResolver = (val) => resolve(!!val);
1053
+ });
1054
+ }
1055
+ /**
1056
+ * Show dialog and return a promise that resolves with data when closed via OK.
1057
+ * Standardizes the return value as { data: any, canceled: boolean }.
1058
+ */
1059
+ async showWithResult() {
1060
+ this.returnValue = null;
1061
+ this.open = true;
1062
+ return new Promise((resolve) => {
1063
+ // Use resultResolver as a way to send the final object back
1064
+ this.resultResolver = (data) => resolve({ data, canceled: false });
1065
+ this.resultRejecter = () => resolve({ data: null, canceled: true });
1066
+ });
1067
+ }
1068
+ /**
1069
+ * Set the value to be returned when showWithResult resolves.
1070
+ */
1071
+ async setReturnValue(value) {
1072
+ this.returnValue = value;
1073
+ }
1074
+ async show() {
1075
+ this.returnValue = null;
1076
+ this.open = true;
1077
+ }
1078
+ /**
1079
+ * Close the dialog
1080
+ */
1081
+ async hide(source = 'programmatic') {
1082
+ if (this.resultResolver || this.resultRejecter) {
1083
+ if (this.resultRejecter)
1084
+ this.resultRejecter('Closed');
1085
+ this.resultResolver = undefined;
1086
+ this.resultRejecter = undefined;
1087
+ }
1088
+ if (this.dirty && !this.subOverlay?.visible) {
1089
+ this.showConfirmation("Unsaved Changes", "You have unsaved changes. Are you sure you want to close?", () => { this.dirty = false; this.hide(source); });
1090
+ return;
1091
+ }
1092
+ const { defaultPrevented } = this.beforeCloseEvent.emit({ source });
1093
+ if (defaultPrevented)
1094
+ return;
1095
+ if (this.beforeClose) {
1096
+ const shouldClose = await this.beforeClose();
1097
+ if (shouldClose === false)
1098
+ return;
1099
+ }
1100
+ this.isClosing = true;
1101
+ this.closeStarted.emit();
1102
+ this.stopSessionTimer();
1103
+ if (this.focusTrap)
1104
+ this.focusTrap.deactivate();
1105
+ setTimeout(() => {
1106
+ this.open = false;
1107
+ this.isClosing = false;
1108
+ this.unlockScroll();
1109
+ this.updateBodyBlur(); // remove blur
1110
+ this.dialogClosed.emit();
1111
+ if (this.el.isConnected) {
1112
+ this.afterClose.emit();
1113
+ }
1114
+ }, this.animationDuration);
1115
+ }
1116
+ /**
1117
+ * Maximize the dialog
1118
+ */
1119
+ async maximize() {
1120
+ this.maximized = !this.maximized;
1121
+ if (this.maximized) {
1122
+ this.minimized = false;
1123
+ }
1124
+ if (this.remember)
1125
+ this.saveLayout();
1126
+ this.dialogMaximized.emit({ maximized: this.maximized });
1127
+ }
1128
+ /**
1129
+ * Show an internal sub-overlay prompt (e.g., for diskard changes).
1130
+ */
1131
+ async showConfirmation(title, message, onConfirm) {
1132
+ this.subOverlay = { visible: true, title, message, onConfirm };
1133
+ }
1134
+ /**
1135
+ * Cascade all open dialogs
1136
+ */
1137
+ static async cascade() {
1138
+ const wins = DialogTray.get().getAll().filter(w => w.open && !w.minimized);
1139
+ wins.forEach((win, i) => {
1140
+ win.dialogElement.style.left = `${50 + (i * 30)}px`;
1141
+ win.dialogElement.style.top = `${50 + (i * 30)}px`;
1142
+ win.dialogElement.style.margin = '0';
1143
+ win.dialogElement.style.position = 'fixed';
1144
+ if (win.remember)
1145
+ win.saveLayout();
1146
+ });
1147
+ }
1148
+ /**
1149
+ * Tile all open dialogs
1150
+ */
1151
+ static async tile() {
1152
+ const wins = DialogTray.get().getAll().filter(w => w.open && !w.minimized);
1153
+ if (wins.length === 0)
1154
+ return;
1155
+ const cols = Math.ceil(Math.sqrt(wins.length));
1156
+ const rows = Math.ceil(wins.length / cols);
1157
+ const winW = window.innerWidth / cols;
1158
+ const winH = window.innerHeight / rows;
1159
+ wins.forEach((win, i) => {
1160
+ const r = Math.floor(i / cols);
1161
+ const c = i % cols;
1162
+ win.dialogElement.style.left = `${c * winW}px`;
1163
+ win.dialogElement.style.top = `${r * winH}px`;
1164
+ win.dialogElement.style.width = `${winW}px`;
1165
+ win.dialogElement.style.height = `${winH}px`;
1166
+ win.dialogElement.style.margin = '0';
1167
+ win.dialogElement.style.position = 'fixed';
1168
+ if (win.remember)
1169
+ win.saveLayout();
1170
+ });
1171
+ }
1172
+ /**
1173
+ * Detach the dialog content to a separate browser window
1174
+ */
1175
+ async popOut() {
1176
+ const popup = window.open('', '_blank', 'width=600,height=400');
1177
+ if (popup) {
1178
+ popup.document.title = this.dialogTitle || 'DreamUI Detached Window';
1179
+ popup.document.body.innerHTML = sanitizeHTML(this.el.innerHTML);
1180
+ // Copy styles
1181
+ document.querySelectorAll('style, link[rel="stylesheet"]').forEach(s => {
1182
+ popup.document.head.appendChild(s.cloneNode(true));
1183
+ });
1184
+ this.hide();
1185
+ }
1186
+ }
1187
+ /**
1188
+ * Minimize the dialog
1189
+ */
1190
+ async minimize() {
1191
+ this.minimized = !this.minimized;
1192
+ if (this.minimized) {
1193
+ this._dockPeek = false;
1194
+ this.minimizedToDock = true;
1195
+ }
1196
+ else {
1197
+ this.restore();
1198
+ }
1199
+ this.dialogMinimized.emit({ minimized: this.minimized });
1200
+ }
1201
+ /**
1202
+ * Restore the dialog from minimized or maximized state
1203
+ */
1204
+ async restore() {
1205
+ this.minimized = false;
1206
+ this.maximized = false;
1207
+ this._dockPeek = false;
1208
+ this.minimizedToDock = false;
1209
+ if (this.remember) {
1210
+ setTimeout(() => this.loadLayout(), 50);
1211
+ }
1212
+ this.dialogMinimized.emit({ minimized: false });
1213
+ this.dialogMaximized.emit({ maximized: false });
1214
+ DialogTray.reflow();
1215
+ }
1216
+ handleMenu = (e) => {
1217
+ // If we have built-in menu items, handle opening the context menu
1218
+ // Ensure we parse if it's a string looking like an array
1219
+ let items = this.menuItems;
1220
+ if (typeof items === 'string') {
1221
+ try {
1222
+ items = JSON.parse(items);
1223
+ }
1224
+ catch (ex) { /* ignore */ }
1225
+ }
1226
+ if (items && Array.isArray(items) && items.length > 0) {
1227
+ e.stopPropagation();
1228
+ // Pass parsed items if possible, or reliance on original prop
1229
+ this.openContextMenu(e);
1230
+ return;
1231
+ }
1232
+ this.menu.emit(e.detail);
1233
+ };
1234
+ openContextMenu(e, explicitItems) {
1235
+ let menu = document.getElementById(`ctx-menu-${this.el.id}`);
1236
+ if (!menu) {
1237
+ menu = document.createElement('ui-context-menu');
1238
+ menu.id = `ctx-menu-${this.el.id}`;
1239
+ menu.style.zIndex = (this.zIndex + 10).toString();
1240
+ document.body.appendChild(menu);
1241
+ menu.addEventListener('menuItemClick', (ev) => {
1242
+ const detail = ev.detail;
1243
+ this.menuAction.emit(detail);
1244
+ // Also emit standard menu event with action details for convenience
1245
+ this.menu.emit(detail);
1246
+ // Handle specialized built-in actions if we want (like 'close', 'minimize')
1247
+ if (detail && detail.item && detail.item.id) {
1248
+ if (detail.item.id === 'close')
1249
+ this.hide();
1250
+ if (detail.item.id === 'minimize')
1251
+ this.minimize();
1252
+ if (detail.item.id === 'maximize')
1253
+ this.maximize();
1254
+ }
1255
+ });
1256
+ }
1257
+ // Update items
1258
+ // Parse again to be safe or use what we know
1259
+ const itemsVal = explicitItems ? JSON.stringify(explicitItems) : (typeof this.menuItems === 'string' ? this.menuItems : JSON.stringify(this.menuItems));
1260
+ menu.items = itemsVal;
1261
+ // Position at trigger
1262
+ let rect;
1263
+ if (e.detail && e.detail.trigger) {
1264
+ rect = e.detail.trigger.getBoundingClientRect();
1265
+ }
1266
+ else if (e.detail && e.detail.originalEvent && e.detail.originalEvent.target) {
1267
+ rect = e.detail.originalEvent.target.getBoundingClientRect();
1268
+ }
1269
+ else {
1270
+ // Fallback to searching for the menu button
1271
+ const header = this.el.shadowRoot?.querySelector('ui-dialog-header');
1272
+ const btn = header?.shadowRoot?.querySelector('.dialog-btn-menu')
1273
+ || header?.querySelector('.dialog-btn-menu');
1274
+ rect = btn ? btn.getBoundingClientRect() : this.dialogElement.getBoundingClientRect();
1275
+ }
1276
+ // Slight offset
1277
+ if (rect) {
1278
+ menu.openAt({ x: rect.left, y: rect.bottom + 5 });
1279
+ }
1280
+ }
1281
+ collectFormValues() {
1282
+ const result = {};
1283
+ const processedNames = new Set();
1284
+ /**
1285
+ * Recursively scan elements for named inputs/selects/textareas.
1286
+ * This piercings into slots by looking at the Host element's Light DOM children.
1287
+ */
1288
+ const scan = (root) => {
1289
+ if (!root || typeof root.tagName !== 'string')
1290
+ return;
1291
+ const tagName = root.tagName.toUpperCase();
1292
+ const el = root;
1293
+ if (el.name && (tagName === 'INPUT' || tagName === 'SELECT' || tagName === 'TEXTAREA')) {
1294
+ const input = root;
1295
+ const type = (input.type || '').toLowerCase();
1296
+ if (type === 'checkbox') {
1297
+ if (!result[el.name])
1298
+ result[el.name] = [];
1299
+ if (input.checked)
1300
+ result[el.name].push(input.value);
1301
+ }
1302
+ else if (type === 'radio') {
1303
+ if (input.checked)
1304
+ result[el.name] = input.value;
1305
+ }
1306
+ else if (type === 'submit' || type === 'button' || type === 'reset') ;
1307
+ else {
1308
+ result[el.name] = el.value;
1309
+ }
1310
+ processedNames.add(el.name);
1311
+ }
1312
+ // Recurse light-DOM children
1313
+ if (root.children) {
1314
+ for (const child of Array.from(root.children)) {
1315
+ scan(child);
1316
+ }
1317
+ }
1318
+ };
1319
+ // Begin scan from the host element (captures all Light DOM descendants in slots)
1320
+ scan(this.el);
1321
+ // If we found nothing in Light DOM, check Shadow DOM (for built-in prompts)
1322
+ if (processedNames.size === 0 && this.el.shadowRoot) {
1323
+ scan(this.el.shadowRoot);
1324
+ }
1325
+ return processedNames.size > 0 ? result : null;
1326
+ }
1327
+ _sessionInterval;
1328
+ startSessionTimer() {
1329
+ this._sessionTimeLeft = this.sessionTimeout;
1330
+ clearInterval(this._sessionInterval);
1331
+ this._sessionInterval = setInterval(() => {
1332
+ this._sessionTimeLeft--;
1333
+ if (this._sessionTimeLeft <= 0) {
1334
+ clearInterval(this._sessionInterval);
1335
+ this._sessionTimedOut = true;
1336
+ this.dialogTitle = "Session Expired";
1337
+ this.status = "error";
1338
+ // Do NOT auto-close if we want to show the logout message
1339
+ if (this.autoSubmitOnTimeout)
1340
+ this.handleOk();
1341
+ }
1342
+ }, 1000);
1343
+ }
1344
+ stopSessionTimer() {
1345
+ clearInterval(this._sessionInterval);
1346
+ }
1347
+ handleTermsScroll = (e) => {
1348
+ if (this.type !== 'terms' || this._termsScrolled)
1349
+ return;
1350
+ const el = e.target;
1351
+ if (el.scrollHeight - el.scrollTop <= el.clientHeight + 20) {
1352
+ this._termsScrolled = true;
1353
+ }
1354
+ };
1355
+ handleOk = () => {
1356
+ if (this.sensitive && !this.subOverlay?.visible) {
1357
+ this.showConfirmation("Sensitive Action", "This action has security implications. Are you sure you want to proceed?", () => { this.sensitive = false; this.handleOk(); });
1358
+ return;
1359
+ }
1360
+ if (this.haptics && window.navigator.vibrate) {
1361
+ window.navigator.vibrate(50);
1362
+ }
1363
+ if (this.resultResolver) {
1364
+ // Auto-collect form values when no explicit returnValue was set
1365
+ if (this.returnValue === null) {
1366
+ this.returnValue = this.collectFormValues();
1367
+ }
1368
+ this.ok.emit(this.returnValue);
1369
+ // Pass the collected data to the specific resolver format
1370
+ this.resultResolver(this.returnValue);
1371
+ this.resultResolver = undefined;
1372
+ this.resultRejecter = undefined;
1373
+ }
1374
+ else {
1375
+ this.ok.emit(this.returnValue);
1376
+ }
1377
+ this.hide();
1378
+ };
1379
+ /**
1380
+ * Programmatically submit the dialog (resolves the promise).
1381
+ * Optional value overrides auto-collection.
1382
+ */
1383
+ async submit(value) {
1384
+ if (value !== undefined) {
1385
+ this.returnValue = value;
1386
+ }
1387
+ this.handleOk();
1388
+ }
1389
+ /**
1390
+ * Programmatically cancel the dialog (rejects the promise).
1391
+ */
1392
+ async cancelDialog() {
1393
+ this.handleCancel();
1394
+ }
1395
+ handleCancel = () => {
1396
+ if (this.resultRejecter) {
1397
+ this.resultRejecter(); // Triggers the resolver with {canceled: true} logic inside showWithResult
1398
+ this.resultRejecter = undefined;
1399
+ this.resultResolver = undefined;
1400
+ }
1401
+ this.cancel.emit();
1402
+ this.hide();
1403
+ };
1404
+ handleReset = () => {
1405
+ this.auditLog.emit({ action: 'reset_clicked', timestamp: Date.now() });
1406
+ this.dialogReset.emit();
1407
+ };
1408
+ handleGlobalShortcuts(e) {
1409
+ if (!this.open || !this.shortcuts)
1410
+ return;
1411
+ // Ctrl+Enter = OK (Global)
1412
+ if (e.ctrlKey && e.key === 'Enter' && this.okText) {
1413
+ this.handleOk();
1414
+ return;
1415
+ }
1416
+ // Enter in Input = OK (Standard Form behavior)
1417
+ if (e.key === 'Enter' && this.okText) {
1418
+ const target = e.target;
1419
+ if (['INPUT', 'SELECT'].includes(target.tagName) && !target.classList.contains('no-submit')) {
1420
+ this.handleOk();
1421
+ }
1422
+ }
1423
+ }
1424
+ handleBackdropClick = (e) => {
1425
+ if (this.ignoreBackdropClick)
1426
+ return;
1427
+ if (this.backdrop === 'default' && e.target === this.backdropElement) {
1428
+ this.hide();
1429
+ }
1430
+ else if (this.backdrop === 'static' && e.target === this.backdropElement) {
1431
+ e.preventDefault();
1432
+ e.stopPropagation();
1433
+ this._isShaking = true;
1434
+ setTimeout(() => {
1435
+ this._isShaking = false;
1436
+ }, 400); // Match SCSS duration (0.4s)
1437
+ }
1438
+ };
1439
+ handleKeyDown(e) {
1440
+ // If minimized, don't trap focus or handle escape close immediately
1441
+ if (this.minimized)
1442
+ return;
1443
+ if (e.key === 'Escape' && this.open && this.closeOnEsc) {
1444
+ this.hide('esc');
1445
+ return;
1446
+ }
1447
+ // FocusTrap handles Tab
1448
+ }
1449
+ // Bring to front on any click inside the dialog
1450
+ handleDialogClick = () => {
1451
+ // Wrap in microtask to avoid "changed during rendering" warning if called from Watchers/render-adjacent paths
1452
+ requestAnimationFrame(() => {
1453
+ // Logic to increment zIndex among currently open dialogs
1454
+ const allOpened = DialogTray.get().getAll()
1455
+ .filter(w => w.open)
1456
+ .sort((a, b) => a.zIndex - b.zIndex);
1457
+ const maxZ = allOpened.length > 0 ? allOpened[allOpened.length - 1].zIndex : 10000;
1458
+ if (this.zIndex <= maxZ) {
1459
+ this.zIndex = maxZ + 1;
1460
+ }
1461
+ });
1462
+ };
1463
+ // Dragging Logic
1464
+ handlePointerDown = (e) => {
1465
+ this.handleDialogClick();
1466
+ if (this.maximized || !this.isDraggable || this.minimized)
1467
+ return;
1468
+ // Ignore if clicking on interactive elements
1469
+ const path = e.composedPath();
1470
+ const isInteractive = path.some(el => el instanceof HTMLElement &&
1471
+ (['BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'A', 'UI-ICON'].includes(el.tagName) || el.classList.contains('dialog-btn')));
1472
+ if (isInteractive)
1473
+ return;
1474
+ // Only allow drag from header
1475
+ const header = this.dialogElement.querySelector('ui-dialog-header');
1476
+ const isHeaderClick = path.some(p => p === header || (p instanceof HTMLElement && p.localName === 'ui-dialog-header'));
1477
+ if (!isHeaderClick)
1478
+ return;
1479
+ e.preventDefault(); // Prevent scrolling on touch
1480
+ e.stopPropagation();
1481
+ this.isDragging = true;
1482
+ this.dragAnchored = false;
1483
+ // Handle Touch/Pointer coordinates
1484
+ this.dragStartX = e.clientX;
1485
+ this.dragStartY = e.clientY;
1486
+ const rect = this.dialogElement.getBoundingClientRect();
1487
+ this.initialLeft = rect.left;
1488
+ this.initialTop = rect.top;
1489
+ this.dragStartX = e.clientX;
1490
+ this.dragStartY = e.clientY;
1491
+ // Do NOT modify styles here — wait until movement threshold is crossed
1492
+ // to avoid snapping the dialog on a plain click.
1493
+ // Capture pointer
1494
+ if (this.dialogElement.setPointerCapture) {
1495
+ try {
1496
+ this.dialogElement.setPointerCapture(e.pointerId);
1497
+ }
1498
+ catch (ex) { }
1499
+ }
1500
+ document.addEventListener('pointermove', this.handlePointerMove);
1501
+ document.addEventListener('pointerup', this.handlePointerUp);
1502
+ document.body.style.userSelect = 'none';
1503
+ document.body.style.cursor = 'grabbing';
1504
+ };
1505
+ checkSnapping = (clientX, clientY) => {
1506
+ const threshold = 50;
1507
+ const winW = window.innerWidth;
1508
+ const winH = window.innerHeight;
1509
+ if (clientX < threshold) {
1510
+ this.snappedEdge = 'left';
1511
+ }
1512
+ else if (clientX > winW - threshold) {
1513
+ this.snappedEdge = 'right';
1514
+ }
1515
+ else if (clientY < threshold) {
1516
+ this.snappedEdge = 'top';
1517
+ }
1518
+ else if (clientY > winH - threshold) {
1519
+ this.snappedEdge = 'bottom';
1520
+ }
1521
+ else {
1522
+ this.snappedEdge = 'none';
1523
+ }
1524
+ };
1525
+ handlePointerMove = (e) => {
1526
+ if (!this.dialogElement)
1527
+ return;
1528
+ if (this.isDragging) {
1529
+ const dx = e.clientX - this.dragStartX;
1530
+ const dy = e.clientY - this.dragStartY;
1531
+ // Anti-jitter: Avoid resetting styles until true movement occurs
1532
+ if (!this.dragAnchored) {
1533
+ if (Math.abs(dx) < 5 && Math.abs(dy) < 5)
1534
+ return;
1535
+ this.dragAnchored = true;
1536
+ this.dialogElement.style.margin = '0';
1537
+ this.dialogElement.style.position = 'fixed';
1538
+ this.dialogElement.style.left = `${this.initialLeft}px`;
1539
+ this.dialogElement.style.top = `${this.initialTop}px`;
1540
+ this.dialogElement.style.transform = 'none';
1541
+ this.dialogElement.style.width = `${this.dialogElement.offsetWidth}px`; // Lock width
1542
+ this.dialogElement.classList.add('is-dragging');
1543
+ }
1544
+ this.dialogElement.style.left = `${this.initialLeft + dx}px`;
1545
+ this.dialogElement.style.top = `${this.initialTop + dy}px`;
1546
+ if (this.snapToEdges) {
1547
+ this.checkSnapping(e.clientX, e.clientY);
1548
+ }
1549
+ }
1550
+ else if (this.isResizing) {
1551
+ const dx = e.clientX - this.resizeStartX;
1552
+ const dy = e.clientY - this.resizeStartY;
1553
+ let newWidth = this.initialWidth + dx;
1554
+ let newHeight = this.initialHeight + dy;
1555
+ // Helper to parse pixel values safely
1556
+ const parseVal = (v) => v ? parseInt(v, 10) : null;
1557
+ if (this.minWidth)
1558
+ newWidth = Math.max(newWidth, parseVal(this.minWidth) || 0);
1559
+ if (this.minHeight)
1560
+ newHeight = Math.max(newHeight, parseVal(this.minHeight) || 0);
1561
+ if (this.maxWidth)
1562
+ newWidth = Math.min(newWidth, parseVal(this.maxWidth) || 9999);
1563
+ if (this.maxHeight)
1564
+ newHeight = Math.min(newHeight, parseVal(this.maxHeight) || 9999);
1565
+ this.dialogElement.style.width = `${newWidth}px`;
1566
+ this.dialogElement.style.height = `${newHeight}px`;
1567
+ }
1568
+ };
1569
+ handlePointerUp = (e) => {
1570
+ if (!this.dialogElement) {
1571
+ this.isDragging = false;
1572
+ this.isResizing = false;
1573
+ return;
1574
+ }
1575
+ // Release capture
1576
+ if (this.isDragging && this.dialogElement.releasePointerCapture) {
1577
+ try {
1578
+ this.dialogElement.releasePointerCapture(e.pointerId);
1579
+ }
1580
+ catch (ex) { }
1581
+ }
1582
+ if (this.isResizing && e.target.releasePointerCapture) {
1583
+ try {
1584
+ e.target.releasePointerCapture(e.pointerId);
1585
+ }
1586
+ catch (ex) { }
1587
+ }
1588
+ if (this.isDragging || this.isResizing) {
1589
+ this.ignoreBackdropClick = true;
1590
+ setTimeout(() => {
1591
+ this.ignoreBackdropClick = false;
1592
+ }, 100);
1593
+ }
1594
+ if (this.isDragging && this.snapToEdges && this.snappedEdge !== 'none') {
1595
+ this.maximize(); // Changed from applySnap to maximize as per user edit
1596
+ }
1597
+ // Reset global styles
1598
+ if (this.isDragging) {
1599
+ document.body.style.userSelect = '';
1600
+ document.body.style.cursor = '';
1601
+ }
1602
+ // Commit final position so next drag starts cleanly from the landed location
1603
+ if (this.isDragging && this.dragAnchored && this.dialogElement) {
1604
+ const rect = this.dialogElement.getBoundingClientRect();
1605
+ this.dialogElement.style.left = `${rect.left}px`;
1606
+ this.dialogElement.style.top = `${rect.top}px`;
1607
+ this.dialogElement.style.transform = 'none';
1608
+ }
1609
+ this.isDragging = false;
1610
+ this.dragAnchored = false;
1611
+ this.isResizing = false;
1612
+ this.snappedEdge = 'none';
1613
+ // Persistence
1614
+ if (this.remember)
1615
+ this.saveLayout();
1616
+ // Swipe to Close detection
1617
+ if (this.swipeToClose && !this.isResizing && !this.isDragging) {
1618
+ const dx = e.clientX - this.dragStartX;
1619
+ if (Math.abs(dx) > 150) { // Swipe threshold
1620
+ this.hide();
1621
+ }
1622
+ }
1623
+ document.removeEventListener('pointermove', this.handlePointerMove);
1624
+ document.removeEventListener('pointerup', this.handlePointerUp);
1625
+ };
1626
+ handleResizePointerDown = (e) => {
1627
+ if (!this.resizable || this.maximized)
1628
+ return;
1629
+ e.stopPropagation();
1630
+ e.preventDefault();
1631
+ this.isResizing = true;
1632
+ this.resizeStartX = e.clientX;
1633
+ this.resizeStartY = e.clientY;
1634
+ const rect = this.dialogElement.getBoundingClientRect();
1635
+ this.initialWidth = rect.width;
1636
+ this.initialHeight = rect.height;
1637
+ // Lock position
1638
+ this.dialogElement.style.margin = '0';
1639
+ this.dialogElement.style.position = 'fixed';
1640
+ this.dialogElement.style.left = `${rect.left}px`;
1641
+ this.dialogElement.style.top = `${rect.top}px`;
1642
+ // Capture pointer
1643
+ try {
1644
+ e.target.setPointerCapture(e.pointerId);
1645
+ }
1646
+ catch (ex) { }
1647
+ // Alternatively capture on dialog if handle is sm
1648
+ // try { this.dialogElement.setPointerCapture(e.pointerId); } catch(ex) {}
1649
+ document.addEventListener('pointermove', this.handlePointerMove);
1650
+ document.addEventListener('pointerup', this.handlePointerUp);
1651
+ };
1652
+ renderHeader(isPeek = false) {
1653
+ if (!this.showHeader)
1654
+ return null;
1655
+ // Provide default cancelText for session/terms types if not set
1656
+ let cancelLabel = this.cancelText;
1657
+ if (!cancelLabel) {
1658
+ if (this.type === 'session')
1659
+ cancelLabel = 'Logout';
1660
+ else if (this.type === 'terms')
1661
+ cancelLabel = 'Decline';
1662
+ else
1663
+ cancelLabel = this._resolveButtons().cancelLabel;
1664
+ }
1665
+ // Use local defaults for okLabel and dialogTitle
1666
+ let okLabel = this.okText;
1667
+ if (!okLabel) {
1668
+ okLabel = this._defaultOkText || this._resolveButtons().okLabel;
1669
+ }
1670
+ let dialogTitle = this.dialogTitle;
1671
+ if (!dialogTitle) {
1672
+ dialogTitle = this._defaultDialogTitle;
1673
+ }
1674
+ return (h("ui-dialog-header", { part: "header", dialogTitle: dialogTitle, subtitle: this.subtitle, showMinimize: !isPeek && this.showMinimize && !this.maximized && this.type !== 'messagebox', showMaximize: !isPeek && this.showMaximize && this.type !== 'messagebox', showClose: this.showClose, showMenu: !isPeek && (this.showMenu || (Array.isArray(this.menuItems) ? this.menuItems.length > 0 : !!this.menuItems)), menuItems: this.menuItems, menuIcon: this.menuIcon, menuTitle: this.menuTitle, titleTag: this.titleTag, iconPosition: this.iconPosition, type: this.type, variant: this.variant, status: this.status, icon: this.icon, avatar: this.avatar, onMinimize: (e) => { e.stopImmediatePropagation(); this.minimize(); }, onMaximize: (e) => { e.stopImmediatePropagation(); this.maximize(); }, onClose: (e) => { e.stopImmediatePropagation(); this.hide('close-btn'); }, onMenu: (e) => { e.stopImmediatePropagation(); this.handleMenu(e); }, iconLibrary: this.iconLibrary, style: this.headerColor ? { backgroundColor: this.headerColor, color: '#fff' } : {} }, (this.headerImage || this.el.querySelector('[slot="header-icon"]')) && (h("div", { slot: "icon", style: { display: 'flex', alignItems: 'center', gap: '8px' } }, this.headerImage && h("img", { src: this.headerImage, alt: "", style: { width: '20px', height: '20px', borderRadius: '4px' } }), h("slot", { name: "header-icon" }))), h("slot", { name: "title", slot: "title" }), h("slot", { name: "subtitle", slot: "subtitle" }), h("slot", { name: "header-actions", slot: "actions" }), h("slot", { name: "menu-list", slot: "menu-list" }), this.allowPopOut && !isPeek && (h("ui-button", { variant: "ghost", size: "sm", icon: "external-link", iconLibrary: this.iconLibrary, iconSize: "1.2em", ariaLabel: "Pop out Window", onClick: () => this.popOut(), slot: "actions", part: "popout-btn" }))));
1675
+ }
1676
+ renderStepper() {
1677
+ if (!this.steps || (typeof this.steps === 'number' ? this.steps <= 0 : this.steps.length <= 0))
1678
+ return null;
1679
+ return (h("div", { class: "ui-dialog-stepper" }, Array.from({ length: typeof this.steps === 'number' ? this.steps : this.steps.length }).map((_, i) => (h("div", { class: {
1680
+ 'step-item': true,
1681
+ 'active': this._currentStep === i + 1,
1682
+ 'completed': this._currentStep > i + 1
1683
+ } }, h("div", { class: "step-dot" }, i + 1), Array.isArray(this.steps) && h("div", { class: "step-label" }, this.steps[i]), i < (typeof this.steps === 'number' ? this.steps : this.steps.length) - 1 && h("div", { class: "step-line" }))))));
1684
+ }
1685
+ renderBodyContent() {
1686
+ return (h("div", { class: { 'ui-dialog-main-container': true, 'has-side-nav': this.layout === 'side-nav' } }, this.layout === 'side-nav' && (h("div", { class: "ui-dialog-side-nav" }, h("slot", { name: "side-nav" }))), h("div", { class: { 'ui-dialog-content-wrapper': true, 'type-messagebox': this.type === 'messagebox' }, part: "body", onScroll: this.handleTermsScroll }, this.type === 'session' && (h("div", { class: `ui-dialog-session-alert ${this._sessionTimedOut ? 'is-timeout' : ''}` }, h("ui-icon", { name: this._sessionTimedOut ? 'log-out' : 'clock', library: "lucide" }), this._sessionTimedOut ? (h("div", { class: "timeout-content" }, h("p", { style: { fontWeight: '600', color: '#ef4444', margin: '0 0 8px' } }, "Due to inactivity, you have been logged out."), h("p", { style: { fontSize: '13px', color: '#666', margin: '0' } }, "Please log in again to continue working on your tasks."))) : (h("span", null, "Session expiring in ", h("strong", null, this._sessionTimeLeft, "s"))))), h("slot", { name: "body" }, h("slot", null), this.type === 'prompt' && (h("div", { class: "ui-dialog-prompt-container" }, h("ui-input", { type: this.promptType, name: "prompt", class: "ui-dialog-prompt-input", value: this.promptValue, placeholder: this.promptPlaceholder, label: this.promptLabel, onInputChange: (e) => {
1687
+ this.promptValue = e.detail;
1688
+ this.returnValue = this.promptValue;
1689
+ }, autofocus: true, fullWidth: true })))))));
1690
+ }
1691
+ renderFooterContent() {
1692
+ if (!this.showFooter)
1693
+ return null;
1694
+ const { okLabel, cancelLabel, resetLabel } = this._resolveButtons();
1695
+ // If no buttons at all and no slots, skip the footer entirely
1696
+ const hasButtons = okLabel || cancelLabel || resetLabel;
1697
+ const hasSlots = !!this.confirmationText;
1698
+ if (!hasButtons && !hasSlots)
1699
+ return null;
1700
+ return (h("ui-dialog-footer", { class: "ui-dialog-footer-wrapper", part: "footer" }, h("div", { class: "footer-left" }, this.confirmationText && (h("div", { class: "ui-dialog-confirmation" }, h("ui-checkbox", { class: "confirmation-checkbox", checked: this.isConfirmed, label: this.confirmationText, onCheckboxChange: (e) => {
1701
+ this.isConfirmed = e.detail.checked;
1702
+ } }))), h("slot", { name: "footer-left" })), h("div", { class: "footer-right", part: "footer-actions" }, h("slot", { name: "actions" }, resetLabel && (h("ui-button", { variant: "outline", size: "md", onButtonClick: this.handleReset }, resetLabel)), cancelLabel && (h("ui-button", { variant: "outline", size: "md", onButtonClick: this.handleCancel, disabled: this.cancelDisabled }, cancelLabel)), okLabel && (h("ui-button", { variant: (this.status === 'default' || this.status === 'info') ? 'primary' : this.status, size: "md", onButtonClick: this._sessionTimedOut ? () => window.location.href = '/login' : this.handleOk, loading: this.okLoading, disabled: this.okDisabled || (!!this.confirmationText && !this.isConfirmed) || (this.type === 'terms' && !this._termsScrolled) }, this._sessionTimedOut ? "Go to Login" : okLabel))), h("div", { class: "footer-custom-slot" }, h("slot", { name: "footer" })))));
1703
+ }
1704
+ render() {
1705
+ if (!this.open && !this.isClosing && !this.keepMounted)
1706
+ return null;
1707
+ // ── Minimized tray render ──────────────────────────────────────────────
1708
+ if (this.minimized && this.open && !this._dockPeek) {
1709
+ return (h(Host, { class: { 'minimized': true, 'open': this.open } }, h("div", { class: `ui-tray-tab status-${this.status} ${this.variant === 'glass' ? 'variant-glass' : ''}`, onClick: () => this.restore(), onDblClick: () => this.restore(), title: `Click to Restore ${this.dialogTitle}`, style: {
1710
+ color: '#ffffff',
1711
+ display: 'flex',
1712
+ alignItems: 'center',
1713
+ justifyContent: 'center',
1714
+ padding: '0 8px',
1715
+ gap: '12px',
1716
+ height: '100%',
1717
+ width: '100%',
1718
+ minWidth: '100px',
1719
+ fontWeight: '600'
1720
+ } }, this.icon && h("ui-icon", { name: this.icon, color: "white", library: this.iconLibrary, size: "1rem", style: { flexShrink: '0' } }), h("span", { class: "tab-label", style: { color: '#ffffff', flex: '0 1 auto', whiteSpace: 'nowrap' } }, this.dockLabel || this.dialogTitle || 'Dialog'), h("ui-button", { variant: "ghost", size: "sm", class: "ui-tray-btn", icon: "x", iconLibrary: "lucide", iconSize: "14px", ariaLabel: "Close", onClick: (e) => { e.stopPropagation(); this.hide(); } }))));
1721
+ }
1722
+ const isHidden = !this.open && !this.isClosing && this.keepMounted;
1723
+ // Use a local variable for effective size (do not mutate prop)
1724
+ const effectiveSize = this.type === 'terms' && this.size === 'md' ? 'lg' : this.size;
1725
+ const dialogClasses = {
1726
+ 'ui-dialog-box': true,
1727
+ 'closing': this.isClosing,
1728
+ 'maximized': this.maximized,
1729
+ 'minimized': this.minimized,
1730
+ [`variant-${this.variant}`]: true,
1731
+ [`status-${this.status}`]: this.status !== 'default',
1732
+ [`size-${effectiveSize}`]: effectiveSize !== 'custom',
1733
+ 'scroll-paper': this.scrollArea === 'paper',
1734
+ 'scroll-body': this.scrollArea === 'body',
1735
+ [`animation-${this.animation}`]: true,
1736
+ 'fullscreen-mobile': this.fullscreenOnMobile,
1737
+ 'hidden-mounted': isHidden,
1738
+ 'draggable': this.isDraggable,
1739
+ 'is-dragging': this.isDragging,
1740
+ 'loading-active': this.loading,
1741
+ 'is-bordered': this.bordered,
1742
+ 'is-nested': this.isNested,
1743
+ 'debug-mode': this.debug,
1744
+ 'glass-effect': this.glass || this.variant === 'glass',
1745
+ [`type-${this.type}`]: true,
1746
+ [`density-${this.density}`]: true,
1747
+ 'shake': this._isShaking
1748
+ };
1749
+ const dialogStyles = {
1750
+ '--dialog-bg': this.backgroundColor || 'white',
1751
+ backgroundColor: 'var(--dialog-bg, #ffffff)'
1752
+ };
1753
+ if (!this.maximized) {
1754
+ const isDefaultWidth = this.width === '500px';
1755
+ const isDefaultHeight = this.height === 'auto';
1756
+ if (effectiveSize === 'custom' || !isDefaultWidth || !isDefaultHeight || this._restoredLayout) {
1757
+ if (this.width)
1758
+ dialogStyles.width = this.width;
1759
+ if (this.height && this.scrollArea !== 'body')
1760
+ dialogStyles.height = this.height;
1761
+ }
1762
+ if (this._restoredLayout) {
1763
+ dialogStyles.position = 'fixed';
1764
+ dialogStyles.margin = '0';
1765
+ dialogStyles.left = `${this._restoredLayout.left}px`;
1766
+ dialogStyles.top = `${this._restoredLayout.top}px`;
1767
+ }
1768
+ }
1769
+ const dialogId = this.el.id || `dialog-idx-${Math.random().toString(36).substr(2, 5)}`;
1770
+ const posClass = `position-${this.position}`;
1771
+ return (h(Host, { class: { 'open': this.open, 'minimized': this.minimized, 'dock-peek': this._dockPeek } }, this.minimized && this._dockPeek && (h("div", { class: `ui-peek-panel variant-${this.variant} status-${this.status}`, onClick: (e) => e.stopPropagation() }, this.renderHeader(true), h("div", { class: "ui-dialog-content-wrapper" }, h("slot", { name: "body" }, h("slot", null))))), (!this.minimized || this._dockPeek) && (h("div", { class: `ui-dialog-backdrop ${this.backdrop === 'none' ? 'backdrop-none' : ''} ${this.scrollArea === 'body' ? 'scroll-body-active' : ''} ${posClass} ${this.isClosing ? 'closing' : ''} ${this.glass ? 'glass-backdrop' : ''} ${isHidden ? 'hidden-mounted' : ''}`, onClick: this.handleBackdropClick, part: "backdrop", ref: (el) => (this.backdropElement = el), style: { zIndex: `${this.zIndex}` } }, h("div", { ref: (el) => (this.dialogElement = el), class: dialogClasses, style: dialogStyles, part: "panel", onPointerDown: this.handlePointerDown, tabIndex: -1, role: "dialog", "aria-modal": "true", id: dialogId }, h("div", { class: "ui-dialog-box-container", onPointerUp: this.handlePointerUp }, this.renderHeader(), this.showHeader && h("div", { class: "ui-dialog-divider-line" }), this.progress >= 0 && (h("div", { class: "ui-dialog-progress-container", title: `Progress: ${this.progress}%` }, h("div", { class: "ui-dialog-progress-bar", style: { width: `${this.progress}%` } }))), this.renderStepper(), this.showToolbar && (h("div", { class: "ui-dialog-toolbar" }, h("slot", { name: "toolbar" }))), this.renderBodyContent(), this.showStatusBar && (h("div", { class: "ui-dialog-status-bar" }, h("slot", { name: "status-bar" }))), this.showFooter && h("div", { class: "ui-dialog-divider-line" }), this.renderFooterContent(), this.resizable && !this.maximized && (h("div", { class: "resize-handle", onPointerDown: this.handleResizePointerDown })), this.subOverlay?.visible && (h("div", { class: "ui-dialog-sub-overlay" }, h("div", { class: "sub-overlay-card" }, h("h4", null, this.subOverlay.title), h("p", null, this.subOverlay.message), h("div", { class: "sub-overlay-actions" }, h("ui-button", { variant: "outline", onButtonClick: () => this.subOverlay = null }, "Cancel"), h("ui-button", { variant: "primary", onButtonClick: () => { this.subOverlay.onConfirm(); this.subOverlay = null; } }, "Confirm")))))))))));
1772
+ }
1773
+ triggerConfetti() {
1774
+ const count = 200;
1775
+ const defaults = { origin: { y: 0.7 }, zIndex: this.zIndex + 10 };
1776
+ function fire(particleRatio, opts) {
1777
+ if (window.confetti) {
1778
+ window.confetti(Object.assign({}, defaults, opts, {
1779
+ particleCount: Math.floor(count * particleRatio)
1780
+ }));
1781
+ }
1782
+ }
1783
+ fire(0.25, { spread: 26, startVelocity: 55 });
1784
+ fire(0.2, { spread: 60 });
1785
+ fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8 });
1786
+ fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2 });
1787
+ fire(0.1, { spread: 120, startVelocity: 45 });
1788
+ }
1789
+ static get watchers() { return {
1790
+ "currentStep": [{
1791
+ "currentStepChanged": 0
1792
+ }],
1793
+ "minimized": [{
1794
+ "minimizedChanged": 0
1795
+ }],
1796
+ "_dockPeek": [{
1797
+ "onDockPeekChange": 0
1798
+ }],
1799
+ "open": [{
1800
+ "openChanged": 0
1801
+ }]
1802
+ }; }
1803
+ };
1804
+ DialogBox.style = dialogBoxCss() + dialogTrayCss();
1805
+
1806
+ export { DialogBox as ui_dialog_box };