atomicuilibrary 0.0.1 → 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 +5 -5
- 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/{security-E1JcwxGc.js → security-CNaNip8F.js} +88 -154
- 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_10.cjs.entry.js → ui-accordion_11.cjs.entry.js} +730 -61
- 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 +11 -12
- 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 +3 -3
- package/dist/cjs/ui-card.cjs.entry.js +28 -5
- package/dist/cjs/ui-carousel.cjs.entry.js +1 -1
- package/dist/cjs/ui-checkbox.cjs.entry.js +5 -5
- package/dist/cjs/ui-code-editor.cjs.entry.js +3 -3
- 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 +86 -12
- 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 +351 -58
- 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_3.cjs.entry.js +235 -504
- 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 +164 -23
- 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 +2 -2
- 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 +2 -2
- package/dist/cjs/ui-switch.cjs.entry.js +14 -13
- package/dist/cjs/ui-tabs.cjs.entry.js +3 -3
- package/dist/cjs/ui-tag.cjs.entry.js +58 -13
- package/dist/cjs/ui-timeline.cjs.entry.js +11 -3
- 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 +5 -5
- package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
- package/dist/cjs/ui-transfer-list.cjs.entry.js +7 -7
- package/dist/cjs/ui-tree.cjs.entry.js +30 -15
- package/dist/cjs/ui-workspace-manager.cjs.entry.js +3 -3
- package/dist/collection/assets/js/component-config.js +1 -0
- package/dist/collection/assets/js/demo-loader.js +2 -1
- package/dist/collection/assets/js/demos/about-demo.js +13 -13
- package/dist/collection/assets/js/demos/accordion-demo.js +238 -49
- package/dist/collection/assets/js/demos/advanced-data-table-demo.js +315 -316
- 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 +57 -57
- 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 +175 -106
- package/dist/collection/assets/js/demos/button-toggle-demo.js +199 -96
- package/dist/collection/assets/js/demos/callout-banner-demo.js +332 -42
- package/dist/collection/assets/js/demos/card-demo.js +122 -74
- 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 +476 -55
- 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 +92 -72
- package/dist/collection/assets/js/demos/dock-host-init.js +31 -31
- package/dist/collection/assets/js/demos/documentation-demo.js +227 -22
- 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 +304 -88
- 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 +226 -140
- package/dist/collection/assets/js/demos/loader-demo.js +48 -48
- package/dist/collection/assets/js/demos/masonry-demo.js +592 -0
- 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 +768 -61
- 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 +137 -0
- 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 +110 -80
- package/dist/collection/assets/js/demos/theme-selector-demo.js +27 -27
- package/dist/collection/assets/js/demos/timeline-demo.js +27 -14
- 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 +116 -114
- 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 +72 -70
- package/dist/collection/assets/js/demos/workspace-manager-demo.js +20 -20
- package/dist/collection/collection-manifest.json +2 -6
- package/dist/collection/components/accordion/accordion.css +576 -9
- package/dist/collection/components/accordion/accordion.js +47 -14
- package/dist/collection/components/advanced-data-table/advanced-data-table.css +24 -10
- package/dist/collection/components/advanced-data-table/advanced-data-table.js +2 -2
- package/dist/collection/components/anchor/anchor.css +0 -1
- package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +2 -2
- package/dist/collection/components/aside-panel/aside-panel.css +3 -5
- package/dist/collection/components/aside-panel/aside-panel.js +12 -13
- package/dist/collection/components/avatar/avatar.css +6 -6
- package/dist/collection/components/avatar/avatar.js +64 -12
- package/dist/collection/components/badge/badge.css +28 -17
- package/dist/collection/components/badge/badge.js +7 -4
- package/dist/collection/components/breadcrumb/breadcrumb-item.js +2 -2
- package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/collection/components/button/button.css +132 -0
- package/dist/collection/components/button/button.js +130 -11
- 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 +304 -40
- package/dist/collection/components/card/card.js +48 -4
- package/dist/collection/components/checkbox/checkbox.css +8 -10
- package/dist/collection/components/checkbox/checkbox.js +5 -5
- 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 +8 -8
- package/dist/collection/components/dialog-box/dialog-box.js +117 -15
- package/dist/collection/components/dialog-header/dialog-header.js +2 -2
- 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 +21 -10
- 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 +427 -131
- package/dist/collection/components/list-item/list-item.js +373 -58
- package/dist/collection/components/loader/loader.css +1635 -0
- package/dist/collection/components/loader/loader.js +1120 -0
- 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 +307 -28
- package/dist/collection/components/progress/progress.js +244 -24
- package/dist/collection/components/radio/radio.css +5 -3
- 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/snackbar/snackbar.js +1 -1
- package/dist/collection/components/speed-dial/speed-dial.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 +14 -13
- 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 +53 -20
- package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +48 -13
- 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/components.js +1 -0
- 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 -0
- 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-divider.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-input-pair.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-radio-group.d.ts → ui-loader.d.ts} +4 -4
- package/dist/components/ui-loader.js +1 -0
- 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-context-menu.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 +5 -5
- 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/{security-D2WzX6vR.js → security-Dyu3Nplq.js} +88 -154
- package/dist/esm/smart-step.entry.js +3 -3
- package/dist/esm/timeline-item.entry.js +2 -2
- package/dist/esm/{ui-accordion_10.entry.js → ui-accordion_11.entry.js} +730 -62
- 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 +11 -12
- 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 +3 -3
- package/dist/esm/ui-card.entry.js +28 -5
- package/dist/esm/ui-carousel.entry.js +1 -1
- package/dist/esm/ui-checkbox.entry.js +5 -5
- package/dist/esm/ui-code-editor.entry.js +3 -3
- 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 +86 -12
- 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 +351 -58
- 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_3.entry.js +235 -504
- 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 +164 -23
- 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 +2 -2
- 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 +2 -2
- package/dist/esm/ui-switch.entry.js +14 -13
- package/dist/esm/ui-tabs.entry.js +3 -3
- package/dist/esm/ui-tag.entry.js +58 -13
- package/dist/esm/ui-timeline.entry.js +11 -3
- 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 +5 -5
- package/dist/esm/ui-top-bar.entry.js +1 -1
- package/dist/esm/ui-transfer-list.entry.js +7 -7
- package/dist/esm/ui-tree.entry.js +30 -15
- package/dist/esm/ui-workspace-manager.entry.js +3 -3
- 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-f5719913.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-c7e87fbb.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-81961fb1.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-2b6aa7bc.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-7515b1e3.entry.js → p-2cfba753.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-c90722ec.entry.js → p-2fe22958.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-85bf89fd.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-3d3d48fd.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-4f6bba75.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-e5322e59.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-73d29a4a.entry.js → p-4c46ac0b.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-f0830120.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-77124686.entry.js → p-62889cfe.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-9d0c8760.entry.js → p-66f71613.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-2d273118.entry.js → p-67c440b2.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-d419eaf0.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-ffb1754a.entry.js → p-7ed3bba2.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-77cc333a.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-c5ddc817.entry.js → p-97086868.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-287dbf09.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-0b004861.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-Dyu3Nplq.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-c174a372.entry.js → p-ae617f62.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-62352ef2.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-8d951aef.entry.js → p-bc49a088.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-4de419d5.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-5e3e80ae.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-7f91d949.entry.js → p-cb6e38a6.entry.js} +1 -1
- 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/accordion/accordion.d.ts +10 -2
- 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/button/button.d.ts +9 -0
- package/dist/types/components/card/card.d.ts +4 -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 +46 -17
- package/dist/types/components/loader/loader.d.ts +145 -0
- 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 +41 -2
- 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 +1214 -1381
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/common.type.d.ts +3 -1
- package/dist/types/utils/dom.d.ts +4 -4
- package/package.json +4 -4
- package/dist/cjs/dom-oP1E4Rd3.js +0 -267
- package/dist/cjs/ui-avatar-group_3.cjs.entry.js +0 -634
- package/dist/cjs/ui-checkbox-group.cjs.entry.js +0 -330
- package/dist/cjs/ui-color-controller.cjs.entry.js +0 -150
- package/dist/cjs/ui-image-button.cjs.entry.js +0 -67
- package/dist/cjs/ui-input-pair.cjs.entry.js +0 -44
- package/dist/cjs/ui-popover.cjs.entry.js +0 -517
- package/dist/cjs/ui-radio-group.cjs.entry.js +0 -205
- package/dist/cjs/ui-radio.cjs.entry.js +0 -206
- package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +0 -565
- package/dist/collection/components/checkbox-group/checkbox-group.css +0 -223
- package/dist/collection/components/checkbox-group/checkbox-group.js +0 -1001
- 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/image-button/image-button.css +0 -154
- package/dist/collection/components/image-button/image-button.js +0 -310
- package/dist/collection/components/image-button/types.js +0 -1
- package/dist/collection/components/input-pair/input-pair.css +0 -72
- package/dist/collection/components/input-pair/input-pair.js +0 -309
- package/dist/collection/components/radio-group/radio-group.css +0 -202
- package/dist/collection/components/radio-group/radio-group.js +0 -903
- package/dist/collection/components/radio-group/types.js +0 -1
- 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/collection/components/smart-location-dropdown/types.js +0 -1
- package/dist/components/ui-checkbox-group.d.ts +0 -11
- package/dist/components/ui-checkbox-group.js +0 -1
- package/dist/components/ui-color-controller.d.ts +0 -11
- package/dist/components/ui-color-controller.js +0 -1
- package/dist/components/ui-image-button.d.ts +0 -11
- package/dist/components/ui-image-button.js +0 -1
- package/dist/components/ui-input-pair.js +0 -1
- package/dist/components/ui-radio-group.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-checkbox-group.entry.js +0 -328
- package/dist/esm/ui-color-controller.entry.js +0 -148
- package/dist/esm/ui-image-button.entry.js +0 -65
- package/dist/esm/ui-input-pair.entry.js +0 -42
- package/dist/esm/ui-popover.entry.js +0 -515
- package/dist/esm/ui-radio-group.entry.js +0 -203
- package/dist/esm/ui-radio.entry.js +0 -204
- package/dist/esm/ui-smart-location-dropdown.entry.js +0 -563
- package/dist/exploration-project-tailwind/p-01c7db7a.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-049744f9.entry.js +0 -1
- 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-2f1aebb3.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-46596a28.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-46efdea3.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-5508874f.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-5ce0dbd8.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-61717490.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-64e3a484.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-6ab80ead.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-6e9694f2.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-6fa9dc15.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-70d82d79.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-717dad1f.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-7376ac95.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-77a21491.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-807c6555.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-875be805.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-9fa70359.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-D2WzX6vR.js +0 -2
- package/dist/exploration-project-tailwind/p-DUsoYu9r.js +0 -2
- package/dist/exploration-project-tailwind/p-a4f52a76.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-ab752761.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-ba21fed3.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-c2ca71ac.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-ce1222a1.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-d16c9635.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-d2308a00.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-debede45.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-e90d5307.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-ecda1cc3.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f11e5cae.entry.js +0 -1
- package/dist/types/components/checkbox-group/checkbox-group.d.ts +0 -87
- package/dist/types/components/checkbox-group/types.d.ts +0 -8
- package/dist/types/components/color-controller/color-controller.d.ts +0 -24
- package/dist/types/components/image-button/image-button.d.ts +0 -31
- package/dist/types/components/image-button/types.d.ts +0 -1
- package/dist/types/components/input-pair/input-pair.d.ts +0 -28
- package/dist/types/components/radio-group/radio-group.d.ts +0 -74
- package/dist/types/components/radio-group/types.d.ts +0 -2
- 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/{checkbox-group → label}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{proxyCustomElement as a,HTMLElement as e,createEvent as i,h as r,Host as t,transformTag as o}from"@stencil/core/internal/client";import{s as n,d as s}from"./icon.js";import{c,g as l,b as m}from"./dom.js";import{d,a as p}from"./badge.js";import{d as h}from"./resizable-panel.js";const g=a(class extends e{constructor(a){super(),!1!==a&&this.__registerHost(),this.layoutChange=i(this,"layoutChange",7),this.panelAdded=i(this,"panelAdded",7),this.panelRemoved=i(this,"panelRemoved",7),this.panelMoved=i(this,"panelMoved",7),this.panelPoppedOut=i(this,"panelPoppedOut",7),this.panelDocked=i(this,"panelDocked",7),this.panelMaximized=i(this,"panelMaximized",7),this.panelRestored=i(this,"panelRestored",7),this.regionAdded=i(this,"regionAdded",7),this.regionRemoved=i(this,"regionRemoved",7)}get el(){return this}regions=[];handleRegionsChange(){this.initRegions(),this.root={...this.root},this.layoutVersion++}direction="horizontal";saveState=!0;stateKey="layout-manager-state";root;panelsById={};popouts={};maximizedPanel;preMaximizeState;draggingPanel;draggingPopout;layoutVersion=0;contextMenu;tabActionsMenu;floatingDropdown;openDropdowns={};openActionsMenu={};regionsNeedingScroll={};minimizedRegions={};dragOverTarget;floatingDropdownTrigger;tabActionsMenuTrigger;layoutChange;panelAdded;panelRemoved;panelMoved;panelPoppedOut;panelDocked;panelMaximized;panelRestored;regionAdded;regionRemoved;async getLayoutState(){return{root:this.root,panels:this.panelsById}}async clearAllRegions(){await this.closeAllPanels(),this.panelsById={},this.popouts={},this.maximizedPanel=void 0,this.draggingPanel=void 0,this.draggingPopout=void 0,this.contextMenu=void 0,this.tabActionsMenu=void 0,this.openDropdowns={},this.openActionsMenu={},this.root={id:"__root__",title:"Root",direction:this.direction,children:[],panels:[]},this.floatingDropdownTrigger=void 0,this.tabActionsMenuTrigger=void 0,this.emitLayoutChange()}handleScroll(){(this.floatingDropdown||this.tabActionsMenu)&&this.recalculateMenuPositions()}recalculateMenuPositions(){requestAnimationFrame((()=>{if(this.floatingDropdown&&this.floatingDropdownTrigger){const a=c(this.floatingDropdownTrigger,{menuWidth:200,menuHeight:300,gap:4,align:"end"});this.floatingDropdown={...this.floatingDropdown,x:a.left??0,y:a.top??0}}if(this.tabActionsMenu&&this.tabActionsMenuTrigger){const a=c(this.tabActionsMenuTrigger,{menuWidth:180,menuHeight:200,gap:4,align:"end"});this.tabActionsMenu={...this.tabActionsMenu,x:a.left??0,y:a.top??0}}}))}componentWillLoad(){this.saveState&&this.loadState(),(!this.root||0===this.root.children?.length&&0===this.root.panels?.length)&&this.initRegions(),document.addEventListener("click",this.handleDocumentClick)}disconnectedCallback(){document.removeEventListener("click",this.handleDocumentClick)}handleDocumentClick=a=>{const e=a.target;e.closest(".lm-panel-dropdown-wrapper")||Object.values(this.openDropdowns).some((a=>a))&&(this.openDropdowns={}),e.closest(".lm-actions-menu-wrapper")||Object.values(this.openActionsMenu).some((a=>a))&&(this.openActionsMenu={})};parseRegions(){return(("string"==typeof this.regions?JSON.parse(this.regions):this.regions)||[]).map((a=>({id:a.id,title:a.title,size:a.size??25,minSize:a.minSize,maxSize:a.maxSize,collapsible:a.collapsible??!1})))}initRegions(){const a=this.parseRegions(),e=a.reduce(((a,e)=>a+(e.size||0)),0)||100,i=a.map((i=>({...i,size:(i.size||100/a.length)/e*100,panels:[],activePanelId:void 0})));this.root={id:"__root__",title:"Root",size:100,panels:[],children:i,direction:this.direction}}async addPanel(a){const e=a.id||`panel-${Date.now()}-${Math.floor(1e3*Math.random())}`,i=this.findRegionNode(a.regionId)?.node;if(!i)throw Error("Region not found: "+a.regionId);if("content-only"===i.type&&i.panels&&i.panels.length>0)return i.panels[0];const r={id:e,title:a.title,regionId:i.id,closable:!1!==a.closable,icon:a.icon,iconLibrary:a.iconLibrary,allowPopout:!1!==a.allowPopout,element:a.element,html:a.html};return this.panelsById={...this.panelsById,[e]:r},i.panels=[...i.panels||[],e],i.activePanelId=e,this.root={...this.root},this.panelAdded.emit(r),this.emitLayoutChange(),e}async removePanel(a){const e=this.panelsById[a];if(!e)return;if(e.pinned)return;this.maximizedPanel===a&&(this.maximizedPanel=void 0,this.preMaximizeState=void 0);const i=this.findRegionNode(e.regionId)?.node;i&&(i.panels=(i.panels||[]).filter((e=>e!==a)),i.activePanelId===a&&(i.activePanelId=i.panels[(i.panels||[]).length-1]||void 0));const{[a]:r,...t}=this.panelsById;this.panelsById=t;const{[a]:o,...n}=this.popouts;this.popouts=n,this.root={...this.root},this.panelRemoved.emit({panelId:a,regionId:i?.id||""}),this.emitLayoutChange()}async movePanel(a,e,i){const r=this.panelsById[a];if(!r)throw Error("Panel not found: "+a);const t=this.findRegionNode(r.regionId)?.node,o=this.findRegionNode(e)?.node;if(!o)throw Error("Target region not found: "+e);t&&(t.panels=(t.panels||[]).filter((e=>e!==a)),t.activePanelId===a&&(t.activePanelId=t.panels[(t.panels||[]).length-1]||void 0)),r.regionId=o.id;const n=[...o.panels||[]];void 0===i||i<0||i>n.length?n.push(a):n.splice(i,0,a),o.panels=n,o.activePanelId=a,this.panelsById={...this.panelsById},this.root={...this.root},this.panelMoved.emit({panelId:a,from:t?.id||"",to:o.id}),this.emitLayoutChange()}async popoutPanel(a,e){const i=this.panelsById[a];if(!i)throw Error("Panel not found: "+a);const r=this.findRegionNode(i.regionId)?.node;r&&(r.panels=(r.panels||[]).filter((e=>e!==a)),r.activePanelId===a&&(r.activePanelId=r.panels[(r.panels||[]).length-1]||void 0)),this.popouts={...this.popouts,[a]:{x:e?.x??100,y:e?.y??100,width:e?.width??400,height:e?.height??300}},this.root={...this.root},this.panelPoppedOut.emit({panelId:a}),this.emitLayoutChange()}async dockPanel(a,e,i){if(!this.popouts[a])return;const{[a]:r,...t}=this.popouts;this.popouts=t,await this.movePanel(a,e,i),this.panelDocked.emit({panelId:a,regionId:e})}async splitRegion(a,e="horizontal"){const i=this.findRegionNode(a);if(!i)throw Error("Region not found: "+a);const{node:r}=i;if(r.children&&r.children.length)return;const t={id:a+"-a",title:r.title,size:50,panels:[],activePanelId:void 0},o={id:a+"-b",title:r.title,size:50,panels:[],activePanelId:void 0};r.panels?.length&&(t.panels=[...r.panels],t.activePanelId=r.activePanelId,r.panels=[],r.activePanelId=void 0),r.children=[t,o],r.direction=e,this.root={...this.root},this.emitLayoutChange()}async maximizePanel(a){if(!this.panelsById[a])throw Error("Panel not found: "+a);this.preMaximizeState={root:JSON.parse(JSON.stringify(this.root)),panelsById:JSON.parse(JSON.stringify(this.panelsById))},this.maximizedPanel=a,this.panelMaximized.emit({panelId:a})}async restorePanel(){if(!this.maximizedPanel)return;const a=this.maximizedPanel;this.preMaximizeState&&(this.preMaximizeState.root&&this.preMaximizeState.panelsById&&(this.root=this.preMaximizeState.root,this.panelsById=this.preMaximizeState.panelsById,this.root={...this.root},this.panelsById={...this.panelsById},this.layoutVersion++),this.preMaximizeState=void 0),this.maximizedPanel=void 0,this.panelRestored.emit({panelId:a}),this.emitLayoutChange()}async closeAllPanels(a){if(a){const e=this.findRegionNode(a);if(!e||!e.node.panels)return;const i=[...e.node.panels];for(const a of i)await this.removePanel(a)}else{const a=Object.keys(this.panelsById);for(const e of a)await this.removePanel(e)}}async mergeRegion(a){const e=this.findRegionNode(a);if(!e)return;const{node:i}=e;if(!i.children||!i.children.length)return;const r=i.children[0];i.panels=[...r.panels||[]],i.activePanelId=r.activePanelId,i.children=void 0,i.direction=void 0,this.root={...this.root},this.emitLayoutChange()}async createRegion(a){if(this.findRegionNode(a.id))return;const e=this.root.children||[],i=e.reduce(((a,e)=>a+(e.size||0)),0)||100,r=a.size??100/(e.length+1),t=r/(i+r)*100,o=e.map((a=>({...a,size:(a.size||0)*(i/(i+r))})));this.root.children=[...o,{id:a.id,title:a.title,size:t,minSize:a.minSize,maxSize:a.maxSize,collapsible:a.collapsible??!1,panels:[],activePanelId:void 0}],this.emitLayoutChange()}async addRegion(a){this.root&&this.root.children||(this.root={id:"__root__",title:"Root",direction:this.direction,children:[],panels:[]});const e=a.id||"region-"+Date.now(),i=a.title||"Region "+(this.root.children.length+1),r=a.position||"end",t=a.type||"default";if(this.findRegionNode(e))throw Error(`Region with id '${e}' already exists`);const o={id:e,title:i,size:a.size||100/(this.root.children.length+1),panels:[],activePanelId:void 0,type:t};if(this.root.children="start"===r?[o,...this.root.children]:[...this.root.children,o],!a.skipNormalization){const a=this.root.children.reduce(((a,e)=>a+(e.size||0)),0);this.root.children=this.root.children.map((e=>({...e,size:(e.size||0)/a*100})))}return this.root={...this.root},this.emitLayoutChange(),this.regionAdded.emit({regionId:e,title:i}),e}async normalizeRegionSizes(){if(!this.root||!this.root.children)return;const a=this.root.children.reduce(((a,e)=>a+(e.size||0)),0);0!==a&&(this.root.children=this.root.children.map((e=>({...e,size:(e.size||0)/a*100}))),this.root={...this.root},this.emitLayoutChange())}async removeRegion(a){const e=this.findRegionNode(a);if(!e)return;const{parent:i}=e;if(!i||!i.children)return;const r=i.children.findIndex((e=>e.id===a)),t=i.children[r],o=i.children[r-1]||i.children[r+1];i.children=i.children.filter((e=>e.id!==a)),o&&t&&t.panels?.length&&(o.panels=[...o.panels||[],...t.panels],o.activePanelId=o.activePanelId||t.activePanelId||(o.panels||[])[(o.panels||[]).length-1]);const n=i.children,s=n.reduce(((a,e)=>a+(e.size||0)),0)||100;i.children=n.map((a=>({...a,size:(a.size||0)/s*100}))),this.root={...this.root},this.emitLayoutChange(),this.regionRemoved.emit({regionId:a})}onPanelPopout(a){this.popoutPanel(a.detail.panelId)}onPanelSelect(a){const e=this.findRegionNode(a.detail.regionId)?.node;e&&(e.activePanelId=a.detail.panelId,this.root={...this.root},this.emitLayoutChange())}emitLayoutChange(){const a=[],e=i=>{i.children&&i.children.length?i.children.forEach(e):a.push(i)};e(this.root),this.layoutChange.emit({regions:a}),this.saveState&&this.saveStateToStorage()}saveStateToStorage(){try{const a=Object.fromEntries(Object.entries(this.panelsById).map((([a,e])=>{const{element:i,...r}=e;return[a,r]})));localStorage.setItem(this.stateKey,JSON.stringify({root:this.root,panelsById:a,minimizedRegions:this.minimizedRegions}))}catch(a){console.error("[WorkspaceManager] Failed to save state",a)}}loadState(){try{const a=localStorage.getItem(this.stateKey);if(a){const e=JSON.parse(a);this.root=e.root,this.panelsById=e.panelsById,this.minimizedRegions=e.minimizedRegions||{}}}catch(a){console.error("[WorkspaceManager] Failed to load state",a)}}findRegionNode(a){let e;const i=(r,t)=>{r.id!==a?r.children&&r.children.forEach((a=>i(a,r))):e={node:r,parent:t}};return i(this.root),e}scrollTabs(a,e){const i=document.querySelector(`[data-region-id="${a}"] .lm-tabs`);i&&i.scrollBy({left:"left"===e?-200:200,behavior:"smooth"})}togglePanelDropdown(a,e){e?.stopPropagation();const i=!this.openDropdowns[a];if(this.openDropdowns={...this.openDropdowns,[a]:i},i&&e){this.floatingDropdownTrigger=e.currentTarget;const i=c(this.floatingDropdownTrigger,{menuWidth:200,menuHeight:300,gap:4,align:"end"});this.floatingDropdown={x:i.left??0,y:i.top??0,regionId:a,type:"panel"}}else this.floatingDropdown=void 0,this.floatingDropdownTrigger=void 0}selectPanelFromDropdown(a,e){this.selectPanel(a,e),this.openDropdowns={...this.openDropdowns,[a]:!1},this.floatingDropdown=void 0}toggleActionsMenu(a,e){e?.stopPropagation();const i=!this.openActionsMenu[a];if(this.openActionsMenu={...this.openActionsMenu,[a]:i},i&&e){this.floatingDropdownTrigger=e.currentTarget;const i=c(this.floatingDropdownTrigger,{menuWidth:200,menuHeight:300,gap:4,align:"end"});this.floatingDropdown={x:i.left??0,y:i.top??0,regionId:a,type:"actions"}}else this.floatingDropdown=void 0,this.floatingDropdownTrigger=void 0}minimizeRegion(a){if(this.maximizedPanel)return;const e=this.findRegionNode(a);if(!e)return;const i=e.node,r=e.parent;if(this.maximizedPanel){const e=this.panelsById[this.maximizedPanel];if(e&&e.regionId===a)return}const t=i.panels?.[0]?this.panelsById[i.panels[0]]:null,o=t?.icon||"fas fa-window-minimize";let n,s=-1,c="left";if(r&&r.children){s=r.children.findIndex((e=>e.id===a)),n=r.id,c=s<Math.floor(r.children.length/2)?"left":"right";const e=r.children.filter((e=>e.id!==a));if(e.length>0){const a=e.reduce(((a,e)=>a+(e.size||0)),0);if(a>0)e.forEach((e=>{e.size=(e.size||0)/a*100}));else{const a=100/e.length;e.forEach((e=>{e.size=a}))}}r.children=e}else if(this.root.id===a)return;this.minimizedRegions={...this.minimizedRegions,[a]:{title:i.title||a,icon:o,iconLibrary:t?.iconLibrary,region:{...i},parentId:n,index:s,side:c}},this.layoutVersion++,this.root={...this.root},this.emitLayoutChange()}restoreRegion(a){const e=this.minimizedRegions[a];if(!e)return;const{region:i,parentId:r,index:t}=e;if(r){const a=this.findRegionNode(r);if(a&&a.node&&a.node.children){const e=a.node,r=JSON.parse(JSON.stringify(i)),o=[...e.children??[]];o.splice(t,0,r);const n=o.reduce(((a,e)=>a+(e.size||0)),0);n>0&&o.forEach((a=>{a.size=(a.size||0)/n*100})),e.children=o,this.layoutVersion++}}const{[a]:o,...n}=this.minimizedRegions;this.minimizedRegions=n,this.root={...this.root},this.emitLayoutChange()}closeAllAndRemoveRegion(a){const e=this.findRegionNode(a)?.node;e&&([...e.panels].forEach((a=>{this.removePanel(a)})),this.removeRegion(a))}renderTabs(a){const e=a.panels.map((a=>this.panelsById[a])).filter(Boolean),i=e.filter((a=>a.pinned)),t=e.filter((a=>!a.pinned)),o=i.length>0&&t.length>0,n=this.regionsNeedingScroll[a.id]||!1;return r("div",{class:"lm-tabs-container","data-region-id":a.id},n&&r("ui-button",{variant:"ghost",size:"sm",icon:"chevron-left",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Scroll left",onClick:()=>this.scrollTabs(a.id,"left")}),r("div",{class:"lm-tabs",onDragOver:e=>{e.preventDefault(),this.handleDragOver(e,a.id)},onDragLeave:()=>this.dragOverTarget=void 0,onDrop:e=>this.handleTabDrop(e,a)},e.map(((i,t)=>{const n=i.pinned;return r("div",{key:i.id},!n&&t>0&&e[t-1]?.pinned&&o&&r("div",{class:"lm-tab-separator",title:"Pinned / Unpinned divider"}),r("div",{class:{"lm-tab":!0,active:a.activePanelId===i.id,pinned:!!n},draggable:!0,onDragStart:e=>this.handleTabDragStart(e,i,a),onContextMenu:e=>this.openContextMenu(e,a.id,i.id),onClick:()=>this.selectPanel(a.id,i.id)},i.icon&&r("ui-icon",{name:i.icon,library:i.iconLibrary||"lucide"}),r("span",{class:"lm-tab-title"},i.title),n&&r("ui-icon",{name:"thumbtack",library:"fontawesome",class:"lm-tab-btn",title:"Unpin",onClick:a=>{a.stopPropagation(),this.togglePin(i.id)}}),i.dirty&&r("span",{class:"lm-dot",title:"Unsaved changes"}),r("ui-button",{variant:"ghost",size:"sm",icon:"ellipsis-v",iconLibrary:"fontawesome",ariaLabel:"More actions",onClick:a=>{a.stopPropagation();const e=!this.openDropdowns["tab-"+i.id];if(this.openDropdowns={...this.openDropdowns,["tab-"+i.id]:e},e){this.tabActionsMenuTrigger=a.currentTarget;const e=this.tabActionsMenuTrigger.getBoundingClientRect(),r=l(this.el);this.tabActionsMenu={x:e.right-r.x,y:e.bottom-r.y+4,panelId:i.id}}else this.tabActionsMenu=void 0,this.tabActionsMenuTrigger=void 0}}),i.closable&&!n&&r("ui-button",{variant:"ghost",size:"sm",icon:"times",iconLibrary:"fontawesome",ariaLabel:"Close",onClick:a=>{a.stopPropagation(),this.removePanel(i.id)}})))}))),n&&r("ui-button",{variant:"ghost",size:"sm",icon:"chevron-right",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Scroll right",onClick:()=>this.scrollTabs(a.id,"right")}))}handleTabDragStart(a,e,i){this.draggingPanel={panelId:e.id,fromRegionId:i.id},a.dataTransfer?.setData("text/plain",e.id),a.dataTransfer?.setDragImage(a.target,0,0)}handleTabDrop(a,e){a.preventDefault();const i=a.dataTransfer?.getData("text/plain")||this.draggingPanel?.panelId;if(!i)return;let r;const t=a.target.closest(".lm-tab");t&&(r=Array.from(t.parentElement.querySelectorAll(".lm-tab")).indexOf(t)),this.movePanel(i,e.id,r),this.draggingPanel=void 0}selectPanel(a,e){const i=this.findRegionNode(a)?.node;i&&(i.activePanelId=e,this.root={...this.root},this.emitLayoutChange())}switchToPanel(a,e){const i=this.findRegionNode(a)?.node;i&&i.panels.includes(e)&&(i.activePanelId=e,this.root={...this.root})}renderNavigationRegion(a){const e=a.panels.map((a=>this.panelsById[a])).filter(Boolean);return r("div",{class:"lm-region lm-region-navigation","data-region-id":a.id},r("div",{class:"lm-region-header"},r("div",{class:"lm-navigation-header"},r("span",{class:"lm-navigation-title"},a.title||"Navigation")),r("ui-button",{variant:"ghost",size:"sm",icon:"times-circle",iconLibrary:"fontawesome",ariaLabel:"Close all panels and remove region",onClick:()=>this.closeAllAndRemoveRegion(a.id)})),r("div",{class:"lm-navigation-content"},e.map((e=>r("div",{class:"lm-navigation-section","data-panel-id":e.id},r("div",{class:{"lm-navigation-section-header":!0,active:a.activePanelId===e.id},onClick:()=>this.switchToPanel(a.id,e.id)},e.icon&&r("ui-icon",{name:e.icon,library:e.iconLibrary||"default"}),r("span",{class:"lm-navigation-section-title"},e.title),r("ui-button",{variant:"ghost",size:"sm",class:"lm-navigation-section-close",icon:"times",iconLibrary:"fontawesome",ariaLabel:"Close panel",onClick:a=>{a.stopPropagation(),this.removePanel(e.id)}})),a.activePanelId===e.id&&r("div",{class:"lm-navigation-section-content",ref:a=>this.attachContent(a,e)})))),0===e.length&&r("div",{class:"lm-empty"},"No panels open")))}renderHeaderOnlyRegion(a){const e=a.activePanelId?this.panelsById[a.activePanelId]:void 0;return r("div",{class:"lm-region lm-region-header-only","data-region-id":a.id},r("div",{class:"lm-region-header"},r("div",{class:"lm-header-only-title"},e?.icon&&r("ui-icon",{name:e.icon,library:e.iconLibrary||"default"}),r("span",null,e?.title||a.title||"Content")),r("div",{class:"lm-header-only-actions"},r("div",{class:"lm-panel-dropdown-wrapper"},r("ui-button",{variant:"ghost",size:"sm",icon:"list",iconLibrary:"fontawesome",ariaLabel:"Show all panels",onClick:e=>this.togglePanelDropdown(a.id,e)})),e&&r("ui-button",{variant:"ghost",size:"sm",icon:"expand",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Maximize",onClick:()=>this.maximizePanel(e.id)}),e&&r("ui-button",{variant:"ghost",size:"sm",icon:"external-link-alt",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Pop out",onClick:()=>this.popoutPanel(e.id)}),r("ui-button",{variant:"ghost",size:"sm",icon:"times-circle",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close all panels and remove region",onClick:()=>this.closeAllAndRemoveRegion(a.id)}))),r("div",{class:"lm-region-content"},e&&r("div",{class:"lm-panel-host","data-panel-id":e.id,ref:a=>this.attachContent(a,e)}),!e&&r("div",{class:"lm-empty"},"No content available")))}renderLeafRegion(a){const e=a.activePanelId?this.panelsById[a.activePanelId]:void 0,i=a.type||"default",t="no-header"!==i&&"content-only"!==i,o="title-only"!==i&&"no-header"!==i&&"content-only"!==i&&"navigation"!==i&&"header-only"!==i,n="default"===i,s=this.regionsNeedingScroll[a.id]||!1;return"content-only"===i?r("div",{class:"lm-region lm-region-content-only","data-region-id":a.id},e&&r("div",{class:"lm-panel-host","data-panel-id":e.id,ref:a=>this.attachContent(a,e)})):"navigation"===i?this.renderNavigationRegion(a):"header-only"===i?this.renderHeaderOnlyRegion(a):r("div",{class:{"lm-region":!0,["lm-region-"+i]:!0},"data-region-id":a.id},t&&r("div",{class:"lm-region-header"},"title-only"===i&&r("div",{class:"lm-region-title"},r("span",null,a.title)),o&&this.renderTabs(a),n&&r("div",{class:"lm-region-actions"},s&&r("div",{class:"lm-panel-dropdown-wrapper"},r("ui-button",{variant:"ghost",size:"sm",icon:"list",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Show all panels",onClick:e=>this.togglePanelDropdown(a.id,e)})),r("div",{class:"lm-actions-menu-wrapper"},r("ui-button",{variant:"ghost",size:"sm",icon:"ellipsis-v",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Actions",onClick:e=>this.toggleActionsMenu(a.id,e)})),r("ui-button",{variant:"ghost",size:"sm",icon:"window-minimize",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Minimize region",onClick:()=>this.minimizeRegion(a.id)}),(a.panels?.length||0)>0&&r("ui-button",{variant:"ghost",size:"sm",icon:"times-circle",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close all panels and remove region",onClick:()=>this.closeAllAndRemoveRegion(a.id)}))),r("div",{class:"lm-region-content",onDragOver:e=>{e.preventDefault(),this.handleDragOver(e,a.id)},onDragLeave:()=>this.dragOverTarget=void 0,onDrop:e=>this.handleTabDrop(e,a)},e&&r("div",{class:"lm-panel-host","data-panel-id":e.id,ref:a=>this.attachContent(a,e)}),!e&&r("div",{class:"lm-empty"},"No tabs open"),this.dragOverTarget?.regionId===a.id&&r("div",{class:"lm-drop-highlighter lm-drop-"+this.dragOverTarget.position})))}renderRegionNode(a){if(a.children&&a.children.length){const e=a.children.map((a=>({id:a.id,size:a.size,minSize:a.minSize,maxSize:a.maxSize,collapsible:a.collapsible})));return r("ui-resizable-panel",{key:`resizable-${a.id}-v${this.layoutVersion}`,direction:a.direction||"horizontal",panels:JSON.stringify(e),saveState:!1,stateKey:`${this.stateKey}-${a.id}`,showHandleIcon:!0},a.children.map((a=>r("div",{slot:a.id,class:"lm-slot"},this.renderRegionNode(a)))))}return this.renderLeafRegion(a)}attachContent(a,e){if(a){for(;a.firstChild;)a.removeChild(a.firstChild);e.element?a.appendChild(e.element):e.html&&(a.innerHTML=n(e.html))}}renderVerticalNav(a){const e=Object.entries(this.minimizedRegions).filter((([e,i])=>i.side===a));return 0===e.length?null:r("div",{class:"lm-vertical-nav lm-vertical-nav-"+a},e.map((([a,e])=>r("div",{key:a,class:"lm-nav-item",title:e.title,onClick:()=>this.restoreRegion(a)},r("ui-icon",{name:e.icon,library:e.iconLibrary||"default"}),r("span",{class:"lm-nav-label"},e.title)))))}render(){if(this.maximizedPanel){const a=this.panelsById[this.maximizedPanel];if(a)return r(t,null,r("div",{class:"lm-container lm-maximized"},r("div",{class:"lm-maximized-panel"},r("div",{class:"lm-maximized-header"},r("span",{class:"lm-maximized-title"},a.title),r("div",{class:"lm-maximized-actions"},r("ui-button",{variant:"ghost",size:"sm",icon:"compress",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Restore",onClick:()=>this.restorePanel()}),r("ui-button",{variant:"ghost",size:"sm",icon:"times",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close",onClick:()=>this.removePanel(this.maximizedPanel)}))),r("div",{class:"lm-maximized-content",ref:e=>this.attachContent(e,a)}))))}return r(t,null,this.renderVerticalNav("left"),r("div",{class:"lm-container"},this.root&&this.renderRegionNode(this.root),r("div",{class:"lm-popout-layer"},Object.keys(this.popouts).map((a=>{const e=this.popouts[a],i=this.panelsById[a];return i?r("div",{class:"lm-popout-window",style:{left:e.x+"px",top:e.y+"px",width:e.width+"px",height:e.height+"px"},"data-panel-id":a},r("div",{class:"lm-popout-header",onMouseDown:e=>this.startPopoutDrag(e,a)},r("span",{class:"lm-popout-title"},i.title),r("div",{class:"lm-popout-actions"},r("ui-button",{variant:"ghost",size:"sm",icon:"download",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Dock",onClick:()=>this.dockPanel(a,i.regionId)}),r("ui-button",{variant:"ghost",size:"sm",icon:"times",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close",onClick:()=>this.removePanel(a)}))),r("div",{class:"lm-popout-content",ref:a=>this.attachContent(a,i)})):null}))),this.contextMenu&&this.renderContextMenu(),this.tabActionsMenu&&this.renderTabActionsMenu(),this.floatingDropdown&&this.renderFloatingDropdown()),this.renderVerticalNav("right"))}startPopoutDrag(a,e){const i=this.popouts[e];if(!i)return;const r=a.currentTarget.parentElement.getBoundingClientRect();this.draggingPopout={panelId:e,offsetX:a.clientX-r.left,offsetY:a.clientY-r.top};const t=a=>{let r=a.clientX-this.draggingPopout.offsetX,t=a.clientY-this.draggingPopout.offsetY;const o=window.innerWidth,n=window.innerHeight;Math.abs(r)<20&&(r=0),Math.abs(t)<20&&(t=0),Math.abs(r+i.width-o)<20&&(r=o-i.width),Math.abs(t+i.height-n)<20&&(t=n-i.height),this.popouts[e]={...this.popouts[e],x:r,y:t},this.popouts={...this.popouts}},o=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",o),this.draggingPopout=void 0};document.addEventListener("mousemove",t),document.addEventListener("mouseup",o)}openContextMenu(a,e,i){a.preventDefault();const r=m(a.clientX,a.clientY,this.el);this.contextMenu={x:r.x,y:r.y,regionId:e,panelId:i};const t=()=>{this.contextMenu=void 0,document.removeEventListener("click",t)};document.addEventListener("click",t,{once:!0})}renderContextMenu(){const{x:a,y:e,regionId:i,panelId:t}=this.contextMenu,o=this.panelsById[t];return r("div",{class:"lm-context-menu",style:{left:a+"px",top:e+"px"}},r("ui-button",{variant:"ghost",fullWidth:!0,icon:"thumbtack",iconLibrary:"fontawesome",iconSize:"14px",label:o?.pinned?"Unpin Tab":"Pin Tab",onClick:()=>{this.togglePin(t),this.contextMenu=void 0}}),r("hr",null),r("ui-button",{variant:"ghost",fullWidth:!0,disabled:o?.pinned,label:o?.pinned?"Close (Pinned)":"Close",onClick:()=>{this.removePanel(t),this.contextMenu=void 0}}),r("ui-button",{variant:"ghost",fullWidth:!0,icon:"arrows-alt-h",iconLibrary:"fontawesome",iconSize:"14px",label:"Close Others",onClick:()=>{this.closeOthers(i,t),this.contextMenu=void 0}}),r("ui-button",{variant:"ghost",fullWidth:!0,icon:"arrow-right",iconLibrary:"fontawesome",iconSize:"14px",label:"Close to the Right",onClick:()=>{this.closeToRight(i,t),this.contextMenu=void 0}}),r("hr",null),r("ui-button",{variant:"ghost",fullWidth:!0,label:"Move to New Group (H)",onClick:()=>{this.splitRegion(i,"horizontal").then((()=>this.movePanel(t,i+"-b"))),this.contextMenu=void 0}}),r("ui-button",{variant:"ghost",fullWidth:!0,label:"Move to New Group (V)",onClick:()=>{this.splitRegion(i,"vertical").then((()=>this.movePanel(t,i+"-b"))),this.contextMenu=void 0}}))}renderTabActionsMenu(){const{x:a,y:e,panelId:i}=this.tabActionsMenu,t=this.panelsById[i];return t?r("div",{class:"lm-tab-actions-menu-fixed",style:{left:a+"px",top:e+"px"}},r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.maximizePanel(i),this.openDropdowns={...this.openDropdowns,["tab-"+i]:!1},this.tabActionsMenu=void 0}},r("ui-icon",{name:"expand",library:"fontawesome",size:"14px"}),r("span",null,"Maximize")),t.allowPopout&&r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.popoutPanel(i),this.openDropdowns={...this.openDropdowns,["tab-"+i]:!1},this.tabActionsMenu=void 0}},r("ui-icon",{name:"window-restore",library:"fontawesome"}),r("span",null,"Pop Out")),r("div",{class:"lm-tab-actions-divider"}),r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.togglePin(i),this.openDropdowns={...this.openDropdowns,["tab-"+i]:!1},this.tabActionsMenu=void 0}},r(r.Fragment,null,r("ui-icon",{name:"thumbtack",library:"fontawesome"}),r("span",null,t.pinned?"Unpin Tab":"Pin Tab"))),r("div",{class:"lm-tab-actions-divider"}),r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.closeOthers(t.regionId,i),this.tabActionsMenu=void 0}},r("ui-icon",{name:"arrows-alt-h",library:"fontawesome"}),r("span",null,"Close Others")),r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.closeToRight(t.regionId,i),this.tabActionsMenu=void 0}},r("ui-icon",{name:"arrow-right",library:"fontawesome"}),r("span",null,"Close to the Right")),r("div",{class:"lm-tab-actions-divider"}),r("div",{class:"lm-tab-actions-item lm-tab-actions-danger",onClick:a=>{a.stopPropagation(),this.removePanel(i),this.tabActionsMenu=void 0}},r("ui-icon",{name:"times",library:"fontawesome"}),r("span",null,"Close"))):null}closeOthers(a,e){const i=this.findRegionNode(a)?.node;i&&(i.panels||[]).filter((a=>a!==e)).forEach((a=>this.removePanel(a)))}closeToRight(a,e){const i=this.findRegionNode(a)?.node;if(!i)return;const r=(i.panels||[]).indexOf(e);(i.panels||[]).slice(r+1).forEach((a=>this.removePanel(a)))}togglePin(a){const e=this.panelsById[a];if(!e)return;e.pinned=!e.pinned;const i=this.findRegionNode(e.regionId)?.node;if(!i||!i.panels)return;const r=i.panels.map((a=>this.panelsById[a])).filter(Boolean),t=r.filter((a=>a.pinned)).map((a=>a.id)),o=r.filter((a=>!a.pinned)).map((a=>a.id));i.panels=[...t,...o],this.panelsById={...this.panelsById},this.root={...this.root}}checkTabsOverflow(){const a=[],e=i=>{i.panels&&a.push(i),i.children&&i.children.forEach(e)};this.root&&e(this.root);const i={};a.forEach((a=>{const e=this.el.querySelector(`[data-region-id="${a.id}"] .lm-tabs`);e&&(i[a.id]=e.scrollWidth>e.offsetWidth)})),JSON.stringify(i)!==JSON.stringify(this.regionsNeedingScroll)&&(this.regionsNeedingScroll=i)}handleDragOver(a,e){const i=a.currentTarget.getBoundingClientRect(),r=a.clientX-i.left,t=a.clientY-i.top;let o="center";t<.2*i.height?o="top":t>.8*i.height?o="bottom":r<.2*i.width?o="left":r>.8*i.width&&(o="right"),this.dragOverTarget={regionId:e,position:o}}renderFloatingDropdown(){if(!this.floatingDropdown)return null;const{x:a,y:e,regionId:i,type:t}=this.floatingDropdown,o=this.findRegionById(this.root,i);if(!o)return null;if("panel"===t){const i=o.panels.map((a=>this.panelsById[a])).filter(Boolean);return r("div",{class:"lm-panel-dropdown-menu",style:{position:"fixed",top:e+"px",left:a+"px",zIndex:"12000",minWidth:"200px"}},r("div",{class:"lm-panel-dropdown-header"},"All Panels (",i.length,")"),i.map((a=>r("div",{class:{"lm-panel-dropdown-item":!0,active:o.activePanelId===a.id},onClick:()=>this.selectPanelFromDropdown(o.id,a.id)},a.icon&&r("ui-icon",{name:a.icon,library:a.iconLibrary||"lucide",style:{marginRight:"8px"}}),r("span",null,a.title)))))}{const i=o.activePanelId?this.panelsById[o.activePanelId]:null;return r("div",{class:"lm-actions-dropdown-menu",style:{position:"fixed",top:e+"px",left:a+"px",zIndex:"12000",minWidth:"180px"}},r("div",{class:"lm-actions-item",onClick:()=>{this.splitRegion(o.id,"horizontal"),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"columns",library:"fontawesome",class:"lm-actions-icon"}),"Split Horizontal"),r("div",{class:"lm-actions-item",onClick:()=>{this.splitRegion(o.id,"vertical"),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"grip-lines",library:"fontawesome",class:"lm-actions-icon"}),"Split Vertical"),r("div",{class:"lm-actions-divider"}),i&&r("div",{class:"lm-actions-item",onClick:()=>{this.maximizePanel(i.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"expand",library:"fontawesome",class:"lm-actions-icon"}),"Maximize Panel"),(o.panels?.length||0)>0&&r(r.Fragment,null,r("div",{class:"lm-actions-divider"}),r("div",{class:"lm-actions-item",onClick:()=>{this.closeAllPanels(o.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"times",library:"fontawesome",class:"lm-actions-icon"}),"Close All Panels")),r("div",{class:"lm-actions-divider"}),r("div",{class:"lm-actions-item",onClick:()=>{this.mergeRegion(o.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"compress",library:"fontawesome",class:"lm-actions-icon"}),"Merge Region"),r("div",{class:"lm-actions-divider"}),r("div",{class:"lm-actions-item lm-actions-danger",onClick:()=>{this.closeAllAndRemoveRegion(o.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"trash",library:"fontawesome",class:"lm-actions-icon"}),"Remove Group"))}}findRegionById(a,e){if(a.id===e)return a;for(const i of a.children??[]){const a=this.findRegionById(i,e);if(a)return a}return null}componentDidUpdate(){setTimeout((()=>this.checkTabsOverflow()),0)}static get watchers(){return{regions:[{handleRegionsChange:0}]}}static get style(){return'.sr-only.sc-ui-workspace-manager{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.sc-ui-workspace-manager{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}.sc-ui-workspace-manager-h{display:flex;height:100%;width:100%;overflow:hidden}.lm-vertical-nav.sc-ui-workspace-manager{width:50px;background:var(--bg-secondary, #2b2b2b);display:flex;flex-direction:column;align-items:center;padding:0;gap:0;overflow-y:auto;flex-shrink:0}.lm-vertical-nav.lm-vertical-nav-left.sc-ui-workspace-manager{border-right:1px solid var(--border-strong, #3e3e42);box-shadow:2px 0 8px rgba(0, 0, 0, 0.3)}.lm-vertical-nav.lm-vertical-nav-right.sc-ui-workspace-manager{border-left:1px solid var(--border-strong, #3e3e42);box-shadow:-2px 0 8px rgba(0, 0, 0, 0.3)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager{width:100%;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted, #858585);transition:all 0.15s ease;padding:0;position:relative}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager::before{content:"";position:absolute;top:0;bottom:0;width:2px;background:transparent;transition:background 0.15s ease}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:24px;margin-bottom:0}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager .lm-nav-label.sc-ui-workspace-manager{font-size:8px;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-weight:400;letter-spacing:0.5px;text-transform:uppercase}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:hover{background:var(--bg-secondary, #2d2d30);color:var(--text-standard, #ffffff)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:hover::before{background:var(--bg-secondary, #505050)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:active,.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.active.sc-ui-workspace-manager{background:var(--bg-primary, #1e1e1e);color:var(--text-standard, #ffffff)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:active::before,.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.active.sc-ui-workspace-manager::before{background:var(--color-primary, #007acc)}.lm-vertical-nav.lm-vertical-nav-left.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager::before{left:0}.lm-vertical-nav.lm-vertical-nav-right.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager::before{right:0}.lm-container.sc-ui-workspace-manager{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.lm-container.lm-maximized.sc-ui-workspace-manager{background:var(--bg-secondary, #0f172a)}.lm-maximized-panel.sc-ui-workspace-manager{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-secondary, #0f172a);overflow:hidden}.lm-maximized-header.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg, var(--color-primary, #1e3a8a) 0%, var(--color-primary, #10b981) 100%);color:var(--text-standard, #ffffff);padding:8px 12px;border-bottom:1px solid var(--color-primary-hover, #2563eb);flex-shrink:0;min-height:40px;box-shadow:0 2px 8px rgba(0, 0, 0, 0.3)}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-title.sc-ui-workspace-manager{font-size:16px;font-weight:600}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager{display:flex;gap:8px}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager{background:rgba(255, 255, 255, 0.2);border:none;color:var(--text-standard, #ffffff);cursor:pointer;padding:6px 10px;border-radius:4px;transition:all 0.2s;font-size:14px}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager:hover{background:rgba(255, 255, 255, 0.3);transform:scale(1.05)}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager i.sc-ui-workspace-manager{pointer-events:none}.lm-maximized-content.sc-ui-workspace-manager{flex:1;overflow:auto;background:var(--bg-secondary, #0f172a);color:var(--text-standard, #e5e7eb)}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar{width:8px;height:8px}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1e293b)}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #475569);border-radius:4px}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #64748b)}.lm-slot.sc-ui-workspace-manager{width:100%;height:100%;display:flex;flex-direction:column;min-height:0;min-width:0}.lm-region.sc-ui-workspace-manager{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;min-width:0;overflow:visible;position:relative}.lm-region.lm-region-navigation.sc-ui-workspace-manager .lm-region-header.sc-ui-workspace-manager{background:var(--color-primary, #1e3a8a);border-bottom:2px solid var(--color-primary, #10b981)}.lm-region.lm-region-title-only.sc-ui-workspace-manager .lm-region-header.sc-ui-workspace-manager{background:var(--color-primary, #374151);justify-content:center;padding:8px 12px}.lm-region.lm-region-no-header.sc-ui-workspace-manager .lm-region-content.sc-ui-workspace-manager{border-radius:0}.lm-region.lm-region-content-only.sc-ui-workspace-manager{overflow:hidden}.lm-region.lm-region-content-only.sc-ui-workspace-manager .lm-panel-host.sc-ui-workspace-manager{width:100%;height:100%;margin:0;padding:0;border:none;background:transparent}.lm-region.lm-region-header-only.sc-ui-workspace-manager .lm-region-header.sc-ui-workspace-manager{background:var(--bg-primary, #1f2937);padding:6px 12px;border-bottom:2px solid var(--color-primary, #10b981)}.lm-region-title.sc-ui-workspace-manager{flex:1;display:flex;align-items:center;font-weight:600;font-size:14px;color:var(--text-standard, #e5e7eb);padding:0 8px}.lm-navigation-header.sc-ui-workspace-manager{flex:1;display:flex;align-items:center;gap:8px;padding:0 8px}.lm-navigation-title.sc-ui-workspace-manager{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-standard, #ffffff)}.lm-region-header.sc-ui-workspace-manager{display:flex;align-items:center;gap:4px;background:var(--bg-primary, #1f2937);color:var(--text-standard, #e5e7eb);padding:2px 6px;border-bottom:1px solid var(--border-default, #374151);flex-shrink:0;min-height:36px;min-width:0;width:100%;overflow:visible;position:relative;z-index:11000;box-shadow:0 1px 3px rgba(0, 0, 0, 0.2)}.lm-tabs-container.sc-ui-workspace-manager{display:flex;align-items:center;gap:4px;background:var(--bg-secondary, #0f172a);padding:0 4px;flex:1;min-width:0;overflow:visible;max-width:100%}.lm-tab-scroll-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;cursor:pointer;flex-shrink:0;flex-basis:28px;transition:all 0.2s ease}.lm-tab-scroll-btn.sc-ui-workspace-manager:hover{transform:translateY(-1px)}.lm-tab-scroll-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-tab-scroll-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:12px}.lm-tabs.sc-ui-workspace-manager{display:flex;gap:2px;overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #374151) var(--text-primary, #1f2937);flex:1;min-width:0}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar{height:6px}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1f2937)}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #374151);border-radius:3px}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #4b5563)}.lm-tab-separator.sc-ui-workspace-manager{width:1px;background:linear-gradient(to bottom, transparent 20%, var(--color-primary, #10b981) 50%, transparent 80%);margin:0 4px;flex-shrink:0;opacity:0.5}.lm-panel-dropdown-wrapper.sc-ui-workspace-manager{position:relative;flex-shrink:0;z-index:1}.lm-panel-list-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-panel-list-btn.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--text-standard, #e5e7eb);border-color:var(--border-dark)}.lm-panel-list-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-panel-list-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-panel-dropdown-menu.sc-ui-workspace-manager{position:absolute;top:calc(100% + 4px);right:0;min-width:220px;max-width:320px;max-height:400px;overflow-y:auto;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.5);z-index:2;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #4b5563) var(--text-primary, #1f2937)}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar{width:6px}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1f2937)}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #4b5563);border-radius:3px}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #6b7280)}.lm-panel-dropdown-header.sc-ui-workspace-manager{padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-default, #374151);background:var(--bg-secondary, #111827);position:sticky;top:0;z-index:1}.lm-panel-dropdown-item.sc-ui-workspace-manager{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:all 0.15s ease;color:var(--text-standard, #e5e7eb);font-size:13px}.lm-panel-dropdown-item.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151)}.lm-panel-dropdown-item.active.sc-ui-workspace-manager{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);font-weight:500}.lm-panel-dropdown-item.sc-ui-workspace-manager i.sc-ui-workspace-manager:first-child{width:16px;text-align:center;font-size:12px;color:var(--text-muted, #9ca3af)}.lm-panel-dropdown-item.sc-ui-workspace-manager .lm-panel-dropdown-title.sc-ui-workspace-manager{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm-panel-dropdown-item.sc-ui-workspace-manager .fa-check.sc-ui-workspace-manager{color:var(--text-standard, #ffffff);font-size:12px}.lm-panel-dropdown-item.sc-ui-workspace-manager .lm-dot.sc-ui-workspace-manager{width:6px;height:6px;border-radius:50%;background:var(--color-warning, #f59e0b)}.lm-minimize-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-minimize-btn.sc-ui-workspace-manager:hover{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-color:var(--primary-color)}.lm-minimize-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-minimize-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-close-all-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-close-all-btn.sc-ui-workspace-manager:hover{background:var(--color-danger, #991b1b);color:var(--color-danger, #fca5a5);border-color:var(--color-danger-hover, #dc2626)}.lm-close-all-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-close-all-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-actions-menu-wrapper.sc-ui-workspace-manager{position:relative;flex-shrink:0;z-index:1}.lm-actions-menu-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-actions-menu-btn.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--text-standard, #e5e7eb);border-color:var(--border-dark)}.lm-actions-menu-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-actions-menu-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-actions-dropdown-menu.sc-ui-workspace-manager{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.5);z-index:2;overflow:hidden}.lm-actions-menu-item.sc-ui-workspace-manager{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:all 0.15s ease;color:var(--text-standard, #e5e7eb);font-size:13px}.lm-actions-menu-item.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151)}.lm-actions-menu-item.sc-ui-workspace-manager i.sc-ui-workspace-manager{width:16px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.lm-actions-menu-item.sc-ui-workspace-manager span.sc-ui-workspace-manager{flex:1}.lm-actions-menu-divider.sc-ui-workspace-manager{height:1px;background:var(--color-primary, #374151);margin:4px 0}.lm-tab.sc-ui-workspace-manager{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:4px 4px 0 0;background:var(--bg-secondary, #111827);cursor:pointer;user-select:none;white-space:nowrap;flex-shrink:0;transition:all 0.2s ease;border:1px solid transparent;border-bottom:none;position:relative;z-index:1}.lm-tab.sc-ui-workspace-manager:hover{background:var(--bg-primary, #1f2937);border-color:var(--border-dark);transform:translateY(-1px);z-index:2}.lm-tab.sc-ui-workspace-manager .fa-thumbtack.sc-ui-workspace-manager{color:var(--primary-color);font-size:11px;animation:pinPulse 2s ease-in-out infinite}@keyframes pinPulse{0%,100%{opacity:0.7}50%{opacity:1}}.lm-tab.active.sc-ui-workspace-manager{background:var(--bg-primary, #0b1020);color:var(--text-standard, #ffffff);border-color:var(--primary-color);box-shadow:0 2px 8px rgba(var(--color-success-rgb, 61, 205, 88), 0.2)}.lm-tab.sc-ui-workspace-manager .lm-dot.sc-ui-workspace-manager{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-danger, #eab308)}.lm-region-actions.sc-ui-workspace-manager{margin-left:auto;display:inline-flex;gap:6px}.lm-region-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager{appearance:none;border:none;background:transparent;color:inherit;padding:6px;cursor:pointer;border-radius:4px;transition:all 0.2s ease;display:inline-flex;align-items:center;justify-content:center}.lm-region-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--primary-color)}.lm-region-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.sc-ui-workspace-manager{appearance:none;border:none;background:transparent;color:inherit;padding:4px;cursor:pointer;border-radius:4px;transition:all 0.15s ease;display:inline-flex;align-items:center;justify-content:center}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.sc-ui-workspace-manager:hover{background:rgba(var(--color-success-rgb, 61, 205, 88), 0.15);color:var(--primary-color);transform:scale(1.1)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.sc-ui-workspace-manager:active{transform:scale(0.9)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.lm-tab-actions.sc-ui-workspace-manager:hover{background:rgba(156, 163, 175, 0.15);color:var(--text-muted, #9ca3af)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.lm-close.sc-ui-workspace-manager:hover{background:rgba(var(--color-danger-rgb, 220, 38, 38), 0.15);color:var(--color-danger-hover, #dc2626)}.lm-tab-actions-wrapper.sc-ui-workspace-manager{position:relative;display:inline-flex;align-items:center;z-index:1}.lm-tab.sc-ui-workspace-manager:has(.lm-tab-actions-menu){z-index:10002}.lm-tab-actions-menu.sc-ui-workspace-manager{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.3);z-index:10001;min-width:140px;overflow:hidden;animation:slideDown 0.15s ease}.lm-tab-actions-menu-fixed.sc-ui-workspace-manager{position:fixed;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 24px rgba(0, 0, 0, 0.5);z-index:12000;min-width:160px;overflow:hidden;transform:translateX(-100%);animation:slideDown 0.15s ease}.lm-tab-actions-item.sc-ui-workspace-manager{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;color:var(--text-standard, #e5e7eb);font-size:13px;transition:all 0.15s ease}.lm-tab-actions-item.sc-ui-workspace-manager i.sc-ui-workspace-manager{width:16px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.lm-tab-actions-item.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--primary-color)}.lm-tab-actions-item.sc-ui-workspace-manager:hover i.sc-ui-workspace-manager{color:var(--primary-color)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager{color:var(--color-danger, #fca5a5)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager i.sc-ui-workspace-manager{color:var(--color-danger, #fca5a5)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager:hover{background:var(--color-danger, #991b1b);color:var(--text-standard, #ffffff)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager:hover i.sc-ui-workspace-manager{color:var(--text-standard, #ffffff)}.lm-tab-actions-item.sc-ui-workspace-manager:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.lm-tab-actions-item.sc-ui-workspace-manager:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.lm-tab-actions-divider.sc-ui-workspace-manager{height:1px;background:var(--color-primary, #374151);margin:4px 8px}.lm-region-content.sc-ui-workspace-manager{position:relative;flex:1;background:var(--bg-secondary, #0f172a);color:var(--text-standard, #e5e7eb);min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}.lm-panel-host.sc-ui-workspace-manager{position:absolute;inset:0;padding:0;overflow:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #374151) var(--text-primary, #0f172a)}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar{width:8px;height:8px}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-secondary, #0f172a)}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #374151);border-radius:4px}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #4b5563)}.lm-empty.sc-ui-workspace-manager{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted, #9ca3af);font-size:14px;font-style:italic}.lm-popout-layer.sc-ui-workspace-manager{position:absolute;inset:0;pointer-events:none}.lm-popout-window.sc-ui-workspace-manager{position:absolute;background:var(--bg-secondary, #0f172a);border:1px solid var(--color-success, #3dcd58);border-radius:10px;box-shadow:0 20px 60px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(var(--color-success-rgb, 61, 205, 88), 0.3);overflow:hidden;pointer-events:auto;display:flex;flex-direction:column;backdrop-filter:blur(10px)}.lm-popout-header.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:linear-gradient(135deg, var(--bg-primary, #1f2937), var(--bg-secondary, #111827));border-bottom:1px solid var(--border-default, #374151);cursor:move;user-select:none}.lm-popout-header.sc-ui-workspace-manager:active{cursor:grabbing}.lm-popout-content.sc-ui-workspace-manager{flex:1;overflow:auto;padding:0;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #374151) var(--text-primary, #0f172a)}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar{width:8px;height:8px}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-secondary, #0f172a)}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #374151);border-radius:4px}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #4b5563)}.lm-tabs.drag-over.sc-ui-workspace-manager,.lm-region-content.drag-over.sc-ui-workspace-manager{outline:2px dashed var(--color-success, #3dcd58)}.lm-context-menu.sc-ui-workspace-manager{position:fixed;background:var(--bg-secondary, #111827);color:var(--text-standard, #e5e7eb);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.4);padding:6px;display:grid;gap:4px;z-index:11000}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager{appearance:none;border:none;background:var(--bg-primary, #1f2937);color:inherit;padding:6px 8px;border-radius:4px;cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager:disabled{opacity:0.5;cursor:not-allowed;color:var(--text-secondary)}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager i.sc-ui-workspace-manager{width:14px;text-align:center}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager:hover:not(:disabled){background:var(--color-primary, #374151)}.lm-navigation-content.sc-ui-workspace-manager{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--bg-secondary, #0f172a)}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar{width:8px}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1e293b)}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #475569);border-radius:4px}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #64748b)}.lm-navigation-section.sc-ui-workspace-manager{border-bottom:1px solid var(--border-subtle, #1e293b)}.lm-navigation-section.sc-ui-workspace-manager:last-child{border-bottom:none}.lm-navigation-section-header.sc-ui-workspace-manager{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-primary, #1f2937);color:var(--text-standard, #e5e7eb);cursor:pointer;transition:all 0.2s;border-left:3px solid transparent}.lm-navigation-section-header.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151)}.lm-navigation-section-header.active.sc-ui-workspace-manager{background:var(--color-primary, #1e3a8a);border-left-color:var(--primary-color);font-weight:600}.lm-navigation-section-header.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px;color:var(--text-muted, #9ca3af);width:16px;text-align:center}.lm-navigation-section-title.sc-ui-workspace-manager{flex:1;font-size:13px}.lm-navigation-section-close.sc-ui-workspace-manager{display:none;background:transparent;border:none;color:var(--text-muted, #9ca3af);cursor:pointer;padding:4px;border-radius:3px;transition:all 0.2s}.lm-navigation-section-close.sc-ui-workspace-manager:hover{background:rgba(255, 255, 255, 0.1);color:var(--text-standard, #ffffff)}.lm-navigation-section-close.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:12px;pointer-events:none}.lm-navigation-section-header.sc-ui-workspace-manager:hover .lm-navigation-section-close.sc-ui-workspace-manager{display:block}.lm-navigation-section-content.sc-ui-workspace-manager{padding:12px;background:var(--bg-secondary, #0f172a);overflow:auto;max-height:400px}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar{width:6px}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1e293b)}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #475569);border-radius:3px}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #64748b)}.lm-header-only-title.sc-ui-workspace-manager{flex:1;display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--text-standard, #e5e7eb)}.lm-header-only-title.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px;color:var(--text-muted, #9ca3af)}.lm-header-only-title.sc-ui-workspace-manager span.sc-ui-workspace-manager{color:var(--text-standard, #ffffff)}.lm-header-only-actions.sc-ui-workspace-manager{display:flex;align-items:center;gap:8px}.lm-header-btn.sc-ui-workspace-manager{background:rgba(255, 255, 255, 0.1);border:none;color:var(--text-standard, #e5e7eb);cursor:pointer;padding:6px 10px;border-radius:4px;transition:all 0.2s;font-size:13px;display:flex;align-items:center;justify-content:center}.lm-header-btn.sc-ui-workspace-manager:hover{background:rgba(255, 255, 255, 0.2);transform:scale(1.05)}.lm-header-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{pointer-events:none}.lm-context-menu.sc-ui-workspace-manager hr.sc-ui-workspace-manager{border:none;border-top:1px solid var(--border-default, #374151);margin:6px 0}'}},[514,"ui-workspace-manager",{regions:[1],direction:[1],saveState:[4,"save-state"],stateKey:[1,"state-key"],root:[32],panelsById:[32],popouts:[32],maximizedPanel:[32],preMaximizeState:[32],draggingPanel:[32],draggingPopout:[32],layoutVersion:[32],contextMenu:[32],tabActionsMenu:[32],floatingDropdown:[32],openDropdowns:[32],openActionsMenu:[32],regionsNeedingScroll:[32],minimizedRegions:[32],dragOverTarget:[32],getLayoutState:[64],clearAllRegions:[64],addPanel:[64],removePanel:[64],movePanel:[64],popoutPanel:[64],dockPanel:[64],splitRegion:[64],maximizePanel:[64],restorePanel:[64],closeAllPanels:[64],mergeRegion:[64],createRegion:[64],addRegion:[64],normalizeRegionSizes:[64],removeRegion:[64]},[[11,"scroll","handleScroll"],[9,"resize","handleScroll"],[9,"mousemove","handleScroll"],[0,"panelPopout","onPanelPopout"],[0,"panelSelect","onPanelSelect"]],{regions:[{handleRegionsChange:0}]}]),u=g,b=function(){"undefined"!=typeof customElements&&["ui-workspace-manager","ui-badge","ui-button","ui-icon","ui-resizable-panel"].forEach((a=>{switch(a){case"ui-workspace-manager":customElements.get(o(a))||customElements.define(o(a),g);break;case"ui-badge":customElements.get(o(a))||p();break;case"ui-button":customElements.get(o(a))||d();break;case"ui-icon":customElements.get(o(a))||s();break;case"ui-resizable-panel":customElements.get(o(a))||h()}}))};export{u as UiWorkspaceManager,b as defineCustomElement}
|
|
1
|
+
import{proxyCustomElement as a,HTMLElement as e,createEvent as i,h as r,Host as t,transformTag as o}from"@stencil/core/internal/client";import{s as n,d as s}from"./icon.js";import{c,g as l,b as m}from"./dom.js";import{d}from"./badge.js";import{d as p}from"./button.js";import{d as h}from"./loader.js";import{d as g}from"./resizable-panel.js";const u=a(class extends e{constructor(a){super(),!1!==a&&this.__registerHost(),this.layoutChange=i(this,"layoutChange",7),this.panelAdded=i(this,"panelAdded",7),this.panelRemoved=i(this,"panelRemoved",7),this.panelMoved=i(this,"panelMoved",7),this.panelPoppedOut=i(this,"panelPoppedOut",7),this.panelDocked=i(this,"panelDocked",7),this.panelMaximized=i(this,"panelMaximized",7),this.panelRestored=i(this,"panelRestored",7),this.regionAdded=i(this,"regionAdded",7),this.regionRemoved=i(this,"regionRemoved",7)}get el(){return this}regions=[];handleRegionsChange(){this.initRegions(),this.root={...this.root},this.layoutVersion++}direction="horizontal";saveState=!0;stateKey="layout-manager-state";root;panelsById={};popouts={};maximizedPanel;preMaximizeState;draggingPanel;draggingPopout;layoutVersion=0;contextMenu;tabActionsMenu;floatingDropdown;openDropdowns={};openActionsMenu={};regionsNeedingScroll={};minimizedRegions={};dragOverTarget;floatingDropdownTrigger;tabActionsMenuTrigger;layoutChange;panelAdded;panelRemoved;panelMoved;panelPoppedOut;panelDocked;panelMaximized;panelRestored;regionAdded;regionRemoved;async getLayoutState(){return{root:this.root,panels:this.panelsById}}async clearAllRegions(){await this.closeAllPanels(),this.panelsById={},this.popouts={},this.maximizedPanel=void 0,this.draggingPanel=void 0,this.draggingPopout=void 0,this.contextMenu=void 0,this.tabActionsMenu=void 0,this.openDropdowns={},this.openActionsMenu={},this.root={id:"__root__",title:"Root",direction:this.direction,children:[],panels:[]},this.floatingDropdownTrigger=void 0,this.tabActionsMenuTrigger=void 0,this.emitLayoutChange()}handleScroll(){(this.floatingDropdown||this.tabActionsMenu)&&this.recalculateMenuPositions()}recalculateMenuPositions(){requestAnimationFrame((()=>{if(this.floatingDropdown&&this.floatingDropdownTrigger){const a=c(this.floatingDropdownTrigger,{menuWidth:200,menuHeight:300,gap:4,align:"end"});this.floatingDropdown={...this.floatingDropdown,x:a.left??0,y:a.top??0}}if(this.tabActionsMenu&&this.tabActionsMenuTrigger){const a=c(this.tabActionsMenuTrigger,{menuWidth:180,menuHeight:200,gap:4,align:"end"});this.tabActionsMenu={...this.tabActionsMenu,x:a.left??0,y:a.top??0}}}))}componentWillLoad(){this.saveState&&this.loadState(),(!this.root||0===this.root.children?.length&&0===this.root.panels?.length)&&this.initRegions(),document.addEventListener("click",this.handleDocumentClick)}disconnectedCallback(){document.removeEventListener("click",this.handleDocumentClick)}handleDocumentClick=a=>{const e=a.target;e.closest(".lm-panel-dropdown-wrapper")||Object.values(this.openDropdowns).some((a=>a))&&(this.openDropdowns={}),e.closest(".lm-actions-menu-wrapper")||Object.values(this.openActionsMenu).some((a=>a))&&(this.openActionsMenu={})};parseRegions(){return(("string"==typeof this.regions?JSON.parse(this.regions):this.regions)||[]).map((a=>({id:a.id,title:a.title,size:a.size??25,minSize:a.minSize,maxSize:a.maxSize,collapsible:a.collapsible??!1})))}initRegions(){const a=this.parseRegions(),e=a.reduce(((a,e)=>a+(e.size||0)),0)||100,i=a.map((i=>({...i,size:(i.size||100/a.length)/e*100,panels:[],activePanelId:void 0})));this.root={id:"__root__",title:"Root",size:100,panels:[],children:i,direction:this.direction}}async addPanel(a){const e=a.id||`panel-${Date.now()}-${Math.floor(1e3*Math.random())}`,i=this.findRegionNode(a.regionId)?.node;if(!i)throw Error("Region not found: "+a.regionId);if("content-only"===i.type&&i.panels&&i.panels.length>0)return i.panels[0];const r={id:e,title:a.title,regionId:i.id,closable:!1!==a.closable,icon:a.icon,iconLibrary:a.iconLibrary,allowPopout:!1!==a.allowPopout,element:a.element,html:a.html};return this.panelsById={...this.panelsById,[e]:r},i.panels=[...i.panels||[],e],i.activePanelId=e,this.root={...this.root},this.panelAdded.emit(r),this.emitLayoutChange(),e}async removePanel(a){const e=this.panelsById[a];if(!e)return;if(e.pinned)return;this.maximizedPanel===a&&(this.maximizedPanel=void 0,this.preMaximizeState=void 0);const i=this.findRegionNode(e.regionId)?.node;i&&(i.panels=(i.panels||[]).filter((e=>e!==a)),i.activePanelId===a&&(i.activePanelId=i.panels[(i.panels||[]).length-1]||void 0));const{[a]:r,...t}=this.panelsById;this.panelsById=t;const{[a]:o,...n}=this.popouts;this.popouts=n,this.root={...this.root},this.panelRemoved.emit({panelId:a,regionId:i?.id||""}),this.emitLayoutChange()}async movePanel(a,e,i){const r=this.panelsById[a];if(!r)throw Error("Panel not found: "+a);const t=this.findRegionNode(r.regionId)?.node,o=this.findRegionNode(e)?.node;if(!o)throw Error("Target region not found: "+e);t&&(t.panels=(t.panels||[]).filter((e=>e!==a)),t.activePanelId===a&&(t.activePanelId=t.panels[(t.panels||[]).length-1]||void 0)),r.regionId=o.id;const n=[...o.panels||[]];void 0===i||i<0||i>n.length?n.push(a):n.splice(i,0,a),o.panels=n,o.activePanelId=a,this.panelsById={...this.panelsById},this.root={...this.root},this.panelMoved.emit({panelId:a,from:t?.id||"",to:o.id}),this.emitLayoutChange()}async popoutPanel(a,e){const i=this.panelsById[a];if(!i)throw Error("Panel not found: "+a);const r=this.findRegionNode(i.regionId)?.node;r&&(r.panels=(r.panels||[]).filter((e=>e!==a)),r.activePanelId===a&&(r.activePanelId=r.panels[(r.panels||[]).length-1]||void 0)),this.popouts={...this.popouts,[a]:{x:e?.x??100,y:e?.y??100,width:e?.width??400,height:e?.height??300}},this.root={...this.root},this.panelPoppedOut.emit({panelId:a}),this.emitLayoutChange()}async dockPanel(a,e,i){if(!this.popouts[a])return;const{[a]:r,...t}=this.popouts;this.popouts=t,await this.movePanel(a,e,i),this.panelDocked.emit({panelId:a,regionId:e})}async splitRegion(a,e="horizontal"){const i=this.findRegionNode(a);if(!i)throw Error("Region not found: "+a);const{node:r}=i;if(r.children&&r.children.length)return;const t={id:a+"-a",title:r.title,size:50,panels:[],activePanelId:void 0},o={id:a+"-b",title:r.title,size:50,panels:[],activePanelId:void 0};r.panels?.length&&(t.panels=[...r.panels],t.activePanelId=r.activePanelId,r.panels=[],r.activePanelId=void 0),r.children=[t,o],r.direction=e,this.root={...this.root},this.emitLayoutChange()}async maximizePanel(a){if(!this.panelsById[a])throw Error("Panel not found: "+a);this.preMaximizeState={root:JSON.parse(JSON.stringify(this.root)),panelsById:JSON.parse(JSON.stringify(this.panelsById))},this.maximizedPanel=a,this.panelMaximized.emit({panelId:a})}async restorePanel(){if(!this.maximizedPanel)return;const a=this.maximizedPanel;this.preMaximizeState&&(this.preMaximizeState.root&&this.preMaximizeState.panelsById&&(this.root=this.preMaximizeState.root,this.panelsById=this.preMaximizeState.panelsById,this.root={...this.root},this.panelsById={...this.panelsById},this.layoutVersion++),this.preMaximizeState=void 0),this.maximizedPanel=void 0,this.panelRestored.emit({panelId:a}),this.emitLayoutChange()}async closeAllPanels(a){if(a){const e=this.findRegionNode(a);if(!e||!e.node.panels)return;const i=[...e.node.panels];for(const a of i)await this.removePanel(a)}else{const a=Object.keys(this.panelsById);for(const e of a)await this.removePanel(e)}}async mergeRegion(a){const e=this.findRegionNode(a);if(!e)return;const{node:i}=e;if(!i.children||!i.children.length)return;const r=i.children[0];i.panels=[...r.panels||[]],i.activePanelId=r.activePanelId,i.children=void 0,i.direction=void 0,this.root={...this.root},this.emitLayoutChange()}async createRegion(a){if(this.findRegionNode(a.id))return;const e=this.root.children||[],i=e.reduce(((a,e)=>a+(e.size||0)),0)||100,r=a.size??100/(e.length+1),t=r/(i+r)*100,o=e.map((a=>({...a,size:(a.size||0)*(i/(i+r))})));this.root.children=[...o,{id:a.id,title:a.title,size:t,minSize:a.minSize,maxSize:a.maxSize,collapsible:a.collapsible??!1,panels:[],activePanelId:void 0}],this.emitLayoutChange()}async addRegion(a){this.root&&this.root.children||(this.root={id:"__root__",title:"Root",direction:this.direction,children:[],panels:[]});const e=a.id||"region-"+Date.now(),i=a.title||"Region "+(this.root.children.length+1),r=a.position||"end",t=a.type||"default";if(this.findRegionNode(e))throw Error(`Region with id '${e}' already exists`);const o={id:e,title:i,size:a.size||100/(this.root.children.length+1),panels:[],activePanelId:void 0,type:t};if(this.root.children="start"===r?[o,...this.root.children]:[...this.root.children,o],!a.skipNormalization){const a=this.root.children.reduce(((a,e)=>a+(e.size||0)),0);this.root.children=this.root.children.map((e=>({...e,size:(e.size||0)/a*100})))}return this.root={...this.root},this.emitLayoutChange(),this.regionAdded.emit({regionId:e,title:i}),e}async normalizeRegionSizes(){if(!this.root||!this.root.children)return;const a=this.root.children.reduce(((a,e)=>a+(e.size||0)),0);0!==a&&(this.root.children=this.root.children.map((e=>({...e,size:(e.size||0)/a*100}))),this.root={...this.root},this.emitLayoutChange())}async removeRegion(a){const e=this.findRegionNode(a);if(!e)return;const{parent:i}=e;if(!i||!i.children)return;const r=i.children.findIndex((e=>e.id===a)),t=i.children[r],o=i.children[r-1]||i.children[r+1];i.children=i.children.filter((e=>e.id!==a)),o&&t&&t.panels?.length&&(o.panels=[...o.panels||[],...t.panels],o.activePanelId=o.activePanelId||t.activePanelId||(o.panels||[])[(o.panels||[]).length-1]);const n=i.children,s=n.reduce(((a,e)=>a+(e.size||0)),0)||100;i.children=n.map((a=>({...a,size:(a.size||0)/s*100}))),this.root={...this.root},this.emitLayoutChange(),this.regionRemoved.emit({regionId:a})}onPanelPopout(a){this.popoutPanel(a.detail.panelId)}onPanelSelect(a){const e=this.findRegionNode(a.detail.regionId)?.node;e&&(e.activePanelId=a.detail.panelId,this.root={...this.root},this.emitLayoutChange())}emitLayoutChange(){const a=[],e=i=>{i.children&&i.children.length?i.children.forEach(e):a.push(i)};e(this.root),this.layoutChange.emit({regions:a}),this.saveState&&this.saveStateToStorage()}saveStateToStorage(){try{const a=Object.fromEntries(Object.entries(this.panelsById).map((([a,e])=>{const{element:i,...r}=e;return[a,r]})));localStorage.setItem(this.stateKey,JSON.stringify({root:this.root,panelsById:a,minimizedRegions:this.minimizedRegions}))}catch(a){console.error("[WorkspaceManager] Failed to save state",a)}}loadState(){try{const a=localStorage.getItem(this.stateKey);if(a){const e=JSON.parse(a);this.root=e.root,this.panelsById=e.panelsById,this.minimizedRegions=e.minimizedRegions||{}}}catch(a){console.error("[WorkspaceManager] Failed to load state",a)}}findRegionNode(a){let e;const i=(r,t)=>{r.id!==a?r.children&&r.children.forEach((a=>i(a,r))):e={node:r,parent:t}};return i(this.root),e}scrollTabs(a,e){const i=document.querySelector(`[data-region-id="${a}"] .lm-tabs`);i&&i.scrollBy({left:"left"===e?-200:200,behavior:"smooth"})}togglePanelDropdown(a,e){e?.stopPropagation();const i=!this.openDropdowns[a];if(this.openDropdowns={...this.openDropdowns,[a]:i},i&&e){this.floatingDropdownTrigger=e.currentTarget;const i=c(this.floatingDropdownTrigger,{menuWidth:200,menuHeight:300,gap:4,align:"end"});this.floatingDropdown={x:i.left??0,y:i.top??0,regionId:a,type:"panel"}}else this.floatingDropdown=void 0,this.floatingDropdownTrigger=void 0}selectPanelFromDropdown(a,e){this.selectPanel(a,e),this.openDropdowns={...this.openDropdowns,[a]:!1},this.floatingDropdown=void 0}toggleActionsMenu(a,e){e?.stopPropagation();const i=!this.openActionsMenu[a];if(this.openActionsMenu={...this.openActionsMenu,[a]:i},i&&e){this.floatingDropdownTrigger=e.currentTarget;const i=c(this.floatingDropdownTrigger,{menuWidth:200,menuHeight:300,gap:4,align:"end"});this.floatingDropdown={x:i.left??0,y:i.top??0,regionId:a,type:"actions"}}else this.floatingDropdown=void 0,this.floatingDropdownTrigger=void 0}minimizeRegion(a){if(this.maximizedPanel)return;const e=this.findRegionNode(a);if(!e)return;const i=e.node,r=e.parent;if(this.maximizedPanel){const e=this.panelsById[this.maximizedPanel];if(e&&e.regionId===a)return}const t=i.panels?.[0]?this.panelsById[i.panels[0]]:null,o=t?.icon||"fas fa-window-minimize";let n,s=-1,c="left";if(r&&r.children){s=r.children.findIndex((e=>e.id===a)),n=r.id,c=s<Math.floor(r.children.length/2)?"left":"right";const e=r.children.filter((e=>e.id!==a));if(e.length>0){const a=e.reduce(((a,e)=>a+(e.size||0)),0);if(a>0)e.forEach((e=>{e.size=(e.size||0)/a*100}));else{const a=100/e.length;e.forEach((e=>{e.size=a}))}}r.children=e}else if(this.root.id===a)return;this.minimizedRegions={...this.minimizedRegions,[a]:{title:i.title||a,icon:o,iconLibrary:t?.iconLibrary,region:{...i},parentId:n,index:s,side:c}},this.layoutVersion++,this.root={...this.root},this.emitLayoutChange()}restoreRegion(a){const e=this.minimizedRegions[a];if(!e)return;const{region:i,parentId:r,index:t}=e;if(r){const a=this.findRegionNode(r);if(a&&a.node&&a.node.children){const e=a.node,r=JSON.parse(JSON.stringify(i)),o=[...e.children??[]];o.splice(t,0,r);const n=o.reduce(((a,e)=>a+(e.size||0)),0);n>0&&o.forEach((a=>{a.size=(a.size||0)/n*100})),e.children=o,this.layoutVersion++}}const{[a]:o,...n}=this.minimizedRegions;this.minimizedRegions=n,this.root={...this.root},this.emitLayoutChange()}closeAllAndRemoveRegion(a){const e=this.findRegionNode(a)?.node;e&&([...e.panels].forEach((a=>{this.removePanel(a)})),this.removeRegion(a))}renderTabs(a){const e=a.panels.map((a=>this.panelsById[a])).filter(Boolean),i=e.filter((a=>a.pinned)),t=e.filter((a=>!a.pinned)),o=i.length>0&&t.length>0,n=this.regionsNeedingScroll[a.id]||!1;return r("div",{class:"lm-tabs-container","data-region-id":a.id},n&&r("ui-button",{variant:"ghost",size:"sm",icon:"chevron-left",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Scroll left",onClick:()=>this.scrollTabs(a.id,"left")}),r("div",{class:"lm-tabs",onDragOver:e=>{e.preventDefault(),this.handleDragOver(e,a.id)},onDragLeave:()=>this.dragOverTarget=void 0,onDrop:e=>this.handleTabDrop(e,a)},e.map(((i,t)=>{const n=i.pinned;return r("div",{key:i.id},!n&&t>0&&e[t-1]?.pinned&&o&&r("div",{class:"lm-tab-separator",title:"Pinned / Unpinned divider"}),r("div",{class:{"lm-tab":!0,active:a.activePanelId===i.id,pinned:!!n},draggable:!0,onDragStart:e=>this.handleTabDragStart(e,i,a),onContextMenu:e=>this.openContextMenu(e,a.id,i.id),onClick:()=>this.selectPanel(a.id,i.id)},i.icon&&r("ui-icon",{name:i.icon,library:i.iconLibrary||"lucide"}),r("span",{class:"lm-tab-title"},i.title),n&&r("ui-icon",{name:"thumbtack",library:"fontawesome",class:"lm-tab-btn",title:"Unpin",onClick:a=>{a.stopPropagation(),this.togglePin(i.id)}}),i.dirty&&r("span",{class:"lm-dot",title:"Unsaved changes"}),r("ui-button",{variant:"ghost",size:"sm",icon:"ellipsis-v",iconLibrary:"fontawesome",ariaLabel:"More actions",onClick:a=>{a.stopPropagation();const e=!this.openDropdowns["tab-"+i.id];if(this.openDropdowns={...this.openDropdowns,["tab-"+i.id]:e},e){this.tabActionsMenuTrigger=a.currentTarget;const e=this.tabActionsMenuTrigger.getBoundingClientRect(),r=l(this.el);this.tabActionsMenu={x:e.right-r.x,y:e.bottom-r.y+4,panelId:i.id}}else this.tabActionsMenu=void 0,this.tabActionsMenuTrigger=void 0}}),i.closable&&!n&&r("ui-button",{variant:"ghost",size:"sm",icon:"times",iconLibrary:"fontawesome",ariaLabel:"Close",onClick:a=>{a.stopPropagation(),this.removePanel(i.id)}})))}))),n&&r("ui-button",{variant:"ghost",size:"sm",icon:"chevron-right",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Scroll right",onClick:()=>this.scrollTabs(a.id,"right")}))}handleTabDragStart(a,e,i){this.draggingPanel={panelId:e.id,fromRegionId:i.id},a.dataTransfer?.setData("text/plain",e.id),a.dataTransfer?.setDragImage(a.target,0,0)}handleTabDrop(a,e){a.preventDefault();const i=a.dataTransfer?.getData("text/plain")||this.draggingPanel?.panelId;if(!i)return;let r;const t=a.target.closest(".lm-tab");t&&(r=Array.from(t.parentElement.querySelectorAll(".lm-tab")).indexOf(t)),this.movePanel(i,e.id,r),this.draggingPanel=void 0}selectPanel(a,e){const i=this.findRegionNode(a)?.node;i&&(i.activePanelId=e,this.root={...this.root},this.emitLayoutChange())}switchToPanel(a,e){const i=this.findRegionNode(a)?.node;i&&i.panels.includes(e)&&(i.activePanelId=e,this.root={...this.root})}renderNavigationRegion(a){const e=a.panels.map((a=>this.panelsById[a])).filter(Boolean);return r("div",{class:"lm-region lm-region-navigation","data-region-id":a.id},r("div",{class:"lm-region-header"},r("div",{class:"lm-navigation-header"},r("span",{class:"lm-navigation-title"},a.title||"Navigation")),r("ui-button",{variant:"ghost",size:"sm",icon:"times-circle",iconLibrary:"fontawesome",ariaLabel:"Close all panels and remove region",onClick:()=>this.closeAllAndRemoveRegion(a.id)})),r("div",{class:"lm-navigation-content"},e.map((e=>r("div",{class:"lm-navigation-section","data-panel-id":e.id},r("div",{class:{"lm-navigation-section-header":!0,active:a.activePanelId===e.id},onClick:()=>this.switchToPanel(a.id,e.id)},e.icon&&r("ui-icon",{name:e.icon,library:e.iconLibrary||"default"}),r("span",{class:"lm-navigation-section-title"},e.title),r("ui-button",{variant:"ghost",size:"sm",class:"lm-navigation-section-close",icon:"times",iconLibrary:"fontawesome",ariaLabel:"Close panel",onClick:a=>{a.stopPropagation(),this.removePanel(e.id)}})),a.activePanelId===e.id&&r("div",{class:"lm-navigation-section-content",ref:a=>this.attachContent(a,e)})))),0===e.length&&r("div",{class:"lm-empty"},"No panels open")))}renderHeaderOnlyRegion(a){const e=a.activePanelId?this.panelsById[a.activePanelId]:void 0;return r("div",{class:"lm-region lm-region-header-only","data-region-id":a.id},r("div",{class:"lm-region-header"},r("div",{class:"lm-header-only-title"},e?.icon&&r("ui-icon",{name:e.icon,library:e.iconLibrary||"default"}),r("span",null,e?.title||a.title||"Content")),r("div",{class:"lm-header-only-actions"},r("div",{class:"lm-panel-dropdown-wrapper"},r("ui-button",{variant:"ghost",size:"sm",icon:"list",iconLibrary:"fontawesome",ariaLabel:"Show all panels",onClick:e=>this.togglePanelDropdown(a.id,e)})),e&&r("ui-button",{variant:"ghost",size:"sm",icon:"expand",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Maximize",onClick:()=>this.maximizePanel(e.id)}),e&&r("ui-button",{variant:"ghost",size:"sm",icon:"external-link-alt",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Pop out",onClick:()=>this.popoutPanel(e.id)}),r("ui-button",{variant:"ghost",size:"sm",icon:"times-circle",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close all panels and remove region",onClick:()=>this.closeAllAndRemoveRegion(a.id)}))),r("div",{class:"lm-region-content"},e&&r("div",{class:"lm-panel-host","data-panel-id":e.id,ref:a=>this.attachContent(a,e)}),!e&&r("div",{class:"lm-empty"},"No content available")))}renderLeafRegion(a){const e=a.activePanelId?this.panelsById[a.activePanelId]:void 0,i=a.type||"default",t="no-header"!==i&&"content-only"!==i,o="title-only"!==i&&"no-header"!==i&&"content-only"!==i&&"navigation"!==i&&"header-only"!==i,n="default"===i,s=this.regionsNeedingScroll[a.id]||!1;return"content-only"===i?r("div",{class:"lm-region lm-region-content-only","data-region-id":a.id},e&&r("div",{class:"lm-panel-host","data-panel-id":e.id,ref:a=>this.attachContent(a,e)})):"navigation"===i?this.renderNavigationRegion(a):"header-only"===i?this.renderHeaderOnlyRegion(a):r("div",{class:{"lm-region":!0,["lm-region-"+i]:!0},"data-region-id":a.id},t&&r("div",{class:"lm-region-header"},"title-only"===i&&r("div",{class:"lm-region-title"},r("span",null,a.title)),o&&this.renderTabs(a),n&&r("div",{class:"lm-region-actions"},s&&r("div",{class:"lm-panel-dropdown-wrapper"},r("ui-button",{variant:"ghost",size:"sm",icon:"list",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Show all panels",onClick:e=>this.togglePanelDropdown(a.id,e)})),r("div",{class:"lm-actions-menu-wrapper"},r("ui-button",{variant:"ghost",size:"sm",icon:"ellipsis-v",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Actions",onClick:e=>this.toggleActionsMenu(a.id,e)})),r("ui-button",{variant:"ghost",size:"sm",icon:"window-minimize",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Minimize region",onClick:()=>this.minimizeRegion(a.id)}),(a.panels?.length||0)>0&&r("ui-button",{variant:"ghost",size:"sm",icon:"times-circle",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close all panels and remove region",onClick:()=>this.closeAllAndRemoveRegion(a.id)}))),r("div",{class:"lm-region-content",onDragOver:e=>{e.preventDefault(),this.handleDragOver(e,a.id)},onDragLeave:()=>this.dragOverTarget=void 0,onDrop:e=>this.handleTabDrop(e,a)},e&&r("div",{class:"lm-panel-host","data-panel-id":e.id,ref:a=>this.attachContent(a,e)}),!e&&r("div",{class:"lm-empty"},"No tabs open"),this.dragOverTarget?.regionId===a.id&&r("div",{class:"lm-drop-highlighter lm-drop-"+this.dragOverTarget.position})))}renderRegionNode(a){if(a.children&&a.children.length){const e=a.children.map((a=>({id:a.id,size:a.size,minSize:a.minSize,maxSize:a.maxSize,collapsible:a.collapsible})));return r("ui-resizable-panel",{key:`resizable-${a.id}-v${this.layoutVersion}`,direction:a.direction||"horizontal",panels:JSON.stringify(e),saveState:!1,stateKey:`${this.stateKey}-${a.id}`,showHandleIcon:!0},a.children.map((a=>r("div",{slot:a.id,class:"lm-slot"},this.renderRegionNode(a)))))}return this.renderLeafRegion(a)}attachContent(a,e){if(a){for(;a.firstChild;)a.removeChild(a.firstChild);e.element?a.appendChild(e.element):e.html&&(a.innerHTML=n(e.html))}}renderVerticalNav(a){const e=Object.entries(this.minimizedRegions).filter((([e,i])=>i.side===a));return 0===e.length?null:r("div",{class:"lm-vertical-nav lm-vertical-nav-"+a},e.map((([a,e])=>r("div",{key:a,class:"lm-nav-item",title:e.title,onClick:()=>this.restoreRegion(a)},r("ui-icon",{name:e.icon,library:e.iconLibrary||"default"}),r("span",{class:"lm-nav-label"},e.title)))))}render(){if(this.maximizedPanel){const a=this.panelsById[this.maximizedPanel];if(a)return r(t,null,r("div",{class:"lm-container lm-maximized"},r("div",{class:"lm-maximized-panel"},r("div",{class:"lm-maximized-header"},r("span",{class:"lm-maximized-title"},a.title),r("div",{class:"lm-maximized-actions"},r("ui-button",{variant:"ghost",size:"sm",icon:"compress",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Restore",onClick:()=>this.restorePanel()}),r("ui-button",{variant:"ghost",size:"sm",icon:"times",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close",onClick:()=>this.removePanel(this.maximizedPanel)}))),r("div",{class:"lm-maximized-content",ref:e=>this.attachContent(e,a)}))))}return r(t,null,this.renderVerticalNav("left"),r("div",{class:"lm-container"},this.root&&this.renderRegionNode(this.root),r("div",{class:"lm-popout-layer"},Object.keys(this.popouts).map((a=>{const e=this.popouts[a],i=this.panelsById[a];return i?r("div",{class:"lm-popout-window",style:{left:e.x+"px",top:e.y+"px",width:e.width+"px",height:e.height+"px"},"data-panel-id":a},r("div",{class:"lm-popout-header",onMouseDown:e=>this.startPopoutDrag(e,a)},r("span",{class:"lm-popout-title"},i.title),r("div",{class:"lm-popout-actions"},r("ui-button",{variant:"ghost",size:"sm",icon:"download",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Dock",onClick:()=>this.dockPanel(a,i.regionId)}),r("ui-button",{variant:"ghost",size:"sm",icon:"times",iconLibrary:"fontawesome",iconSize:"14px",ariaLabel:"Close",onClick:()=>this.removePanel(a)}))),r("div",{class:"lm-popout-content",ref:a=>this.attachContent(a,i)})):null}))),this.contextMenu&&this.renderContextMenu(),this.tabActionsMenu&&this.renderTabActionsMenu(),this.floatingDropdown&&this.renderFloatingDropdown()),this.renderVerticalNav("right"))}startPopoutDrag(a,e){const i=this.popouts[e];if(!i)return;const r=a.currentTarget.parentElement.getBoundingClientRect();this.draggingPopout={panelId:e,offsetX:a.clientX-r.left,offsetY:a.clientY-r.top};const t=a=>{let r=a.clientX-this.draggingPopout.offsetX,t=a.clientY-this.draggingPopout.offsetY;const o=window.innerWidth,n=window.innerHeight;Math.abs(r)<20&&(r=0),Math.abs(t)<20&&(t=0),Math.abs(r+i.width-o)<20&&(r=o-i.width),Math.abs(t+i.height-n)<20&&(t=n-i.height),this.popouts[e]={...this.popouts[e],x:r,y:t},this.popouts={...this.popouts}},o=()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",o),this.draggingPopout=void 0};document.addEventListener("mousemove",t),document.addEventListener("mouseup",o)}openContextMenu(a,e,i){a.preventDefault();const r=m(a.clientX,a.clientY,this.el);this.contextMenu={x:r.x,y:r.y,regionId:e,panelId:i};const t=()=>{this.contextMenu=void 0,document.removeEventListener("click",t)};document.addEventListener("click",t,{once:!0})}renderContextMenu(){const{x:a,y:e,regionId:i,panelId:t}=this.contextMenu,o=this.panelsById[t];return r("div",{class:"lm-context-menu",style:{left:a+"px",top:e+"px"}},r("ui-button",{variant:"ghost",fullWidth:!0,icon:"thumbtack",iconLibrary:"fontawesome",iconSize:"14px",label:o?.pinned?"Unpin Tab":"Pin Tab",onClick:()=>{this.togglePin(t),this.contextMenu=void 0}}),r("hr",null),r("ui-button",{variant:"ghost",fullWidth:!0,disabled:o?.pinned,label:o?.pinned?"Close (Pinned)":"Close",onClick:()=>{this.removePanel(t),this.contextMenu=void 0}}),r("ui-button",{variant:"ghost",fullWidth:!0,icon:"arrows-alt-h",iconLibrary:"fontawesome",iconSize:"14px",label:"Close Others",onClick:()=>{this.closeOthers(i,t),this.contextMenu=void 0}}),r("ui-button",{variant:"ghost",fullWidth:!0,icon:"arrow-right",iconLibrary:"fontawesome",iconSize:"14px",label:"Close to the Right",onClick:()=>{this.closeToRight(i,t),this.contextMenu=void 0}}),r("hr",null),r("ui-button",{variant:"ghost",fullWidth:!0,label:"Move to New Group (H)",onClick:()=>{this.splitRegion(i,"horizontal").then((()=>this.movePanel(t,i+"-b"))),this.contextMenu=void 0}}),r("ui-button",{variant:"ghost",fullWidth:!0,label:"Move to New Group (V)",onClick:()=>{this.splitRegion(i,"vertical").then((()=>this.movePanel(t,i+"-b"))),this.contextMenu=void 0}}))}renderTabActionsMenu(){const{x:a,y:e,panelId:i}=this.tabActionsMenu,t=this.panelsById[i];return t?r("div",{class:"lm-tab-actions-menu-fixed",style:{left:a+"px",top:e+"px"}},r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.maximizePanel(i),this.openDropdowns={...this.openDropdowns,["tab-"+i]:!1},this.tabActionsMenu=void 0}},r("ui-icon",{name:"expand",library:"fontawesome",size:"14px"}),r("span",null,"Maximize")),t.allowPopout&&r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.popoutPanel(i),this.openDropdowns={...this.openDropdowns,["tab-"+i]:!1},this.tabActionsMenu=void 0}},r("ui-icon",{name:"window-restore",library:"fontawesome"}),r("span",null,"Pop Out")),r("div",{class:"lm-tab-actions-divider"}),r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.togglePin(i),this.openDropdowns={...this.openDropdowns,["tab-"+i]:!1},this.tabActionsMenu=void 0}},r(r.Fragment,null,r("ui-icon",{name:"thumbtack",library:"fontawesome"}),r("span",null,t.pinned?"Unpin Tab":"Pin Tab"))),r("div",{class:"lm-tab-actions-divider"}),r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.closeOthers(t.regionId,i),this.tabActionsMenu=void 0}},r("ui-icon",{name:"arrows-alt-h",library:"fontawesome"}),r("span",null,"Close Others")),r("div",{class:"lm-tab-actions-item",onClick:a=>{a.stopPropagation(),this.closeToRight(t.regionId,i),this.tabActionsMenu=void 0}},r("ui-icon",{name:"arrow-right",library:"fontawesome"}),r("span",null,"Close to the Right")),r("div",{class:"lm-tab-actions-divider"}),r("div",{class:"lm-tab-actions-item lm-tab-actions-danger",onClick:a=>{a.stopPropagation(),this.removePanel(i),this.tabActionsMenu=void 0}},r("ui-icon",{name:"times",library:"fontawesome"}),r("span",null,"Close"))):null}closeOthers(a,e){const i=this.findRegionNode(a)?.node;i&&(i.panels||[]).filter((a=>a!==e)).forEach((a=>this.removePanel(a)))}closeToRight(a,e){const i=this.findRegionNode(a)?.node;if(!i)return;const r=(i.panels||[]).indexOf(e);(i.panels||[]).slice(r+1).forEach((a=>this.removePanel(a)))}togglePin(a){const e=this.panelsById[a];if(!e)return;e.pinned=!e.pinned;const i=this.findRegionNode(e.regionId)?.node;if(!i||!i.panels)return;const r=i.panels.map((a=>this.panelsById[a])).filter(Boolean),t=r.filter((a=>a.pinned)).map((a=>a.id)),o=r.filter((a=>!a.pinned)).map((a=>a.id));i.panels=[...t,...o],this.panelsById={...this.panelsById},this.root={...this.root}}checkTabsOverflow(){const a=[],e=i=>{i.panels&&a.push(i),i.children&&i.children.forEach(e)};this.root&&e(this.root);const i={};a.forEach((a=>{const e=this.el.querySelector(`[data-region-id="${a.id}"] .lm-tabs`);e&&(i[a.id]=e.scrollWidth>e.offsetWidth)})),JSON.stringify(i)!==JSON.stringify(this.regionsNeedingScroll)&&(this.regionsNeedingScroll=i)}handleDragOver(a,e){const i=a.currentTarget.getBoundingClientRect(),r=a.clientX-i.left,t=a.clientY-i.top;let o="center";t<.2*i.height?o="top":t>.8*i.height?o="bottom":r<.2*i.width?o="left":r>.8*i.width&&(o="right"),this.dragOverTarget={regionId:e,position:o}}renderFloatingDropdown(){if(!this.floatingDropdown)return null;const{x:a,y:e,regionId:i,type:t}=this.floatingDropdown,o=this.findRegionById(this.root,i);if(!o)return null;if("panel"===t){const i=o.panels.map((a=>this.panelsById[a])).filter(Boolean);return r("div",{class:"lm-panel-dropdown-menu",style:{position:"fixed",top:e+"px",left:a+"px",zIndex:"12000",minWidth:"200px"}},r("div",{class:"lm-panel-dropdown-header"},"All Panels (",i.length,")"),i.map((a=>r("div",{class:{"lm-panel-dropdown-item":!0,active:o.activePanelId===a.id},onClick:()=>this.selectPanelFromDropdown(o.id,a.id)},a.icon&&r("ui-icon",{name:a.icon,library:a.iconLibrary||"lucide",style:{marginRight:"8px"}}),r("span",null,a.title)))))}{const i=o.activePanelId?this.panelsById[o.activePanelId]:null;return r("div",{class:"lm-actions-dropdown-menu",style:{position:"fixed",top:e+"px",left:a+"px",zIndex:"12000",minWidth:"180px"}},r("div",{class:"lm-actions-item",onClick:()=>{this.splitRegion(o.id,"horizontal"),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"columns",library:"fontawesome",class:"lm-actions-icon"}),"Split Horizontal"),r("div",{class:"lm-actions-item",onClick:()=>{this.splitRegion(o.id,"vertical"),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"grip-lines",library:"fontawesome",class:"lm-actions-icon"}),"Split Vertical"),r("div",{class:"lm-actions-divider"}),i&&r("div",{class:"lm-actions-item",onClick:()=>{this.maximizePanel(i.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"expand",library:"fontawesome",class:"lm-actions-icon"}),"Maximize Panel"),(o.panels?.length||0)>0&&r(r.Fragment,null,r("div",{class:"lm-actions-divider"}),r("div",{class:"lm-actions-item",onClick:()=>{this.closeAllPanels(o.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"times",library:"fontawesome",class:"lm-actions-icon"}),"Close All Panels")),r("div",{class:"lm-actions-divider"}),r("div",{class:"lm-actions-item",onClick:()=>{this.mergeRegion(o.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"compress",library:"fontawesome",class:"lm-actions-icon"}),"Merge Region"),r("div",{class:"lm-actions-divider"}),r("div",{class:"lm-actions-item lm-actions-danger",onClick:()=>{this.closeAllAndRemoveRegion(o.id),this.floatingDropdown=void 0,this.openActionsMenu={}}},r("ui-icon",{name:"trash",library:"fontawesome",class:"lm-actions-icon"}),"Remove Group"))}}findRegionById(a,e){if(a.id===e)return a;for(const i of a.children??[]){const a=this.findRegionById(i,e);if(a)return a}return null}componentDidUpdate(){setTimeout((()=>this.checkTabsOverflow()),0)}static get watchers(){return{regions:[{handleRegionsChange:0}]}}static get style(){return'.sr-only.sc-ui-workspace-manager{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.sc-ui-workspace-manager{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}.sc-ui-workspace-manager-h{display:flex;height:100%;width:100%;overflow:hidden}.lm-vertical-nav.sc-ui-workspace-manager{width:50px;background:var(--bg-secondary, #2b2b2b);display:flex;flex-direction:column;align-items:center;padding:0;gap:0;overflow-y:auto;flex-shrink:0}.lm-vertical-nav.lm-vertical-nav-left.sc-ui-workspace-manager{border-right:1px solid var(--border-strong, #3e3e42);box-shadow:2px 0 8px rgba(0, 0, 0, 0.3)}.lm-vertical-nav.lm-vertical-nav-right.sc-ui-workspace-manager{border-left:1px solid var(--border-strong, #3e3e42);box-shadow:-2px 0 8px rgba(0, 0, 0, 0.3)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager{width:100%;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted, #858585);transition:all 0.15s ease;padding:0;position:relative}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager::before{content:"";position:absolute;top:0;bottom:0;width:2px;background:transparent;transition:background 0.15s ease}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:24px;margin-bottom:0}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager .lm-nav-label.sc-ui-workspace-manager{font-size:8px;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-weight:400;letter-spacing:0.5px;text-transform:uppercase}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:hover{background:var(--bg-secondary, #2d2d30);color:var(--text-standard, #ffffff)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:hover::before{background:var(--bg-secondary, #505050)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:active,.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.active.sc-ui-workspace-manager{background:var(--bg-primary, #1e1e1e);color:var(--text-standard, #ffffff)}.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager:active::before,.lm-vertical-nav.sc-ui-workspace-manager .lm-nav-item.active.sc-ui-workspace-manager::before{background:var(--color-primary, #007acc)}.lm-vertical-nav.lm-vertical-nav-left.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager::before{left:0}.lm-vertical-nav.lm-vertical-nav-right.sc-ui-workspace-manager .lm-nav-item.sc-ui-workspace-manager::before{right:0}.lm-container.sc-ui-workspace-manager{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.lm-container.lm-maximized.sc-ui-workspace-manager{background:var(--bg-secondary, #0f172a)}.lm-maximized-panel.sc-ui-workspace-manager{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-secondary, #0f172a);overflow:hidden}.lm-maximized-header.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg, var(--color-primary, #1e3a8a) 0%, var(--color-primary, #10b981) 100%);color:var(--text-standard, #ffffff);padding:8px 12px;border-bottom:1px solid var(--color-primary-hover, #2563eb);flex-shrink:0;min-height:40px;box-shadow:0 2px 8px rgba(0, 0, 0, 0.3)}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-title.sc-ui-workspace-manager{font-size:16px;font-weight:600}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager{display:flex;gap:8px}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager{background:rgba(255, 255, 255, 0.2);border:none;color:var(--text-standard, #ffffff);cursor:pointer;padding:6px 10px;border-radius:4px;transition:all 0.2s;font-size:14px}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager:hover{background:rgba(255, 255, 255, 0.3);transform:scale(1.05)}.lm-maximized-header.sc-ui-workspace-manager .lm-maximized-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager i.sc-ui-workspace-manager{pointer-events:none}.lm-maximized-content.sc-ui-workspace-manager{flex:1;overflow:auto;background:var(--bg-secondary, #0f172a);color:var(--text-standard, #e5e7eb)}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar{width:8px;height:8px}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1e293b)}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #475569);border-radius:4px}.lm-maximized-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #64748b)}.lm-slot.sc-ui-workspace-manager{width:100%;height:100%;display:flex;flex-direction:column;min-height:0;min-width:0}.lm-region.sc-ui-workspace-manager{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;min-width:0;overflow:visible;position:relative}.lm-region.lm-region-navigation.sc-ui-workspace-manager .lm-region-header.sc-ui-workspace-manager{background:var(--color-primary, #1e3a8a);border-bottom:2px solid var(--color-primary, #10b981)}.lm-region.lm-region-title-only.sc-ui-workspace-manager .lm-region-header.sc-ui-workspace-manager{background:var(--color-primary, #374151);justify-content:center;padding:8px 12px}.lm-region.lm-region-no-header.sc-ui-workspace-manager .lm-region-content.sc-ui-workspace-manager{border-radius:0}.lm-region.lm-region-content-only.sc-ui-workspace-manager{overflow:hidden}.lm-region.lm-region-content-only.sc-ui-workspace-manager .lm-panel-host.sc-ui-workspace-manager{width:100%;height:100%;margin:0;padding:0;border:none;background:transparent}.lm-region.lm-region-header-only.sc-ui-workspace-manager .lm-region-header.sc-ui-workspace-manager{background:var(--bg-primary, #1f2937);padding:6px 12px;border-bottom:2px solid var(--color-primary, #10b981)}.lm-region-title.sc-ui-workspace-manager{flex:1;display:flex;align-items:center;font-weight:600;font-size:14px;color:var(--text-standard, #e5e7eb);padding:0 8px}.lm-navigation-header.sc-ui-workspace-manager{flex:1;display:flex;align-items:center;gap:8px;padding:0 8px}.lm-navigation-title.sc-ui-workspace-manager{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:0.5px;color:var(--text-standard, #ffffff)}.lm-region-header.sc-ui-workspace-manager{display:flex;align-items:center;gap:4px;background:var(--bg-primary, #1f2937);color:var(--text-standard, #e5e7eb);padding:2px 6px;border-bottom:1px solid var(--border-default, #374151);flex-shrink:0;min-height:36px;min-width:0;width:100%;overflow:visible;position:relative;z-index:11000;box-shadow:0 1px 3px rgba(0, 0, 0, 0.2)}.lm-tabs-container.sc-ui-workspace-manager{display:flex;align-items:center;gap:4px;background:var(--bg-secondary, #0f172a);padding:0 4px;flex:1;min-width:0;overflow:visible;max-width:100%}.lm-tab-scroll-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;cursor:pointer;flex-shrink:0;flex-basis:28px;transition:all 0.2s ease}.lm-tab-scroll-btn.sc-ui-workspace-manager:hover{transform:translateY(-1px)}.lm-tab-scroll-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-tab-scroll-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:12px}.lm-tabs.sc-ui-workspace-manager{display:flex;gap:2px;overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #374151) var(--text-primary, #1f2937);flex:1;min-width:0}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar{height:6px}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1f2937)}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #374151);border-radius:3px}.lm-tabs.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #4b5563)}.lm-tab-separator.sc-ui-workspace-manager{width:1px;background:linear-gradient(to bottom, transparent 20%, var(--color-primary, #10b981) 50%, transparent 80%);margin:0 4px;flex-shrink:0;opacity:0.5}.lm-panel-dropdown-wrapper.sc-ui-workspace-manager{position:relative;flex-shrink:0;z-index:1}.lm-panel-list-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-panel-list-btn.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--text-standard, #e5e7eb);border-color:var(--border-dark)}.lm-panel-list-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-panel-list-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-panel-dropdown-menu.sc-ui-workspace-manager{position:absolute;top:calc(100% + 4px);right:0;min-width:220px;max-width:320px;max-height:400px;overflow-y:auto;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.5);z-index:2;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #4b5563) var(--text-primary, #1f2937)}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar{width:6px}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1f2937)}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #4b5563);border-radius:3px}.lm-panel-dropdown-menu.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #6b7280)}.lm-panel-dropdown-header.sc-ui-workspace-manager{padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-default, #374151);background:var(--bg-secondary, #111827);position:sticky;top:0;z-index:1}.lm-panel-dropdown-item.sc-ui-workspace-manager{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:all 0.15s ease;color:var(--text-standard, #e5e7eb);font-size:13px}.lm-panel-dropdown-item.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151)}.lm-panel-dropdown-item.active.sc-ui-workspace-manager{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);font-weight:500}.lm-panel-dropdown-item.sc-ui-workspace-manager i.sc-ui-workspace-manager:first-child{width:16px;text-align:center;font-size:12px;color:var(--text-muted, #9ca3af)}.lm-panel-dropdown-item.sc-ui-workspace-manager .lm-panel-dropdown-title.sc-ui-workspace-manager{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm-panel-dropdown-item.sc-ui-workspace-manager .fa-check.sc-ui-workspace-manager{color:var(--text-standard, #ffffff);font-size:12px}.lm-panel-dropdown-item.sc-ui-workspace-manager .lm-dot.sc-ui-workspace-manager{width:6px;height:6px;border-radius:50%;background:var(--color-warning, #f59e0b)}.lm-minimize-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-minimize-btn.sc-ui-workspace-manager:hover{background:var(--color-primary, #10b981);color:var(--text-standard, #ffffff);border-color:var(--primary-color)}.lm-minimize-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-minimize-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-close-all-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-close-all-btn.sc-ui-workspace-manager:hover{background:var(--color-danger, #991b1b);color:var(--color-danger, #fca5a5);border-color:var(--color-danger-hover, #dc2626)}.lm-close-all-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-close-all-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-actions-menu-wrapper.sc-ui-workspace-manager{position:relative;flex-shrink:0;z-index:1}.lm-actions-menu-btn.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-default, #374151);background:var(--bg-primary, #1f2937);color:var(--text-muted, #9ca3af);border-radius:4px;cursor:pointer;flex-shrink:0;transition:all 0.2s ease}.lm-actions-menu-btn.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--text-standard, #e5e7eb);border-color:var(--border-dark)}.lm-actions-menu-btn.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-actions-menu-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px}.lm-actions-dropdown-menu.sc-ui-workspace-manager{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.5);z-index:2;overflow:hidden}.lm-actions-menu-item.sc-ui-workspace-manager{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:all 0.15s ease;color:var(--text-standard, #e5e7eb);font-size:13px}.lm-actions-menu-item.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151)}.lm-actions-menu-item.sc-ui-workspace-manager i.sc-ui-workspace-manager{width:16px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.lm-actions-menu-item.sc-ui-workspace-manager span.sc-ui-workspace-manager{flex:1}.lm-actions-menu-divider.sc-ui-workspace-manager{height:1px;background:var(--color-primary, #374151);margin:4px 0}.lm-tab.sc-ui-workspace-manager{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:4px 4px 0 0;background:var(--bg-secondary, #111827);cursor:pointer;user-select:none;white-space:nowrap;flex-shrink:0;transition:all 0.2s ease;border:1px solid transparent;border-bottom:none;position:relative;z-index:1}.lm-tab.sc-ui-workspace-manager:hover{background:var(--bg-primary, #1f2937);border-color:var(--border-dark);transform:translateY(-1px);z-index:2}.lm-tab.sc-ui-workspace-manager .fa-thumbtack.sc-ui-workspace-manager{color:var(--primary-color);font-size:11px;animation:pinPulse 2s ease-in-out infinite}@keyframes pinPulse{0%,100%{opacity:0.7}50%{opacity:1}}.lm-tab.active.sc-ui-workspace-manager{background:var(--bg-primary, #0b1020);color:var(--text-standard, #ffffff);border-color:var(--primary-color);box-shadow:0 2px 8px rgba(var(--color-success-rgb, 61, 205, 88), 0.2)}.lm-tab.sc-ui-workspace-manager .lm-dot.sc-ui-workspace-manager{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-danger, #eab308)}.lm-region-actions.sc-ui-workspace-manager{margin-left:auto;display:inline-flex;gap:6px}.lm-region-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager{appearance:none;border:none;background:transparent;color:inherit;padding:6px;cursor:pointer;border-radius:4px;transition:all 0.2s ease;display:inline-flex;align-items:center;justify-content:center}.lm-region-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--primary-color)}.lm-region-actions.sc-ui-workspace-manager button.sc-ui-workspace-manager:active{transform:scale(0.95)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.sc-ui-workspace-manager{appearance:none;border:none;background:transparent;color:inherit;padding:4px;cursor:pointer;border-radius:4px;transition:all 0.15s ease;display:inline-flex;align-items:center;justify-content:center}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.sc-ui-workspace-manager:hover{background:rgba(var(--color-success-rgb, 61, 205, 88), 0.15);color:var(--primary-color);transform:scale(1.1)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.sc-ui-workspace-manager:active{transform:scale(0.9)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.lm-tab-actions.sc-ui-workspace-manager:hover{background:rgba(156, 163, 175, 0.15);color:var(--text-muted, #9ca3af)}.lm-tab.sc-ui-workspace-manager .lm-tab-btn.lm-close.sc-ui-workspace-manager:hover{background:rgba(var(--color-danger-rgb, 220, 38, 38), 0.15);color:var(--color-danger-hover, #dc2626)}.lm-tab-actions-wrapper.sc-ui-workspace-manager{position:relative;display:inline-flex;align-items:center;z-index:1}.lm-tab.sc-ui-workspace-manager:has(.lm-tab-actions-menu){z-index:10002}.lm-tab-actions-menu.sc-ui-workspace-manager{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 12px rgba(0, 0, 0, 0.3);z-index:10001;min-width:140px;overflow:hidden;animation:slideDown 0.15s ease}.lm-tab-actions-menu-fixed.sc-ui-workspace-manager{position:fixed;background:var(--bg-primary, #1f2937);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 4px 24px rgba(0, 0, 0, 0.5);z-index:12000;min-width:160px;overflow:hidden;transform:translateX(-100%);animation:slideDown 0.15s ease}.lm-tab-actions-item.sc-ui-workspace-manager{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;color:var(--text-standard, #e5e7eb);font-size:13px;transition:all 0.15s ease}.lm-tab-actions-item.sc-ui-workspace-manager i.sc-ui-workspace-manager{width:16px;text-align:center;font-size:13px;color:var(--text-muted, #9ca3af)}.lm-tab-actions-item.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151);color:var(--primary-color)}.lm-tab-actions-item.sc-ui-workspace-manager:hover i.sc-ui-workspace-manager{color:var(--primary-color)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager{color:var(--color-danger, #fca5a5)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager i.sc-ui-workspace-manager{color:var(--color-danger, #fca5a5)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager:hover{background:var(--color-danger, #991b1b);color:var(--text-standard, #ffffff)}.lm-tab-actions-item.lm-tab-actions-danger.sc-ui-workspace-manager:hover i.sc-ui-workspace-manager{color:var(--text-standard, #ffffff)}.lm-tab-actions-item.sc-ui-workspace-manager:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.lm-tab-actions-item.sc-ui-workspace-manager:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.lm-tab-actions-divider.sc-ui-workspace-manager{height:1px;background:var(--color-primary, #374151);margin:4px 8px}.lm-region-content.sc-ui-workspace-manager{position:relative;flex:1;background:var(--bg-secondary, #0f172a);color:var(--text-standard, #e5e7eb);min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column}.lm-panel-host.sc-ui-workspace-manager{position:absolute;inset:0;padding:0;overflow:auto;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #374151) var(--text-primary, #0f172a)}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar{width:8px;height:8px}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-secondary, #0f172a)}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #374151);border-radius:4px}.lm-panel-host.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #4b5563)}.lm-empty.sc-ui-workspace-manager{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted, #9ca3af);font-size:14px;font-style:italic}.lm-popout-layer.sc-ui-workspace-manager{position:absolute;inset:0;pointer-events:none}.lm-popout-window.sc-ui-workspace-manager{position:absolute;background:var(--bg-secondary, #0f172a);border:1px solid var(--color-success, #3dcd58);border-radius:10px;box-shadow:0 20px 60px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(var(--color-success-rgb, 61, 205, 88), 0.3);overflow:hidden;pointer-events:auto;display:flex;flex-direction:column;backdrop-filter:blur(10px)}.lm-popout-header.sc-ui-workspace-manager{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:linear-gradient(135deg, var(--bg-primary, #1f2937), var(--bg-secondary, #111827));border-bottom:1px solid var(--border-default, #374151);cursor:move;user-select:none}.lm-popout-header.sc-ui-workspace-manager:active{cursor:grabbing}.lm-popout-content.sc-ui-workspace-manager{flex:1;overflow:auto;padding:0;scrollbar-width:thin;scrollbar-color:var(--text-secondary, #374151) var(--text-primary, #0f172a)}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar{width:8px;height:8px}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-secondary, #0f172a)}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #374151);border-radius:4px}.lm-popout-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #4b5563)}.lm-tabs.drag-over.sc-ui-workspace-manager,.lm-region-content.drag-over.sc-ui-workspace-manager{outline:2px dashed var(--color-success, #3dcd58)}.lm-context-menu.sc-ui-workspace-manager{position:fixed;background:var(--bg-secondary, #111827);color:var(--text-standard, #e5e7eb);border:1px solid var(--border-default, #374151);border-radius:6px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.4);padding:6px;display:grid;gap:4px;z-index:11000}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager{appearance:none;border:none;background:var(--bg-primary, #1f2937);color:inherit;padding:6px 8px;border-radius:4px;cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager:disabled{opacity:0.5;cursor:not-allowed;color:var(--text-secondary)}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager i.sc-ui-workspace-manager{width:14px;text-align:center}.lm-context-menu.sc-ui-workspace-manager button.sc-ui-workspace-manager:hover:not(:disabled){background:var(--color-primary, #374151)}.lm-navigation-content.sc-ui-workspace-manager{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--bg-secondary, #0f172a)}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar{width:8px}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1e293b)}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #475569);border-radius:4px}.lm-navigation-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #64748b)}.lm-navigation-section.sc-ui-workspace-manager{border-bottom:1px solid var(--border-subtle, #1e293b)}.lm-navigation-section.sc-ui-workspace-manager:last-child{border-bottom:none}.lm-navigation-section-header.sc-ui-workspace-manager{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-primary, #1f2937);color:var(--text-standard, #e5e7eb);cursor:pointer;transition:all 0.2s;border-left:3px solid transparent}.lm-navigation-section-header.sc-ui-workspace-manager:hover{background:var(--color-primary, #374151)}.lm-navigation-section-header.active.sc-ui-workspace-manager{background:var(--color-primary, #1e3a8a);border-left-color:var(--primary-color);font-weight:600}.lm-navigation-section-header.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px;color:var(--text-muted, #9ca3af);width:16px;text-align:center}.lm-navigation-section-title.sc-ui-workspace-manager{flex:1;font-size:13px}.lm-navigation-section-close.sc-ui-workspace-manager{display:none;background:transparent;border:none;color:var(--text-muted, #9ca3af);cursor:pointer;padding:4px;border-radius:3px;transition:all 0.2s}.lm-navigation-section-close.sc-ui-workspace-manager:hover{background:rgba(255, 255, 255, 0.1);color:var(--text-standard, #ffffff)}.lm-navigation-section-close.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:12px;pointer-events:none}.lm-navigation-section-header.sc-ui-workspace-manager:hover .lm-navigation-section-close.sc-ui-workspace-manager{display:block}.lm-navigation-section-content.sc-ui-workspace-manager{padding:12px;background:var(--bg-secondary, #0f172a);overflow:auto;max-height:400px}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar{width:6px}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar-track{background:var(--bg-primary, #1e293b)}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb{background:var(--color-primary, #475569);border-radius:3px}.lm-navigation-section-content.sc-ui-workspace-manager::-webkit-scrollbar-thumb:hover{background:var(--color-primary, #64748b)}.lm-header-only-title.sc-ui-workspace-manager{flex:1;display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--text-standard, #e5e7eb)}.lm-header-only-title.sc-ui-workspace-manager i.sc-ui-workspace-manager{font-size:14px;color:var(--text-muted, #9ca3af)}.lm-header-only-title.sc-ui-workspace-manager span.sc-ui-workspace-manager{color:var(--text-standard, #ffffff)}.lm-header-only-actions.sc-ui-workspace-manager{display:flex;align-items:center;gap:8px}.lm-header-btn.sc-ui-workspace-manager{background:rgba(255, 255, 255, 0.1);border:none;color:var(--text-standard, #e5e7eb);cursor:pointer;padding:6px 10px;border-radius:4px;transition:all 0.2s;font-size:13px;display:flex;align-items:center;justify-content:center}.lm-header-btn.sc-ui-workspace-manager:hover{background:rgba(255, 255, 255, 0.2);transform:scale(1.05)}.lm-header-btn.sc-ui-workspace-manager i.sc-ui-workspace-manager{pointer-events:none}.lm-context-menu.sc-ui-workspace-manager hr.sc-ui-workspace-manager{border:none;border-top:1px solid var(--border-default, #374151);margin:6px 0}'}},[514,"ui-workspace-manager",{regions:[1],direction:[1],saveState:[4,"save-state"],stateKey:[1,"state-key"],root:[32],panelsById:[32],popouts:[32],maximizedPanel:[32],preMaximizeState:[32],draggingPanel:[32],draggingPopout:[32],layoutVersion:[32],contextMenu:[32],tabActionsMenu:[32],floatingDropdown:[32],openDropdowns:[32],openActionsMenu:[32],regionsNeedingScroll:[32],minimizedRegions:[32],dragOverTarget:[32],getLayoutState:[64],clearAllRegions:[64],addPanel:[64],removePanel:[64],movePanel:[64],popoutPanel:[64],dockPanel:[64],splitRegion:[64],maximizePanel:[64],restorePanel:[64],closeAllPanels:[64],mergeRegion:[64],createRegion:[64],addRegion:[64],normalizeRegionSizes:[64],removeRegion:[64]},[[11,"scroll","handleScroll"],[9,"resize","handleScroll"],[9,"mousemove","handleScroll"],[0,"panelPopout","onPanelPopout"],[0,"panelSelect","onPanelSelect"]],{regions:[{handleRegionsChange:0}]}]),b=u,v=function(){"undefined"!=typeof customElements&&["ui-workspace-manager","ui-badge","ui-button","ui-icon","ui-loader","ui-resizable-panel"].forEach((a=>{switch(a){case"ui-workspace-manager":customElements.get(o(a))||customElements.define(o(a),u);break;case"ui-badge":customElements.get(o(a))||d();break;case"ui-button":customElements.get(o(a))||p();break;case"ui-icon":customElements.get(o(a))||s();break;case"ui-loader":customElements.get(o(a))||h();break;case"ui-resizable-panel":customElements.get(o(a))||g()}}))};export{b as UiWorkspaceManager,v as defineCustomElement}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h, H as Host } from './index-
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-Dqu2zaH1.js';
|
|
2
2
|
|
|
3
3
|
const categorySectionCss = () => `.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;margin-bottom:32px}.category{background:linear-gradient(135deg, rgba(30, 41, 59, 0.6), rgba(15, 23, 42, 0.8));border:1px solid rgba(255, 255, 255, 0.08);border-radius:24px;overflow:hidden;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.category:hover{border-color:rgba(99, 102, 241, 0.3)}.category-header{display:flex;align-items:center;gap:16px;padding:24px 28px;background:transparent;border:none;width:100%;cursor:pointer;text-align:left;color:inherit;font-family:inherit;transition:background 0.2s ease}.category-header:hover{background:rgba(255, 255, 255, 0.03)}.category-icon{font-size:1.8rem;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(168, 85, 247, 0.15));border-radius:14px;flex-shrink:0}.category-title{margin:0;font-size:1.4rem;font-weight:700;color:#f1f5f9;flex:1;letter-spacing:-0.02em}.category-count{font-size:0.85rem;font-weight:600;padding:6px 14px;background:rgba(99, 102, 241, 0.15);color:#a5b4fc;border-radius:20px}.chevron{color:#64748b;transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)}.chevron.rotated{transform:rotate(-90deg)}.category-content{padding:0 24px 24px;max-height:2000px;overflow:hidden;transition:all 0.4s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.category.collapsed .category-content{max-height:0;padding-top:0;padding-bottom:0;opacity:0}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:16px}@media (max-width: 768px){.cards-grid{grid-template-columns:1fr}.category-header{padding:16px 20px}.category-content{padding:0 16px 16px}.category-title{font-size:1.2rem}}:host-context(.light) .category{background:linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(248, 250, 252, 0.9));border-color:rgba(0, 0, 0, 0.08)}:host-context(.light) .category-title{color:#1e293b}:host-context(.light) .chevron{color:#94a3b8}`;
|
|
4
4
|
|
|
@@ -20,7 +20,7 @@ const CategorySection = class {
|
|
|
20
20
|
this.expanded = !this.expanded;
|
|
21
21
|
};
|
|
22
22
|
render() {
|
|
23
|
-
return (h(Host, { key: '
|
|
23
|
+
return (h(Host, { key: '0416a668691cac54fcb40a81043c011864528f56' }, h("div", { key: '2597565c47c72e3b0841619c73078db790d47d52', class: { 'category': true, 'collapsed': !this.expanded } }, h("ui-button", { key: '677186fb712e1d2bdae4bf8381bc123cb396fab8', class: "category-header", onButtonClick: this.toggleExpanded, variant: "plain", fullWidth: true, align: "start" }, h("span", { key: '8f46d202777d2df4d74a88bb01ecb76d35c6415d', class: "category-icon" }, this.categoryIcon), h("h2", { key: '51247e2c6def99ab123592bedaf88d3696ece4c6', class: "category-title" }, this.categoryName), h("span", { key: 'cc616b7292cd1562b26c1d5eff04e9c0c7cc48c0', class: "category-count" }, this.components.length), h("svg", { key: '0054711645043b37f2f1ed61bf7d7b7b8caa98ad', class: { 'chevron': true, 'rotated': !this.expanded }, width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("polyline", { key: '3a7a0b22c5d9ac8f5080b5af44320d08ad6040cb', points: "6,9 12,15 18,9" }))), h("div", { key: 'd727e08e615a6aa899c0fd416e58799de0f305f4', class: "category-content" }, h("div", { key: '732f248ac911b2e7a8daae6b8db94a39bed6545f', class: "cards-grid" }, this.components.map(comp => (h("library-card", { key: comp.id, "component-id": comp.id, "card-title": comp.name, description: comp.description, icon: comp.icon, badge: comp.badge, docs: comp.docs, mode: this.mode }))))))));
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
CategorySection.style = categorySectionCss();
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finds the nearest ancestor that creates a new containing block for position:fixed elements.
|
|
3
|
+
* This function is fully Shadow DOM and Flat Tree aware, accounting for slots and shadow boundaries.
|
|
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
|
+
}
|
|
33
|
+
function getTransformedAncestor(element) {
|
|
34
|
+
let el = element;
|
|
35
|
+
while (el && el !== document.documentElement) {
|
|
36
|
+
if (!isStandardElement(el)) {
|
|
37
|
+
el = el.host || el.parentNode;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
const style = globalThis.getComputedStyle(el);
|
|
41
|
+
if (!style) {
|
|
42
|
+
el = getFlatTreeParent(el);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (styleCreatesContainingBlock(style)) {
|
|
46
|
+
return el;
|
|
47
|
+
}
|
|
48
|
+
el = getFlatTreeParent(el);
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
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
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Returns the viewport-relative offset of the nearest transformed ancestor.
|
|
144
|
+
*/
|
|
145
|
+
function getTransformedAncestorOffset(element) {
|
|
146
|
+
const ancestor = getTransformedAncestor(element);
|
|
147
|
+
if (ancestor) {
|
|
148
|
+
const rect = ancestor.getBoundingClientRect();
|
|
149
|
+
return { x: rect.left, y: rect.top, el: ancestor };
|
|
150
|
+
}
|
|
151
|
+
return { x: 0, y: 0, el: null };
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Calculates a robust, environment-proof position for floating elements (dropdowns, menus).
|
|
155
|
+
* It automatically handles:
|
|
156
|
+
* 1. Nested CSS transforms (containing blocks)
|
|
157
|
+
* 2. Viewport boundary detection (clamping)
|
|
158
|
+
* 3. Vertical space detection (flipping top/bottom)
|
|
159
|
+
* 4. Aligning to trigger element
|
|
160
|
+
*/
|
|
161
|
+
/**
|
|
162
|
+
* Modern auto-update utility that tracks element positions and re-triggers placement logic.
|
|
163
|
+
*/
|
|
164
|
+
function autoUpdate(reference, floating, update, options = {}) {
|
|
165
|
+
const { animationFrame = false } = options;
|
|
166
|
+
let frameId = null;
|
|
167
|
+
const handleUpdate = () => {
|
|
168
|
+
update();
|
|
169
|
+
if (animationFrame) {
|
|
170
|
+
frameId = requestAnimationFrame(handleUpdate);
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
if (animationFrame) {
|
|
174
|
+
frameId = requestAnimationFrame(handleUpdate);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
update(); // Initial update
|
|
178
|
+
}
|
|
179
|
+
globalThis.addEventListener('scroll', update, { capture: true, passive: true });
|
|
180
|
+
globalThis.addEventListener('resize', update, { passive: true });
|
|
181
|
+
const resizeObserver = new ResizeObserver(() => update());
|
|
182
|
+
resizeObserver.observe(reference);
|
|
183
|
+
resizeObserver.observe(floating);
|
|
184
|
+
const cleanup = () => {
|
|
185
|
+
if (frameId !== null)
|
|
186
|
+
cancelAnimationFrame(frameId);
|
|
187
|
+
globalThis.removeEventListener('scroll', update, { capture: true });
|
|
188
|
+
globalThis.removeEventListener('resize', update);
|
|
189
|
+
resizeObserver.disconnect();
|
|
190
|
+
};
|
|
191
|
+
return cleanup;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Calculates a robust, environment-proof position for floating elements (popovers, dropdowns, menus).
|
|
195
|
+
* Supports all 4 sides, alignment, and boundary detection.
|
|
196
|
+
*/
|
|
197
|
+
function calculateUniversalPlacement(trigger, options) {
|
|
198
|
+
const { menuWidth, menuHeight, actualMenuWidth = menuWidth, actualMenuHeight = menuHeight, gap = 4, placement = 'auto', align = 'center', padding = 8, useTransformedAncestorOffset = true, flip = true, shift = true } = options;
|
|
199
|
+
if (!trigger) {
|
|
200
|
+
return { left: 0, top: 0, width: 0, availableWidth: 0, availableHeight: 0, placement: 'bottom', isClamped: false };
|
|
201
|
+
}
|
|
202
|
+
const triggerRect = trigger.getBoundingClientRect();
|
|
203
|
+
const screen = { width: globalThis.innerWidth, height: globalThis.innerHeight };
|
|
204
|
+
const ancestorOffset = useTransformedAncestorOffset
|
|
205
|
+
? getTransformedAncestorOffset(trigger)
|
|
206
|
+
: { x: 0, y: 0};
|
|
207
|
+
const requestedPlacement = placement === 'auto' ? 'bottom' : placement;
|
|
208
|
+
let finalPlacement = requestedPlacement;
|
|
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);
|
|
216
|
+
}
|
|
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;
|
|
220
|
+
left -= ancestorOffset.x;
|
|
221
|
+
top -= ancestorOffset.y;
|
|
222
|
+
const originalLeft = left;
|
|
223
|
+
const originalTop = top;
|
|
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
|
+
}
|
|
235
|
+
}
|
|
236
|
+
const isClamped = left !== originalLeft || top !== originalTop;
|
|
237
|
+
const { arrowX, arrowY } = getArrowCoordinates(finalPlacement, triggerRect, top, left, ancestorOffset, actualMenuWidth, actualMenuHeight);
|
|
238
|
+
return {
|
|
239
|
+
left,
|
|
240
|
+
top,
|
|
241
|
+
width: menuWidth,
|
|
242
|
+
availableWidth,
|
|
243
|
+
availableHeight,
|
|
244
|
+
placement: finalPlacement,
|
|
245
|
+
isClamped,
|
|
246
|
+
arrowX,
|
|
247
|
+
arrowY
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Corrects viewport-relative coordinates (e.g., from MouseEvent.clientX/Y)
|
|
252
|
+
* to work correctly when the target element is inside a transformed container.
|
|
253
|
+
*/
|
|
254
|
+
function correctViewportCoordinates(x, y, element) {
|
|
255
|
+
const offset = getTransformedAncestorOffset(element);
|
|
256
|
+
return {
|
|
257
|
+
x: x - offset.x,
|
|
258
|
+
y: y - offset.y,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export { correctViewportCoordinates as a, autoUpdate as b, calculateUniversalPlacement as c, getTransformedAncestorOffset as g };
|