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.
- package/dist/cjs/category-section.cjs.entry.js +2 -2
- package/dist/cjs/dom-BvBb0kmW.js +267 -0
- package/dist/cjs/exploration-project-tailwind.cjs.js +2 -2
- package/dist/cjs/{index-ClkOYpT8.js → index-C32cWsm5.js} +1 -1
- package/dist/cjs/layout-manager.cjs.entry.js +3 -3
- package/dist/cjs/library-card.cjs.entry.js +2 -2
- package/dist/cjs/lm-container_2.cjs.entry.js +2 -2
- package/dist/cjs/lm-panel_3.cjs.entry.js +4 -4
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/my-component.cjs.entry.js +1 -1
- package/dist/cjs/my-step.cjs.entry.js +2 -2
- package/dist/cjs/nav-bar.cjs.entry.js +4 -4
- package/dist/cjs/smart-step.cjs.entry.js +3 -3
- package/dist/cjs/timeline-item.cjs.entry.js +2 -2
- package/dist/cjs/ui-accordion_11.cjs.entry.js +132 -50
- package/dist/cjs/ui-advanced-data-table.cjs.entry.js +2 -2
- package/dist/cjs/ui-anchor.cjs.entry.js +2 -2
- package/dist/cjs/ui-animate-on-scroll.cjs.entry.js +3 -3
- package/dist/cjs/ui-aside-panel.cjs.entry.js +10 -11
- package/dist/cjs/ui-avatar-group_5.cjs.entry.js +1694 -0
- package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +3 -3
- package/dist/cjs/ui-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ui-callout-banner.cjs.entry.js +2 -2
- package/dist/cjs/ui-card.cjs.entry.js +4 -3
- package/dist/cjs/ui-carousel.cjs.entry.js +1 -1
- package/dist/cjs/ui-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/ui-code-editor.cjs.entry.js +2 -2
- package/dist/cjs/ui-code-preview.cjs.entry.js +2 -2
- package/dist/cjs/ui-color-picker.cjs.entry.js +256 -22
- package/dist/cjs/ui-command-palette.cjs.entry.js +1 -1
- package/dist/cjs/ui-dialog-box.cjs.entry.js +85 -11
- package/dist/cjs/ui-dialog-content.cjs.entry.js +1 -1
- package/dist/cjs/ui-dialog-footer_2.cjs.entry.js +1 -1
- package/dist/cjs/ui-divider.cjs.entry.js +1 -1
- package/dist/cjs/ui-dock-host.cjs.entry.js +4 -4
- package/dist/cjs/ui-dock.cjs.entry.js +2 -2
- package/dist/cjs/ui-drag-drop.cjs.entry.js +2 -2
- package/dist/cjs/ui-dropdown_2.cjs.entry.js +104 -34
- package/dist/cjs/ui-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/ui-fab-item.cjs.entry.js +2 -2
- package/dist/cjs/ui-fab.cjs.entry.js +4 -4
- package/dist/cjs/ui-file-upload.cjs.entry.js +143 -44
- package/dist/cjs/ui-horizontal-nav.cjs.entry.js +2 -2
- package/dist/cjs/ui-knob.cjs.entry.js +1 -1
- package/dist/cjs/ui-label.cjs.entry.js +473 -0
- package/dist/cjs/ui-library.cjs.entry.js +2 -2
- package/dist/cjs/ui-list-group_2.cjs.entry.js +349 -60
- package/dist/cjs/ui-list.cjs.entry.js +76 -42
- package/dist/cjs/ui-masonry.cjs.entry.js +1 -1
- package/dist/cjs/ui-meter-group.cjs.entry.js +5 -4
- package/dist/cjs/ui-navigation-item.cjs.entry.js +5 -5
- package/dist/cjs/ui-number-input.cjs.entry.js +7 -3
- package/dist/cjs/ui-otp-input.cjs.entry.js +5 -5
- package/dist/cjs/{ui-pagination_4.cjs.entry.js → ui-pagination_3.cjs.entry.js} +35 -506
- package/dist/cjs/ui-panel.cjs.entry.js +1 -1
- package/dist/cjs/ui-pattern-input.cjs.entry.js +46 -11
- package/dist/cjs/ui-progress.cjs.entry.js +66 -9
- package/dist/cjs/ui-range-slider.cjs.entry.js +2 -2
- package/dist/cjs/ui-resizable-panel.cjs.entry.js +2 -2
- package/dist/cjs/ui-scroll-top.cjs.entry.js +1 -1
- package/dist/cjs/ui-smart-context-menu.cjs.entry.js +1 -1
- package/dist/cjs/ui-smart-stepper.cjs.entry.js +2 -2
- package/dist/cjs/ui-snackbar.cjs.entry.js +1 -1
- package/dist/cjs/ui-speed-dial.cjs.entry.js +1 -1
- package/dist/cjs/ui-speedometer.cjs.entry.js +28 -17
- package/dist/cjs/ui-splitter.cjs.entry.js +1 -1
- package/dist/cjs/ui-step.cjs.entry.js +2 -2
- package/dist/cjs/ui-stepper.cjs.entry.js +1 -1
- package/dist/cjs/ui-switch.cjs.entry.js +14 -13
- package/dist/cjs/ui-tabs.cjs.entry.js +2 -2
- package/dist/cjs/ui-tag.cjs.entry.js +58 -13
- package/dist/cjs/ui-timeline.cjs.entry.js +10 -2
- package/dist/cjs/ui-timer.cjs.entry.js +2 -2
- package/dist/cjs/ui-toolbar.cjs.entry.js +2 -2
- package/dist/cjs/ui-tooltip.cjs.entry.js +4 -4
- package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
- package/dist/cjs/ui-transfer-list.cjs.entry.js +6 -6
- package/dist/cjs/ui-tree.cjs.entry.js +30 -15
- package/dist/cjs/ui-workspace-manager.cjs.entry.js +2 -2
- package/dist/collection/assets/js/component-config.js +1 -0
- package/dist/collection/assets/js/demo-loader.js +2 -0
- package/dist/collection/assets/js/demos/about-demo.js +13 -13
- package/dist/collection/assets/js/demos/accordion-demo.js +66 -66
- package/dist/collection/assets/js/demos/advanced-data-table-demo.js +102 -102
- package/dist/collection/assets/js/demos/anchor-demo.js +27 -28
- package/dist/collection/assets/js/demos/animate-on-scroll-demo.js +12 -12
- package/dist/collection/assets/js/demos/aside-panel-demo.js +51 -51
- package/dist/collection/assets/js/demos/avatar-demo.js +433 -95
- package/dist/collection/assets/js/demos/badge-demo.js +51 -52
- package/dist/collection/assets/js/demos/breadcrumb-demo.js +7 -7
- package/dist/collection/assets/js/demos/button-demo.js +117 -107
- package/dist/collection/assets/js/demos/button-toggle-demo.js +199 -96
- package/dist/collection/assets/js/demos/callout-banner-demo.js +23 -23
- package/dist/collection/assets/js/demos/card-demo.js +23 -22
- package/dist/collection/assets/js/demos/carousel-demo.js +632 -360
- package/dist/collection/assets/js/demos/checkbox-demo.js +124 -7
- package/dist/collection/assets/js/demos/color-picker-demo.js +394 -100
- package/dist/collection/assets/js/demos/command-palette-demo.js +182 -65
- package/dist/collection/assets/js/demos/complex-form-demo.js +5 -5
- package/dist/collection/assets/js/demos/context-menu-demo.js +43 -43
- package/dist/collection/assets/js/demos/dialog-demo-temp.js +3 -3
- package/dist/collection/assets/js/demos/dialog-demo.js +336 -230
- package/dist/collection/assets/js/demos/divider-demo.js +59 -62
- package/dist/collection/assets/js/demos/dock-demo.js +12 -12
- package/dist/collection/assets/js/demos/dock-host-init.js +31 -31
- package/dist/collection/assets/js/demos/documentation-demo.js +34 -34
- package/dist/collection/assets/js/demos/drag-drop-demo.js +2 -2
- package/dist/collection/assets/js/demos/dropdown-demo.js +140 -136
- package/dist/collection/assets/js/demos/dropdown-subtitle-demo.js +2 -2
- package/dist/collection/assets/js/demos/empty-state-demo.js +294 -78
- package/dist/collection/assets/js/demos/fab-demo.js +95 -11
- package/dist/collection/assets/js/demos/file-upload-demo.js +641 -171
- package/dist/collection/assets/js/demos/home-components.js +2 -2
- package/dist/collection/assets/js/demos/horizontal-nav-demo.js +6 -6
- package/dist/collection/assets/js/demos/icon-demo.js +17 -17
- package/dist/collection/assets/js/demos/input-demo.js +147 -143
- package/dist/collection/assets/js/demos/knob-demo.js +29 -30
- package/dist/collection/assets/js/demos/label-demo.js +697 -0
- package/dist/collection/assets/js/demos/layout-manager-demo.js +55 -55
- package/dist/collection/assets/js/demos/list-demo.js +185 -122
- package/dist/collection/assets/js/demos/loader-demo.js +48 -48
- package/dist/collection/assets/js/demos/masonry-demo.js +568 -140
- package/dist/collection/assets/js/demos/meter-group-demo.js +14 -16
- package/dist/collection/assets/js/demos/multi-level-context-menu-demo.js +25 -25
- package/dist/collection/assets/js/demos/my-profile-demo.js +27 -27
- package/dist/collection/assets/js/demos/nav-bar-demo.js +1 -1
- package/dist/collection/assets/js/demos/number-input-demo.js +262 -211
- package/dist/collection/assets/js/demos/pagination-demo.js +29 -29
- package/dist/collection/assets/js/demos/panel-demo.js +18 -25
- package/dist/collection/assets/js/demos/pattern-input-demo.js +278 -40
- package/dist/collection/assets/js/demos/popover-demo.js +240 -149
- package/dist/collection/assets/js/demos/progress-demo.js +170 -156
- package/dist/collection/assets/js/demos/radio-demo.js +73 -12
- package/dist/collection/assets/js/demos/range-slider-demo.js +33 -33
- package/dist/collection/assets/js/demos/rating-demo.js +19 -19
- package/dist/collection/assets/js/demos/scroll-top-demo.js +8 -9
- package/dist/collection/assets/js/demos/skeleton-demo.js +110 -52
- package/dist/collection/assets/js/demos/skeleton-performance-demo.js +2 -2
- package/dist/collection/assets/js/demos/smart-dialog-demo.js +12 -12
- package/dist/collection/assets/js/demos/smart-menu-demo.js +17 -17
- package/dist/collection/assets/js/demos/snackbar-demo.js +53 -53
- package/dist/collection/assets/js/demos/speed-dial-demo.js +14 -14
- package/dist/collection/assets/js/demos/speedometer-demo.js +40 -32
- package/dist/collection/assets/js/demos/split-button-demo.js +2 -2
- package/dist/collection/assets/js/demos/splitter-demo.js +14 -14
- package/dist/collection/assets/js/demos/stack-demo.js +27 -27
- package/dist/collection/assets/js/demos/stepper-demo.js +49 -49
- package/dist/collection/assets/js/demos/switch-demo.js +561 -125
- package/dist/collection/assets/js/demos/tabs-demo.js +22 -22
- package/dist/collection/assets/js/demos/tag-demo.js +62 -62
- package/dist/collection/assets/js/demos/theme-selector-demo.js +27 -27
- package/dist/collection/assets/js/demos/timeline-demo.js +10 -10
- package/dist/collection/assets/js/demos/timeline-playground.js +2 -2
- package/dist/collection/assets/js/demos/timer-demo.js +10 -10
- package/dist/collection/assets/js/demos/toolbar-demo.js +17 -17
- package/dist/collection/assets/js/demos/tooltip-demo.js +92 -90
- package/dist/collection/assets/js/demos/top-bar-demo.js +6 -6
- package/dist/collection/assets/js/demos/transfer-list-demo.js +20 -20
- package/dist/collection/assets/js/demos/tree-demo.js +50 -66
- package/dist/collection/assets/js/demos/workspace-manager-demo.js +20 -20
- package/dist/collection/collection-manifest.json +1 -2
- package/dist/collection/components/accordion/accordion.css +275 -9
- package/dist/collection/components/accordion/accordion.js +7 -6
- package/dist/collection/components/advanced-data-table/advanced-data-table.css +5 -5
- package/dist/collection/components/advanced-data-table/advanced-data-table.js +2 -2
- package/dist/collection/components/anchor/anchor.css +1 -0
- package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +2 -2
- package/dist/collection/components/aside-panel/aside-panel.css +2 -2
- package/dist/collection/components/aside-panel/aside-panel.js +10 -11
- package/dist/collection/components/avatar/avatar.css +6 -6
- package/dist/collection/components/avatar/avatar.js +63 -11
- package/dist/collection/components/badge/badge.css +27 -17
- package/dist/collection/components/badge/badge.js +6 -3
- package/dist/collection/components/breadcrumb/breadcrumb-item.js +2 -2
- package/dist/collection/components/button/button.css +1 -0
- package/dist/collection/components/button/button.js +3 -3
- package/dist/collection/components/button-toggle/button-toggle.js +2 -2
- package/dist/collection/components/button-toggle-group/button-toggle-group.css +161 -14
- package/dist/collection/components/button-toggle-group/button-toggle-group.js +2 -2
- package/dist/collection/components/callout-banner/callout-banner.css +75 -0
- package/dist/collection/components/callout-banner/callout-banner.js +1 -1
- package/dist/collection/components/card/card.css +221 -9
- package/dist/collection/components/card/card.js +3 -2
- package/dist/collection/components/checkbox/checkbox.js +3 -3
- package/dist/collection/components/code-editor/code-editor.js +1 -1
- package/dist/collection/components/code-preview/ui-code-preview.js +1 -1
- package/dist/collection/components/color-picker/color-picker.css +110 -6
- package/dist/collection/components/color-picker/color-picker.js +302 -26
- package/dist/collection/components/context-menu/context-menu.css +9 -9
- package/dist/collection/components/dialog-box/dialog-box.js +116 -14
- package/dist/collection/components/dialog-header/dialog-header.js +1 -1
- package/dist/collection/components/dock/dock.css +116 -3
- package/dist/collection/components/dock-host/ui-dock-host.js +3 -3
- package/dist/collection/components/drag-drop/drag-drop.js +1 -1
- package/dist/collection/components/dropdown/dropdown.css +101 -8
- package/dist/collection/components/dropdown/dropdown.js +94 -28
- package/dist/collection/components/empty-state/empty-state.js +1 -1
- package/dist/collection/components/fab/fab.css +87 -15
- package/dist/collection/components/fab/fab.js +3 -3
- package/dist/collection/components/fab-item/fab-item.js +1 -1
- package/dist/collection/components/file-upload/file-upload.css +1362 -31
- package/dist/collection/components/file-upload/file-upload.js +171 -50
- package/dist/collection/components/horizontal-nav/horizontal-nav.css +9 -9
- package/dist/collection/components/horizontal-nav/horizontal-nav.js +2 -2
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.css +9 -0
- package/dist/collection/components/input/input.js +20 -9
- package/dist/collection/components/label/label.css +583 -0
- package/dist/collection/components/label/label.js +1669 -0
- package/dist/collection/components/layout-manager/layout-manager.js +1 -1
- package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +1 -1
- package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +1 -1
- package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +1 -1
- package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +1 -1
- package/dist/collection/components/library/category-section.js +1 -1
- package/dist/collection/components/library/library-card.js +1 -1
- package/dist/collection/components/library/library.js +1 -1
- package/dist/collection/components/list/list.css +46 -5
- package/dist/collection/components/list/list.js +76 -42
- package/dist/collection/components/list-group/list-group.css +0 -2
- package/dist/collection/components/list-group/list-group.js +11 -5
- package/dist/collection/components/list-item/list-item.css +403 -131
- package/dist/collection/components/list-item/list-item.js +345 -61
- package/dist/collection/components/loader/loader.css +1 -1
- package/dist/collection/components/loader/loader.js +2 -2
- package/dist/collection/components/meter-group/meter-group.css +5 -0
- package/dist/collection/components/meter-group/meter-group.js +3 -2
- package/dist/collection/components/my-step/my-step.js +1 -1
- package/dist/collection/components/nav-bar/nav-bar.css +4 -4
- package/dist/collection/components/nav-bar/nav-bar.js +6 -6
- package/dist/collection/components/number-input/number-input.js +6 -2
- package/dist/collection/components/otp-input/otp-input.css +10 -0
- package/dist/collection/components/otp-input/otp-input.js +3 -3
- package/dist/collection/components/pagination/pagination.js +1 -1
- package/dist/collection/components/pattern-input/pattern-input.css +0 -1
- package/dist/collection/components/pattern-input/pattern-input.js +44 -9
- package/dist/collection/components/popover/popover.css +35 -7
- package/dist/collection/components/popover/popover.js +64 -9
- package/dist/collection/components/progress/progress.css +176 -32
- package/dist/collection/components/progress/progress.js +66 -8
- package/dist/collection/components/radio/radio.css +2 -0
- package/dist/collection/components/radio/radio.js +2 -2
- package/dist/collection/components/range-slider/range-slider.css +284 -31
- package/dist/collection/components/range-slider/range-slider.js +5 -5
- package/dist/collection/components/rating/rating.css +151 -65
- package/dist/collection/components/rating/rating.js +31 -13
- package/dist/collection/components/resizable-panel/resizable-panel.js +1 -1
- package/dist/collection/components/skeleton/skeleton-loader.css +144 -44
- package/dist/collection/components/skeleton/skeleton-loader.js +11 -7
- package/dist/collection/components/smart-stepper/smart-step.js +2 -2
- package/dist/collection/components/smart-stepper/smart-stepper.js +1 -1
- package/dist/collection/components/speedometer/speedometer.css +26 -6
- package/dist/collection/components/speedometer/speedometer.js +26 -15
- package/dist/collection/components/stack/stack.js +2 -2
- package/dist/collection/components/step/step.js +1 -1
- package/dist/collection/components/stepper/stepper.js +1 -1
- package/dist/collection/components/switch/switch.css +367 -8
- package/dist/collection/components/switch/switch.js +13 -12
- package/dist/collection/components/tag/tag.css +38 -12
- package/dist/collection/components/tag/tag.js +58 -13
- package/dist/collection/components/tag-group/tag-group.css +0 -1
- package/dist/collection/components/tag-group/tag-group.js +3 -3
- package/dist/collection/components/timeline/timeline.css +380 -317
- package/dist/collection/components/timeline/timeline.js +8 -0
- package/dist/collection/components/timeline-item/timeline-item.js +1 -1
- package/dist/collection/components/timer/timer.js +1 -1
- package/dist/collection/components/toggle-group/toggle-group.css +7 -3
- package/dist/collection/components/toggle-group/toggle-group.js +7 -3
- package/dist/collection/components/toolbar/toolbar.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +4 -4
- package/dist/collection/components/top-bar/top-bar.js +2 -2
- package/dist/collection/components/transfer-list/transfer-list.css +13 -13
- package/dist/collection/components/transfer-list/transfer-list.js +4 -4
- package/dist/collection/components/tree/tree.css +35 -21
- package/dist/collection/components/tree/tree.js +28 -13
- package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +34 -16
- package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +46 -11
- package/dist/collection/components/ui-navigation-bar/navigation-item.css +7 -7
- package/dist/collection/components/ui-navigation-bar/navigation-item.js +3 -3
- package/dist/collection/utils/dom.js +151 -151
- package/dist/components/avatar-group.js +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/button-toggle.js +1 -1
- package/dist/components/button.js +1 -0
- package/dist/components/category-section2.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/context-menu.js +1 -1
- package/dist/components/dialog-header.js +1 -1
- package/dist/components/dom.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/input.js +1 -1
- package/dist/components/layout-manager.js +1 -1
- package/dist/components/library-card2.js +1 -1
- package/dist/components/list-group.js +1 -1
- package/dist/components/list-item.js +1 -1
- package/dist/components/lm-container2.js +1 -1
- package/dist/components/lm-floating-window2.js +1 -1
- package/dist/components/lm-panel2.js +1 -1
- package/dist/components/lm-splitter2.js +1 -1
- package/dist/components/lm-tabs2.js +1 -1
- package/dist/components/loader.js +1 -1
- package/dist/components/my-step.js +1 -1
- package/dist/components/nav-bar.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/popover.js +1 -0
- package/dist/components/radio.js +1 -1
- package/dist/components/range-slider.js +1 -1
- package/dist/components/rating.js +1 -1
- package/dist/components/resizable-panel.js +1 -1
- package/dist/components/skeleton-loader.js +1 -1
- package/dist/components/smart-step.js +1 -1
- package/dist/components/stack.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tag-group.js +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/timeline-item.js +1 -1
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/ui-accordion.js +1 -1
- package/dist/components/ui-advanced-data-table.js +1 -1
- package/dist/components/ui-anchor.js +1 -1
- package/dist/components/ui-animate-on-scroll.js +1 -1
- package/dist/components/ui-aside-panel.js +1 -1
- package/dist/components/ui-badge.js +1 -1
- package/dist/components/ui-breadcrumb-item.js +1 -1
- package/dist/components/ui-breadcrumb.js +1 -1
- package/dist/components/ui-button-toggle-group.js +1 -1
- package/dist/components/ui-button.js +1 -1
- package/dist/components/ui-callout-banner.js +1 -1
- package/dist/components/ui-card.js +1 -1
- package/dist/components/ui-carousel.js +1 -1
- package/dist/components/ui-code-editor.js +1 -1
- package/dist/components/ui-code-preview.js +1 -1
- package/dist/components/ui-color-picker.js +1 -1
- package/dist/components/ui-command-palette.js +1 -1
- package/dist/components/ui-dialog-box.js +1 -1
- package/dist/components/ui-dock-host.js +1 -1
- package/dist/components/ui-dock.js +1 -1
- package/dist/components/ui-drag-drop.js +1 -1
- package/dist/components/ui-empty-state.js +1 -1
- package/dist/components/ui-fab-item.js +1 -1
- package/dist/components/ui-fab.js +1 -1
- package/dist/components/ui-file-upload.js +1 -1
- package/dist/components/ui-horizontal-nav.js +1 -1
- package/dist/components/ui-knob.js +1 -1
- package/dist/components/{ui-color-controller.d.ts → ui-label.d.ts} +4 -4
- package/dist/components/ui-label.js +1 -0
- package/dist/components/ui-library.js +1 -1
- package/dist/components/ui-list.js +1 -1
- package/dist/components/ui-masonry.js +1 -1
- package/dist/components/ui-meter-group.js +1 -1
- package/dist/components/ui-navigation-bar.js +1 -1
- package/dist/components/ui-navigation-item.js +1 -1
- package/dist/components/ui-number-input.js +1 -1
- package/dist/components/ui-otp-input.js +1 -1
- package/dist/components/ui-panel.js +1 -1
- package/dist/components/ui-pattern-input.js +1 -1
- package/dist/components/ui-popover.js +1 -1
- package/dist/components/ui-progress.js +1 -1
- package/dist/components/ui-scroll-top.js +1 -1
- package/dist/components/ui-smart-stepper.js +1 -1
- package/dist/components/ui-snackbar.js +1 -1
- package/dist/components/ui-speed-dial.js +1 -1
- package/dist/components/ui-speedometer.js +1 -1
- package/dist/components/ui-splitter.js +1 -1
- package/dist/components/ui-step.js +1 -1
- package/dist/components/ui-stepper.js +1 -1
- package/dist/components/ui-tabs.js +1 -1
- package/dist/components/ui-timeline.js +1 -1
- package/dist/components/ui-timer.js +1 -1
- package/dist/components/ui-toolbar.js +1 -1
- package/dist/components/ui-top-bar.js +1 -1
- package/dist/components/ui-transfer-list.js +1 -1
- package/dist/components/ui-tree.js +1 -1
- package/dist/components/ui-workspace-manager.js +1 -1
- package/dist/esm/category-section.entry.js +2 -2
- package/dist/esm/dom-DFBTWhGw.js +262 -0
- package/dist/esm/exploration-project-tailwind.js +3 -3
- package/dist/esm/{index-DUsoYu9r.js → index-Dqu2zaH1.js} +1 -1
- package/dist/esm/layout-manager.entry.js +3 -3
- package/dist/esm/library-card.entry.js +2 -2
- package/dist/esm/lm-container_2.entry.js +2 -2
- package/dist/esm/lm-panel_3.entry.js +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/esm/my-component.entry.js +1 -1
- package/dist/esm/my-step.entry.js +2 -2
- package/dist/esm/nav-bar.entry.js +4 -4
- package/dist/esm/smart-step.entry.js +3 -3
- package/dist/esm/timeline-item.entry.js +2 -2
- package/dist/esm/ui-accordion_11.entry.js +132 -50
- package/dist/esm/ui-advanced-data-table.entry.js +2 -2
- package/dist/esm/ui-anchor.entry.js +2 -2
- package/dist/esm/ui-animate-on-scroll.entry.js +3 -3
- package/dist/esm/ui-aside-panel.entry.js +10 -11
- package/dist/esm/ui-avatar-group_5.entry.js +1688 -0
- package/dist/esm/ui-breadcrumb-item.entry.js +3 -3
- package/dist/esm/ui-breadcrumb.entry.js +1 -1
- package/dist/esm/ui-callout-banner.entry.js +2 -2
- package/dist/esm/ui-card.entry.js +4 -3
- package/dist/esm/ui-carousel.entry.js +1 -1
- package/dist/esm/ui-checkbox.entry.js +3 -3
- package/dist/esm/ui-code-editor.entry.js +2 -2
- package/dist/esm/ui-code-preview.entry.js +2 -2
- package/dist/esm/ui-color-picker.entry.js +256 -22
- package/dist/esm/ui-command-palette.entry.js +1 -1
- package/dist/esm/ui-dialog-box.entry.js +85 -11
- package/dist/esm/ui-dialog-content.entry.js +1 -1
- package/dist/esm/ui-dialog-footer_2.entry.js +1 -1
- package/dist/esm/ui-divider.entry.js +1 -1
- package/dist/esm/ui-dock-host.entry.js +4 -4
- package/dist/esm/ui-dock.entry.js +2 -2
- package/dist/esm/ui-drag-drop.entry.js +2 -2
- package/dist/esm/ui-dropdown_2.entry.js +104 -34
- package/dist/esm/ui-empty-state.entry.js +2 -2
- package/dist/esm/ui-fab-item.entry.js +2 -2
- package/dist/esm/ui-fab.entry.js +4 -4
- package/dist/esm/ui-file-upload.entry.js +143 -44
- package/dist/esm/ui-horizontal-nav.entry.js +2 -2
- package/dist/esm/ui-knob.entry.js +1 -1
- package/dist/esm/ui-label.entry.js +471 -0
- package/dist/esm/ui-library.entry.js +2 -2
- package/dist/esm/ui-list-group_2.entry.js +349 -60
- package/dist/esm/ui-list.entry.js +76 -42
- package/dist/esm/ui-masonry.entry.js +1 -1
- package/dist/esm/ui-meter-group.entry.js +5 -4
- package/dist/esm/ui-navigation-item.entry.js +5 -5
- package/dist/esm/ui-number-input.entry.js +7 -3
- package/dist/esm/ui-otp-input.entry.js +5 -5
- package/dist/esm/{ui-pagination_4.entry.js → ui-pagination_3.entry.js} +36 -506
- package/dist/esm/ui-panel.entry.js +1 -1
- package/dist/esm/ui-pattern-input.entry.js +46 -11
- package/dist/esm/ui-progress.entry.js +66 -9
- package/dist/esm/ui-range-slider.entry.js +2 -2
- package/dist/esm/ui-resizable-panel.entry.js +2 -2
- package/dist/esm/ui-scroll-top.entry.js +1 -1
- package/dist/esm/ui-smart-context-menu.entry.js +1 -1
- package/dist/esm/ui-smart-stepper.entry.js +2 -2
- package/dist/esm/ui-snackbar.entry.js +1 -1
- package/dist/esm/ui-speed-dial.entry.js +1 -1
- package/dist/esm/ui-speedometer.entry.js +28 -17
- package/dist/esm/ui-splitter.entry.js +1 -1
- package/dist/esm/ui-step.entry.js +2 -2
- package/dist/esm/ui-stepper.entry.js +1 -1
- package/dist/esm/ui-switch.entry.js +14 -13
- package/dist/esm/ui-tabs.entry.js +2 -2
- package/dist/esm/ui-tag.entry.js +58 -13
- package/dist/esm/ui-timeline.entry.js +10 -2
- package/dist/esm/ui-timer.entry.js +2 -2
- package/dist/esm/ui-toolbar.entry.js +2 -2
- package/dist/esm/ui-tooltip.entry.js +4 -4
- package/dist/esm/ui-top-bar.entry.js +1 -1
- package/dist/esm/ui-transfer-list.entry.js +6 -6
- package/dist/esm/ui-tree.entry.js +30 -15
- package/dist/esm/ui-workspace-manager.entry.js +2 -2
- package/dist/exploration-project-tailwind/exploration-project-tailwind.css +1 -1
- package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -1
- package/dist/exploration-project-tailwind/{p-7ba2258a.entry.js → p-024a299a.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-0a71896a.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-35296877.entry.js → p-0cdeb8d8.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-a42fdc33.entry.js → p-139cefbc.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-036d2a44.entry.js → p-198c83e5.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-236f47b1.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-81ebba11.entry.js → p-25530d0d.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-41cd6bf0.entry.js → p-298f2057.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-85e36111.entry.js → p-2b5a8e3e.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-e8c6d395.entry.js → p-2b6aa7bc.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-70bacda8.entry.js → p-2cfba753.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-cbee2607.entry.js → p-2fe22958.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-20ecc116.entry.js → p-3012e780.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-321c3f46.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-8b57fe4e.entry.js → p-3ab43638.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-3ad7e47e.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-3b1ca826.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-3ee8ddae.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-e22317c1.entry.js → p-3efb44c8.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-36861546.entry.js → p-42e3bc28.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-4360331a.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-2f961934.entry.js → p-443de32b.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-898dd0fa.entry.js → p-44d15451.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-4288c158.entry.js → p-46071679.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-a3f465d9.entry.js → p-497d6182.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-4ad8c55c.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-4aaa8e40.entry.js → p-4c46ac0b.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-98e91da5.entry.js → p-5042ddaa.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-60190e0e.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-60530874.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-200241f8.entry.js → p-6108565d.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-fb4aca69.entry.js → p-62889cfe.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-c02284ea.entry.js → p-66f71613.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-7889bfc4.entry.js → p-67c440b2.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-c1c8ac28.entry.js → p-6f09503f.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-721bdbc3.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-747b02ea.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-c6fd72e1.entry.js → p-754cb046.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-97af03cc.entry.js → p-7ed3bba2.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-d59da767.entry.js → p-864cebb7.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-4d73c143.entry.js → p-96ee3196.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-54965530.entry.js → p-97086868.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-d114a347.entry.js → p-9c5ced88.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-9d3044d4.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-9e079be6.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-790556f0.entry.js → p-9e4c45f5.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-9eee7394.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-DFBTWhGw.js +1 -0
- package/dist/exploration-project-tailwind/p-Dqu2zaH1.js +2 -0
- package/dist/exploration-project-tailwind/p-a7bdedc2.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-c87aeab6.entry.js → p-a8ec29de.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-6ddbee42.entry.js → p-ae617f62.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-05a436d3.entry.js → p-aef76052.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-b5f043fa.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-b637b91b.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-d2e45c5e.entry.js → p-bc49a088.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-6b838549.entry.js → p-bd9a631f.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-e8ba0c95.entry.js → p-bf4b6767.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-c0fa400e.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-8578b616.entry.js → p-c4f3d990.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-c68ddb2f.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-c79574c4.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-c840098d.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-a1ad32a2.entry.js → p-c8663cbe.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-cb6e38a6.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-cb9f2df1.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-cfe8b696.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-d00e13ae.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-c4ba7e52.entry.js → p-d01ed934.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-aa85ff78.entry.js → p-d4e57d94.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-ccb5c737.entry.js → p-d5bd3a3f.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-45482d86.entry.js → p-d987cebe.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-d9ae77c0.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-e9bae5c7.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-f516fabc.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-f68e2794.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-d30e24bd.entry.js → p-fa034f69.entry.js} +1 -1
- package/dist/types/components/aside-panel/aside-panel.d.ts +0 -3
- package/dist/types/components/avatar/avatar.d.ts +3 -0
- package/dist/types/components/avatar/types.d.ts +2 -0
- package/dist/types/components/badge/badge.d.ts +1 -0
- package/dist/types/components/color-picker/color-picker.d.ts +35 -2
- package/dist/types/components/dialog-box/dialog-box.d.ts +10 -0
- package/dist/types/components/dropdown/dropdown.d.ts +5 -0
- package/dist/types/components/file-upload/file-upload.d.ts +23 -6
- package/dist/types/components/label/label.d.ts +290 -0
- package/dist/types/components/label/types.d.ts +39 -0
- package/dist/types/components/list/list.d.ts +2 -1
- package/dist/types/components/list-group/list-group.d.ts +1 -0
- package/dist/types/components/list-item/list-item.d.ts +45 -17
- package/dist/types/components/pattern-input/pattern-input.d.ts +6 -0
- package/dist/types/components/popover/popover.d.ts +3 -0
- package/dist/types/components/progress/progress.d.ts +7 -0
- package/dist/types/components/range-slider/range-slider.d.ts +2 -2
- package/dist/types/components/rating/rating.d.ts +1 -0
- package/dist/types/components/skeleton/skeleton-loader.d.ts +1 -1
- package/dist/types/components/speedometer/speedometer.d.ts +1 -0
- package/dist/types/components/tag/tag.d.ts +4 -0
- package/dist/types/components/tree/tree.d.ts +1 -0
- package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-bar.d.ts +1 -1
- package/dist/types/components.d.ts +742 -425
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/common.type.d.ts +2 -0
- package/dist/types/utils/dom.d.ts +4 -4
- package/package.json +4 -5
- package/dist/cjs/dom-oP1E4Rd3.js +0 -267
- package/dist/cjs/ui-avatar-group_3.cjs.entry.js +0 -634
- package/dist/cjs/ui-color-controller.cjs.entry.js +0 -150
- package/dist/cjs/ui-popover.cjs.entry.js +0 -517
- package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +0 -565
- package/dist/collection/components/color-controller/color-controller.css +0 -108
- package/dist/collection/components/color-controller/color-controller.js +0 -224
- package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.css +0 -357
- package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +0 -1190
- package/dist/components/ui-color-controller.js +0 -1
- package/dist/components/ui-smart-location-dropdown.d.ts +0 -11
- package/dist/components/ui-smart-location-dropdown.js +0 -1
- package/dist/esm/dom-BMFah5q3.js +0 -262
- package/dist/esm/ui-avatar-group_3.entry.js +0 -630
- package/dist/esm/ui-color-controller.entry.js +0 -148
- package/dist/esm/ui-popover.entry.js +0 -515
- package/dist/esm/ui-smart-location-dropdown.entry.js +0 -563
- package/dist/exploration-project-tailwind/p-06f0c679.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-0d31c9e9.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-148e81df.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-16bdd162.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-2347d21b.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-3d381f75.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-4417a9d8.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-44742ddd.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-4bef8bed.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-4efd63ce.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-5c835d90.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-61717490.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-717dad1f.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-71d95bb1.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-9bd14f69.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-9fc06ff0.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-BMFah5q3.js +0 -1
- package/dist/exploration-project-tailwind/p-DUsoYu9r.js +0 -2
- package/dist/exploration-project-tailwind/p-a27f59d2.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-a7b07cf4.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-bd89d060.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-c63c522e.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-d6ce9721.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-dc92a343.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-debede45.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-e76318c7.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-eab5ad36.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f0bc5d7e.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f1beee72.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f543392f.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f61cfb7c.entry.js +0 -1
- package/dist/types/components/color-controller/color-controller.d.ts +0 -24
- package/dist/types/components/smart-location-dropdown/smart-location-dropdown.d.ts +0 -119
- package/dist/types/components/smart-location-dropdown/types.d.ts +0 -37
- /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
|
-
|
|
9
|
-
if (el.nodeType !== 1) {
|
|
36
|
+
if (!isStandardElement(el)) {
|
|
10
37
|
el = el.host || el.parentNode;
|
|
11
38
|
continue;
|
|
12
39
|
}
|
|
13
|
-
const style =
|
|
40
|
+
const style = globalThis.getComputedStyle(el);
|
|
14
41
|
if (!style) {
|
|
15
|
-
|
|
16
|
-
el = el.assignedSlot || el.parentElement || el.getRootNode().host;
|
|
42
|
+
el = getFlatTreeParent(el);
|
|
17
43
|
continue;
|
|
18
44
|
}
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
97
|
-
|
|
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
|
-
|
|
105
|
-
|
|
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
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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
|
-
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
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
|
-
|
|
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}
|