atomicuilibrary 0.1.0 → 0.1.3

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 (618) hide show
  1. package/dist/cjs/category-section.cjs.entry.js +2 -2
  2. package/dist/cjs/dom-BvBb0kmW.js +267 -0
  3. package/dist/cjs/exploration-project-tailwind.cjs.js +2 -2
  4. package/dist/cjs/{index-ClkOYpT8.js → index-C32cWsm5.js} +1 -1
  5. package/dist/cjs/layout-manager.cjs.entry.js +3 -3
  6. package/dist/cjs/library-card.cjs.entry.js +2 -2
  7. package/dist/cjs/lm-container_2.cjs.entry.js +2 -2
  8. package/dist/cjs/lm-panel_3.cjs.entry.js +4 -4
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/my-component.cjs.entry.js +1 -1
  11. package/dist/cjs/my-step.cjs.entry.js +2 -2
  12. package/dist/cjs/nav-bar.cjs.entry.js +4 -4
  13. package/dist/cjs/smart-step.cjs.entry.js +3 -3
  14. package/dist/cjs/timeline-item.cjs.entry.js +2 -2
  15. package/dist/cjs/ui-accordion_11.cjs.entry.js +132 -50
  16. package/dist/cjs/ui-advanced-data-table.cjs.entry.js +2 -2
  17. package/dist/cjs/ui-anchor.cjs.entry.js +2 -2
  18. package/dist/cjs/ui-animate-on-scroll.cjs.entry.js +3 -3
  19. package/dist/cjs/ui-aside-panel.cjs.entry.js +10 -11
  20. package/dist/cjs/ui-avatar-group_5.cjs.entry.js +1694 -0
  21. package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +3 -3
  22. package/dist/cjs/ui-breadcrumb.cjs.entry.js +1 -1
  23. package/dist/cjs/ui-callout-banner.cjs.entry.js +2 -2
  24. package/dist/cjs/ui-card.cjs.entry.js +4 -3
  25. package/dist/cjs/ui-carousel.cjs.entry.js +1 -1
  26. package/dist/cjs/ui-checkbox.cjs.entry.js +3 -3
  27. package/dist/cjs/ui-code-editor.cjs.entry.js +2 -2
  28. package/dist/cjs/ui-code-preview.cjs.entry.js +2 -2
  29. package/dist/cjs/ui-color-picker.cjs.entry.js +256 -22
  30. package/dist/cjs/ui-command-palette.cjs.entry.js +1 -1
  31. package/dist/cjs/ui-dialog-box.cjs.entry.js +85 -11
  32. package/dist/cjs/ui-dialog-content.cjs.entry.js +1 -1
  33. package/dist/cjs/ui-dialog-footer_2.cjs.entry.js +1 -1
  34. package/dist/cjs/ui-divider.cjs.entry.js +1 -1
  35. package/dist/cjs/ui-dock-host.cjs.entry.js +4 -4
  36. package/dist/cjs/ui-dock.cjs.entry.js +2 -2
  37. package/dist/cjs/ui-drag-drop.cjs.entry.js +2 -2
  38. package/dist/cjs/ui-dropdown_2.cjs.entry.js +104 -34
  39. package/dist/cjs/ui-empty-state.cjs.entry.js +2 -2
  40. package/dist/cjs/ui-fab-item.cjs.entry.js +2 -2
  41. package/dist/cjs/ui-fab.cjs.entry.js +4 -4
  42. package/dist/cjs/ui-file-upload.cjs.entry.js +143 -44
  43. package/dist/cjs/ui-horizontal-nav.cjs.entry.js +2 -2
  44. package/dist/cjs/ui-knob.cjs.entry.js +1 -1
  45. package/dist/cjs/ui-label.cjs.entry.js +473 -0
  46. package/dist/cjs/ui-library.cjs.entry.js +2 -2
  47. package/dist/cjs/ui-list-group_2.cjs.entry.js +349 -60
  48. package/dist/cjs/ui-list.cjs.entry.js +76 -42
  49. package/dist/cjs/ui-masonry.cjs.entry.js +1 -1
  50. package/dist/cjs/ui-meter-group.cjs.entry.js +5 -4
  51. package/dist/cjs/ui-navigation-item.cjs.entry.js +5 -5
  52. package/dist/cjs/ui-number-input.cjs.entry.js +7 -3
  53. package/dist/cjs/ui-otp-input.cjs.entry.js +5 -5
  54. package/dist/cjs/{ui-pagination_4.cjs.entry.js → ui-pagination_3.cjs.entry.js} +35 -506
  55. package/dist/cjs/ui-panel.cjs.entry.js +1 -1
  56. package/dist/cjs/ui-pattern-input.cjs.entry.js +46 -11
  57. package/dist/cjs/ui-progress.cjs.entry.js +66 -9
  58. package/dist/cjs/ui-range-slider.cjs.entry.js +2 -2
  59. package/dist/cjs/ui-resizable-panel.cjs.entry.js +2 -2
  60. package/dist/cjs/ui-scroll-top.cjs.entry.js +1 -1
  61. package/dist/cjs/ui-smart-context-menu.cjs.entry.js +1 -1
  62. package/dist/cjs/ui-smart-stepper.cjs.entry.js +2 -2
  63. package/dist/cjs/ui-snackbar.cjs.entry.js +1 -1
  64. package/dist/cjs/ui-speed-dial.cjs.entry.js +1 -1
  65. package/dist/cjs/ui-speedometer.cjs.entry.js +28 -17
  66. package/dist/cjs/ui-splitter.cjs.entry.js +1 -1
  67. package/dist/cjs/ui-step.cjs.entry.js +2 -2
  68. package/dist/cjs/ui-stepper.cjs.entry.js +1 -1
  69. package/dist/cjs/ui-switch.cjs.entry.js +14 -13
  70. package/dist/cjs/ui-tabs.cjs.entry.js +2 -2
  71. package/dist/cjs/ui-tag.cjs.entry.js +58 -13
  72. package/dist/cjs/ui-timeline.cjs.entry.js +10 -2
  73. package/dist/cjs/ui-timer.cjs.entry.js +2 -2
  74. package/dist/cjs/ui-toolbar.cjs.entry.js +2 -2
  75. package/dist/cjs/ui-tooltip.cjs.entry.js +4 -4
  76. package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
  77. package/dist/cjs/ui-transfer-list.cjs.entry.js +6 -6
  78. package/dist/cjs/ui-tree.cjs.entry.js +30 -15
  79. package/dist/cjs/ui-workspace-manager.cjs.entry.js +2 -2
  80. package/dist/collection/assets/js/component-config.js +1 -0
  81. package/dist/collection/assets/js/demo-loader.js +2 -0
  82. package/dist/collection/assets/js/demos/about-demo.js +13 -13
  83. package/dist/collection/assets/js/demos/accordion-demo.js +66 -66
  84. package/dist/collection/assets/js/demos/advanced-data-table-demo.js +102 -102
  85. package/dist/collection/assets/js/demos/anchor-demo.js +27 -28
  86. package/dist/collection/assets/js/demos/animate-on-scroll-demo.js +12 -12
  87. package/dist/collection/assets/js/demos/aside-panel-demo.js +51 -51
  88. package/dist/collection/assets/js/demos/avatar-demo.js +433 -95
  89. package/dist/collection/assets/js/demos/badge-demo.js +51 -52
  90. package/dist/collection/assets/js/demos/breadcrumb-demo.js +7 -7
  91. package/dist/collection/assets/js/demos/button-demo.js +117 -107
  92. package/dist/collection/assets/js/demos/button-toggle-demo.js +199 -96
  93. package/dist/collection/assets/js/demos/callout-banner-demo.js +23 -23
  94. package/dist/collection/assets/js/demos/card-demo.js +23 -22
  95. package/dist/collection/assets/js/demos/carousel-demo.js +632 -360
  96. package/dist/collection/assets/js/demos/checkbox-demo.js +124 -7
  97. package/dist/collection/assets/js/demos/color-picker-demo.js +394 -100
  98. package/dist/collection/assets/js/demos/command-palette-demo.js +182 -65
  99. package/dist/collection/assets/js/demos/complex-form-demo.js +5 -5
  100. package/dist/collection/assets/js/demos/context-menu-demo.js +43 -43
  101. package/dist/collection/assets/js/demos/dialog-demo-temp.js +3 -3
  102. package/dist/collection/assets/js/demos/dialog-demo.js +336 -230
  103. package/dist/collection/assets/js/demos/divider-demo.js +59 -62
  104. package/dist/collection/assets/js/demos/dock-demo.js +12 -12
  105. package/dist/collection/assets/js/demos/dock-host-init.js +31 -31
  106. package/dist/collection/assets/js/demos/documentation-demo.js +34 -34
  107. package/dist/collection/assets/js/demos/drag-drop-demo.js +2 -2
  108. package/dist/collection/assets/js/demos/dropdown-demo.js +140 -136
  109. package/dist/collection/assets/js/demos/dropdown-subtitle-demo.js +2 -2
  110. package/dist/collection/assets/js/demos/empty-state-demo.js +294 -78
  111. package/dist/collection/assets/js/demos/fab-demo.js +95 -11
  112. package/dist/collection/assets/js/demos/file-upload-demo.js +641 -171
  113. package/dist/collection/assets/js/demos/home-components.js +2 -2
  114. package/dist/collection/assets/js/demos/horizontal-nav-demo.js +6 -6
  115. package/dist/collection/assets/js/demos/icon-demo.js +17 -17
  116. package/dist/collection/assets/js/demos/input-demo.js +147 -143
  117. package/dist/collection/assets/js/demos/knob-demo.js +29 -30
  118. package/dist/collection/assets/js/demos/label-demo.js +697 -0
  119. package/dist/collection/assets/js/demos/layout-manager-demo.js +55 -55
  120. package/dist/collection/assets/js/demos/list-demo.js +185 -122
  121. package/dist/collection/assets/js/demos/loader-demo.js +48 -48
  122. package/dist/collection/assets/js/demos/masonry-demo.js +568 -140
  123. package/dist/collection/assets/js/demos/meter-group-demo.js +14 -16
  124. package/dist/collection/assets/js/demos/multi-level-context-menu-demo.js +25 -25
  125. package/dist/collection/assets/js/demos/my-profile-demo.js +27 -27
  126. package/dist/collection/assets/js/demos/nav-bar-demo.js +1 -1
  127. package/dist/collection/assets/js/demos/number-input-demo.js +262 -211
  128. package/dist/collection/assets/js/demos/pagination-demo.js +29 -29
  129. package/dist/collection/assets/js/demos/panel-demo.js +18 -25
  130. package/dist/collection/assets/js/demos/pattern-input-demo.js +278 -40
  131. package/dist/collection/assets/js/demos/popover-demo.js +240 -149
  132. package/dist/collection/assets/js/demos/progress-demo.js +170 -156
  133. package/dist/collection/assets/js/demos/radio-demo.js +73 -12
  134. package/dist/collection/assets/js/demos/range-slider-demo.js +33 -33
  135. package/dist/collection/assets/js/demos/rating-demo.js +19 -19
  136. package/dist/collection/assets/js/demos/scroll-top-demo.js +8 -9
  137. package/dist/collection/assets/js/demos/skeleton-demo.js +110 -52
  138. package/dist/collection/assets/js/demos/skeleton-performance-demo.js +2 -2
  139. package/dist/collection/assets/js/demos/smart-dialog-demo.js +12 -12
  140. package/dist/collection/assets/js/demos/smart-menu-demo.js +17 -17
  141. package/dist/collection/assets/js/demos/snackbar-demo.js +53 -53
  142. package/dist/collection/assets/js/demos/speed-dial-demo.js +14 -14
  143. package/dist/collection/assets/js/demos/speedometer-demo.js +40 -32
  144. package/dist/collection/assets/js/demos/split-button-demo.js +2 -2
  145. package/dist/collection/assets/js/demos/splitter-demo.js +14 -14
  146. package/dist/collection/assets/js/demos/stack-demo.js +27 -27
  147. package/dist/collection/assets/js/demos/stepper-demo.js +49 -49
  148. package/dist/collection/assets/js/demos/switch-demo.js +561 -125
  149. package/dist/collection/assets/js/demos/tabs-demo.js +22 -22
  150. package/dist/collection/assets/js/demos/tag-demo.js +62 -62
  151. package/dist/collection/assets/js/demos/theme-selector-demo.js +27 -27
  152. package/dist/collection/assets/js/demos/timeline-demo.js +10 -10
  153. package/dist/collection/assets/js/demos/timeline-playground.js +2 -2
  154. package/dist/collection/assets/js/demos/timer-demo.js +10 -10
  155. package/dist/collection/assets/js/demos/toolbar-demo.js +17 -17
  156. package/dist/collection/assets/js/demos/tooltip-demo.js +92 -90
  157. package/dist/collection/assets/js/demos/top-bar-demo.js +6 -6
  158. package/dist/collection/assets/js/demos/transfer-list-demo.js +20 -20
  159. package/dist/collection/assets/js/demos/tree-demo.js +50 -66
  160. package/dist/collection/assets/js/demos/workspace-manager-demo.js +20 -20
  161. package/dist/collection/collection-manifest.json +1 -2
  162. package/dist/collection/components/accordion/accordion.css +275 -9
  163. package/dist/collection/components/accordion/accordion.js +7 -6
  164. package/dist/collection/components/advanced-data-table/advanced-data-table.css +5 -5
  165. package/dist/collection/components/advanced-data-table/advanced-data-table.js +2 -2
  166. package/dist/collection/components/anchor/anchor.css +1 -0
  167. package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +2 -2
  168. package/dist/collection/components/aside-panel/aside-panel.css +2 -2
  169. package/dist/collection/components/aside-panel/aside-panel.js +10 -11
  170. package/dist/collection/components/avatar/avatar.css +6 -6
  171. package/dist/collection/components/avatar/avatar.js +63 -11
  172. package/dist/collection/components/badge/badge.css +27 -17
  173. package/dist/collection/components/badge/badge.js +6 -3
  174. package/dist/collection/components/breadcrumb/breadcrumb-item.js +2 -2
  175. package/dist/collection/components/button/button.css +1 -0
  176. package/dist/collection/components/button/button.js +3 -3
  177. package/dist/collection/components/button-toggle/button-toggle.js +2 -2
  178. package/dist/collection/components/button-toggle-group/button-toggle-group.css +161 -14
  179. package/dist/collection/components/button-toggle-group/button-toggle-group.js +2 -2
  180. package/dist/collection/components/callout-banner/callout-banner.css +75 -0
  181. package/dist/collection/components/callout-banner/callout-banner.js +1 -1
  182. package/dist/collection/components/card/card.css +221 -9
  183. package/dist/collection/components/card/card.js +3 -2
  184. package/dist/collection/components/checkbox/checkbox.js +3 -3
  185. package/dist/collection/components/code-editor/code-editor.js +1 -1
  186. package/dist/collection/components/code-preview/ui-code-preview.js +1 -1
  187. package/dist/collection/components/color-picker/color-picker.css +110 -6
  188. package/dist/collection/components/color-picker/color-picker.js +302 -26
  189. package/dist/collection/components/context-menu/context-menu.css +9 -9
  190. package/dist/collection/components/dialog-box/dialog-box.js +116 -14
  191. package/dist/collection/components/dialog-header/dialog-header.js +1 -1
  192. package/dist/collection/components/dock/dock.css +116 -3
  193. package/dist/collection/components/dock-host/ui-dock-host.js +3 -3
  194. package/dist/collection/components/drag-drop/drag-drop.js +1 -1
  195. package/dist/collection/components/dropdown/dropdown.css +101 -8
  196. package/dist/collection/components/dropdown/dropdown.js +94 -28
  197. package/dist/collection/components/empty-state/empty-state.js +1 -1
  198. package/dist/collection/components/fab/fab.css +87 -15
  199. package/dist/collection/components/fab/fab.js +3 -3
  200. package/dist/collection/components/fab-item/fab-item.js +1 -1
  201. package/dist/collection/components/file-upload/file-upload.css +1362 -31
  202. package/dist/collection/components/file-upload/file-upload.js +171 -50
  203. package/dist/collection/components/horizontal-nav/horizontal-nav.css +9 -9
  204. package/dist/collection/components/horizontal-nav/horizontal-nav.js +2 -2
  205. package/dist/collection/components/icon/icon.js +1 -1
  206. package/dist/collection/components/input/input.css +9 -0
  207. package/dist/collection/components/input/input.js +20 -9
  208. package/dist/collection/components/label/label.css +583 -0
  209. package/dist/collection/components/label/label.js +1669 -0
  210. package/dist/collection/components/layout-manager/layout-manager.js +1 -1
  211. package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +1 -1
  212. package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +1 -1
  213. package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +1 -1
  214. package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +1 -1
  215. package/dist/collection/components/library/category-section.js +1 -1
  216. package/dist/collection/components/library/library-card.js +1 -1
  217. package/dist/collection/components/library/library.js +1 -1
  218. package/dist/collection/components/list/list.css +46 -5
  219. package/dist/collection/components/list/list.js +76 -42
  220. package/dist/collection/components/list-group/list-group.css +0 -2
  221. package/dist/collection/components/list-group/list-group.js +11 -5
  222. package/dist/collection/components/list-item/list-item.css +403 -131
  223. package/dist/collection/components/list-item/list-item.js +345 -61
  224. package/dist/collection/components/loader/loader.css +1 -1
  225. package/dist/collection/components/loader/loader.js +2 -2
  226. package/dist/collection/components/meter-group/meter-group.css +5 -0
  227. package/dist/collection/components/meter-group/meter-group.js +3 -2
  228. package/dist/collection/components/my-step/my-step.js +1 -1
  229. package/dist/collection/components/nav-bar/nav-bar.css +4 -4
  230. package/dist/collection/components/nav-bar/nav-bar.js +6 -6
  231. package/dist/collection/components/number-input/number-input.js +6 -2
  232. package/dist/collection/components/otp-input/otp-input.css +10 -0
  233. package/dist/collection/components/otp-input/otp-input.js +3 -3
  234. package/dist/collection/components/pagination/pagination.js +1 -1
  235. package/dist/collection/components/pattern-input/pattern-input.css +0 -1
  236. package/dist/collection/components/pattern-input/pattern-input.js +44 -9
  237. package/dist/collection/components/popover/popover.css +35 -7
  238. package/dist/collection/components/popover/popover.js +64 -9
  239. package/dist/collection/components/progress/progress.css +176 -32
  240. package/dist/collection/components/progress/progress.js +66 -8
  241. package/dist/collection/components/radio/radio.css +2 -0
  242. package/dist/collection/components/radio/radio.js +2 -2
  243. package/dist/collection/components/range-slider/range-slider.css +284 -31
  244. package/dist/collection/components/range-slider/range-slider.js +5 -5
  245. package/dist/collection/components/rating/rating.css +151 -65
  246. package/dist/collection/components/rating/rating.js +31 -13
  247. package/dist/collection/components/resizable-panel/resizable-panel.js +1 -1
  248. package/dist/collection/components/skeleton/skeleton-loader.css +144 -44
  249. package/dist/collection/components/skeleton/skeleton-loader.js +11 -7
  250. package/dist/collection/components/smart-stepper/smart-step.js +2 -2
  251. package/dist/collection/components/smart-stepper/smart-stepper.js +1 -1
  252. package/dist/collection/components/speedometer/speedometer.css +26 -6
  253. package/dist/collection/components/speedometer/speedometer.js +26 -15
  254. package/dist/collection/components/stack/stack.js +2 -2
  255. package/dist/collection/components/step/step.js +1 -1
  256. package/dist/collection/components/stepper/stepper.js +1 -1
  257. package/dist/collection/components/switch/switch.css +367 -8
  258. package/dist/collection/components/switch/switch.js +13 -12
  259. package/dist/collection/components/tag/tag.css +38 -12
  260. package/dist/collection/components/tag/tag.js +58 -13
  261. package/dist/collection/components/tag-group/tag-group.css +0 -1
  262. package/dist/collection/components/tag-group/tag-group.js +3 -3
  263. package/dist/collection/components/timeline/timeline.css +380 -317
  264. package/dist/collection/components/timeline/timeline.js +8 -0
  265. package/dist/collection/components/timeline-item/timeline-item.js +1 -1
  266. package/dist/collection/components/timer/timer.js +1 -1
  267. package/dist/collection/components/toggle-group/toggle-group.css +7 -3
  268. package/dist/collection/components/toggle-group/toggle-group.js +7 -3
  269. package/dist/collection/components/toolbar/toolbar.js +1 -1
  270. package/dist/collection/components/tooltip/tooltip.js +4 -4
  271. package/dist/collection/components/top-bar/top-bar.js +2 -2
  272. package/dist/collection/components/transfer-list/transfer-list.css +13 -13
  273. package/dist/collection/components/transfer-list/transfer-list.js +4 -4
  274. package/dist/collection/components/tree/tree.css +35 -21
  275. package/dist/collection/components/tree/tree.js +28 -13
  276. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +34 -16
  277. package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +46 -11
  278. package/dist/collection/components/ui-navigation-bar/navigation-item.css +7 -7
  279. package/dist/collection/components/ui-navigation-bar/navigation-item.js +3 -3
  280. package/dist/collection/utils/dom.js +151 -151
  281. package/dist/components/avatar-group.js +1 -1
  282. package/dist/components/avatar.js +1 -1
  283. package/dist/components/badge.js +1 -1
  284. package/dist/components/button-toggle.js +1 -1
  285. package/dist/components/button.js +1 -0
  286. package/dist/components/category-section2.js +1 -1
  287. package/dist/components/checkbox.js +1 -1
  288. package/dist/components/context-menu.js +1 -1
  289. package/dist/components/dialog-header.js +1 -1
  290. package/dist/components/dom.js +1 -1
  291. package/dist/components/dropdown.js +1 -1
  292. package/dist/components/icon.js +2 -2
  293. package/dist/components/input.js +1 -1
  294. package/dist/components/layout-manager.js +1 -1
  295. package/dist/components/library-card2.js +1 -1
  296. package/dist/components/list-group.js +1 -1
  297. package/dist/components/list-item.js +1 -1
  298. package/dist/components/lm-container2.js +1 -1
  299. package/dist/components/lm-floating-window2.js +1 -1
  300. package/dist/components/lm-panel2.js +1 -1
  301. package/dist/components/lm-splitter2.js +1 -1
  302. package/dist/components/lm-tabs2.js +1 -1
  303. package/dist/components/loader.js +1 -1
  304. package/dist/components/my-step.js +1 -1
  305. package/dist/components/nav-bar.js +1 -1
  306. package/dist/components/pagination.js +1 -1
  307. package/dist/components/popover.js +1 -0
  308. package/dist/components/radio.js +1 -1
  309. package/dist/components/range-slider.js +1 -1
  310. package/dist/components/rating.js +1 -1
  311. package/dist/components/resizable-panel.js +1 -1
  312. package/dist/components/skeleton-loader.js +1 -1
  313. package/dist/components/smart-step.js +1 -1
  314. package/dist/components/stack.js +1 -1
  315. package/dist/components/switch.js +1 -1
  316. package/dist/components/tag-group.js +1 -1
  317. package/dist/components/tag.js +1 -1
  318. package/dist/components/timeline-item.js +1 -1
  319. package/dist/components/toggle-group.js +1 -1
  320. package/dist/components/tooltip.js +1 -1
  321. package/dist/components/ui-accordion.js +1 -1
  322. package/dist/components/ui-advanced-data-table.js +1 -1
  323. package/dist/components/ui-anchor.js +1 -1
  324. package/dist/components/ui-animate-on-scroll.js +1 -1
  325. package/dist/components/ui-aside-panel.js +1 -1
  326. package/dist/components/ui-badge.js +1 -1
  327. package/dist/components/ui-breadcrumb-item.js +1 -1
  328. package/dist/components/ui-breadcrumb.js +1 -1
  329. package/dist/components/ui-button-toggle-group.js +1 -1
  330. package/dist/components/ui-button.js +1 -1
  331. package/dist/components/ui-callout-banner.js +1 -1
  332. package/dist/components/ui-card.js +1 -1
  333. package/dist/components/ui-carousel.js +1 -1
  334. package/dist/components/ui-code-editor.js +1 -1
  335. package/dist/components/ui-code-preview.js +1 -1
  336. package/dist/components/ui-color-picker.js +1 -1
  337. package/dist/components/ui-command-palette.js +1 -1
  338. package/dist/components/ui-dialog-box.js +1 -1
  339. package/dist/components/ui-dock-host.js +1 -1
  340. package/dist/components/ui-dock.js +1 -1
  341. package/dist/components/ui-drag-drop.js +1 -1
  342. package/dist/components/ui-empty-state.js +1 -1
  343. package/dist/components/ui-fab-item.js +1 -1
  344. package/dist/components/ui-fab.js +1 -1
  345. package/dist/components/ui-file-upload.js +1 -1
  346. package/dist/components/ui-horizontal-nav.js +1 -1
  347. package/dist/components/ui-knob.js +1 -1
  348. package/dist/components/{ui-color-controller.d.ts → ui-label.d.ts} +4 -4
  349. package/dist/components/ui-label.js +1 -0
  350. package/dist/components/ui-library.js +1 -1
  351. package/dist/components/ui-list.js +1 -1
  352. package/dist/components/ui-masonry.js +1 -1
  353. package/dist/components/ui-meter-group.js +1 -1
  354. package/dist/components/ui-navigation-bar.js +1 -1
  355. package/dist/components/ui-navigation-item.js +1 -1
  356. package/dist/components/ui-number-input.js +1 -1
  357. package/dist/components/ui-otp-input.js +1 -1
  358. package/dist/components/ui-panel.js +1 -1
  359. package/dist/components/ui-pattern-input.js +1 -1
  360. package/dist/components/ui-popover.js +1 -1
  361. package/dist/components/ui-progress.js +1 -1
  362. package/dist/components/ui-scroll-top.js +1 -1
  363. package/dist/components/ui-smart-stepper.js +1 -1
  364. package/dist/components/ui-snackbar.js +1 -1
  365. package/dist/components/ui-speed-dial.js +1 -1
  366. package/dist/components/ui-speedometer.js +1 -1
  367. package/dist/components/ui-splitter.js +1 -1
  368. package/dist/components/ui-step.js +1 -1
  369. package/dist/components/ui-stepper.js +1 -1
  370. package/dist/components/ui-tabs.js +1 -1
  371. package/dist/components/ui-timeline.js +1 -1
  372. package/dist/components/ui-timer.js +1 -1
  373. package/dist/components/ui-toolbar.js +1 -1
  374. package/dist/components/ui-top-bar.js +1 -1
  375. package/dist/components/ui-transfer-list.js +1 -1
  376. package/dist/components/ui-tree.js +1 -1
  377. package/dist/components/ui-workspace-manager.js +1 -1
  378. package/dist/esm/category-section.entry.js +2 -2
  379. package/dist/esm/dom-DFBTWhGw.js +262 -0
  380. package/dist/esm/exploration-project-tailwind.js +3 -3
  381. package/dist/esm/{index-DUsoYu9r.js → index-Dqu2zaH1.js} +1 -1
  382. package/dist/esm/layout-manager.entry.js +3 -3
  383. package/dist/esm/library-card.entry.js +2 -2
  384. package/dist/esm/lm-container_2.entry.js +2 -2
  385. package/dist/esm/lm-panel_3.entry.js +4 -4
  386. package/dist/esm/loader.js +3 -3
  387. package/dist/esm/my-component.entry.js +1 -1
  388. package/dist/esm/my-step.entry.js +2 -2
  389. package/dist/esm/nav-bar.entry.js +4 -4
  390. package/dist/esm/smart-step.entry.js +3 -3
  391. package/dist/esm/timeline-item.entry.js +2 -2
  392. package/dist/esm/ui-accordion_11.entry.js +132 -50
  393. package/dist/esm/ui-advanced-data-table.entry.js +2 -2
  394. package/dist/esm/ui-anchor.entry.js +2 -2
  395. package/dist/esm/ui-animate-on-scroll.entry.js +3 -3
  396. package/dist/esm/ui-aside-panel.entry.js +10 -11
  397. package/dist/esm/ui-avatar-group_5.entry.js +1688 -0
  398. package/dist/esm/ui-breadcrumb-item.entry.js +3 -3
  399. package/dist/esm/ui-breadcrumb.entry.js +1 -1
  400. package/dist/esm/ui-callout-banner.entry.js +2 -2
  401. package/dist/esm/ui-card.entry.js +4 -3
  402. package/dist/esm/ui-carousel.entry.js +1 -1
  403. package/dist/esm/ui-checkbox.entry.js +3 -3
  404. package/dist/esm/ui-code-editor.entry.js +2 -2
  405. package/dist/esm/ui-code-preview.entry.js +2 -2
  406. package/dist/esm/ui-color-picker.entry.js +256 -22
  407. package/dist/esm/ui-command-palette.entry.js +1 -1
  408. package/dist/esm/ui-dialog-box.entry.js +85 -11
  409. package/dist/esm/ui-dialog-content.entry.js +1 -1
  410. package/dist/esm/ui-dialog-footer_2.entry.js +1 -1
  411. package/dist/esm/ui-divider.entry.js +1 -1
  412. package/dist/esm/ui-dock-host.entry.js +4 -4
  413. package/dist/esm/ui-dock.entry.js +2 -2
  414. package/dist/esm/ui-drag-drop.entry.js +2 -2
  415. package/dist/esm/ui-dropdown_2.entry.js +104 -34
  416. package/dist/esm/ui-empty-state.entry.js +2 -2
  417. package/dist/esm/ui-fab-item.entry.js +2 -2
  418. package/dist/esm/ui-fab.entry.js +4 -4
  419. package/dist/esm/ui-file-upload.entry.js +143 -44
  420. package/dist/esm/ui-horizontal-nav.entry.js +2 -2
  421. package/dist/esm/ui-knob.entry.js +1 -1
  422. package/dist/esm/ui-label.entry.js +471 -0
  423. package/dist/esm/ui-library.entry.js +2 -2
  424. package/dist/esm/ui-list-group_2.entry.js +349 -60
  425. package/dist/esm/ui-list.entry.js +76 -42
  426. package/dist/esm/ui-masonry.entry.js +1 -1
  427. package/dist/esm/ui-meter-group.entry.js +5 -4
  428. package/dist/esm/ui-navigation-item.entry.js +5 -5
  429. package/dist/esm/ui-number-input.entry.js +7 -3
  430. package/dist/esm/ui-otp-input.entry.js +5 -5
  431. package/dist/esm/{ui-pagination_4.entry.js → ui-pagination_3.entry.js} +36 -506
  432. package/dist/esm/ui-panel.entry.js +1 -1
  433. package/dist/esm/ui-pattern-input.entry.js +46 -11
  434. package/dist/esm/ui-progress.entry.js +66 -9
  435. package/dist/esm/ui-range-slider.entry.js +2 -2
  436. package/dist/esm/ui-resizable-panel.entry.js +2 -2
  437. package/dist/esm/ui-scroll-top.entry.js +1 -1
  438. package/dist/esm/ui-smart-context-menu.entry.js +1 -1
  439. package/dist/esm/ui-smart-stepper.entry.js +2 -2
  440. package/dist/esm/ui-snackbar.entry.js +1 -1
  441. package/dist/esm/ui-speed-dial.entry.js +1 -1
  442. package/dist/esm/ui-speedometer.entry.js +28 -17
  443. package/dist/esm/ui-splitter.entry.js +1 -1
  444. package/dist/esm/ui-step.entry.js +2 -2
  445. package/dist/esm/ui-stepper.entry.js +1 -1
  446. package/dist/esm/ui-switch.entry.js +14 -13
  447. package/dist/esm/ui-tabs.entry.js +2 -2
  448. package/dist/esm/ui-tag.entry.js +58 -13
  449. package/dist/esm/ui-timeline.entry.js +10 -2
  450. package/dist/esm/ui-timer.entry.js +2 -2
  451. package/dist/esm/ui-toolbar.entry.js +2 -2
  452. package/dist/esm/ui-tooltip.entry.js +4 -4
  453. package/dist/esm/ui-top-bar.entry.js +1 -1
  454. package/dist/esm/ui-transfer-list.entry.js +6 -6
  455. package/dist/esm/ui-tree.entry.js +30 -15
  456. package/dist/esm/ui-workspace-manager.entry.js +2 -2
  457. package/dist/exploration-project-tailwind/exploration-project-tailwind.css +1 -1
  458. package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -1
  459. package/dist/exploration-project-tailwind/{p-7ba2258a.entry.js → p-024a299a.entry.js} +1 -1
  460. package/dist/exploration-project-tailwind/p-0a71896a.entry.js +1 -0
  461. package/dist/exploration-project-tailwind/{p-35296877.entry.js → p-0cdeb8d8.entry.js} +1 -1
  462. package/dist/exploration-project-tailwind/{p-a42fdc33.entry.js → p-139cefbc.entry.js} +1 -1
  463. package/dist/exploration-project-tailwind/{p-036d2a44.entry.js → p-198c83e5.entry.js} +1 -1
  464. package/dist/exploration-project-tailwind/p-236f47b1.entry.js +1 -0
  465. package/dist/exploration-project-tailwind/{p-81ebba11.entry.js → p-25530d0d.entry.js} +1 -1
  466. package/dist/exploration-project-tailwind/{p-41cd6bf0.entry.js → p-298f2057.entry.js} +1 -1
  467. package/dist/exploration-project-tailwind/{p-85e36111.entry.js → p-2b5a8e3e.entry.js} +1 -1
  468. package/dist/exploration-project-tailwind/{p-e8c6d395.entry.js → p-2b6aa7bc.entry.js} +1 -1
  469. package/dist/exploration-project-tailwind/{p-70bacda8.entry.js → p-2cfba753.entry.js} +1 -1
  470. package/dist/exploration-project-tailwind/{p-cbee2607.entry.js → p-2fe22958.entry.js} +1 -1
  471. package/dist/exploration-project-tailwind/{p-20ecc116.entry.js → p-3012e780.entry.js} +1 -1
  472. package/dist/exploration-project-tailwind/p-321c3f46.entry.js +1 -0
  473. package/dist/exploration-project-tailwind/{p-8b57fe4e.entry.js → p-3ab43638.entry.js} +1 -1
  474. package/dist/exploration-project-tailwind/p-3ad7e47e.entry.js +1 -0
  475. package/dist/exploration-project-tailwind/p-3b1ca826.entry.js +1 -0
  476. package/dist/exploration-project-tailwind/p-3ee8ddae.entry.js +1 -0
  477. package/dist/exploration-project-tailwind/{p-e22317c1.entry.js → p-3efb44c8.entry.js} +1 -1
  478. package/dist/exploration-project-tailwind/{p-36861546.entry.js → p-42e3bc28.entry.js} +1 -1
  479. package/dist/exploration-project-tailwind/p-4360331a.entry.js +1 -0
  480. package/dist/exploration-project-tailwind/{p-2f961934.entry.js → p-443de32b.entry.js} +1 -1
  481. package/dist/exploration-project-tailwind/{p-898dd0fa.entry.js → p-44d15451.entry.js} +1 -1
  482. package/dist/exploration-project-tailwind/{p-4288c158.entry.js → p-46071679.entry.js} +1 -1
  483. package/dist/exploration-project-tailwind/{p-a3f465d9.entry.js → p-497d6182.entry.js} +1 -1
  484. package/dist/exploration-project-tailwind/p-4ad8c55c.entry.js +1 -0
  485. package/dist/exploration-project-tailwind/{p-4aaa8e40.entry.js → p-4c46ac0b.entry.js} +1 -1
  486. package/dist/exploration-project-tailwind/{p-98e91da5.entry.js → p-5042ddaa.entry.js} +1 -1
  487. package/dist/exploration-project-tailwind/p-60190e0e.entry.js +1 -0
  488. package/dist/exploration-project-tailwind/p-60530874.entry.js +1 -0
  489. package/dist/exploration-project-tailwind/{p-200241f8.entry.js → p-6108565d.entry.js} +1 -1
  490. package/dist/exploration-project-tailwind/{p-fb4aca69.entry.js → p-62889cfe.entry.js} +1 -1
  491. package/dist/exploration-project-tailwind/{p-c02284ea.entry.js → p-66f71613.entry.js} +1 -1
  492. package/dist/exploration-project-tailwind/{p-7889bfc4.entry.js → p-67c440b2.entry.js} +1 -1
  493. package/dist/exploration-project-tailwind/{p-c1c8ac28.entry.js → p-6f09503f.entry.js} +1 -1
  494. package/dist/exploration-project-tailwind/p-721bdbc3.entry.js +1 -0
  495. package/dist/exploration-project-tailwind/p-747b02ea.entry.js +1 -0
  496. package/dist/exploration-project-tailwind/{p-c6fd72e1.entry.js → p-754cb046.entry.js} +1 -1
  497. package/dist/exploration-project-tailwind/{p-97af03cc.entry.js → p-7ed3bba2.entry.js} +1 -1
  498. package/dist/exploration-project-tailwind/{p-d59da767.entry.js → p-864cebb7.entry.js} +1 -1
  499. package/dist/exploration-project-tailwind/{p-4d73c143.entry.js → p-96ee3196.entry.js} +1 -1
  500. package/dist/exploration-project-tailwind/{p-54965530.entry.js → p-97086868.entry.js} +1 -1
  501. package/dist/exploration-project-tailwind/{p-d114a347.entry.js → p-9c5ced88.entry.js} +1 -1
  502. package/dist/exploration-project-tailwind/p-9d3044d4.entry.js +1 -0
  503. package/dist/exploration-project-tailwind/p-9e079be6.entry.js +1 -0
  504. package/dist/exploration-project-tailwind/{p-790556f0.entry.js → p-9e4c45f5.entry.js} +1 -1
  505. package/dist/exploration-project-tailwind/p-9eee7394.entry.js +1 -0
  506. package/dist/exploration-project-tailwind/p-DFBTWhGw.js +1 -0
  507. package/dist/exploration-project-tailwind/p-Dqu2zaH1.js +2 -0
  508. package/dist/exploration-project-tailwind/p-a7bdedc2.entry.js +1 -0
  509. package/dist/exploration-project-tailwind/{p-c87aeab6.entry.js → p-a8ec29de.entry.js} +1 -1
  510. package/dist/exploration-project-tailwind/{p-6ddbee42.entry.js → p-ae617f62.entry.js} +1 -1
  511. package/dist/exploration-project-tailwind/{p-05a436d3.entry.js → p-aef76052.entry.js} +1 -1
  512. package/dist/exploration-project-tailwind/p-b5f043fa.entry.js +1 -0
  513. package/dist/exploration-project-tailwind/p-b637b91b.entry.js +1 -0
  514. package/dist/exploration-project-tailwind/{p-d2e45c5e.entry.js → p-bc49a088.entry.js} +1 -1
  515. package/dist/exploration-project-tailwind/{p-6b838549.entry.js → p-bd9a631f.entry.js} +1 -1
  516. package/dist/exploration-project-tailwind/{p-e8ba0c95.entry.js → p-bf4b6767.entry.js} +1 -1
  517. package/dist/exploration-project-tailwind/p-c0fa400e.entry.js +1 -0
  518. package/dist/exploration-project-tailwind/{p-8578b616.entry.js → p-c4f3d990.entry.js} +1 -1
  519. package/dist/exploration-project-tailwind/p-c68ddb2f.entry.js +1 -0
  520. package/dist/exploration-project-tailwind/p-c79574c4.entry.js +1 -0
  521. package/dist/exploration-project-tailwind/p-c840098d.entry.js +1 -0
  522. package/dist/exploration-project-tailwind/{p-a1ad32a2.entry.js → p-c8663cbe.entry.js} +1 -1
  523. package/dist/exploration-project-tailwind/p-cb6e38a6.entry.js +1 -0
  524. package/dist/exploration-project-tailwind/p-cb9f2df1.entry.js +1 -0
  525. package/dist/exploration-project-tailwind/p-cfe8b696.entry.js +1 -0
  526. package/dist/exploration-project-tailwind/p-d00e13ae.entry.js +1 -0
  527. package/dist/exploration-project-tailwind/{p-c4ba7e52.entry.js → p-d01ed934.entry.js} +1 -1
  528. package/dist/exploration-project-tailwind/{p-aa85ff78.entry.js → p-d4e57d94.entry.js} +1 -1
  529. package/dist/exploration-project-tailwind/{p-ccb5c737.entry.js → p-d5bd3a3f.entry.js} +1 -1
  530. package/dist/exploration-project-tailwind/{p-45482d86.entry.js → p-d987cebe.entry.js} +1 -1
  531. package/dist/exploration-project-tailwind/p-d9ae77c0.entry.js +1 -0
  532. package/dist/exploration-project-tailwind/p-e9bae5c7.entry.js +1 -0
  533. package/dist/exploration-project-tailwind/p-f516fabc.entry.js +1 -0
  534. package/dist/exploration-project-tailwind/p-f68e2794.entry.js +1 -0
  535. package/dist/exploration-project-tailwind/{p-d30e24bd.entry.js → p-fa034f69.entry.js} +1 -1
  536. package/dist/types/components/aside-panel/aside-panel.d.ts +0 -3
  537. package/dist/types/components/avatar/avatar.d.ts +3 -0
  538. package/dist/types/components/avatar/types.d.ts +2 -0
  539. package/dist/types/components/badge/badge.d.ts +1 -0
  540. package/dist/types/components/color-picker/color-picker.d.ts +35 -2
  541. package/dist/types/components/dialog-box/dialog-box.d.ts +10 -0
  542. package/dist/types/components/dropdown/dropdown.d.ts +5 -0
  543. package/dist/types/components/file-upload/file-upload.d.ts +23 -6
  544. package/dist/types/components/label/label.d.ts +290 -0
  545. package/dist/types/components/label/types.d.ts +39 -0
  546. package/dist/types/components/list/list.d.ts +2 -1
  547. package/dist/types/components/list-group/list-group.d.ts +1 -0
  548. package/dist/types/components/list-item/list-item.d.ts +45 -17
  549. package/dist/types/components/pattern-input/pattern-input.d.ts +6 -0
  550. package/dist/types/components/popover/popover.d.ts +3 -0
  551. package/dist/types/components/progress/progress.d.ts +7 -0
  552. package/dist/types/components/range-slider/range-slider.d.ts +2 -2
  553. package/dist/types/components/rating/rating.d.ts +1 -0
  554. package/dist/types/components/skeleton/skeleton-loader.d.ts +1 -1
  555. package/dist/types/components/speedometer/speedometer.d.ts +1 -0
  556. package/dist/types/components/tag/tag.d.ts +4 -0
  557. package/dist/types/components/tree/tree.d.ts +1 -0
  558. package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-bar.d.ts +1 -1
  559. package/dist/types/components.d.ts +742 -425
  560. package/dist/types/types/common.d.ts +2 -2
  561. package/dist/types/types/common.type.d.ts +2 -0
  562. package/dist/types/utils/dom.d.ts +4 -4
  563. package/package.json +4 -5
  564. package/dist/cjs/dom-oP1E4Rd3.js +0 -267
  565. package/dist/cjs/ui-avatar-group_3.cjs.entry.js +0 -634
  566. package/dist/cjs/ui-color-controller.cjs.entry.js +0 -150
  567. package/dist/cjs/ui-popover.cjs.entry.js +0 -517
  568. package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +0 -565
  569. package/dist/collection/components/color-controller/color-controller.css +0 -108
  570. package/dist/collection/components/color-controller/color-controller.js +0 -224
  571. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.css +0 -357
  572. package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +0 -1190
  573. package/dist/components/ui-color-controller.js +0 -1
  574. package/dist/components/ui-smart-location-dropdown.d.ts +0 -11
  575. package/dist/components/ui-smart-location-dropdown.js +0 -1
  576. package/dist/esm/dom-BMFah5q3.js +0 -262
  577. package/dist/esm/ui-avatar-group_3.entry.js +0 -630
  578. package/dist/esm/ui-color-controller.entry.js +0 -148
  579. package/dist/esm/ui-popover.entry.js +0 -515
  580. package/dist/esm/ui-smart-location-dropdown.entry.js +0 -563
  581. package/dist/exploration-project-tailwind/p-06f0c679.entry.js +0 -1
  582. package/dist/exploration-project-tailwind/p-0d31c9e9.entry.js +0 -1
  583. package/dist/exploration-project-tailwind/p-148e81df.entry.js +0 -1
  584. package/dist/exploration-project-tailwind/p-16bdd162.entry.js +0 -1
  585. package/dist/exploration-project-tailwind/p-2347d21b.entry.js +0 -1
  586. package/dist/exploration-project-tailwind/p-3d381f75.entry.js +0 -1
  587. package/dist/exploration-project-tailwind/p-4417a9d8.entry.js +0 -1
  588. package/dist/exploration-project-tailwind/p-44742ddd.entry.js +0 -1
  589. package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +0 -1
  590. package/dist/exploration-project-tailwind/p-4bef8bed.entry.js +0 -1
  591. package/dist/exploration-project-tailwind/p-4efd63ce.entry.js +0 -1
  592. package/dist/exploration-project-tailwind/p-5c835d90.entry.js +0 -1
  593. package/dist/exploration-project-tailwind/p-61717490.entry.js +0 -1
  594. package/dist/exploration-project-tailwind/p-717dad1f.entry.js +0 -1
  595. package/dist/exploration-project-tailwind/p-71d95bb1.entry.js +0 -1
  596. package/dist/exploration-project-tailwind/p-9bd14f69.entry.js +0 -1
  597. package/dist/exploration-project-tailwind/p-9fc06ff0.entry.js +0 -1
  598. package/dist/exploration-project-tailwind/p-BMFah5q3.js +0 -1
  599. package/dist/exploration-project-tailwind/p-DUsoYu9r.js +0 -2
  600. package/dist/exploration-project-tailwind/p-a27f59d2.entry.js +0 -1
  601. package/dist/exploration-project-tailwind/p-a7b07cf4.entry.js +0 -1
  602. package/dist/exploration-project-tailwind/p-bd89d060.entry.js +0 -1
  603. package/dist/exploration-project-tailwind/p-c63c522e.entry.js +0 -1
  604. package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +0 -1
  605. package/dist/exploration-project-tailwind/p-d6ce9721.entry.js +0 -1
  606. package/dist/exploration-project-tailwind/p-dc92a343.entry.js +0 -1
  607. package/dist/exploration-project-tailwind/p-debede45.entry.js +0 -1
  608. package/dist/exploration-project-tailwind/p-e76318c7.entry.js +0 -1
  609. package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +0 -1
  610. package/dist/exploration-project-tailwind/p-eab5ad36.entry.js +0 -1
  611. package/dist/exploration-project-tailwind/p-f0bc5d7e.entry.js +0 -1
  612. package/dist/exploration-project-tailwind/p-f1beee72.entry.js +0 -1
  613. package/dist/exploration-project-tailwind/p-f543392f.entry.js +0 -1
  614. package/dist/exploration-project-tailwind/p-f61cfb7c.entry.js +0 -1
  615. package/dist/types/components/color-controller/color-controller.d.ts +0 -24
  616. package/dist/types/components/smart-location-dropdown/smart-location-dropdown.d.ts +0 -119
  617. package/dist/types/components/smart-location-dropdown/types.d.ts +0 -37
  618. /package/dist/collection/components/{smart-location-dropdown → label}/types.js +0 -0
@@ -2,60 +2,143 @@
2
2
  * Finds the nearest ancestor that creates a new containing block for position:fixed elements.
3
3
  * This function is fully Shadow DOM and Flat Tree aware, accounting for slots and shadow boundaries.
4
4
  */
5
+ function getFlatTreeParent(node) {
6
+ return node?.assignedSlot || node?.parentElement || node?.getRootNode()?.host || null;
7
+ }
8
+ function isStandardElement(node) {
9
+ return Boolean(node) && node.nodeType === 1;
10
+ }
11
+ function styleCreatesContainingBlock(style) {
12
+ const transform = style.transform || '';
13
+ const filter = style.filter || '';
14
+ const backdropFilter = style.backdropFilter || '';
15
+ const perspective = style.perspective || '';
16
+ const mask = style.mask || '';
17
+ const clipPath = style.clipPath || '';
18
+ const contain = style.contain || '';
19
+ const willChange = style.willChange || '';
20
+ const hasTransform = [transform, style.translate || '', style.rotate || '', style.scale || ''].some((value) => value && value !== 'none');
21
+ const hasWillChange = ['transform', 'perspective', 'filter', 'backdrop-filter', 'translate', 'rotate', 'scale', 'mask', 'clip-path', 'contain']
22
+ .some((token) => willChange.includes(token));
23
+ const hasContain = ['layout', 'paint', 'strict', 'content'].some((token) => contain.includes(token));
24
+ return hasTransform
25
+ || Boolean(filter && filter !== 'none')
26
+ || Boolean(backdropFilter && backdropFilter !== 'none')
27
+ || Boolean(perspective && perspective !== 'none')
28
+ || Boolean(mask && mask !== 'none')
29
+ || Boolean(clipPath && clipPath !== 'none')
30
+ || hasWillChange
31
+ || hasContain;
32
+ }
5
33
  export function getTransformedAncestor(element) {
6
34
  let el = element;
7
35
  while (el && el !== document.documentElement) {
8
- // If it's not a standard element (e.g. ShadowRoot), jump to its host
9
- if (el.nodeType !== 1) {
36
+ if (!isStandardElement(el)) {
10
37
  el = el.host || el.parentNode;
11
38
  continue;
12
39
  }
13
- const style = window.getComputedStyle(el);
40
+ const style = globalThis.getComputedStyle(el);
14
41
  if (!style) {
15
- // Move up the tree (Flat Tree aware)
16
- el = el.assignedSlot || el.parentElement || el.getRootNode().host;
42
+ el = getFlatTreeParent(el);
17
43
  continue;
18
44
  }
19
- const s = style;
20
- const transform = s.transform || s.webkitTransform || s.mozTransform || s.msTransform || s.oTransform;
21
- const translate = s.translate || '';
22
- const rotate = s.rotate || '';
23
- const scale = s.scale || '';
24
- const filter = s.filter || s.webkitFilter || s.mozFilter || s.msFilter || s.oFilter;
25
- const backdropFilter = s.backdropFilter || s.webkitBackdropFilter || s.mozBackdropFilter || s.msBackdropFilter || s.oBackdropFilter;
26
- const perspective = s.perspective || s.webkitPerspective || s.mozPerspective || s.msPerspective || s.oPerspective;
27
- const mask = s.mask || s.webkitMask || '';
28
- const clipPath = s.clipPath || s.webkitClipPath || '';
29
- const willChange = s.willChange || '';
30
- const hasTransform = (transform && transform !== 'none') || (translate && translate !== 'none') || (rotate && rotate !== 'none') || (scale && scale !== 'none');
31
- const hasFilter = filter && filter !== 'none';
32
- const hasBackdropFilter = backdropFilter && backdropFilter !== 'none';
33
- const hasPerspective = perspective && perspective !== 'none';
34
- const hasMask = mask && mask !== 'none';
35
- const hasClipPath = clipPath && clipPath !== 'none';
36
- const hasWillChange = willChange &&
37
- (willChange.includes('transform') ||
38
- willChange.includes('perspective') ||
39
- willChange.includes('filter') ||
40
- willChange.includes('backdrop-filter') ||
41
- willChange.includes('translate') ||
42
- willChange.includes('rotate') ||
43
- willChange.includes('scale') ||
44
- willChange.includes('mask') ||
45
- willChange.includes('clip-path') ||
46
- willChange.includes('contain'));
47
- // contain: layout, paint, strict, or content also creates a containing block
48
- const contain = style.contain;
49
- const hasContain = contain && (contain.includes('layout') || contain.includes('paint') || contain.includes('strict') || contain.includes('content'));
50
- if (hasTransform || hasFilter || hasBackdropFilter || hasPerspective || hasMask || hasClipPath || hasWillChange || hasContain) {
45
+ if (styleCreatesContainingBlock(style)) {
51
46
  return el;
52
47
  }
53
- // Move up (Flat Tree aware)
54
- // Priority: 1. Assigned Slot (for projected content) 2. Parent Element 3. Shadow Host
55
- el = el.assignedSlot || el.parentElement || el.getRootNode().host;
48
+ el = getFlatTreeParent(el);
56
49
  }
57
50
  return null;
58
51
  }
52
+ function getOppositePlacement(requestedPlacement, space, menuWidth, menuHeight) {
53
+ if (requestedPlacement === 'bottom' && space.below < menuHeight && space.above > space.below)
54
+ return 'top';
55
+ if (requestedPlacement === 'top' && space.above < menuHeight && space.below > space.above)
56
+ return 'bottom';
57
+ if (requestedPlacement === 'right' && space.right < menuWidth && space.left > space.right)
58
+ return 'left';
59
+ if (requestedPlacement === 'left' && space.left < menuWidth && space.right > space.left)
60
+ return 'right';
61
+ return requestedPlacement;
62
+ }
63
+ function resolvePlacement(requestedPlacement, space, menuWidth, menuHeight) {
64
+ const finalPlacement = getOppositePlacement(requestedPlacement, space, menuWidth, menuHeight);
65
+ const verticalPlacement = finalPlacement === 'top' || finalPlacement === 'bottom';
66
+ const verticalSpace = Math.max(space.above, space.below);
67
+ const horizontalSpace = Math.max(space.left, space.right);
68
+ if (verticalPlacement && verticalSpace < menuHeight && (space.right >= menuWidth || space.left >= menuWidth)) {
69
+ return space.right > space.left ? 'right' : 'left';
70
+ }
71
+ if (!verticalPlacement && horizontalSpace < menuWidth && (space.above >= menuHeight || space.below >= menuHeight)) {
72
+ return space.above > space.below ? 'top' : 'bottom';
73
+ }
74
+ return finalPlacement;
75
+ }
76
+ function getBasePlacementCoordinates(placement, triggerRect, size, screen, gap, padding) {
77
+ switch (placement) {
78
+ case 'top':
79
+ return {
80
+ left: 0,
81
+ top: triggerRect.top - size.height - gap,
82
+ availableWidth: screen.width - (padding * 2),
83
+ availableHeight: triggerRect.top - gap - padding,
84
+ };
85
+ case 'bottom':
86
+ return {
87
+ left: 0,
88
+ top: triggerRect.bottom + gap,
89
+ availableWidth: screen.width - (padding * 2),
90
+ availableHeight: screen.height - triggerRect.bottom - gap - padding,
91
+ };
92
+ case 'left':
93
+ return {
94
+ left: triggerRect.left - size.width - gap,
95
+ top: 0,
96
+ availableWidth: triggerRect.left - gap - padding,
97
+ availableHeight: screen.height - (padding * 2),
98
+ };
99
+ case 'right':
100
+ default:
101
+ return {
102
+ left: triggerRect.right + gap,
103
+ top: 0,
104
+ availableWidth: screen.width - triggerRect.right - gap - padding,
105
+ availableHeight: screen.height - (padding * 2),
106
+ };
107
+ }
108
+ }
109
+ function applyCrossAxisAlignment(placement, align, triggerRect, size, coords, screen, padding) {
110
+ if (placement === 'top' || placement === 'bottom') {
111
+ let alignedLeft = triggerRect.left + (triggerRect.width / 2) - (size.width / 2);
112
+ if (align === 'start')
113
+ alignedLeft = triggerRect.left;
114
+ if (align === 'end')
115
+ alignedLeft = triggerRect.right - size.width;
116
+ coords.left = alignedLeft;
117
+ coords.availableWidth = screen.width - (padding * 2);
118
+ return coords;
119
+ }
120
+ let alignedTop = triggerRect.top + (triggerRect.height / 2) - (size.height / 2);
121
+ if (align === 'start')
122
+ alignedTop = triggerRect.top;
123
+ if (align === 'end')
124
+ alignedTop = triggerRect.bottom - size.height;
125
+ coords.top = alignedTop;
126
+ coords.availableHeight = screen.height - (padding * 2);
127
+ return coords;
128
+ }
129
+ function getArrowCoordinates(placement, triggerRect, top, left, ancestorOffset, actualMenuWidth, actualMenuHeight) {
130
+ const arrowPadding = 12;
131
+ if (placement === 'top' || placement === 'bottom') {
132
+ const triggerCenter = triggerRect.left + (triggerRect.width / 2);
133
+ const menuAbsoluteLeft = left + ancestorOffset.x;
134
+ const arrowX = Math.max(arrowPadding, Math.min(triggerCenter - menuAbsoluteLeft, actualMenuWidth - arrowPadding));
135
+ return { arrowX, arrowY: 0 };
136
+ }
137
+ const triggerCenter = triggerRect.top + (triggerRect.height / 2);
138
+ const menuAbsoluteTop = top + ancestorOffset.y;
139
+ const arrowY = Math.max(arrowPadding, Math.min(triggerCenter - menuAbsoluteTop, actualMenuHeight - arrowPadding));
140
+ return { arrowX: 0, arrowY };
141
+ }
59
142
  /**
60
143
  * Returns the viewport-relative offset of the nearest transformed ancestor.
61
144
  */
@@ -93,16 +176,16 @@ export function autoUpdate(reference, floating, update, options = {}) {
93
176
  else {
94
177
  update(); // Initial update
95
178
  }
96
- window.addEventListener('scroll', update, { capture: true, passive: true });
97
- window.addEventListener('resize', update, { passive: true });
179
+ globalThis.addEventListener('scroll', update, { capture: true, passive: true });
180
+ globalThis.addEventListener('resize', update, { passive: true });
98
181
  const resizeObserver = new ResizeObserver(() => update());
99
182
  resizeObserver.observe(reference);
100
183
  resizeObserver.observe(floating);
101
184
  const cleanup = () => {
102
185
  if (frameId !== null)
103
186
  cancelAnimationFrame(frameId);
104
- window.removeEventListener('scroll', update, { capture: true });
105
- window.removeEventListener('resize', update);
187
+ globalThis.removeEventListener('scroll', update, { capture: true });
188
+ globalThis.removeEventListener('resize', update);
106
189
  resizeObserver.disconnect();
107
190
  };
108
191
  return cleanup;
@@ -112,129 +195,46 @@ export function autoUpdate(reference, floating, update, options = {}) {
112
195
  * Supports all 4 sides, alignment, and boundary detection.
113
196
  */
114
197
  export function calculateUniversalPlacement(trigger, options) {
115
- const { menuWidth, menuHeight, gap = 4, placement = 'auto', align = 'center', padding = 8, useTransformedAncestorOffset = true } = options;
198
+ const { menuWidth, menuHeight, actualMenuWidth = menuWidth, actualMenuHeight = menuHeight, gap = 4, placement = 'auto', align = 'center', padding = 8, useTransformedAncestorOffset = true, flip = true, shift = true } = options;
116
199
  if (!trigger) {
117
200
  return { left: 0, top: 0, width: 0, availableWidth: 0, availableHeight: 0, placement: 'bottom', isClamped: false };
118
201
  }
119
202
  const triggerRect = trigger.getBoundingClientRect();
120
- const screenW = window.innerWidth;
121
- const screenH = window.innerHeight;
203
+ const screen = { width: globalThis.innerWidth, height: globalThis.innerHeight };
122
204
  const ancestorOffset = useTransformedAncestorOffset
123
205
  ? getTransformedAncestorOffset(trigger)
124
206
  : { x: 0, y: 0, el: null };
125
- // 1. Determine Vertical/Horizontal Placement
126
207
  const requestedPlacement = placement === 'auto' ? 'bottom' : placement;
127
208
  let finalPlacement = requestedPlacement;
128
- if (placement === 'auto') {
129
- const spaceBelow = screenH - triggerRect.bottom - gap - padding;
130
- const spaceAbove = triggerRect.top - gap - padding;
131
- const spaceRight = screenW - triggerRect.right - gap - padding;
132
- const spaceLeft = triggerRect.left - gap - padding;
133
- // Preference: If requestedPlacement is blocked, try opposite, then try other axis if both blocked
134
- if (requestedPlacement === 'bottom' && spaceBelow < menuHeight && spaceAbove > spaceBelow) {
135
- finalPlacement = 'top';
136
- }
137
- else if (requestedPlacement === 'top' && spaceAbove < menuHeight && spaceBelow > spaceAbove) {
138
- finalPlacement = 'bottom';
139
- }
140
- else if (requestedPlacement === 'right' && spaceRight < menuWidth && spaceLeft > spaceRight) {
141
- finalPlacement = 'left';
142
- }
143
- else if (requestedPlacement === 'left' && spaceLeft < menuWidth && spaceRight > spaceLeft) {
144
- finalPlacement = 'right';
145
- }
146
- // Secondary: If still not enough space on the main axis, pick the one with most space
147
- if (finalPlacement === 'top' || finalPlacement === 'bottom') {
148
- if (Math.max(spaceAbove, spaceBelow) < menuHeight) {
149
- if (spaceRight >= menuWidth || spaceLeft >= menuWidth) {
150
- finalPlacement = spaceRight > spaceLeft ? 'right' : 'left';
151
- }
152
- }
153
- }
154
- else {
155
- if (Math.max(spaceLeft, spaceRight) < menuWidth) {
156
- if (spaceAbove >= menuHeight || spaceBelow >= menuHeight) {
157
- finalPlacement = spaceAbove > spaceBelow ? 'top' : 'bottom';
158
- }
159
- }
160
- }
161
- }
162
- // 2. Calculate initial coordinates and available dimensions
163
- let left = 0;
164
- let top = 0;
165
- let availableWidth = screenW - (padding * 2);
166
- let availableHeight = screenH - (padding * 2);
167
- switch (finalPlacement) {
168
- case 'top':
169
- top = triggerRect.top - menuHeight - gap;
170
- availableHeight = triggerRect.top - gap - padding;
171
- break;
172
- case 'bottom':
173
- top = triggerRect.bottom + gap;
174
- availableHeight = screenH - triggerRect.bottom - gap - padding;
175
- break;
176
- case 'left':
177
- left = triggerRect.left - menuWidth - gap;
178
- availableWidth = triggerRect.left - gap - padding;
179
- break;
180
- case 'right':
181
- left = triggerRect.right + gap;
182
- availableWidth = screenW - triggerRect.right - gap - padding;
183
- break;
184
- }
185
- // Handle alignment for the cross-axis
186
- if (finalPlacement === 'top' || finalPlacement === 'bottom') {
187
- // Horizontal alignment
188
- if (align === 'start')
189
- left = triggerRect.left;
190
- else if (align === 'end')
191
- left = triggerRect.right - menuWidth;
192
- else
193
- left = triggerRect.left + (triggerRect.width / 2) - (menuWidth / 2);
194
- availableWidth = screenW - (padding * 2);
195
- }
196
- else {
197
- // Vertical alignment
198
- if (align === 'start')
199
- top = triggerRect.top;
200
- else if (align === 'end')
201
- top = triggerRect.bottom - menuHeight;
202
- else
203
- top = triggerRect.top + (triggerRect.height / 2) - (menuHeight / 2);
204
- availableHeight = screenH - (padding * 2);
209
+ if (placement === 'auto' || flip) {
210
+ finalPlacement = resolvePlacement(requestedPlacement, {
211
+ below: screen.height - triggerRect.bottom - gap - padding,
212
+ above: triggerRect.top - gap - padding,
213
+ right: screen.width - triggerRect.right - gap - padding,
214
+ left: triggerRect.left - gap - padding,
215
+ }, menuWidth, menuHeight);
205
216
  }
206
- // Apply ancestor offset
217
+ const baseCoords = getBasePlacementCoordinates(finalPlacement, triggerRect, { width: actualMenuWidth, height: actualMenuHeight }, screen, gap, padding);
218
+ const alignedCoords = applyCrossAxisAlignment(finalPlacement, align, triggerRect, { width: actualMenuWidth, height: actualMenuHeight }, baseCoords, screen, padding);
219
+ let { left, top, availableWidth, availableHeight } = alignedCoords;
207
220
  left -= ancestorOffset.x;
208
221
  top -= ancestorOffset.y;
209
- // 3. Clamping to viewport (account for transform ancestors)
210
- const containerWidth = ancestorOffset.el ? ancestorOffset.el.getBoundingClientRect().width : screenW;
211
- const containerHeight = ancestorOffset.el ? ancestorOffset.el.getBoundingClientRect().height : screenH;
212
222
  const originalLeft = left;
213
223
  const originalTop = top;
214
- // Cross-axis clamping
215
- if (finalPlacement === 'top' || finalPlacement === 'bottom') {
216
- left = Math.max(padding, Math.min(left, containerWidth - menuWidth - padding));
217
- }
218
- else {
219
- top = Math.max(padding, Math.min(top, containerHeight - menuHeight - padding));
224
+ const minLeft = padding - ancestorOffset.x;
225
+ const maxLeft = screen.width - actualMenuWidth - padding - ancestorOffset.x;
226
+ const minTop = padding - ancestorOffset.y;
227
+ const maxTop = screen.height - actualMenuHeight - padding - ancestorOffset.y;
228
+ if (shift) {
229
+ if (finalPlacement === 'top' || finalPlacement === 'bottom') {
230
+ left = Math.max(minLeft, Math.min(left, maxLeft));
231
+ }
232
+ else {
233
+ top = Math.max(minTop, Math.min(top, maxTop));
234
+ }
220
235
  }
221
236
  const isClamped = left !== originalLeft || top !== originalTop;
222
- // 4. Calculate arrow position (local to the floating element)
223
- let arrowX = 0;
224
- let arrowY = 0;
225
- const arrowPadding = 12; // Minimum distance from corners
226
- if (finalPlacement === 'top' || finalPlacement === 'bottom') {
227
- const triggerCenter = triggerRect.left + (triggerRect.width / 2);
228
- const menuAbsoluteLeft = left + ancestorOffset.x;
229
- arrowX = triggerCenter - menuAbsoluteLeft;
230
- arrowX = Math.max(arrowPadding, Math.min(arrowX, menuWidth - arrowPadding));
231
- }
232
- else {
233
- const triggerCenter = triggerRect.top + (triggerRect.height / 2);
234
- const menuAbsoluteTop = top + ancestorOffset.y;
235
- arrowY = triggerCenter - menuAbsoluteTop;
236
- arrowY = Math.max(arrowPadding, Math.min(arrowY, menuHeight - arrowPadding));
237
- }
237
+ const { arrowX, arrowY } = getArrowCoordinates(finalPlacement, triggerRect, top, left, ancestorOffset, actualMenuWidth, actualMenuHeight);
238
238
  return {
239
239
  left,
240
240
  top,
@@ -1 +1 @@
1
- import{proxyCustomElement as t,HTMLElement as a,h as r,Host as e,transformTag as o}from"@stencil/core/internal/client";import{d as s}from"./avatar.js";import{d as i,a as n}from"./badge.js";import{d as p}from"./icon.js";import{d}from"./input.js";import{d as l}from"./loader.js";const c=t(class extends a{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}get el(){return this}avatars=[];maxVisible=5;max=null;size="m";shape="circle";layout="stack";spacing=4;overlap=null;borderColor="white";borderWidth=2;enablePopover=!0;animated=!0;slottedAvatars=[];showPopover=!1;isRosterOpen=!1;isHovered=!1;handleSlotChange(){this.updateSlottedAvatars()}componentWillLoad(){this.updateSlottedAvatars()}componentDidLoad(){}updateSlottedAvatars(){const t=this.el.shadowRoot?.querySelector("slot"),a=t?t.assignedElements():Array.from(this.el.children);this.slottedAvatars=a.filter((t=>"ui-avatar"===t.tagName.toLowerCase()))}getMaxCount(){const t=this.max||this.maxVisible;return"number"==typeof t?t:t&&"object"==typeof t&&"count"in t&&t.count||1/0}getMaxStyle(){return this.max&&"object"==typeof this.max&&"style"in this.max?this.max.style:{}}calculateOverlap(){if("grid"===this.layout)return this.spacing;if(null!==this.overlap)return-Math.abs(this.overlap);const t={xs:24,s:32,sm:32,default:20,m:40,lg:40,l:48,xl:64};let a=40;const r=parseFloat(this.size);return isNaN(r)?"string"==typeof this.size&&t[this.size]&&(a=t[this.size]):a=r,-.4*a}handleMouseEnterGroup=()=>{this.isHovered=!0};handleMouseLeaveGroup=()=>{this.isHovered=!1,this.showPopover=!1};toggleRoster=t=>{t.stopPropagation(),this.isRosterOpen=!this.isRosterOpen};closeRoster=()=>{this.isRosterOpen=!1};renderExcessCount(t,a){const e=t-a;if(e<=0)return null;const o=this.getMaxStyle();return r("div",{class:"excess-avatar-container",onMouseEnter:()=>this.showPopover=this.enablePopover,onMouseLeave:()=>this.showPopover=!1,onClick:this.toggleRoster},r("div",{class:{"avatar-extra":!0,[`avatar-${this.getSizeAlias()}`]:!0,[`shape-${this.shape}`]:!0},style:{...o,backgroundColor:o.backgroundColor||"#f56a00"}},"+",e),this.showPopover&&this.enablePopover&&"stack"===this.layout&&this.renderPopover(a))}renderPopover(t){const a=this.getAllAvatarData().slice(t);return r("div",{class:"avatar-popover"},r("div",{class:"popover-content"},a.map(((t,a)=>r("div",{class:"popover-item",key:a},r("ui-avatar",{size:"xs",shape:this.shape,src:t.src,icon:t.icon,name:t.name,content:t.content,bgColor:t.bgColor}),r("span",{class:"popover-text"},t.name||t.content||"User"))))))}getAllAvatarData(){return this.avatars&&this.avatars.length>0?this.avatars:this.slottedAvatars.map((t=>({src:t.getAttribute("src"),name:t.getAttribute("name"),content:t.getAttribute("content")||t.textContent?.trim(),tooltipText:t.getAttribute("tooltipText")||t.getAttribute("tooltip-text")||t.getAttribute("name")||t.textContent?.trim(),icon:t.getAttribute("icon"),bgColor:t.getAttribute("bgColor")||t.getAttribute("bg-color"),badge:t.getAttribute("badge"),status:t.getAttribute("status")})))}getSizeAlias(){return{sm:"s",md:"m",lg:"l"}[this.size]||this.size}render(){const t=this.getAllAvatarData(),a=this.getMaxCount(),o="grid"===this.layout?t:t.slice(0,a),s=this.calculateOverlap(),i={"avatar-group":!0,[`layout-${this.layout}`]:!0,"avatar-group-animated":this.animated&&"stack"===this.layout,expanded:this.isHovered&&"stack"===this.layout},n={"--avatar-spacing":`${s}px`,"--avatar-border-color":this.borderColor,"--avatar-border-width":`${this.borderWidth}px`,"--avatar-size":"number"==typeof this.size?`${this.size}px`:this.size.toString()};return r(e,{key:"d1c53574be9549de6cce9cf8aae33ac8019dd556"},r("div",{key:"0f64bd06b7f8bd077e98286b9df7cd24e1924a50",class:i,style:n,onMouseEnter:this.handleMouseEnterGroup,onMouseLeave:this.handleMouseLeaveGroup},r("div",{key:"937475ddb42adc924320a2f15f61a76f3ec3c916",class:"avatar-list"},o.map(((a,e)=>r("ui-avatar",{...a,key:e,size:this.size,shape:this.shape,border:`${this.borderWidth}px solid ${this.borderColor}`,class:"group-avatar",style:{zIndex:("stack"===this.layout?t.length-e:1).toString()}}))),"stack"===this.layout&&this.renderExcessCount(t.length,a)),r("div",{key:"52779f80360501b288b88cd896f2dd117b18c0e1",style:{display:"none"}},r("slot",{key:"bd6996c4789091de98a2f01349990412278e51ee"}))),this.isRosterOpen&&r("div",{key:"fb404a5fd2e4723bb54465a8e6b94d220052721d",class:"avatar-roster-backdrop",onClick:this.closeRoster},r("div",{key:"81df0d927175829c2fe80e3c39bf81350011620e",class:"avatar-roster-content",onClick:t=>t.stopPropagation()},r("div",{key:"89cea0f5aed19f87eaab53bdab36b0ccf429dc54",class:"roster-header"},r("h3",{key:"3d113ccb91edb0b47e7bccc311af3f52f09ed5f2"},"Participants (",t.length,")"),r("ui-button",{key:"ad42880fadf89334d69ff0fca445adf7fb1b4494",variant:"ghost",onClick:this.closeRoster,ariaLabel:"Close roster",icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),r("div",{key:"d683e744b8a132d600d8681254c39b0569b1564c",class:"roster-list"},t.map(((t,a)=>r("div",{key:a,class:"roster-item"},r("ui-avatar",{...t,size:"s",shape:this.shape}),r("div",{class:"roster-info"},r("span",{class:"roster-name"},t.name||t.content||"Anonymous"),t.status&&r("span",{class:`roster-status status-${t.status}`},t.status)))))))))}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.avatar-group{display:inline-flex;position:relative;align-items:center}.avatar-group.layout-stack .group-avatar{margin-right:var(--avatar-spacing, -16px);transition:all 0.5s cubic-bezier(0.25, 1, 0.5, 1);transform-origin:center bottom}.avatar-group.layout-stack .group-avatar:hover{z-index:100 !important;transform:scale(1.25) translateY(-10px);margin-right:8px !important;box-shadow:0 10px 25px rgba(0, 0, 0, 0.2);border-color:var(--border-subtle, #fff) !important}.avatar-group.layout-stack .group-avatar:hover~.group-avatar,.avatar-group.layout-stack .group-avatar:hover~.excess-avatar-container{transform:translateX(24px)}.avatar-group.layout-stack.avatar-group-animated:hover{padding-right:40px}.avatar-group.layout-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(calc(var(--avatar-size) + 8px), 1fr));gap:8px;width:100%}.avatar-list{display:flex;flex-wrap:wrap;align-items:center}.layout-stack .avatar-list{flex-wrap:nowrap}.avatar-extra{display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-danger, #f56a00);color:var(--text-standard, #ffffff);font-weight:600;border:var(--avatar-border-width, 2px) solid var(--avatar-border-color, #fff);cursor:pointer;z-index:1;transition:transform 0.2s;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);font-size:0.8em}.avatar-extra:hover{transform:scale(1.1) translateY(-4px);z-index:100;box-shadow:0 8px 20px rgba(0, 0, 0, 0.15)}.avatar-extra.shape-circle{border-radius:50%}.avatar-extra.shape-square{border-radius:8px}.avatar-popover{position:absolute;top:100%;right:0;background:var(--bg-primary, #ffffff);border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.2);padding:12px;z-index:1000;min-width:180px;margin-top:8px;animation:popoverFadeIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar-popover::after{content:"";position:absolute;top:-12px;right:12px;border:6px solid transparent;border-bottom-color:var(--bg-primary, #ffffff)}.avatar-popover .popover-content{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.avatar-popover .popover-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:6px;transition:background 0.2s;cursor:pointer}.avatar-popover .popover-item:hover{background:var(--bg-secondary, #f3f4f6)}.avatar-popover .popover-item ui-avatar{transition:none !important;transform:none !important;box-shadow:none !important}.avatar-popover .popover-text{font-size:14px;color:var(--text-secondary, #374151);font-weight:500}@keyframes popoverFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.avatar-roster-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(4px)}.avatar-roster-content{background:var(--bg-primary, #ffffff);width:90%;max-width:500px;max-height:80vh;border-radius:16px;box-shadow:0 20px 50px rgba(0, 0, 0, 0.3);display:flex;flex-direction:column;overflow:hidden;animation:modalIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)}.roster-header{padding:20px;border-bottom:1px solid var(--border-subtle, #eee);display:flex;align-items:center;justify-content:space-between}.roster-header h3{margin:0;color:var(--text-primary, #1f2937)}.roster-header .close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:var(--text-muted, #9ca3af)}.roster-header .close-btn:hover{color:var(--text-primary, #1f2937)}.roster-list{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.roster-item{display:flex;align-items:center;gap:16px;padding:12px;border-radius:12px;transition:background 0.2s}.roster-item:hover{background:var(--bg-primary, #f9fafb)}.roster-info{display:flex;flex-direction:column}.roster-name{font-weight:600;color:var(--text-primary, #111827)}.roster-status{font-size:11px;text-transform:capitalize;border-radius:4px;padding:1px 6px;width:fit-content}.status-online{color:var(--color-success-hover, #059669);background:var(--bg-primary, #ecfdf5)}@keyframes modalIn{from{opacity:0;transform:scale(0.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}'}},[769,"ui-avatar-group",{avatars:[16],maxVisible:[2,"max-visible"],max:[2],size:[8],shape:[1],layout:[1],spacing:[2],overlap:[2],borderColor:[1,"border-color"],borderWidth:[2,"border-width"],enablePopover:[4,"enable-popover"],animated:[4],slottedAvatars:[32],showPopover:[32],isRosterOpen:[32],isHovered:[32]},[[0,"slotchange","handleSlotChange"]]]);function h(){"undefined"!=typeof customElements&&["ui-avatar-group","ui-avatar","ui-badge","ui-button","ui-icon","ui-input","ui-loader"].forEach((t=>{switch(t){case"ui-avatar-group":customElements.get(o(t))||customElements.define(o(t),c);break;case"ui-avatar":customElements.get(o(t))||s();break;case"ui-badge":customElements.get(o(t))||n();break;case"ui-button":customElements.get(o(t))||i();break;case"ui-icon":customElements.get(o(t))||p();break;case"ui-input":customElements.get(o(t))||d();break;case"ui-loader":customElements.get(o(t))||l()}}))}export{c as A,h as d}
1
+ import{proxyCustomElement as t,HTMLElement as a,h as r,Host as e,transformTag as o}from"@stencil/core/internal/client";import{d as s}from"./avatar.js";import{d as i}from"./badge.js";import{d as n}from"./button.js";import{d as p}from"./icon.js";import{d}from"./input.js";import{d as l}from"./loader.js";const c=t(class extends a{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}get el(){return this}avatars=[];maxVisible=5;max=null;size="m";shape="circle";layout="stack";spacing=4;overlap=null;borderColor="white";borderWidth=2;enablePopover=!0;animated=!0;slottedAvatars=[];showPopover=!1;isRosterOpen=!1;isHovered=!1;handleSlotChange(){this.updateSlottedAvatars()}componentWillLoad(){this.updateSlottedAvatars()}componentDidLoad(){}updateSlottedAvatars(){const t=this.el.shadowRoot?.querySelector("slot"),a=t?t.assignedElements():Array.from(this.el.children);this.slottedAvatars=a.filter((t=>"ui-avatar"===t.tagName.toLowerCase()))}getMaxCount(){const t=this.max||this.maxVisible;return"number"==typeof t?t:t&&"object"==typeof t&&"count"in t&&t.count||1/0}getMaxStyle(){return this.max&&"object"==typeof this.max&&"style"in this.max?this.max.style:{}}calculateOverlap(){if("grid"===this.layout)return this.spacing;if(null!==this.overlap)return-Math.abs(this.overlap);const t={xs:24,s:32,sm:32,default:20,m:40,lg:40,l:48,xl:64};let a=40;const r=parseFloat(this.size);return isNaN(r)?"string"==typeof this.size&&t[this.size]&&(a=t[this.size]):a=r,-.4*a}handleMouseEnterGroup=()=>{this.isHovered=!0};handleMouseLeaveGroup=()=>{this.isHovered=!1,this.showPopover=!1};toggleRoster=t=>{t.stopPropagation(),this.isRosterOpen=!this.isRosterOpen};closeRoster=()=>{this.isRosterOpen=!1};renderExcessCount(t,a){const e=t-a;if(e<=0)return null;const o=this.getMaxStyle();return r("div",{class:"excess-avatar-container",onMouseEnter:()=>this.showPopover=this.enablePopover,onMouseLeave:()=>this.showPopover=!1,onClick:this.toggleRoster},r("div",{class:{"avatar-extra":!0,[`avatar-${this.getSizeAlias()}`]:!0,[`shape-${this.shape}`]:!0},style:{...o,backgroundColor:o.backgroundColor||"#f56a00"}},"+",e),this.showPopover&&this.enablePopover&&"stack"===this.layout&&this.renderPopover(a))}renderPopover(t){const a=this.getAllAvatarData().slice(t);return r("div",{class:"avatar-popover"},r("div",{class:"popover-content"},a.map(((t,a)=>r("div",{class:"popover-item",key:a},r("ui-avatar",{size:"xs",shape:this.shape,src:t.src,icon:t.icon,name:t.name,content:t.content,bgColor:t.bgColor}),r("span",{class:"popover-text"},t.name||t.content||"User"))))))}getAllAvatarData(){return this.avatars&&this.avatars.length>0?this.avatars:this.slottedAvatars.map((t=>({src:t.getAttribute("src"),name:t.getAttribute("name"),content:t.getAttribute("content")||t.textContent?.trim(),tooltipText:t.getAttribute("tooltipText")||t.getAttribute("tooltip-text")||t.getAttribute("name")||t.textContent?.trim(),icon:t.getAttribute("icon"),bgColor:t.getAttribute("bgColor")||t.getAttribute("bg-color"),badge:t.getAttribute("badge"),status:t.getAttribute("status")})))}getSizeAlias(){return{sm:"s",md:"m",lg:"l"}[this.size]||this.size}render(){const t=this.getAllAvatarData(),a=this.getMaxCount(),o="grid"===this.layout?t:t.slice(0,a),s=this.calculateOverlap(),i={"avatar-group":!0,[`layout-${this.layout}`]:!0,"avatar-group-animated":this.animated&&"stack"===this.layout,expanded:this.isHovered&&"stack"===this.layout},n={"--avatar-spacing":`${s}px`,"--avatar-border-color":this.borderColor,"--avatar-border-width":`${this.borderWidth}px`,"--avatar-size":"number"==typeof this.size?`${this.size}px`:this.size.toString()};return r(e,{key:"d1c53574be9549de6cce9cf8aae33ac8019dd556"},r("div",{key:"0f64bd06b7f8bd077e98286b9df7cd24e1924a50",class:i,style:n,onMouseEnter:this.handleMouseEnterGroup,onMouseLeave:this.handleMouseLeaveGroup},r("div",{key:"937475ddb42adc924320a2f15f61a76f3ec3c916",class:"avatar-list"},o.map(((a,e)=>r("ui-avatar",{...a,key:e,size:this.size,shape:this.shape,border:`${this.borderWidth}px solid ${this.borderColor}`,class:"group-avatar",style:{zIndex:("stack"===this.layout?t.length-e:1).toString()}}))),"stack"===this.layout&&this.renderExcessCount(t.length,a)),r("div",{key:"52779f80360501b288b88cd896f2dd117b18c0e1",style:{display:"none"}},r("slot",{key:"bd6996c4789091de98a2f01349990412278e51ee"}))),this.isRosterOpen&&r("div",{key:"fb404a5fd2e4723bb54465a8e6b94d220052721d",class:"avatar-roster-backdrop",onClick:this.closeRoster},r("div",{key:"81df0d927175829c2fe80e3c39bf81350011620e",class:"avatar-roster-content",onClick:t=>t.stopPropagation()},r("div",{key:"89cea0f5aed19f87eaab53bdab36b0ccf429dc54",class:"roster-header"},r("h3",{key:"3d113ccb91edb0b47e7bccc311af3f52f09ed5f2"},"Participants (",t.length,")"),r("ui-button",{key:"ad42880fadf89334d69ff0fca445adf7fb1b4494",variant:"ghost",onClick:this.closeRoster,ariaLabel:"Close roster",icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),r("div",{key:"d683e744b8a132d600d8681254c39b0569b1564c",class:"roster-list"},t.map(((t,a)=>r("div",{key:a,class:"roster-item"},r("ui-avatar",{...t,size:"s",shape:this.shape}),r("div",{class:"roster-info"},r("span",{class:"roster-name"},t.name||t.content||"Anonymous"),t.status&&r("span",{class:`roster-status status-${t.status}`},t.status)))))))))}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.avatar-group{display:inline-flex;position:relative;align-items:center}.avatar-group.layout-stack .group-avatar{margin-right:var(--avatar-spacing, -16px);transition:all 0.5s cubic-bezier(0.25, 1, 0.5, 1);transform-origin:center bottom}.avatar-group.layout-stack .group-avatar:hover{z-index:100 !important;transform:scale(1.25) translateY(-10px);margin-right:8px !important;box-shadow:0 10px 25px rgba(0, 0, 0, 0.2);border-color:var(--border-subtle, #fff) !important}.avatar-group.layout-stack .group-avatar:hover~.group-avatar,.avatar-group.layout-stack .group-avatar:hover~.excess-avatar-container{transform:translateX(24px)}.avatar-group.layout-stack.avatar-group-animated:hover{padding-right:40px}.avatar-group.layout-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(calc(var(--avatar-size) + 8px), 1fr));gap:8px;width:100%}.avatar-list{display:flex;flex-wrap:wrap;align-items:center}.layout-stack .avatar-list{flex-wrap:nowrap}.avatar-extra{display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-danger, #f56a00);color:var(--text-standard, #ffffff);font-weight:600;border:var(--avatar-border-width, 2px) solid var(--avatar-border-color, #fff);cursor:pointer;z-index:1;transition:transform 0.2s;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);font-size:0.8em}.avatar-extra:hover{transform:scale(1.1) translateY(-4px);z-index:100;box-shadow:0 8px 20px rgba(0, 0, 0, 0.15)}.avatar-extra.shape-circle{border-radius:50%}.avatar-extra.shape-square{border-radius:8px}.avatar-popover{position:absolute;top:100%;right:0;background:var(--bg-primary, #ffffff);border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.2);padding:12px;z-index:1000;min-width:180px;margin-top:8px;animation:popoverFadeIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar-popover::after{content:"";position:absolute;top:-12px;right:12px;border:6px solid transparent;border-bottom-color:var(--bg-primary, #ffffff)}.avatar-popover .popover-content{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.avatar-popover .popover-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:6px;transition:background 0.2s;cursor:pointer}.avatar-popover .popover-item:hover{background:var(--bg-secondary, #f3f4f6)}.avatar-popover .popover-item ui-avatar{transition:none !important;transform:none !important;box-shadow:none !important}.avatar-popover .popover-text{font-size:14px;color:var(--text-secondary, #374151);font-weight:500}@keyframes popoverFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.avatar-roster-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(4px)}.avatar-roster-content{background:var(--bg-primary, #ffffff);width:90%;max-width:500px;max-height:80vh;border-radius:16px;box-shadow:0 20px 50px rgba(0, 0, 0, 0.3);display:flex;flex-direction:column;overflow:hidden;animation:modalIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)}.roster-header{padding:20px;border-bottom:1px solid var(--border-subtle, #eee);display:flex;align-items:center;justify-content:space-between}.roster-header h3{margin:0;color:var(--text-primary, #1f2937)}.roster-header .close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:var(--text-muted, #9ca3af)}.roster-header .close-btn:hover{color:var(--text-primary, #1f2937)}.roster-list{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.roster-item{display:flex;align-items:center;gap:16px;padding:12px;border-radius:12px;transition:background 0.2s}.roster-item:hover{background:var(--bg-primary, #f9fafb)}.roster-info{display:flex;flex-direction:column}.roster-name{font-weight:600;color:var(--text-primary, #111827)}.roster-status{font-size:11px;text-transform:capitalize;border-radius:4px;padding:1px 6px;width:fit-content}.status-online{color:var(--color-success-hover, #059669);background:var(--bg-primary, #ecfdf5)}@keyframes modalIn{from{opacity:0;transform:scale(0.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}'}},[769,"ui-avatar-group",{avatars:[16],maxVisible:[2,"max-visible"],max:[2],size:[8],shape:[1],layout:[1],spacing:[2],overlap:[2],borderColor:[1,"border-color"],borderWidth:[2,"border-width"],enablePopover:[4,"enable-popover"],animated:[4],slottedAvatars:[32],showPopover:[32],isRosterOpen:[32],isHovered:[32]},[[0,"slotchange","handleSlotChange"]]]);function h(){"undefined"!=typeof customElements&&["ui-avatar-group","ui-avatar","ui-badge","ui-button","ui-icon","ui-input","ui-loader"].forEach((t=>{switch(t){case"ui-avatar-group":customElements.get(o(t))||customElements.define(o(t),c);break;case"ui-avatar":customElements.get(o(t))||s();break;case"ui-badge":customElements.get(o(t))||i();break;case"ui-button":customElements.get(o(t))||n();break;case"ui-icon":customElements.get(o(t))||p();break;case"ui-input":customElements.get(o(t))||d();break;case"ui-loader":customElements.get(o(t))||l()}}))}export{c as A,h as d}
@@ -1 +1 @@
1
- import{proxyCustomElement as a,HTMLElement as t,createEvent as r,h as e,Host as i,transformTag as s}from"@stencil/core/internal/client";import{d as o,a as n}from"./badge.js";import{d as l}from"./icon.js";import{d}from"./input.js";import{d as p}from"./loader.js";const h=a(class extends t{constructor(a){super(),!1!==a&&this.__registerHost(),this.__attachShadow(),this.avatarError=r(this,"avatarError",7),this.avatarClick=r(this,"avatarClick",7),this.avatarUpload=r(this,"avatarUpload",7),this.avatarLoad=r(this,"avatarLoad",7),this.avatarMouseEnter=r(this,"avatarMouseEnter",7),this.avatarMouseLeave=r(this,"avatarMouseLeave",7)}get el(){return this}alt="";gap=4;icon="";iconLibrary="default";shape="circle";size="m";src="";srcSet="";imgDraggable=!0;crossOrigin="";bgColor="#52c41a";color="#ffffff";border="";tooltipText="";responsiveSize=void 0;status="";statusPosition="bottom-right";showStatus=!1;badge="";badgePosition="top-right";badgeColor="#ff4d4f";editable=!1;acceptTypes="image/*";fallbackIcon="fas fa-user";loading=!1;lazy=!1;fit="cover";verified=!1;glass=!1;skeleton=!1;reflection=!1;segments=0;variant="default";clickable=!1;autoColor=!1;gradient=!1;gradientColors="";animation="none";ringColor="#3bf673";story=!1;storySeen=!1;activeSpeaker=!1;statusPulse=!1;threeD=!1;href="";content;name;maxInitials=2;group=!1;avatars=[];maxVisible=5;max=void 0;layout="stack";spacing=4;overlap=void 0;groupBorderColor="white";groupBorderWidth=2;enablePopover=!0;animated=!0;hasError=!1;scale=1;currentSize=40;showTooltip=!1;isHovered=!1;uploadedImage="";slottedAvatars=[];showPopoverGroup=!1;isRosterOpen=!1;isScaling=!1;textRef;avatarRef;avatarError;avatarClick;avatarUpload;avatarLoad;avatarMouseEnter;avatarMouseLeave;handleSrcChange(){this.hasError=!1,this.uploadedImage=""}handleLoadingChange(a){!a&&this.lazy&&this.src&&this.loadImage()}componentWillLoad(){this.group&&this.updateSlottedAvatars()}componentDidLoad(){this.group&&this.updateSlottedAvatars(),requestAnimationFrame((()=>this.setScale())),this.responsiveSize&&(this.updateResponsiveSize(),window.addEventListener("resize",this.updateResponsiveSize))}componentDidUpdate(){this.textRef&&this.avatarRef&&requestAnimationFrame((()=>this.setScale()))}updateSlottedAvatars(){const a=this.el.shadowRoot?.querySelector("slot"),t=a?a.assignedElements():Array.from(this.el.children);this.slottedAvatars=t.filter((a=>"ui-avatar"===a.tagName.toLowerCase()))}disconnectedCallback(){this.responsiveSize&&window.removeEventListener("resize",this.updateResponsiveSize)}updateResponsiveSize=()=>{if(!this.responsiveSize)return;const a=window.innerWidth;let t=this.size;a<576&&void 0!==this.responsiveSize.xs?t=this.responsiveSize.xs:a>=576&&a<768&&void 0!==this.responsiveSize.sm?t=this.responsiveSize.sm:a>=768&&a<992&&void 0!==this.responsiveSize.md?t=this.responsiveSize.md:a>=992&&a<1200&&void 0!==this.responsiveSize.lg?t=this.responsiveSize.lg:a>=1200&&void 0!==this.responsiveSize.xl&&(t=this.responsiveSize.xl),this.currentSize=t};setScale=()=>{if(this.isScaling||!this.textRef||!this.avatarRef)return;const a=this.textRef.offsetWidth,t=this.avatarRef.offsetWidth;if(0===a||0===t)return;const r=t-2*this.gap<a?(t-2*this.gap)/a:1;Math.abs(this.scale-r)>.01&&(this.isScaling=!0,this.scale=r,setTimeout((()=>{this.isScaling=!1}),100))};handleImgError=a=>{this.el.isConnected&&(this.hasError=!0,this.avatarError.emit(a))};handleImgLoad=a=>{this.el.isConnected&&this.avatarLoad.emit(a)};handleAvatarClick=a=>{if(this.clickable||this.editable){if(!this.el.isConnected)return;if(this.avatarClick.emit(a),this.editable){const a=this.el.shadowRoot?.querySelector('input[type="file"]');a&&a.click()}}};handleFileChange=a=>{const t=a.target,r=t.files?.[0];if(r){const a=new FileReader;a.onload=a=>{if(!this.el.isConnected)return;const t=a.target?.result;this.uploadedImage=t,this.hasError=!1,this.avatarUpload.emit({file:r,dataUrl:t})},a.readAsDataURL(r)}};handleMouseEnterAvatar=a=>{this.el.isConnected&&(this.isHovered=!0,this.avatarMouseEnter.emit(a),(this.tooltipText||this.alt)&&(this.showTooltip=!0))};handleMouseLeaveAvatar=a=>{this.el.isConnected&&(this.isHovered=!1,this.avatarMouseLeave.emit(a),this.showTooltip=!1)};getInitials(a){if(!a)return"";const t=a.trim().split(" ").filter((a=>!!a));return 0===t.length?"":1===t.length?t[0].substring(0,this.maxInitials).toUpperCase():(t[0].charAt(0)+t[t.length-1].charAt(0)).toUpperCase().substring(0,this.maxInitials)}generateColorFromText(a){let t=0;for(let r=0;r<a.length;r++)t=a.charCodeAt(r)+((t<<5)-t);const r=["#f56a00","#7265e6","#ffbf00","#00a2ae","#52c41a","#1890ff","#eb2f96","#fa8c16","#13c2c2","#722ed1","#fa541c","#2f54eb"];return r[Math.abs(t)%r.length]}getGradientColors(){if(this.gradientColors)try{const a=JSON.parse(this.gradientColors);if(Array.isArray(a)&&a.length>=2)return a}catch{const a=this.gradientColors.split(",").map((a=>a.trim()));if(a.length>=2)return a}return["#667eea","#764ba2"]}loadImage(){if(!this.src||!this.lazy)return;const a=new Image;a.src=this.src,a.onload=a=>this.handleImgLoad(a),a.onerror=a=>this.handleImgError(a)}getSizeInPixels(){const a=parseFloat(this.currentSize);if(!isNaN(a))return a;switch(this.currentSize){case"xs":return 24;case"s":case"sm":return 32;case"default":return 20;case"m":case"md":default:return 40;case"l":case"lg":return 48;case"xl":return 64}}renderImage(){const a=this.uploadedImage||this.src;if(this.hasError||!a)return null;const t="boolean"==typeof this.imgDraggable?this.imgDraggable:"true"===this.imgDraggable,r=this.getSizeInPixels();return e("img",{src:a,srcset:this.srcSet||void 0,alt:this.alt||this.name||"Avatar",width:r,height:r,draggable:t,crossorigin:this.crossOrigin||void 0,loading:this.lazy?"lazy":void 0,onError:this.handleImgError,onLoad:this.handleImgLoad,style:{objectFit:this.fit}})}renderIcon(){const a=this.icon||this.fallbackIcon;return a?e("ui-icon",{name:a,library:!this.icon&&this.fallbackIcon?"fontawesome":this.iconLibrary,size:"1.2em",class:"avatar-icon"}):null}renderText(){const a=this.content||this.getInitials(this.name||this.el.textContent?.trim()||"");return a?e("span",{ref:a=>this.textRef=a,class:"avatar-string",style:1!==this.scale?{transform:`scale(${this.scale}) translateX(-50%)`}:{transform:"translateX(-50%)"}},a):null}getAvatarSizeAlias(){let a=this.size;this.responsiveSize&&this.currentSize!==this.size&&(a=this.currentSize);const t=parseFloat(a);if(!isNaN(t))return`${t}px`;switch(a){case"lg":return"l";case"md":return"m";case"sm":return"s";default:return a}}getTooltipText(){return this.tooltipText?this.tooltipText:this.alt?this.alt:this.name||this.el.textContent?.trim()||""}renderStatusIndicator(){return this.showStatus&&this.status?e("span",{class:{"avatar-status":!0,[`avatar-status-${this.status}`]:!0,[`avatar-status-${this.statusPosition}`]:!0,"avatar-status-pulse":this.statusPulse}}):null}renderBadge(){if(!this.badge)return null;const a=1===this.badge.toString().length;return e("span",{class:{"avatar-badge":!0,[`avatar-badge-${this.badgePosition}`]:!0,"avatar-badge-circle":a,"avatar-badge-pill":!a},style:{backgroundColor:this.badgeColor}},this.badge)}renderVerified(){return this.verified?e("span",{class:"avatar-verified"},e("ui-icon",{name:"check-circle",library:"fontawesome",size:"14px"})):null}renderLoading(){return this.loading||this.skeleton?this.skeleton?e("div",{class:"avatar-skeleton"},e("div",{class:"skeleton-shimmer"})):e("div",{class:"avatar-loading"},e("ui-icon",{name:"loader-2",library:"lucide",spin:!0,size:"18px"})):null}renderEditOverlay(){return this.editable?e("div",{class:"avatar-edit-overlay"},e("ui-icon",{name:"camera",library:"fontawesome",size:"16px"}),e("ui-input",{type:"file",accept:this.acceptTypes,onInputChange:this.handleFileChange,style:{display:"none"}})):null}getMaxCount(){const a=this.max||this.maxVisible;return"number"==typeof a?a:a&&"object"==typeof a&&"count"in a&&a.count||1/0}getMaxStyle(){return this.max&&"object"==typeof this.max&&"style"in this.max?this.max.style:{}}calculateOverlap(){if("grid"===this.layout)return this.spacing;if(null!==this.overlap)return-Math.abs(this.overlap);const a={xs:24,s:32,sm:32,default:20,m:40,md:40,l:40,lg:48,xl:64};let t=40;const r=parseFloat(this.size);return isNaN(r)?"string"==typeof this.size&&a[this.size]&&(t=a[this.size]):t=r,-.4*t}getAllAvatarData(){return this.avatars&&this.avatars.length>0?this.avatars:this.slottedAvatars.map((a=>({src:a.getAttribute("src"),name:a.getAttribute("name"),content:a.getAttribute("content")||a.textContent?.trim(),tooltipText:a.getAttribute("tooltipText")||a.getAttribute("tooltip-text")||a.getAttribute("name")||a.textContent?.trim(),icon:a.getAttribute("icon"),bgColor:a.getAttribute("bgColor")||a.getAttribute("bg-color"),badge:a.getAttribute("badge"),status:a.getAttribute("status")})))}renderExcessCount(a,t){const r=a-t;if(r<=0)return null;const i=this.getMaxStyle();return e("div",{class:"excess-avatar-container",onMouseEnter:()=>this.showPopoverGroup=this.enablePopover,onMouseLeave:()=>this.showPopoverGroup=!1,onClick:this.toggleRoster},e("div",{class:{"avatar-extra":!0,[`avatar-${this.getAvatarSizeAlias()}`]:!0,[`shape-${this.shape}`]:!0},style:{...i,backgroundColor:i.backgroundColor||"#f56a00"}},"+",r),this.showPopoverGroup&&this.enablePopover&&"stack"===this.layout&&this.renderPopoverGroup(t))}renderPopoverGroup(a){const t=this.getAllAvatarData().slice(a);return e("div",{class:"avatar-popover"},e("div",{class:"popover-content"},t.map(((a,t)=>e("div",{class:"popover-item",key:t},e("ui-avatar",{size:"xs",shape:this.shape,...a}),e("span",{class:"popover-text"},a.name||a.content||"User"))))))}toggleRoster=a=>{a.stopPropagation(),this.isRosterOpen=!this.isRosterOpen};closeRoster=()=>{this.isRosterOpen=!1};renderRoster(a){return this.isRosterOpen?e("div",{class:"avatar-roster-backdrop",onClick:this.closeRoster},e("div",{class:"avatar-roster-content",onClick:a=>a.stopPropagation()},e("div",{class:"roster-header"},e("h3",null,"Participants (",a.length,")"),e("ui-button",{variant:"ghost",onClick:this.closeRoster,ariaLabel:"Close",icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),e("div",{class:"roster-list"},a.map(((a,t)=>e("div",{key:t,class:"roster-item"},e("ui-avatar",{...a,size:"s",shape:this.shape}),e("div",{class:"roster-info"},e("span",{class:"roster-name"},a.name||a.content||"Anonymous"),a.status&&e("span",{class:`roster-status status-${a.status}`},a.status)))))))):null}render(){if(this.group){const a=this.getAllAvatarData(),t=this.getMaxCount(),r="grid"===this.layout?a:a.slice(0,t),s=this.calculateOverlap(),o={"avatar-group":!0,[`layout-${this.layout}`]:!0,"avatar-group-animated":this.animated&&"stack"===this.layout,expanded:this.isHovered&&"stack"===this.layout},n={"--avatar-spacing":`${s}px`,"--avatar-border-color":this.groupBorderColor,"--avatar-border-width":`${this.groupBorderWidth}px`,"--avatar-size":"number"==typeof this.size?`${this.size}px`:this.size.toString()};return e(i,null,e("div",{class:o,style:n,onMouseEnter:()=>this.isHovered=!0,onMouseLeave:()=>this.isHovered=!1},e("div",{class:"avatar-list"},r.map(((t,r)=>e("ui-avatar",{...t,key:r,size:this.size,shape:this.shape,border:`${this.groupBorderWidth}px solid ${this.groupBorderColor}`,class:"group-avatar",style:{zIndex:("stack"===this.layout?a.length-r:1).toString()}}))),"stack"===this.layout&&this.renderExcessCount(a.length,t)),e("div",{style:{display:"none"}},e("slot",{onSlotchange:()=>this.updateSlottedAvatars()}))),this.renderRoster(a))}const a=!(!this.uploadedImage&&!this.src||this.hasError),t=this.content||this.name||this.el.textContent?.trim(),r=!a&&!!t,s=!(a||r||!this.icon&&!this.fallbackIcon),o=this.getAvatarSizeAlias(),n=!isNaN(parseFloat(this.size)),l={avatar:!0,[`avatar-${this.shape}`]:!0,[`avatar-${o}`]:!n,"avatar-image":a,"avatar-icon":s,"avatar-text":r,"avatar-clickable":this.clickable||this.editable||!!this.href,"avatar-loading":this.loading,"avatar-hovered":this.isHovered,[`avatar-animation-${this.animation}`]:"none"!==this.animation,"avatar-gradient":this.gradient,"avatar-glass":this.glass||"glass"===this.variant,"avatar-skeleton":this.skeleton,"avatar-reflection":this.reflection,"avatar-story":this.story,"avatar-story-seen":this.storySeen,"avatar-active-speaker":this.activeSpeaker,"avatar-3d":this.threeD},d={};if(n||this.responsiveSize){const a=`${this.getSizeInPixels()}px`;if(d.width=a,d.height=a,d.lineHeight=a,n){const a=parseFloat(this.size);d.fontSize=s?.6*a+"px":.45*a+"px"}}if(!a)if(this.gradient){const[a,t]=this.getGradientColors();d.background=`linear-gradient(135deg, ${a} 0%, ${t} 100%)`}else this.autoColor&&t?d.backgroundColor=this.generateColorFromText(t):this.bgColor&&(d.backgroundColor=this.bgColor);this.color&&!a&&(d.color=this.color),this.border&&(d.border=this.border),"ring"!==this.animation&&"glow"!==this.animation||(d["--ring-color"]=this.ringColor),this.segments>0&&(d["--story-segments"]=this.segments);const p=this.getTooltipText(),h=p.length>0,c={[`avatar-${this.shape}`]:!0};return"string"==typeof this.size&&(c[`avatar-${o}`]=!0),e(i,{class:c},e(this.href?"a":"div",{...this.href?{href:this.href,class:"avatar-link"}:{class:"avatar-container"}},e("div",{ref:a=>this.avatarRef=a,class:l,style:d,onMouseEnter:this.handleMouseEnterAvatar,onMouseLeave:this.handleMouseLeaveAvatar,onClick:this.handleAvatarClick,title:this.clickable||this.editable||this.href?void 0:p,role:this.clickable||this.editable||this.href?"button":void 0,tabindex:this.clickable||this.editable||this.href?0:void 0},this.loading&&this.renderLoading(),this.skeleton&&this.renderLoading(),!this.loading&&!this.skeleton&&(a?this.renderImage():s?this.renderIcon():r?this.renderText():null),(this.glass||"glass"===this.variant)&&e("div",{class:"glass-overlay"}),this.reflection&&e("div",{class:"reflection-overlay"}),this.renderEditOverlay()),this.renderStatusIndicator(),this.renderBadge(),this.renderVerified(),h&&this.showTooltip&&e("div",{class:"avatar-tooltip"},p)))}static get watchers(){return{src:[{handleSrcChange:0}],loading:[{handleLoadingChange:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:inline-flex;vertical-align:middle}:host *{box-sizing:border-box}:host{transition:all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar-container,.avatar-link{position:relative;display:inline-block;text-decoration:none}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;background-color:var(--bg-secondary, #ccc);color:var(--text-standard, #ffffff);font-weight:600;overflow:visible;white-space:nowrap;text-align:center;vertical-align:middle;user-select:none;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);transition:all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar.avatar-hovered{transform:translateY(-4px) scale(1.05);box-shadow:0 10px 20px rgba(0, 0, 0, 0.15)}.avatar.avatar-hovered.avatar-3d{transform:perspective(500px) rotateX(10deg) rotateY(10deg) translateY(-4px)}.avatar-circle{border-radius:50%}.avatar-square{border-radius:8px}.avatar-hexagon{clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);border-radius:0}.avatar-squircle{border-radius:35%}.avatar-circle img,.avatar-circle .avatar-string,.avatar-circle .avatar-icon,.avatar-hexagon img,.avatar-hexagon .avatar-string,.avatar-hexagon .avatar-icon,.avatar-squircle img,.avatar-squircle .avatar-string,.avatar-squircle .avatar-icon{border-radius:inherit;overflow:hidden}.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;transition:opacity 0.3s ease}.avatar-xs{width:24px;height:24px;line-height:24px;font-size:10px}.avatar-sm,.avatar-s{width:32px;height:32px;line-height:32px;font-size:12px}.avatar-default,.avatar-m{width:40px;height:40px;line-height:40px;font-size:16px}.avatar-lg,.avatar-l{width:48px;height:48px;line-height:48px;font-size:20px}.avatar-xl{width:64px;height:64px;line-height:64px;font-size:28px}.avatar-string{position:absolute;left:50%;transform:translateX(-50%);display:inline-block;white-space:nowrap}.avatar-icon{font-size:1.2em;display:flex;align-items:center;justify-content:center}.avatar-status{position:absolute;width:10px;height:10px;border-radius:50%;border:2px solid var(--border-subtle, #fff);z-index:5;box-shadow:0 1px 3px rgba(0, 0, 0, 0.1)}.avatar-status.avatar-status-top-right{top:0;right:0}.avatar-status.avatar-status-top-left{top:0;left:0}.avatar-status.avatar-status-bottom-right{bottom:0;right:0}.avatar-status.avatar-status-bottom-left{bottom:0;left:0}.avatar-status.avatar-status-online{background-color:var(--color-success, #22c55e)}.avatar-status.avatar-status-offline{background-color:transparent;border-color:var(--color-primary, #94a3b8)}.avatar-status.avatar-status-offline::after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--bg-primary, #ffffff);z-index:-1}.avatar-status.avatar-status-away{background-color:var(--color-warning, #f59e0b);clip-path:polygon(100% 0%, 100% 100%, 0% 100%, 0% 0%, 50% 50%);border:none}.avatar-status.avatar-status-busy,.avatar-status.avatar-status-dnd{background-color:var(--color-danger, #ef4444)}.avatar-status.avatar-status-busy::before,.avatar-status.avatar-status-dnd::before{content:"";position:absolute;top:50%;left:50%;width:6px;height:1.5px;background:var(--bg-primary, #ffffff);transform:translate(-50%, -50%)}.avatar-badge{position:absolute;min-width:18px;height:18px;line-height:18px;text-align:center;font-size:10px;font-weight:bold;color:var(--text-standard, #ffffff);border:2px solid var(--border-subtle, #fff);z-index:6;box-shadow:0 2px 4px rgba(0, 0, 0, 0.2)}.avatar-badge.avatar-badge-circle{border-radius:50%}.avatar-badge.avatar-badge-pill{padding:0 5px;border-radius:10px}.avatar-badge.avatar-badge-top-right{top:-4px;right:-4px}.avatar-badge.avatar-badge-top-left{top:-4px;left:-4px}.avatar-badge.avatar-badge-bottom-right{bottom:-4px;right:-4px}.avatar-badge.avatar-badge-bottom-left{bottom:-4px;left:-4px}.avatar-tooltip{position:absolute;bottom:110%;left:50%;transform:translateX(-50%);background:rgba(0, 0, 0, 0.85);color:var(--text-standard, #ffffff);padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:100;pointer-events:none;box-shadow:0 4px 10px rgba(0, 0, 0, 0.2)}.avatar-tooltip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:rgba(0, 0, 0, 0.85)}.avatar-skeleton{background:var(--bg-primary, #eee);position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit}.avatar-skeleton .skeleton-shimmer{width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);animation:shimmer 1.5s infinite}.avatar-loading{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255, 255, 255, 0.8);display:flex;align-items:center;justify-content:center;z-index:4;border-radius:inherit}.avatar-edit-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);opacity:0;transition:0.2s;display:flex;align-items:center;justify-content:center;z-index:3;border-radius:inherit;color:var(--text-standard, #ffffff)}.avatar:hover .avatar-edit-overlay{opacity:1}.avatar-glass{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(255, 255, 255, 0.1) !important;border:1px solid rgba(255, 255, 255, 0.2) !important}.avatar-reflection .reflection-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg, rgba(255, 255, 255, 0.25) 0%, transparent 50%);pointer-events:none}.avatar-verified{position:absolute;bottom:0;right:0;width:16px;height:16px;background:var(--color-primary, #1890ff);color:var(--text-standard, #ffffff);border-radius:50%;border:2px solid var(--border-subtle, #fff);display:flex;align-items:center;justify-content:center;font-size:10px;z-index:7}.avatar-story{padding:3px}.avatar-story::after{content:"";position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;border-radius:inherit;border:2px solid transparent;background:linear-gradient(45deg, var(--color-danger, #f09433), var(--color-danger, #e6683c), var(--color-danger, #dc2743), var(--color-danger, #cc2366), var(--color-danger, #bc1888)) border-box;-webkit-mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;z-index:1}.avatar-story.avatar-story-seen::after{background:var(--bg-secondary, #ccc) border-box}.avatar-story[style*="--story-segments"]::after{background:conic-gradient(from 0deg, var(--color-danger, #f09433) 0deg, var(--color-danger, #f09433) calc(360deg / var(--story-segments) - 2deg), transparent calc(360deg / var(--story-segments) - 2deg), transparent calc(360deg / var(--story-segments)));background-repeat:repeat;-webkit-mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes avatarRing{0%{transform:scale(1);opacity:1}100%{transform:scale(1.3);opacity:0}}.avatar-animation-pulse{animation:pulse 2s infinite}.avatar-animation-ring::after{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border:2px solid var(--ring-color, var(--color-primary, #10b981));border-radius:inherit;animation:avatarRing 1.5s infinite}.avatar-animation-glow{box-shadow:0 0 15px var(--ring-color, var(--color-primary, #10b981));animation:avatarGlow 2s ease-in-out infinite alternate}@keyframes avatarGlow{from{box-shadow:0 0 8px var(--ring-color, var(--color-primary, #10b981))}to{box-shadow:0 0 20px var(--ring-color, var(--color-primary, #10b981))}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.avatar-clickable:hover{transform:translateY(-2px);box-shadow:0 6px 15px rgba(0, 0, 0, 0.15)}.avatar-group{display:inline-flex;position:relative;align-items:center}.avatar-group.layout-stack .group-avatar{margin-right:var(--avatar-spacing, -16px);transition:all 0.5s cubic-bezier(0.25, 1, 0.5, 1);transform-origin:center bottom}.avatar-group.layout-stack .group-avatar:hover{z-index:100 !important;transform:scale(1.25) translateY(-10px);margin-right:8px !important;box-shadow:0 10px 25px rgba(0, 0, 0, 0.2);border-color:var(--border-subtle, #fff) !important}.avatar-group.layout-stack .group-avatar:hover~.group-avatar,.avatar-group.layout-stack .group-avatar:hover~.excess-avatar-container{transform:translateX(24px)}.avatar-group.layout-stack.avatar-group-animated:hover{padding-right:40px}.avatar-group.layout-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(calc(var(--avatar-size) + 8px), 1fr));gap:8px;width:100%}.avatar-list{display:flex;flex-wrap:wrap;align-items:center}.layout-stack .avatar-list{flex-wrap:nowrap}.avatar-extra{display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-danger, #f56a00);color:var(--text-standard, #ffffff);font-weight:600;border:var(--avatar-border-width, 2px) solid var(--avatar-border-color, #fff);cursor:pointer;z-index:1;transition:all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);font-size:0.8em}.avatar-extra:hover{transform:scale(1.1) translateY(-4px);z-index:100;box-shadow:0 8px 20px rgba(0, 0, 0, 0.15)}.avatar-extra.shape-circle{border-radius:50%}.avatar-extra.shape-square{border-radius:8px}.avatar-extra.shape-hexagon{clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);border-radius:0}.avatar-extra.shape-squircle{border-radius:35%}.excess-avatar-container{position:relative;display:inline-block}.avatar-popover{position:absolute;top:100%;right:0;background:var(--bg-primary, #ffffff);border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.2);padding:12px;z-index:1000;min-width:180px;margin-top:8px;animation:popoverFadeIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar-popover::after{content:"";position:absolute;top:-12px;right:12px;border:6px solid transparent;border-bottom-color:var(--bg-primary, #ffffff)}.avatar-popover .popover-content{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.avatar-popover .popover-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:6px;transition:background 0.2s;cursor:pointer}.avatar-popover .popover-item:hover{background:var(--bg-secondary, #f3f4f6)}.avatar-popover .popover-item ui-avatar{transition:none !important;transform:none !important;box-shadow:none !important}.avatar-popover .popover-text{font-size:14px;color:var(--text-secondary, #374151);font-weight:500}.avatar-roster-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(4px)}.avatar-roster-content{background:var(--bg-primary, #ffffff);width:90%;max-width:500px;max-height:80vh;border-radius:16px;box-shadow:0 20px 50px rgba(0, 0, 0, 0.3);display:flex;flex-direction:column;overflow:hidden;animation:modalIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)}.roster-header{padding:20px;border-bottom:1px solid var(--border-subtle, #eee);display:flex;align-items:center;justify-content:space-between}.roster-header h3{margin:0;color:var(--text-primary, #1f2937)}.roster-header .close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:var(--color-primary, #9ca3af)}.roster-header .close-btn:hover{color:var(--bg-primary, #1f2937)}.roster-list{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.roster-item{display:flex;align-items:center;gap:16px;padding:12px;border-radius:12px;transition:background 0.2s}.roster-item:hover{background:var(--bg-primary, #f9fafb)}.roster-info{display:flex;flex-direction:column}.roster-name{font-weight:600;color:var(--text-primary, #111827)}.roster-status{font-size:11px;text-transform:capitalize;border-radius:4px;padding:1px 6px;width:fit-content}.status-online{color:var(--color-success-hover, #059669);background:var(--bg-primary, #ecfdf5)}@keyframes popoverFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{from{opacity:0;transform:scale(0.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}'}},[769,"ui-avatar",{alt:[1],gap:[2],icon:[1],iconLibrary:[1,"icon-library"],shape:[1],size:[8],src:[1],srcSet:[1,"src-set"],imgDraggable:[4,"img-draggable"],crossOrigin:[1,"cross-origin"],bgColor:[1,"bg-color"],color:[1],border:[1],tooltipText:[1,"tooltip-text"],responsiveSize:[16],status:[1],statusPosition:[1,"status-position"],showStatus:[4,"show-status"],badge:[8],badgePosition:[1,"badge-position"],badgeColor:[1,"badge-color"],editable:[4],acceptTypes:[1,"accept-types"],fallbackIcon:[1,"fallback-icon"],loading:[4],lazy:[4],fit:[1],verified:[4],glass:[4],skeleton:[4],reflection:[4],segments:[2],variant:[1],clickable:[4],autoColor:[4,"auto-color"],gradient:[4],gradientColors:[1,"gradient-colors"],animation:[1],ringColor:[1,"ring-color"],story:[4],storySeen:[4,"story-seen"],activeSpeaker:[4,"active-speaker"],statusPulse:[4,"status-pulse"],threeD:[4,"three-d"],href:[1],content:[1],name:[1],maxInitials:[2,"max-initials"],group:[4],avatars:[16],maxVisible:[2,"max-visible"],max:[2],layout:[1],spacing:[2],overlap:[2],groupBorderColor:[1,"group-border-color"],groupBorderWidth:[2,"group-border-width"],enablePopover:[4,"enable-popover"],animated:[4],hasError:[32],scale:[32],currentSize:[32],showTooltip:[32],isHovered:[32],uploadedImage:[32],slottedAvatars:[32],showPopoverGroup:[32],isRosterOpen:[32]},void 0,{src:[{handleSrcChange:0}],loading:[{handleLoadingChange:0}]}]);function c(){"undefined"!=typeof customElements&&["ui-avatar","ui-avatar","ui-badge","ui-button","ui-icon","ui-input","ui-loader"].forEach((a=>{switch(a){case"ui-avatar":customElements.get(s(a))||customElements.define(s(a),h);break;case"ui-avatar":customElements.get(s(a))||c();break;case"ui-badge":customElements.get(s(a))||n();break;case"ui-button":customElements.get(s(a))||o();break;case"ui-icon":customElements.get(s(a))||l();break;case"ui-input":customElements.get(s(a))||d();break;case"ui-loader":customElements.get(s(a))||p()}}))}export{h as A,c as d}
1
+ import{proxyCustomElement as a,HTMLElement as t,createEvent as r,h as e,Host as i,transformTag as s}from"@stencil/core/internal/client";import{d as o}from"./badge.js";import{d as n}from"./button.js";import{d as l}from"./icon.js";import{d}from"./input.js";import{d as h}from"./loader.js";const p=a(class extends t{constructor(a){super(),!1!==a&&this.__registerHost(),this.__attachShadow(),this.avatarError=r(this,"avatarError",7),this.avatarClick=r(this,"avatarClick",7),this.avatarUpload=r(this,"avatarUpload",7),this.avatarLoad=r(this,"avatarLoad",7),this.avatarMouseEnter=r(this,"avatarMouseEnter",7),this.avatarMouseLeave=r(this,"avatarMouseLeave",7)}get el(){return this}alt="";gap=4;icon="";iconLibrary="default";shape="circle";size="m";src="";srcSet="";imgDraggable=!0;crossOrigin="";bgColor="#52c41a";color="#ffffff";border="";tooltipText="";responsiveSize=void 0;status="";statusPosition="bottom-right";showStatus=!1;indicatorSize;badge="";badgePosition="top-right";badgeColor="#ff4d4f";editable=!1;acceptTypes="image/*";fallbackIcon="fas fa-user";loading=!1;lazy=!1;fit="cover";verified=!1;glass=!1;skeleton=!1;reflection=!1;segments=0;variant="default";clickable=!1;autoColor=!1;gradient=!1;gradientColors="";animation="none";ringColor="#3bf673";story=!1;storySeen=!1;activeSpeaker=!1;statusPulse=!1;threeD=!1;href="";content;name;maxInitials=2;group=!1;avatars=[];maxVisible=5;max=void 0;layout="stack";spacing=4;overlap=void 0;groupBorderColor="white";groupBorderWidth=2;enablePopover=!0;animated=!0;hasError=!1;scale=1;currentSize=40;showTooltip=!1;isHovered=!1;uploadedImage="";slottedAvatars=[];showPopoverGroup=!1;isRosterOpen=!1;isScaling=!1;textRef;avatarRef;avatarError;avatarClick;avatarUpload;avatarLoad;avatarMouseEnter;avatarMouseLeave;handleSrcChange(){this.hasError=!1,this.uploadedImage=""}handleLoadingChange(a){!a&&this.lazy&&this.src&&this.loadImage()}componentWillLoad(){this.group&&this.updateSlottedAvatars()}componentDidLoad(){this.group&&this.updateSlottedAvatars(),requestAnimationFrame((()=>this.setScale())),this.responsiveSize&&(this.updateResponsiveSize(),window.addEventListener("resize",this.updateResponsiveSize))}componentDidUpdate(){this.textRef&&this.avatarRef&&requestAnimationFrame((()=>this.setScale()))}updateSlottedAvatars(){const a=this.el.shadowRoot?.querySelector("slot"),t=a?a.assignedElements():Array.from(this.el.children);this.slottedAvatars=t.filter((a=>"ui-avatar"===a.tagName.toLowerCase()))}disconnectedCallback(){this.responsiveSize&&window.removeEventListener("resize",this.updateResponsiveSize)}updateResponsiveSize=()=>{if(!this.responsiveSize)return;const a=window.innerWidth;let t=this.size;a<576&&void 0!==this.responsiveSize.xs?t=this.responsiveSize.xs:a>=576&&a<768&&void 0!==this.responsiveSize.sm?t=this.responsiveSize.sm:a>=768&&a<992&&void 0!==this.responsiveSize.md?t=this.responsiveSize.md:a>=992&&a<1200&&void 0!==this.responsiveSize.lg?t=this.responsiveSize.lg:a>=1200&&void 0!==this.responsiveSize.xl&&(t=this.responsiveSize.xl),this.currentSize=t};setScale=()=>{if(this.isScaling||!this.textRef||!this.avatarRef)return;const a=this.textRef.offsetWidth,t=this.avatarRef.offsetWidth;if(0===a||0===t)return;const r=t-2*this.gap<a?(t-2*this.gap)/a:1;Math.abs(this.scale-r)>.01&&(this.isScaling=!0,this.scale=r,setTimeout((()=>{this.isScaling=!1}),100))};handleImgError=a=>{this.el.isConnected&&(this.hasError=!0,this.avatarError.emit(a))};handleImgLoad=a=>{this.el.isConnected&&this.avatarLoad.emit(a)};handleAvatarClick=a=>{if(this.clickable||this.editable){if(!this.el.isConnected)return;if(this.avatarClick.emit(a),this.editable){const a=this.el.shadowRoot?.querySelector('input[type="file"]');a&&a.click()}}};handleFileChange=a=>{const t=a.target,r=t.files?.[0];if(r){const a=new FileReader;a.onload=a=>{if(!this.el.isConnected)return;const t=a.target?.result;this.uploadedImage=t,this.hasError=!1,this.avatarUpload.emit({file:r,dataUrl:t})},a.readAsDataURL(r)}};handleMouseEnterAvatar=a=>{this.el.isConnected&&(this.isHovered=!0,this.avatarMouseEnter.emit(a),(this.tooltipText||this.alt)&&(this.showTooltip=!0))};handleMouseLeaveAvatar=a=>{this.el.isConnected&&(this.isHovered=!1,this.avatarMouseLeave.emit(a),this.showTooltip=!1)};getInitials(a){if(!a)return"";const t=a.trim().split(" ").filter((a=>!!a));return 0===t.length?"":1===t.length?t[0].substring(0,this.maxInitials).toUpperCase():(t[0].charAt(0)+t[t.length-1].charAt(0)).toUpperCase().substring(0,this.maxInitials)}generateColorFromText(a){let t=0;for(let r=0;r<a.length;r++)t=a.charCodeAt(r)+((t<<5)-t);const r=["#f56a00","#7265e6","#ffbf00","#00a2ae","#52c41a","#1890ff","#eb2f96","#fa8c16","#13c2c2","#722ed1","#fa541c","#2f54eb"];return r[Math.abs(t)%r.length]}getGradientColors(){if(this.gradientColors)try{const a=JSON.parse(this.gradientColors);if(Array.isArray(a)&&a.length>=2)return a}catch{const a=this.gradientColors.split(",").map((a=>a.trim()));if(a.length>=2)return a}return["#667eea","#764ba2"]}loadImage(){if(!this.src||!this.lazy)return;const a=new Image;a.src=this.src,a.onload=a=>this.handleImgLoad(a),a.onerror=a=>this.handleImgError(a)}getSizeInPixels(){const a=parseFloat(this.currentSize);if(!isNaN(a))return a;switch(this.currentSize){case"xs":return 24;case"s":case"sm":return 32;case"default":return 20;case"m":case"md":default:return 40;case"l":case"lg":return 48;case"xl":return 64}}renderImage(){const a=this.uploadedImage||this.src;if(this.hasError||!a)return null;const t="boolean"==typeof this.imgDraggable?this.imgDraggable:"true"===this.imgDraggable,r=this.getSizeInPixels();return e("img",{src:a,srcset:this.srcSet||void 0,alt:this.alt||this.name||"Avatar",width:r,height:r,draggable:t,crossorigin:this.crossOrigin||void 0,loading:this.lazy?"lazy":void 0,onError:this.handleImgError,onLoad:this.handleImgLoad,style:{objectFit:this.fit}})}renderIcon(){const a=this.icon||this.fallbackIcon;return a?e("ui-icon",{name:a,library:!this.icon&&this.fallbackIcon?"fontawesome":this.iconLibrary,size:"1.2em",class:"avatar-icon"}):null}renderText(){const a=this.content||this.getInitials(this.name||this.el.textContent?.trim()||"");return a?e("span",{ref:a=>this.textRef=a,class:"avatar-string",style:1!==this.scale?{transform:`scale(${this.scale}) translateX(-50%)`}:{transform:"translateX(-50%)"}},a):null}getAvatarSizeAlias(){let a=this.size;this.responsiveSize&&this.currentSize!==this.size&&(a=this.currentSize);const t=parseFloat(a);if(!isNaN(t))return`${t}px`;switch(a){case"lg":return"l";case"md":return"m";case"sm":return"s";default:return a}}getTooltipText(){return this.tooltipText?this.tooltipText:this.alt?this.alt:this.name||this.el.textContent?.trim()||""}getIndicatorSizeStyles(){if(null==this.indicatorSize||""===this.indicatorSize)return;const a="string"==typeof this.indicatorSize?this.indicatorSize.trim():this.indicatorSize;let t;return t="number"==typeof a||/^\d+(?:\.\d+)?$/.test(a)?`${a}px`:a,{"--avatar-status-size":t,"--avatar-status-border-width":`max(1px, calc(${t} * 0.2))`,"--avatar-status-offline-inset":`max(1px, calc(${t} * 0.2))`,"--avatar-status-busy-width":`calc(${t} * 0.6)`,"--avatar-status-busy-height":`max(1px, calc(${t} * 0.15))`}}renderStatusIndicator(){return this.showStatus&&this.status?e("span",{class:{"avatar-status":!0,[`avatar-status-${this.status}`]:!0,[`avatar-status-${this.statusPosition}`]:!0,"avatar-status-pulse":this.statusPulse},style:this.getIndicatorSizeStyles()}):null}renderBadge(){if(!this.badge)return null;const a=1===this.badge.toString().length;return e("span",{class:{"avatar-badge":!0,[`avatar-badge-${this.badgePosition}`]:!0,"avatar-badge-circle":a,"avatar-badge-pill":!a},style:{backgroundColor:this.badgeColor}},this.badge)}renderVerified(){return this.verified?e("span",{class:"avatar-verified"},e("ui-icon",{name:"check-circle",library:"fontawesome",size:"14px"})):null}renderLoading(){return this.loading||this.skeleton?this.skeleton?e("div",{class:"avatar-skeleton"},e("div",{class:"skeleton-shimmer"})):e("div",{class:"avatar-loading"},e("ui-icon",{name:"loader-2",library:"lucide",spin:!0,size:"18px"})):null}renderEditOverlay(){return this.editable?e("div",{class:"avatar-edit-overlay"},e("ui-icon",{name:"camera",library:"fontawesome",size:"16px"}),e("ui-input",{type:"file",accept:this.acceptTypes,onInputChange:this.handleFileChange,style:{display:"none"}})):null}getMaxCount(){const a=this.max||this.maxVisible;return"number"==typeof a?a:a&&"object"==typeof a&&"count"in a&&a.count||1/0}getMaxStyle(){return this.max&&"object"==typeof this.max&&"style"in this.max?this.max.style:{}}calculateOverlap(){if("grid"===this.layout)return this.spacing;if(null!==this.overlap)return-Math.abs(this.overlap);const a={xs:24,s:32,sm:32,default:20,m:40,md:40,l:40,lg:48,xl:64};let t=40;const r=parseFloat(this.size);return isNaN(r)?"string"==typeof this.size&&a[this.size]&&(t=a[this.size]):t=r,-.4*t}getAllAvatarData(){return this.avatars&&this.avatars.length>0?this.avatars:this.slottedAvatars.map((a=>{const t={content:a.textContent?.trim()||void 0,tooltipText:a.getAttribute("name")||a.textContent?.trim()||void 0};return Array.from(a.attributes).forEach((a=>{const r=a.name.replace(/-([a-z])/g,(a=>a[1].toUpperCase()));let e=a.value;"true"!==e&&""!==e||(e=!0),"false"===e&&(e=!1),t[r]=e})),t}))}renderExcessCount(a,t){const r=a-t;if(r<=0)return null;const i=this.getMaxStyle();return e("div",{class:"excess-avatar-container",onMouseEnter:()=>this.showPopoverGroup=this.enablePopover,onMouseLeave:()=>this.showPopoverGroup=!1,onClick:this.toggleRoster},e("div",{class:{"avatar-extra":!0,[`avatar-${this.getAvatarSizeAlias()}`]:!0,[`shape-${this.shape}`]:!0},style:{...i,backgroundColor:i.backgroundColor||"#f56a00"}},"+",r),this.showPopoverGroup&&this.enablePopover&&"stack"===this.layout&&this.renderPopoverGroup(t))}renderPopoverGroup(a){const t=this.getAllAvatarData().slice(a);return e("div",{class:"avatar-popover"},e("div",{class:"popover-content"},t.map(((a,t)=>e("div",{class:"popover-item",key:t},e("ui-avatar",{size:"xs",shape:this.shape,...a}),e("span",{class:"popover-text"},a.name||a.content||"User"))))))}toggleRoster=a=>{a.stopPropagation(),this.isRosterOpen=!this.isRosterOpen};closeRoster=()=>{this.isRosterOpen=!1};renderRoster(a){return this.isRosterOpen?e("div",{class:"avatar-roster-backdrop",onClick:this.closeRoster},e("div",{class:"avatar-roster-content",onClick:a=>a.stopPropagation()},e("div",{class:"roster-header"},e("h3",null,"Participants (",a.length,")"),e("ui-button",{variant:"ghost",onClick:this.closeRoster,ariaLabel:"Close",icon:"x",iconLibrary:"lucide",iconOnly:!0,size:"sm"})),e("div",{class:"roster-list"},a.map(((a,t)=>e("div",{key:t,class:"roster-item"},e("ui-avatar",{...a,size:"s",shape:this.shape}),e("div",{class:"roster-info"},e("span",{class:"roster-name"},a.name||a.content||"Anonymous"),a.status&&e("span",{class:`roster-status status-${a.status}`},a.status)))))))):null}render(){if(this.group){const a=this.getAllAvatarData(),t=this.getMaxCount(),r="grid"===this.layout?a:a.slice(0,t),s=this.calculateOverlap(),o={"avatar-group":!0,[`layout-${this.layout}`]:!0,"avatar-group-animated":this.animated&&"stack"===this.layout,expanded:this.isHovered&&"stack"===this.layout},n={"--avatar-spacing":`${s}px`,"--avatar-border-color":this.groupBorderColor,"--avatar-border-width":`${this.groupBorderWidth}px`,"--avatar-size":"number"==typeof this.size?`${this.size}px`:this.size.toString()};return e(i,null,e("div",{class:o,style:n,onMouseEnter:()=>this.isHovered=!0,onMouseLeave:()=>this.isHovered=!1},e("div",{class:"avatar-list"},r.map(((t,r)=>e("ui-avatar",{...t,key:r,size:this.size,shape:this.shape,border:`${this.groupBorderWidth}px solid ${this.groupBorderColor}`,class:"group-avatar",style:{zIndex:("stack"===this.layout?a.length-r:1).toString()}}))),"stack"===this.layout&&this.renderExcessCount(a.length,t)),e("div",{style:{display:"none"}},e("slot",{onSlotchange:()=>this.updateSlottedAvatars()}))),this.renderRoster(a))}const a=!(!this.uploadedImage&&!this.src||this.hasError),t=this.content||this.name||this.el.textContent?.trim(),r=!a&&!!t,s=!(a||r||!this.icon&&!this.fallbackIcon),o=this.getAvatarSizeAlias(),n=!isNaN(parseFloat(this.size)),l={avatar:!0,[`avatar-${this.shape}`]:!0,[`avatar-${o}`]:!n,"avatar-image":a,"avatar-icon":s,"avatar-text":r,"avatar-clickable":this.clickable||this.editable||!!this.href,"avatar-loading":this.loading,"avatar-hovered":this.isHovered,[`avatar-animation-${this.animation}`]:"none"!==this.animation,"avatar-gradient":this.gradient,"avatar-glass":this.glass||"glass"===this.variant,"avatar-skeleton":this.skeleton,"avatar-reflection":this.reflection,"avatar-story":this.story,"avatar-story-seen":this.storySeen,"avatar-active-speaker":this.activeSpeaker,"avatar-3d":this.threeD},d={};if(n||this.responsiveSize){const a=`${this.getSizeInPixels()}px`;if(d.width=a,d.height=a,d.lineHeight=a,n){const a=parseFloat(this.size);d.fontSize=s?.6*a+"px":.45*a+"px"}}if(!a)if(this.gradient){const[a,t]=this.getGradientColors();d.background=`linear-gradient(135deg, ${a} 0%, ${t} 100%)`}else this.autoColor&&t?d.backgroundColor=this.generateColorFromText(t):this.bgColor&&(d.backgroundColor=this.bgColor);this.color&&!a&&(d.color=this.color),this.border&&(d.border=this.border),"ring"!==this.animation&&"glow"!==this.animation||(d["--ring-color"]=this.ringColor),this.segments>0&&(d["--story-segments"]=this.segments);const h=this.getTooltipText(),p=h.length>0,c={[`avatar-${this.shape}`]:!0};return"string"==typeof this.size&&(c[`avatar-${o}`]=!0),e(i,{class:c},e(this.href?"a":"div",{...this.href?{href:this.href,class:"avatar-link"}:{class:"avatar-container"}},e("div",{ref:a=>this.avatarRef=a,class:l,style:d,onMouseEnter:this.handleMouseEnterAvatar,onMouseLeave:this.handleMouseLeaveAvatar,onClick:this.handleAvatarClick,title:this.clickable||this.editable||this.href?void 0:h,role:this.clickable||this.editable||this.href?"button":void 0,tabindex:this.clickable||this.editable||this.href?0:void 0},this.loading&&this.renderLoading(),this.skeleton&&this.renderLoading(),!this.loading&&!this.skeleton&&(a?this.renderImage():s?this.renderIcon():r?this.renderText():null),(this.glass||"glass"===this.variant)&&e("div",{class:"glass-overlay"}),this.reflection&&e("div",{class:"reflection-overlay"}),this.renderEditOverlay()),this.renderStatusIndicator(),this.renderBadge(),this.renderVerified(),p&&this.showTooltip&&e("div",{class:"avatar-tooltip"},h)))}static get watchers(){return{src:[{handleSrcChange:0}],loading:[{handleLoadingChange:0}]}}static get style(){return'.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:inline-flex;vertical-align:middle}:host *{box-sizing:border-box}:host{transition:all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar-container,.avatar-link{position:relative;display:inline-block;text-decoration:none}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;background-color:var(--bg-secondary, #ccc);color:var(--text-standard, #ffffff);font-weight:600;overflow:visible;white-space:nowrap;text-align:center;vertical-align:middle;user-select:none;box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);transition:all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar.avatar-hovered{transform:translateY(-4px) scale(1.05);box-shadow:0 10px 20px rgba(0, 0, 0, 0.15)}.avatar.avatar-hovered.avatar-3d{transform:perspective(500px) rotateX(10deg) rotateY(10deg) translateY(-4px)}.avatar-circle{border-radius:50%}.avatar-square{border-radius:8px}.avatar-hexagon{clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);border-radius:0}.avatar-squircle{border-radius:35%}.avatar-circle img,.avatar-circle .avatar-string,.avatar-circle .avatar-icon,.avatar-hexagon img,.avatar-hexagon .avatar-string,.avatar-hexagon .avatar-icon,.avatar-squircle img,.avatar-squircle .avatar-string,.avatar-squircle .avatar-icon{border-radius:inherit;overflow:hidden}.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit;transition:opacity 0.3s ease}.avatar-xs{width:24px;height:24px;line-height:24px;font-size:10px}.avatar-sm,.avatar-s{width:32px;height:32px;line-height:32px;font-size:12px}.avatar-default,.avatar-m{width:40px;height:40px;line-height:40px;font-size:16px}.avatar-lg,.avatar-l{width:48px;height:48px;line-height:48px;font-size:20px}.avatar-xl{width:64px;height:64px;line-height:64px;font-size:28px}.avatar-string{position:absolute;left:50%;transform:translateX(-50%);display:inline-block;white-space:nowrap}.avatar-icon{font-size:1.2em;display:flex;align-items:center;justify-content:center}.avatar-status{position:absolute;width:var(--avatar-status-size, 10px);height:var(--avatar-status-size, 10px);border-radius:50%;border:var(--avatar-status-border-width, 2px) solid var(--border-subtle, #fff);z-index:5;box-shadow:0 1px 3px rgba(0, 0, 0, 0.1)}.avatar-status.avatar-status-top-right{top:0;right:0}.avatar-status.avatar-status-top-left{top:0;left:0}.avatar-status.avatar-status-bottom-right{bottom:0;right:0}.avatar-status.avatar-status-bottom-left{bottom:0;left:0}.avatar-status.avatar-status-online{background-color:var(--color-success, #22c55e)}.avatar-status.avatar-status-offline{background-color:transparent;border-color:var(--color-primary, #94a3b8)}.avatar-status.avatar-status-offline::after{content:"";position:absolute;inset:var(--avatar-status-offline-inset, 2px);border-radius:50%;background:var(--bg-primary, #ffffff);z-index:-1}.avatar-status.avatar-status-away{background-color:var(--color-warning, #f59e0b);clip-path:polygon(100% 0%, 100% 100%, 0% 100%, 0% 0%, 50% 50%);border:none}.avatar-status.avatar-status-busy,.avatar-status.avatar-status-dnd{background-color:var(--color-danger, #ef4444)}.avatar-status.avatar-status-busy::before,.avatar-status.avatar-status-dnd::before{content:"";position:absolute;top:50%;left:50%;width:var(--avatar-status-busy-width, 6px);height:var(--avatar-status-busy-height, 1.5px);background:var(--bg-primary, #ffffff);transform:translate(-50%, -50%)}.avatar-badge{position:absolute;min-width:18px;height:18px;line-height:18px;text-align:center;font-size:10px;font-weight:bold;color:var(--text-standard, #ffffff);border:2px solid var(--border-subtle, #fff);z-index:6;box-shadow:0 2px 4px rgba(0, 0, 0, 0.2)}.avatar-badge.avatar-badge-circle{border-radius:50%}.avatar-badge.avatar-badge-pill{padding:0 5px;border-radius:10px}.avatar-badge.avatar-badge-top-right{top:-4px;right:-4px}.avatar-badge.avatar-badge-top-left{top:-4px;left:-4px}.avatar-badge.avatar-badge-bottom-right{bottom:-4px;right:-4px}.avatar-badge.avatar-badge-bottom-left{bottom:-4px;left:-4px}.avatar-tooltip{position:absolute;bottom:110%;left:50%;transform:translateX(-50%);background:rgba(0, 0, 0, 0.85);color:var(--text-standard, #ffffff);padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:100;pointer-events:none;box-shadow:0 4px 10px rgba(0, 0, 0, 0.2)}.avatar-tooltip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:rgba(0, 0, 0, 0.85)}.avatar-skeleton{background:var(--bg-primary, #eee);position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit}.avatar-skeleton .skeleton-shimmer{width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);animation:shimmer 1.5s infinite}.avatar-loading{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255, 255, 255, 0.8);display:flex;align-items:center;justify-content:center;z-index:4;border-radius:inherit}.avatar-edit-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);opacity:0;transition:0.2s;display:flex;align-items:center;justify-content:center;z-index:3;border-radius:inherit;color:var(--text-standard, #ffffff)}.avatar:hover .avatar-edit-overlay{opacity:1}.avatar-glass{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(255, 255, 255, 0.1) !important;border:1px solid rgba(255, 255, 255, 0.2) !important}.avatar-reflection .reflection-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg, rgba(255, 255, 255, 0.25) 0%, transparent 50%);pointer-events:none}.avatar-verified{position:absolute;bottom:0;right:0;width:16px;height:16px;background:var(--color-primary, #1890ff);color:var(--text-standard, #ffffff);border-radius:50%;border:2px solid var(--border-subtle, #fff);display:flex;align-items:center;justify-content:center;font-size:10px;z-index:7}.avatar-story{padding:3px}.avatar-story::after{content:"";position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;border-radius:inherit;border:2px solid transparent;background:linear-gradient(45deg, var(--color-danger, #f09433), var(--color-danger, #e6683c), var(--color-danger, #dc2743), var(--color-danger, #cc2366), var(--color-danger, #bc1888)) border-box;-webkit-mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;z-index:1}.avatar-story.avatar-story-seen::after{background:var(--bg-secondary, #ccc) border-box}.avatar-story[style*="--story-segments"]::after{background:conic-gradient(from 0deg, var(--color-danger, #f09433) 0deg, var(--color-danger, #f09433) calc(360deg / var(--story-segments) - 2deg), transparent calc(360deg / var(--story-segments) - 2deg), transparent calc(360deg / var(--story-segments)));background-repeat:repeat;-webkit-mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);mask:linear-gradient(var(--bg-primary, #fff) 0 0) padding-box, linear-gradient(var(--bg-primary, #fff) 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude}@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes avatarRing{0%{transform:scale(1);opacity:1}100%{transform:scale(1.3);opacity:0}}.avatar-animation-pulse{animation:pulse 2s infinite}.avatar-animation-ring::after{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border:2px solid var(--ring-color, var(--color-primary, #10b981));border-radius:inherit;animation:avatarRing 1.5s infinite}.avatar-animation-glow{box-shadow:0 0 15px var(--ring-color, var(--color-primary, #10b981));animation:avatarGlow 2s ease-in-out infinite alternate}@keyframes avatarGlow{from{box-shadow:0 0 8px var(--ring-color, var(--color-primary, #10b981))}to{box-shadow:0 0 20px var(--ring-color, var(--color-primary, #10b981))}}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}.avatar-clickable:hover{transform:translateY(-2px);box-shadow:0 6px 15px rgba(0, 0, 0, 0.15)}.avatar-group{display:inline-flex;position:relative;align-items:center}.avatar-group.layout-stack .group-avatar{margin-right:var(--avatar-spacing, -16px);transition:all 0.5s cubic-bezier(0.25, 1, 0.5, 1);transform-origin:center bottom}.avatar-group.layout-stack .group-avatar:hover{z-index:100 !important;transform:scale(1.25) translateY(-10px);margin-right:8px !important;box-shadow:0 10px 25px rgba(0, 0, 0, 0.2);border-color:var(--border-subtle, #fff) !important}.avatar-group.layout-stack .group-avatar:hover~.group-avatar,.avatar-group.layout-stack .group-avatar:hover~.excess-avatar-container{transform:translateX(24px)}.avatar-group.layout-stack.avatar-group-animated:hover{padding-right:40px}.avatar-group.layout-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(calc(var(--avatar-size) + 8px), 1fr));gap:8px;width:100%}.avatar-list{display:flex;flex-wrap:wrap;align-items:center}.layout-stack .avatar-list{flex-wrap:nowrap}.avatar-extra{display:inline-flex;align-items:center;justify-content:center;background-color:var(--color-danger, #f56a00);color:var(--text-standard, #ffffff);font-weight:600;border:var(--avatar-border-width, 2px) solid var(--avatar-border-color, #fff);cursor:pointer;z-index:1;transition:all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);font-size:0.8em}.avatar-extra:hover{transform:scale(1.1) translateY(-4px);z-index:100;box-shadow:0 8px 20px rgba(0, 0, 0, 0.15)}.avatar-extra.shape-circle{border-radius:50%}.avatar-extra.shape-square{border-radius:8px}.avatar-extra.shape-hexagon{clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);border-radius:0}.avatar-extra.shape-squircle{border-radius:35%}.excess-avatar-container{position:relative;display:inline-block}.avatar-popover{position:absolute;top:100%;right:0;background:var(--bg-primary, #ffffff);border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.2);padding:12px;z-index:1000;min-width:180px;margin-top:8px;animation:popoverFadeIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1)}.avatar-popover::after{content:"";position:absolute;top:-12px;right:12px;border:6px solid transparent;border-bottom-color:var(--bg-primary, #ffffff)}.avatar-popover .popover-content{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.avatar-popover .popover-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:6px;transition:background 0.2s;cursor:pointer}.avatar-popover .popover-item:hover{background:var(--bg-secondary, #f3f4f6)}.avatar-popover .popover-item ui-avatar{transition:none !important;transform:none !important;box-shadow:none !important}.avatar-popover .popover-text{font-size:14px;color:var(--text-secondary, #374151);font-weight:500}.avatar-roster-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:2000;backdrop-filter:blur(4px)}.avatar-roster-content{background:var(--bg-primary, #ffffff);width:90%;max-width:500px;max-height:80vh;border-radius:16px;box-shadow:0 20px 50px rgba(0, 0, 0, 0.3);display:flex;flex-direction:column;overflow:hidden;animation:modalIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1)}.roster-header{padding:20px;border-bottom:1px solid var(--border-subtle, #eee);display:flex;align-items:center;justify-content:space-between}.roster-header h3{margin:0;color:var(--text-primary, #1f2937)}.roster-header .close-btn{background:none;border:none;font-size:28px;cursor:pointer;color:var(--color-primary, #9ca3af)}.roster-header .close-btn:hover{color:var(--bg-primary, #1f2937)}.roster-list{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.roster-item{display:flex;align-items:center;gap:16px;padding:12px;border-radius:12px;transition:background 0.2s}.roster-item:hover{background:var(--bg-primary, #f9fafb)}.roster-info{display:flex;flex-direction:column}.roster-name{font-weight:600;color:var(--text-primary, #111827)}.roster-status{font-size:11px;text-transform:capitalize;border-radius:4px;padding:1px 6px;width:fit-content}.status-online{color:var(--color-success-hover, #059669);background:var(--bg-primary, #ecfdf5)}@keyframes popoverFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes modalIn{from{opacity:0;transform:scale(0.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}'}},[769,"ui-avatar",{alt:[1],gap:[2],icon:[1],iconLibrary:[1,"icon-library"],shape:[1],size:[8],src:[1],srcSet:[1,"src-set"],imgDraggable:[4,"img-draggable"],crossOrigin:[1,"cross-origin"],bgColor:[1,"bg-color"],color:[1],border:[1],tooltipText:[1,"tooltip-text"],responsiveSize:[16],status:[1],statusPosition:[1,"status-position"],showStatus:[4,"show-status"],indicatorSize:[8,"indicator-size"],badge:[8],badgePosition:[1,"badge-position"],badgeColor:[1,"badge-color"],editable:[4],acceptTypes:[1,"accept-types"],fallbackIcon:[1,"fallback-icon"],loading:[4],lazy:[4],fit:[1],verified:[4],glass:[4],skeleton:[4],reflection:[4],segments:[2],variant:[1],clickable:[4],autoColor:[4,"auto-color"],gradient:[4],gradientColors:[1,"gradient-colors"],animation:[1],ringColor:[1,"ring-color"],story:[4],storySeen:[4,"story-seen"],activeSpeaker:[4,"active-speaker"],statusPulse:[4,"status-pulse"],threeD:[4,"three-d"],href:[1],content:[1],name:[1],maxInitials:[2,"max-initials"],group:[4],avatars:[16],maxVisible:[2,"max-visible"],max:[2],layout:[1],spacing:[2],overlap:[2],groupBorderColor:[1,"group-border-color"],groupBorderWidth:[2,"group-border-width"],enablePopover:[4,"enable-popover"],animated:[4],hasError:[32],scale:[32],currentSize:[32],showTooltip:[32],isHovered:[32],uploadedImage:[32],slottedAvatars:[32],showPopoverGroup:[32],isRosterOpen:[32]},void 0,{src:[{handleSrcChange:0}],loading:[{handleLoadingChange:0}]}]);function c(){"undefined"!=typeof customElements&&["ui-avatar","ui-avatar","ui-badge","ui-button","ui-icon","ui-input","ui-loader"].forEach((a=>{switch(a){case"ui-avatar":customElements.get(s(a))||customElements.define(s(a),p);break;case"ui-avatar":customElements.get(s(a))||c();break;case"ui-badge":customElements.get(s(a))||o();break;case"ui-button":customElements.get(s(a))||n();break;case"ui-icon":customElements.get(s(a))||l();break;case"ui-input":customElements.get(s(a))||d();break;case"ui-loader":customElements.get(s(a))||h()}}))}export{p as A,c as d}