atomicuilibrary 0.1.0 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/category-section.cjs.entry.js +2 -2
- package/dist/cjs/dom-BvBb0kmW.js +267 -0
- package/dist/cjs/exploration-project-tailwind.cjs.js +2 -2
- package/dist/cjs/{index-ClkOYpT8.js → index-C32cWsm5.js} +1 -1
- package/dist/cjs/layout-manager.cjs.entry.js +3 -3
- package/dist/cjs/library-card.cjs.entry.js +2 -2
- package/dist/cjs/lm-container_2.cjs.entry.js +2 -2
- package/dist/cjs/lm-panel_3.cjs.entry.js +4 -4
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/my-component.cjs.entry.js +1 -1
- package/dist/cjs/my-step.cjs.entry.js +2 -2
- package/dist/cjs/nav-bar.cjs.entry.js +4 -4
- package/dist/cjs/smart-step.cjs.entry.js +3 -3
- package/dist/cjs/timeline-item.cjs.entry.js +2 -2
- package/dist/cjs/ui-accordion_11.cjs.entry.js +132 -50
- package/dist/cjs/ui-advanced-data-table.cjs.entry.js +2 -2
- package/dist/cjs/ui-anchor.cjs.entry.js +2 -2
- package/dist/cjs/ui-animate-on-scroll.cjs.entry.js +3 -3
- package/dist/cjs/ui-aside-panel.cjs.entry.js +10 -11
- package/dist/cjs/ui-avatar-group_5.cjs.entry.js +1694 -0
- package/dist/cjs/ui-breadcrumb-item.cjs.entry.js +3 -3
- package/dist/cjs/ui-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ui-callout-banner.cjs.entry.js +2 -2
- package/dist/cjs/ui-card.cjs.entry.js +4 -3
- package/dist/cjs/ui-carousel.cjs.entry.js +1 -1
- package/dist/cjs/ui-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/ui-code-editor.cjs.entry.js +2 -2
- package/dist/cjs/ui-code-preview.cjs.entry.js +2 -2
- package/dist/cjs/ui-color-picker.cjs.entry.js +256 -22
- package/dist/cjs/ui-command-palette.cjs.entry.js +1 -1
- package/dist/cjs/ui-dialog-box.cjs.entry.js +85 -11
- package/dist/cjs/ui-dialog-content.cjs.entry.js +1 -1
- package/dist/cjs/ui-dialog-footer_2.cjs.entry.js +1 -1
- package/dist/cjs/ui-divider.cjs.entry.js +1 -1
- package/dist/cjs/ui-dock-host.cjs.entry.js +4 -4
- package/dist/cjs/ui-dock.cjs.entry.js +2 -2
- package/dist/cjs/ui-drag-drop.cjs.entry.js +2 -2
- package/dist/cjs/ui-dropdown_2.cjs.entry.js +104 -34
- package/dist/cjs/ui-empty-state.cjs.entry.js +2 -2
- package/dist/cjs/ui-fab-item.cjs.entry.js +2 -2
- package/dist/cjs/ui-fab.cjs.entry.js +4 -4
- package/dist/cjs/ui-file-upload.cjs.entry.js +143 -44
- package/dist/cjs/ui-horizontal-nav.cjs.entry.js +2 -2
- package/dist/cjs/ui-knob.cjs.entry.js +1 -1
- package/dist/cjs/ui-label.cjs.entry.js +473 -0
- package/dist/cjs/ui-library.cjs.entry.js +2 -2
- package/dist/cjs/ui-list-group_2.cjs.entry.js +349 -60
- package/dist/cjs/ui-list.cjs.entry.js +76 -42
- package/dist/cjs/ui-masonry.cjs.entry.js +1 -1
- package/dist/cjs/ui-meter-group.cjs.entry.js +5 -4
- package/dist/cjs/ui-navigation-item.cjs.entry.js +5 -5
- package/dist/cjs/ui-number-input.cjs.entry.js +7 -3
- package/dist/cjs/ui-otp-input.cjs.entry.js +5 -5
- package/dist/cjs/{ui-pagination_4.cjs.entry.js → ui-pagination_3.cjs.entry.js} +35 -506
- package/dist/cjs/ui-panel.cjs.entry.js +1 -1
- package/dist/cjs/ui-pattern-input.cjs.entry.js +46 -11
- package/dist/cjs/ui-progress.cjs.entry.js +66 -9
- package/dist/cjs/ui-range-slider.cjs.entry.js +2 -2
- package/dist/cjs/ui-resizable-panel.cjs.entry.js +2 -2
- package/dist/cjs/ui-scroll-top.cjs.entry.js +1 -1
- package/dist/cjs/ui-smart-context-menu.cjs.entry.js +1 -1
- package/dist/cjs/ui-smart-stepper.cjs.entry.js +2 -2
- package/dist/cjs/ui-snackbar.cjs.entry.js +1 -1
- package/dist/cjs/ui-speed-dial.cjs.entry.js +1 -1
- package/dist/cjs/ui-speedometer.cjs.entry.js +28 -17
- package/dist/cjs/ui-splitter.cjs.entry.js +1 -1
- package/dist/cjs/ui-step.cjs.entry.js +2 -2
- package/dist/cjs/ui-stepper.cjs.entry.js +1 -1
- package/dist/cjs/ui-switch.cjs.entry.js +14 -13
- package/dist/cjs/ui-tabs.cjs.entry.js +2 -2
- package/dist/cjs/ui-tag.cjs.entry.js +58 -13
- package/dist/cjs/ui-timeline.cjs.entry.js +10 -2
- package/dist/cjs/ui-timer.cjs.entry.js +2 -2
- package/dist/cjs/ui-toolbar.cjs.entry.js +2 -2
- package/dist/cjs/ui-tooltip.cjs.entry.js +4 -4
- package/dist/cjs/ui-top-bar.cjs.entry.js +1 -1
- package/dist/cjs/ui-transfer-list.cjs.entry.js +6 -6
- package/dist/cjs/ui-tree.cjs.entry.js +30 -15
- package/dist/cjs/ui-workspace-manager.cjs.entry.js +2 -2
- package/dist/collection/assets/js/component-config.js +1 -0
- package/dist/collection/assets/js/demo-loader.js +2 -0
- package/dist/collection/assets/js/demos/about-demo.js +13 -13
- package/dist/collection/assets/js/demos/accordion-demo.js +66 -66
- package/dist/collection/assets/js/demos/advanced-data-table-demo.js +102 -102
- package/dist/collection/assets/js/demos/anchor-demo.js +27 -28
- package/dist/collection/assets/js/demos/animate-on-scroll-demo.js +12 -12
- package/dist/collection/assets/js/demos/aside-panel-demo.js +51 -51
- package/dist/collection/assets/js/demos/avatar-demo.js +433 -95
- package/dist/collection/assets/js/demos/badge-demo.js +51 -52
- package/dist/collection/assets/js/demos/breadcrumb-demo.js +7 -7
- package/dist/collection/assets/js/demos/button-demo.js +117 -107
- package/dist/collection/assets/js/demos/button-toggle-demo.js +199 -96
- package/dist/collection/assets/js/demos/callout-banner-demo.js +23 -23
- package/dist/collection/assets/js/demos/card-demo.js +23 -22
- package/dist/collection/assets/js/demos/carousel-demo.js +632 -360
- package/dist/collection/assets/js/demos/checkbox-demo.js +124 -7
- package/dist/collection/assets/js/demos/color-picker-demo.js +394 -100
- package/dist/collection/assets/js/demos/command-palette-demo.js +182 -65
- package/dist/collection/assets/js/demos/complex-form-demo.js +5 -5
- package/dist/collection/assets/js/demos/context-menu-demo.js +43 -43
- package/dist/collection/assets/js/demos/dialog-demo-temp.js +3 -3
- package/dist/collection/assets/js/demos/dialog-demo.js +336 -230
- package/dist/collection/assets/js/demos/divider-demo.js +59 -62
- package/dist/collection/assets/js/demos/dock-demo.js +12 -12
- package/dist/collection/assets/js/demos/dock-host-init.js +31 -31
- package/dist/collection/assets/js/demos/documentation-demo.js +34 -34
- package/dist/collection/assets/js/demos/drag-drop-demo.js +2 -2
- package/dist/collection/assets/js/demos/dropdown-demo.js +140 -136
- package/dist/collection/assets/js/demos/dropdown-subtitle-demo.js +2 -2
- package/dist/collection/assets/js/demos/empty-state-demo.js +294 -78
- package/dist/collection/assets/js/demos/fab-demo.js +95 -11
- package/dist/collection/assets/js/demos/file-upload-demo.js +641 -171
- package/dist/collection/assets/js/demos/home-components.js +2 -2
- package/dist/collection/assets/js/demos/horizontal-nav-demo.js +6 -6
- package/dist/collection/assets/js/demos/icon-demo.js +17 -17
- package/dist/collection/assets/js/demos/input-demo.js +147 -143
- package/dist/collection/assets/js/demos/knob-demo.js +29 -30
- package/dist/collection/assets/js/demos/label-demo.js +697 -0
- package/dist/collection/assets/js/demos/layout-manager-demo.js +55 -55
- package/dist/collection/assets/js/demos/list-demo.js +185 -122
- package/dist/collection/assets/js/demos/loader-demo.js +48 -48
- package/dist/collection/assets/js/demos/masonry-demo.js +568 -140
- package/dist/collection/assets/js/demos/meter-group-demo.js +14 -16
- package/dist/collection/assets/js/demos/multi-level-context-menu-demo.js +25 -25
- package/dist/collection/assets/js/demos/my-profile-demo.js +27 -27
- package/dist/collection/assets/js/demos/nav-bar-demo.js +1 -1
- package/dist/collection/assets/js/demos/number-input-demo.js +262 -211
- package/dist/collection/assets/js/demos/pagination-demo.js +29 -29
- package/dist/collection/assets/js/demos/panel-demo.js +18 -25
- package/dist/collection/assets/js/demos/pattern-input-demo.js +278 -40
- package/dist/collection/assets/js/demos/popover-demo.js +240 -149
- package/dist/collection/assets/js/demos/progress-demo.js +170 -156
- package/dist/collection/assets/js/demos/radio-demo.js +73 -12
- package/dist/collection/assets/js/demos/range-slider-demo.js +33 -33
- package/dist/collection/assets/js/demos/rating-demo.js +19 -19
- package/dist/collection/assets/js/demos/scroll-top-demo.js +8 -9
- package/dist/collection/assets/js/demos/skeleton-demo.js +110 -52
- package/dist/collection/assets/js/demos/skeleton-performance-demo.js +2 -2
- package/dist/collection/assets/js/demos/smart-dialog-demo.js +12 -12
- package/dist/collection/assets/js/demos/smart-menu-demo.js +17 -17
- package/dist/collection/assets/js/demos/snackbar-demo.js +53 -53
- package/dist/collection/assets/js/demos/speed-dial-demo.js +14 -14
- package/dist/collection/assets/js/demos/speedometer-demo.js +40 -32
- package/dist/collection/assets/js/demos/split-button-demo.js +2 -2
- package/dist/collection/assets/js/demos/splitter-demo.js +14 -14
- package/dist/collection/assets/js/demos/stack-demo.js +27 -27
- package/dist/collection/assets/js/demos/stepper-demo.js +49 -49
- package/dist/collection/assets/js/demos/switch-demo.js +561 -125
- package/dist/collection/assets/js/demos/tabs-demo.js +22 -22
- package/dist/collection/assets/js/demos/tag-demo.js +62 -62
- package/dist/collection/assets/js/demos/theme-selector-demo.js +27 -27
- package/dist/collection/assets/js/demos/timeline-demo.js +10 -10
- package/dist/collection/assets/js/demos/timeline-playground.js +2 -2
- package/dist/collection/assets/js/demos/timer-demo.js +10 -10
- package/dist/collection/assets/js/demos/toolbar-demo.js +17 -17
- package/dist/collection/assets/js/demos/tooltip-demo.js +92 -90
- package/dist/collection/assets/js/demos/top-bar-demo.js +6 -6
- package/dist/collection/assets/js/demos/transfer-list-demo.js +20 -20
- package/dist/collection/assets/js/demos/tree-demo.js +50 -66
- package/dist/collection/assets/js/demos/workspace-manager-demo.js +20 -20
- package/dist/collection/collection-manifest.json +1 -2
- package/dist/collection/components/accordion/accordion.css +275 -9
- package/dist/collection/components/accordion/accordion.js +7 -6
- package/dist/collection/components/advanced-data-table/advanced-data-table.css +5 -5
- package/dist/collection/components/advanced-data-table/advanced-data-table.js +2 -2
- package/dist/collection/components/anchor/anchor.css +1 -0
- package/dist/collection/components/animate-on-scroll/animate-on-scroll.js +2 -2
- package/dist/collection/components/aside-panel/aside-panel.css +2 -2
- package/dist/collection/components/aside-panel/aside-panel.js +10 -11
- package/dist/collection/components/avatar/avatar.css +6 -6
- package/dist/collection/components/avatar/avatar.js +63 -11
- package/dist/collection/components/badge/badge.css +27 -17
- package/dist/collection/components/badge/badge.js +6 -3
- package/dist/collection/components/breadcrumb/breadcrumb-item.js +2 -2
- package/dist/collection/components/button/button.css +1 -0
- package/dist/collection/components/button/button.js +3 -3
- package/dist/collection/components/button-toggle/button-toggle.js +2 -2
- package/dist/collection/components/button-toggle-group/button-toggle-group.css +161 -14
- package/dist/collection/components/button-toggle-group/button-toggle-group.js +2 -2
- package/dist/collection/components/callout-banner/callout-banner.css +75 -0
- package/dist/collection/components/callout-banner/callout-banner.js +1 -1
- package/dist/collection/components/card/card.css +221 -9
- package/dist/collection/components/card/card.js +3 -2
- package/dist/collection/components/checkbox/checkbox.js +3 -3
- package/dist/collection/components/code-editor/code-editor.js +1 -1
- package/dist/collection/components/code-preview/ui-code-preview.js +1 -1
- package/dist/collection/components/color-picker/color-picker.css +110 -6
- package/dist/collection/components/color-picker/color-picker.js +302 -26
- package/dist/collection/components/context-menu/context-menu.css +9 -9
- package/dist/collection/components/dialog-box/dialog-box.js +116 -14
- package/dist/collection/components/dialog-header/dialog-header.js +1 -1
- package/dist/collection/components/dock/dock.css +116 -3
- package/dist/collection/components/dock-host/ui-dock-host.js +3 -3
- package/dist/collection/components/drag-drop/drag-drop.js +1 -1
- package/dist/collection/components/dropdown/dropdown.css +101 -8
- package/dist/collection/components/dropdown/dropdown.js +94 -28
- package/dist/collection/components/empty-state/empty-state.js +1 -1
- package/dist/collection/components/fab/fab.css +87 -15
- package/dist/collection/components/fab/fab.js +3 -3
- package/dist/collection/components/fab-item/fab-item.js +1 -1
- package/dist/collection/components/file-upload/file-upload.css +1362 -31
- package/dist/collection/components/file-upload/file-upload.js +171 -50
- package/dist/collection/components/horizontal-nav/horizontal-nav.css +9 -9
- package/dist/collection/components/horizontal-nav/horizontal-nav.js +2 -2
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.css +9 -0
- package/dist/collection/components/input/input.js +20 -9
- package/dist/collection/components/label/label.css +583 -0
- package/dist/collection/components/label/label.js +1669 -0
- package/dist/collection/components/layout-manager/layout-manager.js +1 -1
- package/dist/collection/components/layout-manager/lm-floating-window/lm-floating-window.js +1 -1
- package/dist/collection/components/layout-manager/lm-panel/lm-panel.js +1 -1
- package/dist/collection/components/layout-manager/lm-splitter/lm-splitter.js +1 -1
- package/dist/collection/components/layout-manager/lm-tabs/lm-tabs.js +1 -1
- package/dist/collection/components/library/category-section.js +1 -1
- package/dist/collection/components/library/library-card.js +1 -1
- package/dist/collection/components/library/library.js +1 -1
- package/dist/collection/components/list/list.css +46 -5
- package/dist/collection/components/list/list.js +76 -42
- package/dist/collection/components/list-group/list-group.css +0 -2
- package/dist/collection/components/list-group/list-group.js +11 -5
- package/dist/collection/components/list-item/list-item.css +403 -131
- package/dist/collection/components/list-item/list-item.js +345 -61
- package/dist/collection/components/loader/loader.css +1 -1
- package/dist/collection/components/loader/loader.js +2 -2
- package/dist/collection/components/meter-group/meter-group.css +5 -0
- package/dist/collection/components/meter-group/meter-group.js +3 -2
- package/dist/collection/components/my-step/my-step.js +1 -1
- package/dist/collection/components/nav-bar/nav-bar.css +4 -4
- package/dist/collection/components/nav-bar/nav-bar.js +6 -6
- package/dist/collection/components/number-input/number-input.js +6 -2
- package/dist/collection/components/otp-input/otp-input.css +10 -0
- package/dist/collection/components/otp-input/otp-input.js +3 -3
- package/dist/collection/components/pagination/pagination.js +1 -1
- package/dist/collection/components/pattern-input/pattern-input.css +0 -1
- package/dist/collection/components/pattern-input/pattern-input.js +44 -9
- package/dist/collection/components/popover/popover.css +35 -7
- package/dist/collection/components/popover/popover.js +64 -9
- package/dist/collection/components/progress/progress.css +176 -32
- package/dist/collection/components/progress/progress.js +66 -8
- package/dist/collection/components/radio/radio.css +2 -0
- package/dist/collection/components/radio/radio.js +2 -2
- package/dist/collection/components/range-slider/range-slider.css +284 -31
- package/dist/collection/components/range-slider/range-slider.js +5 -5
- package/dist/collection/components/rating/rating.css +151 -65
- package/dist/collection/components/rating/rating.js +31 -13
- package/dist/collection/components/resizable-panel/resizable-panel.js +1 -1
- package/dist/collection/components/skeleton/skeleton-loader.css +144 -44
- package/dist/collection/components/skeleton/skeleton-loader.js +11 -7
- package/dist/collection/components/smart-stepper/smart-step.js +2 -2
- package/dist/collection/components/smart-stepper/smart-stepper.js +1 -1
- package/dist/collection/components/speedometer/speedometer.css +26 -6
- package/dist/collection/components/speedometer/speedometer.js +26 -15
- package/dist/collection/components/stack/stack.js +2 -2
- package/dist/collection/components/step/step.js +1 -1
- package/dist/collection/components/stepper/stepper.js +1 -1
- package/dist/collection/components/switch/switch.css +367 -8
- package/dist/collection/components/switch/switch.js +13 -12
- package/dist/collection/components/tag/tag.css +38 -12
- package/dist/collection/components/tag/tag.js +58 -13
- package/dist/collection/components/tag-group/tag-group.css +0 -1
- package/dist/collection/components/tag-group/tag-group.js +3 -3
- package/dist/collection/components/timeline/timeline.css +380 -317
- package/dist/collection/components/timeline/timeline.js +8 -0
- package/dist/collection/components/timeline-item/timeline-item.js +1 -1
- package/dist/collection/components/timer/timer.js +1 -1
- package/dist/collection/components/toggle-group/toggle-group.css +7 -3
- package/dist/collection/components/toggle-group/toggle-group.js +7 -3
- package/dist/collection/components/toolbar/toolbar.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +4 -4
- package/dist/collection/components/top-bar/top-bar.js +2 -2
- package/dist/collection/components/transfer-list/transfer-list.css +13 -13
- package/dist/collection/components/transfer-list/transfer-list.js +4 -4
- package/dist/collection/components/tree/tree.css +35 -21
- package/dist/collection/components/tree/tree.js +28 -13
- package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.css +34 -16
- package/dist/collection/components/ui-navigation-bar/navigation-bar/navigation-bar.js +46 -11
- package/dist/collection/components/ui-navigation-bar/navigation-item.css +7 -7
- package/dist/collection/components/ui-navigation-bar/navigation-item.js +3 -3
- package/dist/collection/utils/dom.js +151 -151
- package/dist/components/avatar-group.js +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/button-toggle.js +1 -1
- package/dist/components/button.js +1 -0
- package/dist/components/category-section2.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/context-menu.js +1 -1
- package/dist/components/dialog-header.js +1 -1
- package/dist/components/dom.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/icon.js +2 -2
- package/dist/components/input.js +1 -1
- package/dist/components/layout-manager.js +1 -1
- package/dist/components/library-card2.js +1 -1
- package/dist/components/list-group.js +1 -1
- package/dist/components/list-item.js +1 -1
- package/dist/components/lm-container2.js +1 -1
- package/dist/components/lm-floating-window2.js +1 -1
- package/dist/components/lm-panel2.js +1 -1
- package/dist/components/lm-splitter2.js +1 -1
- package/dist/components/lm-tabs2.js +1 -1
- package/dist/components/loader.js +1 -1
- package/dist/components/my-step.js +1 -1
- package/dist/components/nav-bar.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/popover.js +1 -0
- package/dist/components/radio.js +1 -1
- package/dist/components/range-slider.js +1 -1
- package/dist/components/rating.js +1 -1
- package/dist/components/resizable-panel.js +1 -1
- package/dist/components/skeleton-loader.js +1 -1
- package/dist/components/smart-step.js +1 -1
- package/dist/components/stack.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tag-group.js +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/timeline-item.js +1 -1
- package/dist/components/toggle-group.js +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/ui-accordion.js +1 -1
- package/dist/components/ui-advanced-data-table.js +1 -1
- package/dist/components/ui-anchor.js +1 -1
- package/dist/components/ui-animate-on-scroll.js +1 -1
- package/dist/components/ui-aside-panel.js +1 -1
- package/dist/components/ui-badge.js +1 -1
- package/dist/components/ui-breadcrumb-item.js +1 -1
- package/dist/components/ui-breadcrumb.js +1 -1
- package/dist/components/ui-button-toggle-group.js +1 -1
- package/dist/components/ui-button.js +1 -1
- package/dist/components/ui-callout-banner.js +1 -1
- package/dist/components/ui-card.js +1 -1
- package/dist/components/ui-carousel.js +1 -1
- package/dist/components/ui-code-editor.js +1 -1
- package/dist/components/ui-code-preview.js +1 -1
- package/dist/components/ui-color-picker.js +1 -1
- package/dist/components/ui-command-palette.js +1 -1
- package/dist/components/ui-dialog-box.js +1 -1
- package/dist/components/ui-dock-host.js +1 -1
- package/dist/components/ui-dock.js +1 -1
- package/dist/components/ui-drag-drop.js +1 -1
- package/dist/components/ui-empty-state.js +1 -1
- package/dist/components/ui-fab-item.js +1 -1
- package/dist/components/ui-fab.js +1 -1
- package/dist/components/ui-file-upload.js +1 -1
- package/dist/components/ui-horizontal-nav.js +1 -1
- package/dist/components/ui-knob.js +1 -1
- package/dist/components/{ui-color-controller.d.ts → ui-label.d.ts} +4 -4
- package/dist/components/ui-label.js +1 -0
- package/dist/components/ui-library.js +1 -1
- package/dist/components/ui-list.js +1 -1
- package/dist/components/ui-masonry.js +1 -1
- package/dist/components/ui-meter-group.js +1 -1
- package/dist/components/ui-navigation-bar.js +1 -1
- package/dist/components/ui-navigation-item.js +1 -1
- package/dist/components/ui-number-input.js +1 -1
- package/dist/components/ui-otp-input.js +1 -1
- package/dist/components/ui-panel.js +1 -1
- package/dist/components/ui-pattern-input.js +1 -1
- package/dist/components/ui-popover.js +1 -1
- package/dist/components/ui-progress.js +1 -1
- package/dist/components/ui-scroll-top.js +1 -1
- package/dist/components/ui-smart-stepper.js +1 -1
- package/dist/components/ui-snackbar.js +1 -1
- package/dist/components/ui-speed-dial.js +1 -1
- package/dist/components/ui-speedometer.js +1 -1
- package/dist/components/ui-splitter.js +1 -1
- package/dist/components/ui-step.js +1 -1
- package/dist/components/ui-stepper.js +1 -1
- package/dist/components/ui-tabs.js +1 -1
- package/dist/components/ui-timeline.js +1 -1
- package/dist/components/ui-timer.js +1 -1
- package/dist/components/ui-toolbar.js +1 -1
- package/dist/components/ui-top-bar.js +1 -1
- package/dist/components/ui-transfer-list.js +1 -1
- package/dist/components/ui-tree.js +1 -1
- package/dist/components/ui-workspace-manager.js +1 -1
- package/dist/esm/category-section.entry.js +2 -2
- package/dist/esm/dom-DFBTWhGw.js +262 -0
- package/dist/esm/exploration-project-tailwind.js +3 -3
- package/dist/esm/{index-DUsoYu9r.js → index-Dqu2zaH1.js} +1 -1
- package/dist/esm/layout-manager.entry.js +3 -3
- package/dist/esm/library-card.entry.js +2 -2
- package/dist/esm/lm-container_2.entry.js +2 -2
- package/dist/esm/lm-panel_3.entry.js +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/esm/my-component.entry.js +1 -1
- package/dist/esm/my-step.entry.js +2 -2
- package/dist/esm/nav-bar.entry.js +4 -4
- package/dist/esm/smart-step.entry.js +3 -3
- package/dist/esm/timeline-item.entry.js +2 -2
- package/dist/esm/ui-accordion_11.entry.js +132 -50
- package/dist/esm/ui-advanced-data-table.entry.js +2 -2
- package/dist/esm/ui-anchor.entry.js +2 -2
- package/dist/esm/ui-animate-on-scroll.entry.js +3 -3
- package/dist/esm/ui-aside-panel.entry.js +10 -11
- package/dist/esm/ui-avatar-group_5.entry.js +1688 -0
- package/dist/esm/ui-breadcrumb-item.entry.js +3 -3
- package/dist/esm/ui-breadcrumb.entry.js +1 -1
- package/dist/esm/ui-callout-banner.entry.js +2 -2
- package/dist/esm/ui-card.entry.js +4 -3
- package/dist/esm/ui-carousel.entry.js +1 -1
- package/dist/esm/ui-checkbox.entry.js +3 -3
- package/dist/esm/ui-code-editor.entry.js +2 -2
- package/dist/esm/ui-code-preview.entry.js +2 -2
- package/dist/esm/ui-color-picker.entry.js +256 -22
- package/dist/esm/ui-command-palette.entry.js +1 -1
- package/dist/esm/ui-dialog-box.entry.js +85 -11
- package/dist/esm/ui-dialog-content.entry.js +1 -1
- package/dist/esm/ui-dialog-footer_2.entry.js +1 -1
- package/dist/esm/ui-divider.entry.js +1 -1
- package/dist/esm/ui-dock-host.entry.js +4 -4
- package/dist/esm/ui-dock.entry.js +2 -2
- package/dist/esm/ui-drag-drop.entry.js +2 -2
- package/dist/esm/ui-dropdown_2.entry.js +104 -34
- package/dist/esm/ui-empty-state.entry.js +2 -2
- package/dist/esm/ui-fab-item.entry.js +2 -2
- package/dist/esm/ui-fab.entry.js +4 -4
- package/dist/esm/ui-file-upload.entry.js +143 -44
- package/dist/esm/ui-horizontal-nav.entry.js +2 -2
- package/dist/esm/ui-knob.entry.js +1 -1
- package/dist/esm/ui-label.entry.js +471 -0
- package/dist/esm/ui-library.entry.js +2 -2
- package/dist/esm/ui-list-group_2.entry.js +349 -60
- package/dist/esm/ui-list.entry.js +76 -42
- package/dist/esm/ui-masonry.entry.js +1 -1
- package/dist/esm/ui-meter-group.entry.js +5 -4
- package/dist/esm/ui-navigation-item.entry.js +5 -5
- package/dist/esm/ui-number-input.entry.js +7 -3
- package/dist/esm/ui-otp-input.entry.js +5 -5
- package/dist/esm/{ui-pagination_4.entry.js → ui-pagination_3.entry.js} +36 -506
- package/dist/esm/ui-panel.entry.js +1 -1
- package/dist/esm/ui-pattern-input.entry.js +46 -11
- package/dist/esm/ui-progress.entry.js +66 -9
- package/dist/esm/ui-range-slider.entry.js +2 -2
- package/dist/esm/ui-resizable-panel.entry.js +2 -2
- package/dist/esm/ui-scroll-top.entry.js +1 -1
- package/dist/esm/ui-smart-context-menu.entry.js +1 -1
- package/dist/esm/ui-smart-stepper.entry.js +2 -2
- package/dist/esm/ui-snackbar.entry.js +1 -1
- package/dist/esm/ui-speed-dial.entry.js +1 -1
- package/dist/esm/ui-speedometer.entry.js +28 -17
- package/dist/esm/ui-splitter.entry.js +1 -1
- package/dist/esm/ui-step.entry.js +2 -2
- package/dist/esm/ui-stepper.entry.js +1 -1
- package/dist/esm/ui-switch.entry.js +14 -13
- package/dist/esm/ui-tabs.entry.js +2 -2
- package/dist/esm/ui-tag.entry.js +58 -13
- package/dist/esm/ui-timeline.entry.js +10 -2
- package/dist/esm/ui-timer.entry.js +2 -2
- package/dist/esm/ui-toolbar.entry.js +2 -2
- package/dist/esm/ui-tooltip.entry.js +4 -4
- package/dist/esm/ui-top-bar.entry.js +1 -1
- package/dist/esm/ui-transfer-list.entry.js +6 -6
- package/dist/esm/ui-tree.entry.js +30 -15
- package/dist/esm/ui-workspace-manager.entry.js +2 -2
- package/dist/exploration-project-tailwind/exploration-project-tailwind.css +1 -1
- package/dist/exploration-project-tailwind/exploration-project-tailwind.esm.js +1 -1
- package/dist/exploration-project-tailwind/{p-7ba2258a.entry.js → p-024a299a.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-0a71896a.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-35296877.entry.js → p-0cdeb8d8.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-a42fdc33.entry.js → p-139cefbc.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-036d2a44.entry.js → p-198c83e5.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-236f47b1.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-81ebba11.entry.js → p-25530d0d.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-41cd6bf0.entry.js → p-298f2057.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-85e36111.entry.js → p-2b5a8e3e.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-e8c6d395.entry.js → p-2b6aa7bc.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-70bacda8.entry.js → p-2cfba753.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-cbee2607.entry.js → p-2fe22958.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-20ecc116.entry.js → p-3012e780.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-321c3f46.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-8b57fe4e.entry.js → p-3ab43638.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-3ad7e47e.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-3b1ca826.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-3ee8ddae.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-e22317c1.entry.js → p-3efb44c8.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-36861546.entry.js → p-42e3bc28.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-4360331a.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-2f961934.entry.js → p-443de32b.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-898dd0fa.entry.js → p-44d15451.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-4288c158.entry.js → p-46071679.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-a3f465d9.entry.js → p-497d6182.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-4ad8c55c.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-4aaa8e40.entry.js → p-4c46ac0b.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-98e91da5.entry.js → p-5042ddaa.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-60190e0e.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-60530874.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-200241f8.entry.js → p-6108565d.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-fb4aca69.entry.js → p-62889cfe.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-c02284ea.entry.js → p-66f71613.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-7889bfc4.entry.js → p-67c440b2.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-c1c8ac28.entry.js → p-6f09503f.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-721bdbc3.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-747b02ea.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-c6fd72e1.entry.js → p-754cb046.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-97af03cc.entry.js → p-7ed3bba2.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-d59da767.entry.js → p-864cebb7.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-4d73c143.entry.js → p-96ee3196.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-54965530.entry.js → p-97086868.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-d114a347.entry.js → p-9c5ced88.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-9d3044d4.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-9e079be6.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-790556f0.entry.js → p-9e4c45f5.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-9eee7394.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-DFBTWhGw.js +1 -0
- package/dist/exploration-project-tailwind/p-Dqu2zaH1.js +2 -0
- package/dist/exploration-project-tailwind/p-a7bdedc2.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-c87aeab6.entry.js → p-a8ec29de.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-6ddbee42.entry.js → p-ae617f62.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-05a436d3.entry.js → p-aef76052.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-b5f043fa.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-b637b91b.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-d2e45c5e.entry.js → p-bc49a088.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-6b838549.entry.js → p-bd9a631f.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-e8ba0c95.entry.js → p-bf4b6767.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-c0fa400e.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-8578b616.entry.js → p-c4f3d990.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-c68ddb2f.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-c79574c4.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-c840098d.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-a1ad32a2.entry.js → p-c8663cbe.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-cb6e38a6.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-cb9f2df1.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-cfe8b696.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-d00e13ae.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-c4ba7e52.entry.js → p-d01ed934.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-aa85ff78.entry.js → p-d4e57d94.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-ccb5c737.entry.js → p-d5bd3a3f.entry.js} +1 -1
- package/dist/exploration-project-tailwind/{p-45482d86.entry.js → p-d987cebe.entry.js} +1 -1
- package/dist/exploration-project-tailwind/p-d9ae77c0.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-e9bae5c7.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-f516fabc.entry.js +1 -0
- package/dist/exploration-project-tailwind/p-f68e2794.entry.js +1 -0
- package/dist/exploration-project-tailwind/{p-d30e24bd.entry.js → p-fa034f69.entry.js} +1 -1
- package/dist/types/components/aside-panel/aside-panel.d.ts +0 -3
- package/dist/types/components/avatar/avatar.d.ts +3 -0
- package/dist/types/components/avatar/types.d.ts +2 -0
- package/dist/types/components/badge/badge.d.ts +1 -0
- package/dist/types/components/color-picker/color-picker.d.ts +35 -2
- package/dist/types/components/dialog-box/dialog-box.d.ts +10 -0
- package/dist/types/components/dropdown/dropdown.d.ts +5 -0
- package/dist/types/components/file-upload/file-upload.d.ts +23 -6
- package/dist/types/components/label/label.d.ts +290 -0
- package/dist/types/components/label/types.d.ts +39 -0
- package/dist/types/components/list/list.d.ts +2 -1
- package/dist/types/components/list-group/list-group.d.ts +1 -0
- package/dist/types/components/list-item/list-item.d.ts +45 -17
- package/dist/types/components/pattern-input/pattern-input.d.ts +6 -0
- package/dist/types/components/popover/popover.d.ts +3 -0
- package/dist/types/components/progress/progress.d.ts +7 -0
- package/dist/types/components/range-slider/range-slider.d.ts +2 -2
- package/dist/types/components/rating/rating.d.ts +1 -0
- package/dist/types/components/skeleton/skeleton-loader.d.ts +1 -1
- package/dist/types/components/speedometer/speedometer.d.ts +1 -0
- package/dist/types/components/tag/tag.d.ts +4 -0
- package/dist/types/components/tree/tree.d.ts +1 -0
- package/dist/types/components/ui-navigation-bar/navigation-bar/navigation-bar.d.ts +1 -1
- package/dist/types/components.d.ts +742 -425
- package/dist/types/types/common.d.ts +2 -2
- package/dist/types/types/common.type.d.ts +2 -0
- package/dist/types/utils/dom.d.ts +4 -4
- package/package.json +4 -5
- package/dist/cjs/dom-oP1E4Rd3.js +0 -267
- package/dist/cjs/ui-avatar-group_3.cjs.entry.js +0 -634
- package/dist/cjs/ui-color-controller.cjs.entry.js +0 -150
- package/dist/cjs/ui-popover.cjs.entry.js +0 -517
- package/dist/cjs/ui-smart-location-dropdown.cjs.entry.js +0 -565
- package/dist/collection/components/color-controller/color-controller.css +0 -108
- package/dist/collection/components/color-controller/color-controller.js +0 -224
- package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.css +0 -357
- package/dist/collection/components/smart-location-dropdown/smart-location-dropdown.js +0 -1190
- package/dist/components/ui-color-controller.js +0 -1
- package/dist/components/ui-smart-location-dropdown.d.ts +0 -11
- package/dist/components/ui-smart-location-dropdown.js +0 -1
- package/dist/esm/dom-BMFah5q3.js +0 -262
- package/dist/esm/ui-avatar-group_3.entry.js +0 -630
- package/dist/esm/ui-color-controller.entry.js +0 -148
- package/dist/esm/ui-popover.entry.js +0 -515
- package/dist/esm/ui-smart-location-dropdown.entry.js +0 -563
- package/dist/exploration-project-tailwind/p-06f0c679.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-0d31c9e9.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-148e81df.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-16bdd162.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-2347d21b.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-3d381f75.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-4417a9d8.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-44742ddd.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-47e2a7ee.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-4bef8bed.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-4efd63ce.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-5c835d90.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-61717490.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-717dad1f.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-71d95bb1.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-9bd14f69.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-9fc06ff0.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-BMFah5q3.js +0 -1
- package/dist/exploration-project-tailwind/p-DUsoYu9r.js +0 -2
- package/dist/exploration-project-tailwind/p-a27f59d2.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-a7b07cf4.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-bd89d060.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-c63c522e.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-c69dd43e.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-d6ce9721.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-dc92a343.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-debede45.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-e76318c7.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-ea51c5d8.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-eab5ad36.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f0bc5d7e.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f1beee72.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f543392f.entry.js +0 -1
- package/dist/exploration-project-tailwind/p-f61cfb7c.entry.js +0 -1
- package/dist/types/components/color-controller/color-controller.d.ts +0 -24
- package/dist/types/components/smart-location-dropdown/smart-location-dropdown.d.ts +0 -119
- package/dist/types/components/smart-location-dropdown/types.d.ts +0 -37
- /package/dist/collection/components/{smart-location-dropdown → label}/types.js +0 -0
|
@@ -1,563 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DUsoYu9r.js';
|
|
2
|
-
import { c as calculateUniversalPlacement } from './dom-BMFah5q3.js';
|
|
3
|
-
|
|
4
|
-
const smartLocationDropdownCss = () => `.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;width:100%;--sld-border:#cfd8e3;--sld-border-strong:#b4c1d1;--sld-focus:#2563eb;--sld-text:#10213a;--sld-muted:#62748a;--sld-bg:#ffffff;--sld-panel:rgba(255, 255, 255, 0.98);--sld-panel-solid:#ffffff;--sld-hover:#f3f8ff;--sld-selected:#e8f1ff;--sld-chip:#edf4ff;--sld-shadow:0 18px 40px rgba(15, 23, 42, 0.16)}.location-dropdown{position:relative;width:100%;font-family:"Segoe UI", Roboto, sans-serif}.location-trigger{border:1px solid var(--sld-border);border-radius:14px;min-height:48px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);color:var(--sld-text);cursor:pointer;box-shadow:0 2px 8px rgba(15, 23, 42, 0.04);transition:border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, transform 0.2s ease}.location-trigger:hover{border-color:var(--sld-border-strong);box-shadow:0 10px 22px rgba(37, 99, 235, 0.08)}.location-trigger:focus,.location-dropdown.open .location-trigger{border-color:var(--sld-focus);box-shadow:0 0 0 4px rgba(37, 99, 235, 0.14), 0 16px 32px rgba(37, 99, 235, 0.14);outline:none}.location-dropdown.disabled .location-trigger{opacity:0.72;cursor:not-allowed}.trigger-text{flex:1;font-size:14px;font-weight:500;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trigger-text.placeholder{color:#91a0b4}.trigger-icons{display:inline-flex;align-items:center;gap:6px}.arrow{transition:transform 0.18s ease;color:var(--sld-muted)}.arrow.open{transform:rotate(180deg)}.clear-btn,.fav-btn,.chip-remove{border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--sld-muted);padding:0}.clear-btn:hover,.fav-btn:hover,.chip-remove:hover{color:var(--sld-text)}.clear-btn{width:24px;height:24px;border-radius:999px;background:#eef4fb}.clear-btn:hover{background:#e2ecf8}.fav-btn.active{color:#d97706}.selected-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.selected-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid #d7e7ff;background:var(--sld-chip);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.9);max-width:100%}.chip-label{font-size:12px;color:#1c3657;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-more{font-size:12px;color:#37557b;align-self:center}.menu{border:1px solid rgba(180, 193, 209, 0.72);border-radius:18px;background:var(--sld-panel-solid);background-color:var(--sld-panel-solid);backdrop-filter:blur(18px);box-shadow:var(--sld-shadow);overflow:hidden;isolation:isolate}.search-row{position:sticky;top:0;z-index:1;padding:12px;border-bottom:1px solid #edf2f7;background:var(--sld-panel)}.search-input{width:100%;border:1px solid #d4deea;border-radius:12px;padding:11px 13px;font-size:14px;outline:none;background:#f9fbfe;color:var(--sld-text);transition:border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease}.search-input:focus{border-color:var(--sld-focus);background:#ffffff;box-shadow:0 0 0 4px rgba(37, 99, 235, 0.1)}.options-list{padding:8px;overflow-y:auto;max-height:inherit;background:var(--sld-panel-solid)}.location-option{padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;border:1px solid transparent;border-radius:14px;background:var(--sld-panel-solid);transition:background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease}.location-option:hover,.location-option-highlighted{background:var(--sld-hover);border-color:#d7e7ff;box-shadow:0 10px 24px rgba(37, 99, 235, 0.08);transform:translateY(-1px)}.location-option-selected{background:var(--sld-selected);border-color:#b9d4ff;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.85)}.location-option-disabled{opacity:0.5;cursor:not-allowed}.location-option-main{min-width:0;display:flex;align-items:center;gap:8px;flex:1}.location-option-text{min-width:0;display:flex;flex-direction:column}.location-label{font-size:13px;font-weight:600;color:var(--sld-text);white-space:normal;overflow:hidden;text-overflow:ellipsis}.location-code{font-size:11px;color:var(--sld-muted)}.location-option-meta{display:inline-flex;align-items:center;gap:8px}.location-type{font-size:10px;border:1px solid #d8e5f3;border-radius:999px;padding:4px 8px;color:#55708f;background:#f7fbff;text-transform:uppercase;letter-spacing:0.08em;font-weight:700}.fav-btn{width:28px;height:28px;border-radius:999px;background:#f6f9fc}.fav-btn:hover{background:#ebf2f8}.status{padding:14px;font-size:13px;background:var(--sld-panel-solid)}.status.loading,.status.empty{color:var(--sld-muted)}.status.error{color:#b91c1c;background:#fef2f2}.create-btn{width:100%;border:none;border-top:1px solid #edf2f7;background:#f7fbff;color:var(--sld-text);font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;padding:13px;cursor:pointer;font-weight:600}.create-btn:hover{background:#eef6ff}.footer-meta{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf2f7;padding:10px 12px 12px;font-size:11px;color:var(--sld-muted);background:var(--sld-panel)}`;
|
|
5
|
-
|
|
6
|
-
const SmartLocationDropdown = class {
|
|
7
|
-
constructor(hostRef) {
|
|
8
|
-
registerInstance(this, hostRef);
|
|
9
|
-
this.locationChange = createEvent(this, "locationChange");
|
|
10
|
-
this.locationSearch = createEvent(this, "locationSearch");
|
|
11
|
-
this.locationOpen = createEvent(this, "locationOpen");
|
|
12
|
-
this.locationClose = createEvent(this, "locationClose");
|
|
13
|
-
this.locationLoadError = createEvent(this, "locationLoadError");
|
|
14
|
-
this.locationCreate = createEvent(this, "locationCreate");
|
|
15
|
-
}
|
|
16
|
-
get hostElement() { return getElement(this); }
|
|
17
|
-
/** Location options as JSON string or array */
|
|
18
|
-
options = [];
|
|
19
|
-
/** Selected value(s): single => 'id', multi => comma-separated ids */
|
|
20
|
-
value = '';
|
|
21
|
-
/** Enables multiple location selection */
|
|
22
|
-
multiSelect = false;
|
|
23
|
-
/** Placeholder text for trigger */
|
|
24
|
-
placeholder = 'Select location';
|
|
25
|
-
/** Enables searching */
|
|
26
|
-
searchable = true;
|
|
27
|
-
/** Search placeholder */
|
|
28
|
-
searchPlaceholder = 'Search country, state, city, postal code...';
|
|
29
|
-
/** Disables control */
|
|
30
|
-
disabled = false;
|
|
31
|
-
/** Show clear action */
|
|
32
|
-
clearable = true;
|
|
33
|
-
/** Maximum dropdown height in px */
|
|
34
|
-
maxHeight = 360;
|
|
35
|
-
/** Search debounce in ms */
|
|
36
|
-
debounceMs = 250;
|
|
37
|
-
/** Max selected items in multi mode (0 = no limit) */
|
|
38
|
-
maxSelections = 0;
|
|
39
|
-
/** Max results rendered */
|
|
40
|
-
resultLimit = 250;
|
|
41
|
-
/** Show recent selections section */
|
|
42
|
-
showRecent = true;
|
|
43
|
-
/** Show favorites section */
|
|
44
|
-
showFavorites = true;
|
|
45
|
-
/** Persist recent/favorites in local storage */
|
|
46
|
-
persistState = true;
|
|
47
|
-
/** Storage key for persistent state */
|
|
48
|
-
storageKey = 'ui-smart-location-dropdown-state';
|
|
49
|
-
/** Display full hierarchy path in options and selected tags */
|
|
50
|
-
showPath = true;
|
|
51
|
-
/** Show location type badges */
|
|
52
|
-
showTypeBadge = true;
|
|
53
|
-
/** Allow custom value creation from search */
|
|
54
|
-
allowCustomValue = false;
|
|
55
|
-
/** Force menu position to ignore transformed/positioned parent offsets */
|
|
56
|
-
ignoreParentPosition = true;
|
|
57
|
-
/** Portal menu to document.body (off by default to preserve shadow styling) */
|
|
58
|
-
portal = false;
|
|
59
|
-
/** Optional async remote location loader */
|
|
60
|
-
loadLocations;
|
|
61
|
-
/** Minimum characters required before async loader executes */
|
|
62
|
-
remoteMinChars = 2;
|
|
63
|
-
isOpen = false;
|
|
64
|
-
parsedOptions = [];
|
|
65
|
-
remoteOptions = [];
|
|
66
|
-
selectedIds = new Set();
|
|
67
|
-
searchQuery = '';
|
|
68
|
-
loading = false;
|
|
69
|
-
loadError = '';
|
|
70
|
-
highlightedIndex = -1;
|
|
71
|
-
menuLeft = 0;
|
|
72
|
-
menuTop = 0;
|
|
73
|
-
menuWidth = 0;
|
|
74
|
-
dropdownPosition = 'bottom';
|
|
75
|
-
recentIds = [];
|
|
76
|
-
favoriteIds = [];
|
|
77
|
-
locationChange;
|
|
78
|
-
locationSearch;
|
|
79
|
-
locationOpen;
|
|
80
|
-
locationClose;
|
|
81
|
-
locationLoadError;
|
|
82
|
-
locationCreate;
|
|
83
|
-
searchDebounceTimer;
|
|
84
|
-
searchInputRef;
|
|
85
|
-
menuElement;
|
|
86
|
-
optionsRefs = [];
|
|
87
|
-
rafId;
|
|
88
|
-
isPortaled = false;
|
|
89
|
-
searchToken = 0;
|
|
90
|
-
watchOptions(newValue) {
|
|
91
|
-
this.parsedOptions = this.normalizeOptions(newValue);
|
|
92
|
-
}
|
|
93
|
-
watchValue(newValue) {
|
|
94
|
-
this.selectedIds = this.parseSelectedIds(newValue);
|
|
95
|
-
}
|
|
96
|
-
componentWillLoad() {
|
|
97
|
-
this.parsedOptions = this.normalizeOptions(this.options);
|
|
98
|
-
this.selectedIds = this.parseSelectedIds(this.value);
|
|
99
|
-
this.restorePersistentState();
|
|
100
|
-
}
|
|
101
|
-
disconnectedCallback() {
|
|
102
|
-
if (this.searchDebounceTimer) {
|
|
103
|
-
clearTimeout(this.searchDebounceTimer);
|
|
104
|
-
}
|
|
105
|
-
this.cleanupPortal();
|
|
106
|
-
if (this.rafId) {
|
|
107
|
-
cancelAnimationFrame(this.rafId);
|
|
108
|
-
this.rafId = 0;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
handleOutsideClick(event) {
|
|
112
|
-
const path = typeof event.composedPath === 'function' ? event.composedPath() : [];
|
|
113
|
-
const clickedHost = path.includes(this.hostElement) || this.hostElement.contains(event.target);
|
|
114
|
-
const clickedMenu = !!this.menuElement && (path.includes(this.menuElement) || this.menuElement.contains(event.target));
|
|
115
|
-
if (!clickedHost && !clickedMenu) {
|
|
116
|
-
this.closeDropdown();
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
handleResize() {
|
|
120
|
-
if (this.isOpen) {
|
|
121
|
-
this.calculatePosition();
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
handleScroll() {
|
|
125
|
-
if (this.isOpen) {
|
|
126
|
-
this.calculatePosition();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
normalizeOptions(raw) {
|
|
130
|
-
const parsed = typeof raw === 'string' ? this.tryParse(raw) : raw || [];
|
|
131
|
-
const output = [];
|
|
132
|
-
const walk = (items, depth, parentId, parentPath = []) => {
|
|
133
|
-
items.forEach(item => {
|
|
134
|
-
if (item == null || item.id == null || !item.label)
|
|
135
|
-
return;
|
|
136
|
-
const idStr = String(item.id);
|
|
137
|
-
const type = item.type || this.inferType(depth);
|
|
138
|
-
const path = [...parentPath, item.label];
|
|
139
|
-
const searchText = [item.label, item.code || '', type, path.join(' '), (item.tags || []).join(' ')].join(' ').toLowerCase();
|
|
140
|
-
output.push({
|
|
141
|
-
...item,
|
|
142
|
-
idStr,
|
|
143
|
-
parentIdStr: parentId,
|
|
144
|
-
type,
|
|
145
|
-
depth,
|
|
146
|
-
pathLabels: path,
|
|
147
|
-
searchText,
|
|
148
|
-
});
|
|
149
|
-
if (item.children && item.children.length > 0) {
|
|
150
|
-
walk(item.children, depth + 1, idStr, path);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
};
|
|
154
|
-
walk(parsed, 0);
|
|
155
|
-
return output;
|
|
156
|
-
}
|
|
157
|
-
tryParse(value) {
|
|
158
|
-
if (!value)
|
|
159
|
-
return [];
|
|
160
|
-
try {
|
|
161
|
-
const parsed = JSON.parse(value);
|
|
162
|
-
return Array.isArray(parsed) ? parsed : [];
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
console.error('Invalid JSON for location options', error);
|
|
166
|
-
return [];
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
inferType(depth) {
|
|
170
|
-
if (depth <= 0)
|
|
171
|
-
return 'country';
|
|
172
|
-
if (depth === 1)
|
|
173
|
-
return 'state';
|
|
174
|
-
if (depth === 2)
|
|
175
|
-
return 'city';
|
|
176
|
-
if (depth === 3)
|
|
177
|
-
return 'district';
|
|
178
|
-
return 'custom';
|
|
179
|
-
}
|
|
180
|
-
parseSelectedIds(value) {
|
|
181
|
-
if (!value)
|
|
182
|
-
return new Set();
|
|
183
|
-
if (this.multiSelect) {
|
|
184
|
-
return new Set(value.split(',').map(v => v.trim()).filter(Boolean));
|
|
185
|
-
}
|
|
186
|
-
return new Set([value]);
|
|
187
|
-
}
|
|
188
|
-
get selectedOptions() {
|
|
189
|
-
const map = new Map(this.getMergedOptions().map(o => [o.idStr, o]));
|
|
190
|
-
return Array.from(this.selectedIds)
|
|
191
|
-
.map(id => map.get(id))
|
|
192
|
-
.filter((o) => !!o);
|
|
193
|
-
}
|
|
194
|
-
getMergedOptions() {
|
|
195
|
-
const merged = [...this.parsedOptions];
|
|
196
|
-
const existing = new Set(merged.map(o => o.idStr));
|
|
197
|
-
this.remoteOptions.forEach(o => {
|
|
198
|
-
if (!existing.has(o.idStr)) {
|
|
199
|
-
merged.push(o);
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
return merged;
|
|
203
|
-
}
|
|
204
|
-
get filteredOptions() {
|
|
205
|
-
const all = this.getMergedOptions();
|
|
206
|
-
const query = this.searchQuery.trim().toLowerCase();
|
|
207
|
-
let list = query ? all.filter(option => option.searchText.includes(query)) : all;
|
|
208
|
-
if (!query) {
|
|
209
|
-
const pinned = this.favoriteIds
|
|
210
|
-
.map(id => list.find(o => o.idStr === id))
|
|
211
|
-
.filter((o) => !!o);
|
|
212
|
-
const recent = this.recentIds
|
|
213
|
-
.map(id => list.find(o => o.idStr === id && !this.favoriteIds.includes(id)))
|
|
214
|
-
.filter((o) => !!o);
|
|
215
|
-
const used = new Set([...pinned.map(o => o.idStr), ...recent.map(o => o.idStr)]);
|
|
216
|
-
const rest = list.filter(o => !used.has(o.idStr));
|
|
217
|
-
list = [...pinned, ...recent, ...rest];
|
|
218
|
-
}
|
|
219
|
-
return list.slice(0, this.resultLimit);
|
|
220
|
-
}
|
|
221
|
-
get typeLabelMap() {
|
|
222
|
-
return {
|
|
223
|
-
country: 'Country',
|
|
224
|
-
state: 'State',
|
|
225
|
-
province: 'Province',
|
|
226
|
-
city: 'City',
|
|
227
|
-
district: 'District',
|
|
228
|
-
postal: 'Postal',
|
|
229
|
-
custom: 'Custom',
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
toggleDropdown = () => {
|
|
233
|
-
if (this.disabled)
|
|
234
|
-
return;
|
|
235
|
-
if (this.isOpen) {
|
|
236
|
-
this.closeDropdown();
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
this.isOpen = true;
|
|
240
|
-
this.locationOpen.emit();
|
|
241
|
-
this.highlightedIndex = this.filteredOptions.length > 0 ? 0 : -1;
|
|
242
|
-
this.schedulePositionUpdate();
|
|
243
|
-
if (this.searchable) {
|
|
244
|
-
window.setTimeout(() => this.searchInputRef?.focus(), 25);
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
closeDropdown = () => {
|
|
248
|
-
if (!this.isOpen)
|
|
249
|
-
return;
|
|
250
|
-
this.isOpen = false;
|
|
251
|
-
this.locationClose.emit();
|
|
252
|
-
this.highlightedIndex = -1;
|
|
253
|
-
this.searchQuery = '';
|
|
254
|
-
this.remoteOptions = [];
|
|
255
|
-
this.loadError = '';
|
|
256
|
-
this.cleanupPortal();
|
|
257
|
-
};
|
|
258
|
-
schedulePositionUpdate() {
|
|
259
|
-
if (this.rafId) {
|
|
260
|
-
cancelAnimationFrame(this.rafId);
|
|
261
|
-
}
|
|
262
|
-
this.rafId = requestAnimationFrame(() => {
|
|
263
|
-
this.calculatePosition();
|
|
264
|
-
this.rafId = 0;
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
calculatePosition() {
|
|
268
|
-
if (!this.isOpen || !this.menuElement)
|
|
269
|
-
return;
|
|
270
|
-
const trigger = this.hostElement.shadowRoot?.querySelector('.location-trigger');
|
|
271
|
-
if (!trigger)
|
|
272
|
-
return;
|
|
273
|
-
if (this.portal && !this.isPortaled && this.menuElement.parentElement !== document.body) {
|
|
274
|
-
document.body.appendChild(this.menuElement);
|
|
275
|
-
this.isPortaled = true;
|
|
276
|
-
}
|
|
277
|
-
const placement = calculateUniversalPlacement(trigger, {
|
|
278
|
-
menuWidth: trigger.offsetWidth,
|
|
279
|
-
menuHeight: this.maxHeight,
|
|
280
|
-
gap: 4,
|
|
281
|
-
placement: 'auto',
|
|
282
|
-
useTransformedAncestorOffset: !this.ignoreParentPosition,
|
|
283
|
-
});
|
|
284
|
-
this.menuLeft = placement.left;
|
|
285
|
-
this.menuTop = placement.top;
|
|
286
|
-
this.menuWidth = placement.width;
|
|
287
|
-
this.dropdownPosition = placement.placement;
|
|
288
|
-
}
|
|
289
|
-
cleanupPortal() {
|
|
290
|
-
if (this.portal && this.isPortaled && this.menuElement && this.menuElement.parentElement === document.body) {
|
|
291
|
-
this.hostElement.appendChild(this.menuElement);
|
|
292
|
-
this.isPortaled = false;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
onSearchInput_Custom = (value) => {
|
|
296
|
-
this.searchQuery = value || '';
|
|
297
|
-
if (this.searchDebounceTimer) {
|
|
298
|
-
clearTimeout(this.searchDebounceTimer);
|
|
299
|
-
}
|
|
300
|
-
this.searchDebounceTimer = window.setTimeout(() => {
|
|
301
|
-
this.runRemoteSearch(this.searchQuery);
|
|
302
|
-
this.emitSearchEvent();
|
|
303
|
-
this.highlightedIndex = this.filteredOptions.length > 0 ? 0 : -1;
|
|
304
|
-
}, this.debounceMs);
|
|
305
|
-
};
|
|
306
|
-
async runRemoteSearch(query) {
|
|
307
|
-
if (!this.loadLocations)
|
|
308
|
-
return;
|
|
309
|
-
if ((query || '').trim().length < this.remoteMinChars) {
|
|
310
|
-
this.remoteOptions = [];
|
|
311
|
-
this.loading = false;
|
|
312
|
-
this.loadError = '';
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
315
|
-
const token = ++this.searchToken;
|
|
316
|
-
this.loading = true;
|
|
317
|
-
this.loadError = '';
|
|
318
|
-
try {
|
|
319
|
-
const remote = await this.loadLocations(query.trim());
|
|
320
|
-
if (token !== this.searchToken)
|
|
321
|
-
return;
|
|
322
|
-
this.remoteOptions = this.normalizeOptions(remote || []);
|
|
323
|
-
}
|
|
324
|
-
catch (error) {
|
|
325
|
-
if (token !== this.searchToken)
|
|
326
|
-
return;
|
|
327
|
-
const message = error instanceof Error ? error.message : 'Failed to load locations';
|
|
328
|
-
this.remoteOptions = [];
|
|
329
|
-
this.loadError = message;
|
|
330
|
-
this.locationLoadError.emit({ query, message });
|
|
331
|
-
}
|
|
332
|
-
finally {
|
|
333
|
-
if (token === this.searchToken) {
|
|
334
|
-
this.loading = false;
|
|
335
|
-
this.emitSearchEvent();
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
emitSearchEvent() {
|
|
340
|
-
this.locationSearch.emit({
|
|
341
|
-
query: this.searchQuery,
|
|
342
|
-
localResults: this.parsedOptions.filter(o => o.searchText.includes(this.searchQuery.toLowerCase())).length,
|
|
343
|
-
remoteResults: this.remoteOptions.length,
|
|
344
|
-
loading: this.loading,
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
handleKeyDown = (event) => {
|
|
348
|
-
if (this.disabled)
|
|
349
|
-
return;
|
|
350
|
-
const options = this.filteredOptions;
|
|
351
|
-
switch (event.key) {
|
|
352
|
-
case 'Enter':
|
|
353
|
-
case ' ': {
|
|
354
|
-
if (!this.isOpen) {
|
|
355
|
-
event.preventDefault();
|
|
356
|
-
this.toggleDropdown();
|
|
357
|
-
return;
|
|
358
|
-
}
|
|
359
|
-
if (this.highlightedIndex >= 0 && options[this.highlightedIndex]) {
|
|
360
|
-
event.preventDefault();
|
|
361
|
-
this.selectOption(options[this.highlightedIndex], 'select');
|
|
362
|
-
return;
|
|
363
|
-
}
|
|
364
|
-
if (this.allowCustomValue && this.searchQuery.trim()) {
|
|
365
|
-
event.preventDefault();
|
|
366
|
-
this.createCustomLocation(this.searchQuery.trim());
|
|
367
|
-
}
|
|
368
|
-
return;
|
|
369
|
-
}
|
|
370
|
-
case 'ArrowDown':
|
|
371
|
-
event.preventDefault();
|
|
372
|
-
if (!this.isOpen) {
|
|
373
|
-
this.toggleDropdown();
|
|
374
|
-
}
|
|
375
|
-
else if (options.length > 0) {
|
|
376
|
-
this.highlightedIndex = Math.min(options.length - 1, this.highlightedIndex + 1);
|
|
377
|
-
this.scrollToHighlighted();
|
|
378
|
-
}
|
|
379
|
-
return;
|
|
380
|
-
case 'ArrowUp':
|
|
381
|
-
event.preventDefault();
|
|
382
|
-
if (this.isOpen && options.length > 0) {
|
|
383
|
-
this.highlightedIndex = Math.max(0, this.highlightedIndex - 1);
|
|
384
|
-
this.scrollToHighlighted();
|
|
385
|
-
}
|
|
386
|
-
return;
|
|
387
|
-
case 'Escape':
|
|
388
|
-
if (this.isOpen) {
|
|
389
|
-
event.preventDefault();
|
|
390
|
-
this.closeDropdown();
|
|
391
|
-
}
|
|
392
|
-
return;
|
|
393
|
-
case 'Backspace':
|
|
394
|
-
if (this.multiSelect && !this.searchQuery && this.selectedIds.size > 0) {
|
|
395
|
-
const last = Array.from(this.selectedIds).at(-1);
|
|
396
|
-
if (last) {
|
|
397
|
-
this.removeSelectedId(last, 'remove');
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
return;
|
|
401
|
-
default:
|
|
402
|
-
return;
|
|
403
|
-
}
|
|
404
|
-
};
|
|
405
|
-
scrollToHighlighted() {
|
|
406
|
-
const optionElement = this.optionsRefs[this.highlightedIndex];
|
|
407
|
-
optionElement?.scrollIntoView({ block: 'nearest' });
|
|
408
|
-
}
|
|
409
|
-
selectOption(option, trigger) {
|
|
410
|
-
if (option.disabled)
|
|
411
|
-
return;
|
|
412
|
-
if (this.multiSelect) {
|
|
413
|
-
const next = new Set(this.selectedIds);
|
|
414
|
-
if (next.has(option.idStr)) {
|
|
415
|
-
next.delete(option.idStr);
|
|
416
|
-
}
|
|
417
|
-
else {
|
|
418
|
-
if (this.maxSelections > 0 && next.size >= this.maxSelections) {
|
|
419
|
-
return;
|
|
420
|
-
}
|
|
421
|
-
next.add(option.idStr);
|
|
422
|
-
}
|
|
423
|
-
this.selectedIds = next;
|
|
424
|
-
}
|
|
425
|
-
else {
|
|
426
|
-
this.selectedIds = new Set([option.idStr]);
|
|
427
|
-
this.closeDropdown();
|
|
428
|
-
}
|
|
429
|
-
this.touchRecent(option.idStr);
|
|
430
|
-
this.syncValueAndEmit(trigger);
|
|
431
|
-
}
|
|
432
|
-
removeSelectedId(id, trigger) {
|
|
433
|
-
if (!this.selectedIds.has(id))
|
|
434
|
-
return;
|
|
435
|
-
const next = new Set(this.selectedIds);
|
|
436
|
-
next.delete(id);
|
|
437
|
-
this.selectedIds = next;
|
|
438
|
-
this.syncValueAndEmit(trigger);
|
|
439
|
-
}
|
|
440
|
-
clearSelection = (event) => {
|
|
441
|
-
event?.stopPropagation();
|
|
442
|
-
if (this.selectedIds.size === 0)
|
|
443
|
-
return;
|
|
444
|
-
this.selectedIds = new Set();
|
|
445
|
-
this.syncValueAndEmit('clear');
|
|
446
|
-
};
|
|
447
|
-
toggleFavorite = (id, event) => {
|
|
448
|
-
event.stopPropagation();
|
|
449
|
-
const exists = this.favoriteIds.includes(id);
|
|
450
|
-
this.favoriteIds = exists ? this.favoriteIds.filter(x => x !== id) : [id, ...this.favoriteIds].slice(0, 50);
|
|
451
|
-
this.persistCurrentState();
|
|
452
|
-
};
|
|
453
|
-
touchRecent(id) {
|
|
454
|
-
this.recentIds = [id, ...this.recentIds.filter(x => x !== id)].slice(0, 50);
|
|
455
|
-
this.persistCurrentState();
|
|
456
|
-
}
|
|
457
|
-
persistCurrentState() {
|
|
458
|
-
if (!this.persistState || typeof localStorage === 'undefined')
|
|
459
|
-
return;
|
|
460
|
-
try {
|
|
461
|
-
localStorage.setItem(this.storageKey, JSON.stringify({ recentIds: this.recentIds, favoriteIds: this.favoriteIds }));
|
|
462
|
-
}
|
|
463
|
-
catch {
|
|
464
|
-
// ignore storage errors
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
restorePersistentState() {
|
|
468
|
-
if (!this.persistState || typeof localStorage === 'undefined')
|
|
469
|
-
return;
|
|
470
|
-
try {
|
|
471
|
-
const raw = localStorage.getItem(this.storageKey);
|
|
472
|
-
if (!raw)
|
|
473
|
-
return;
|
|
474
|
-
const parsed = JSON.parse(raw);
|
|
475
|
-
this.recentIds = Array.isArray(parsed?.recentIds) ? parsed.recentIds.map((x) => String(x)).slice(0, 50) : [];
|
|
476
|
-
this.favoriteIds = Array.isArray(parsed?.favoriteIds) ? parsed.favoriteIds.map((x) => String(x)).slice(0, 50) : [];
|
|
477
|
-
}
|
|
478
|
-
catch {
|
|
479
|
-
this.recentIds = [];
|
|
480
|
-
this.favoriteIds = [];
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
syncValueAndEmit(trigger) {
|
|
484
|
-
const selectedIds = Array.from(this.selectedIds);
|
|
485
|
-
this.value = this.multiSelect ? selectedIds.join(',') : selectedIds[0] || '';
|
|
486
|
-
this.locationChange.emit({
|
|
487
|
-
value: this.value,
|
|
488
|
-
selected: this.selectedOptions,
|
|
489
|
-
trigger,
|
|
490
|
-
query: this.searchQuery,
|
|
491
|
-
});
|
|
492
|
-
}
|
|
493
|
-
createCustomLocation(label) {
|
|
494
|
-
const id = `custom:${label.toLowerCase().replace(/\s+/g, '-')}`;
|
|
495
|
-
const custom = {
|
|
496
|
-
id,
|
|
497
|
-
label,
|
|
498
|
-
type: 'custom',
|
|
499
|
-
};
|
|
500
|
-
this.locationCreate.emit(custom);
|
|
501
|
-
const normalized = this.normalizeOptions([custom]);
|
|
502
|
-
this.remoteOptions = [...normalized, ...this.remoteOptions.filter(o => o.idStr !== id)];
|
|
503
|
-
if (normalized[0]) {
|
|
504
|
-
this.selectOption(normalized[0], 'select');
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
getDisplayText() {
|
|
508
|
-
const selected = this.selectedOptions;
|
|
509
|
-
if (selected.length === 0)
|
|
510
|
-
return this.placeholder;
|
|
511
|
-
if (!this.multiSelect) {
|
|
512
|
-
return this.showPath ? selected[0].pathLabels.join(' / ') : selected[0].label;
|
|
513
|
-
}
|
|
514
|
-
if (selected.length === 1) {
|
|
515
|
-
return this.showPath ? selected[0].pathLabels.join(' / ') : selected[0].label;
|
|
516
|
-
}
|
|
517
|
-
return `${selected.length} locations selected`;
|
|
518
|
-
}
|
|
519
|
-
renderSelectedChips() {
|
|
520
|
-
if (!this.multiSelect || this.selectedOptions.length === 0)
|
|
521
|
-
return null;
|
|
522
|
-
const maxVisible = 3;
|
|
523
|
-
const visible = this.selectedOptions.slice(0, maxVisible);
|
|
524
|
-
const remaining = this.selectedOptions.length - visible.length;
|
|
525
|
-
return (h("div", { class: "selected-chips" }, visible.map(option => (h("span", { class: "selected-chip", key: `chip-${option.idStr}` }, h("span", { class: "chip-label" }, this.showPath ? option.pathLabels.join(' / ') : option.label), h("ui-button", { class: "chip-remove", onButtonClick: () => this.removeSelectedId(option.idStr, 'remove'), "aria-label": `Remove ${option.label}`, variant: "plain", icon: "x", iconLibrary: "lucide", iconOnly: true })))), remaining > 0 && h("span", { class: "selected-more" }, "+", remaining)));
|
|
526
|
-
}
|
|
527
|
-
renderOption(option, index) {
|
|
528
|
-
const selected = this.selectedIds.has(option.idStr);
|
|
529
|
-
const highlighted = this.highlightedIndex === index;
|
|
530
|
-
const favorite = this.favoriteIds.includes(option.idStr);
|
|
531
|
-
const label = this.showPath ? option.pathLabels.join(' / ') : option.label;
|
|
532
|
-
return (h("div", { class: {
|
|
533
|
-
'location-option': true,
|
|
534
|
-
'location-option-selected': selected,
|
|
535
|
-
'location-option-highlighted': highlighted,
|
|
536
|
-
'location-option-disabled': !!option.disabled,
|
|
537
|
-
}, role: "option", "aria-selected": selected ? 'true' : 'false', onMouseEnter: () => (this.highlightedIndex = index), onClick: () => this.selectOption(option, 'select'), ref: el => (this.optionsRefs[index] = el) }, h("div", { class: "location-option-main" }, this.multiSelect && h("ui-icon", { name: selected ? 'check-square' : 'square', library: "lucide", size: "18px" }), h("div", { class: "location-option-text" }, h("span", { class: "location-label" }, label), option.code && h("span", { class: "location-code" }, option.code))), h("div", { class: "location-option-meta" }, this.showTypeBadge && h("span", { class: "location-type" }, this.typeLabelMap[option.type]), this.showFavorites && (h("ui-button", { class: { 'fav-btn': true, active: favorite }, onButtonClick: e => this.toggleFavorite(option.idStr, e.detail), "aria-label": favorite ? `Remove ${option.label} from favorites` : `Add ${option.label} to favorites`, variant: "plain", icon: "star", iconLibrary: "lucide", iconOnly: true })))));
|
|
538
|
-
}
|
|
539
|
-
render() {
|
|
540
|
-
const filtered = this.filteredOptions;
|
|
541
|
-
const hasSelection = this.selectedIds.size > 0;
|
|
542
|
-
const canCreate = this.allowCustomValue && !!this.searchQuery.trim() && filtered.length === 0;
|
|
543
|
-
return (h("div", { key: 'b1807bf502b50ae9fc48efa846426ab643d6516d', class: { 'location-dropdown': true, open: this.isOpen, disabled: this.disabled } }, h("div", { key: 'de7b775e9b312bd39da8927975e588648b4ca809', class: "location-trigger", role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", tabIndex: this.disabled ? -1 : 0, onClick: this.toggleDropdown, onKeyDown: this.handleKeyDown }, h("span", { key: 'e608f40b0ef1251ae3f9c303338ff415eb31b0cd', class: { 'trigger-text': true, placeholder: !hasSelection } }, this.getDisplayText()), h("div", { key: 'afbfc578336c32718d974e0ca2b28df8ae1bae2f', class: "trigger-icons" }, hasSelection && this.clearable && !this.disabled && (h("ui-button", { key: '65ce58563ea6447785f79325425f410ccac696b5', class: "clear-btn", onButtonClick: this.clearSelection, "aria-label": "Clear selected locations", variant: "plain", icon: "x", iconLibrary: "lucide", iconOnly: true })), h("ui-icon", { key: 'c30d26150e745053e5c64c7747692dc0e16de079', name: "chevron-down", library: "lucide", size: "16px", class: { arrow: true, open: this.isOpen } }))), this.renderSelectedChips(), this.isOpen && (h("div", { key: '17e2bda731910b2eacdcfa94c40697cb8cad6792', class: { menu: true, top: this.dropdownPosition === 'top' }, role: "listbox", ref: el => (this.menuElement = el), style: {
|
|
544
|
-
maxHeight: `${this.maxHeight}px`,
|
|
545
|
-
left: `${this.menuLeft}px`,
|
|
546
|
-
width: `${this.menuWidth}px`,
|
|
547
|
-
position: 'fixed',
|
|
548
|
-
zIndex: '10020',
|
|
549
|
-
top: `${this.menuTop}px`,
|
|
550
|
-
} }, this.searchable && (h("div", { key: '927ac16ca61d07d1e0d9acf9cc6712ccd5e3be8a', class: "search-row" }, h("ui-input", { key: '95af520eb196a47d11ac31489237314049532bc2', ref: el => (this.searchInputRef = el), class: "search-input", value: this.searchQuery, placeholder: this.searchPlaceholder, onInputChange: (e) => this.onSearchInput_Custom(e.detail), onKeyDown: this.handleKeyDown, variant: "plain" }))), this.loading && h("div", { key: 'c5b48b1d0f1e08353dc8def6b7b962c15918f724', class: "status loading" }, "Loading locations..."), !this.loading && this.loadError && h("div", { key: '3a8f50555d86a4cf07fd27b810fe9c74168cac0e', class: "status error" }, this.loadError), !this.loading && filtered.length > 0 && (h("div", { key: '07298b5d440946c7a6d11e3ebae2d3c28d16c467', class: "options-list" }, filtered.map((option, index) => this.renderOption(option, index)))), !this.loading && filtered.length === 0 && !canCreate && h("div", { key: 'a01eb5729544c38466b7c16de2fe6e11baba36e4', class: "status empty" }, "No locations found"), canCreate && (h("ui-button", { key: '06c249712c8bf168d522678abe6fd68ae4d25949', class: "create-btn", onButtonClick: () => this.createCustomLocation(this.searchQuery.trim()), variant: "plain", align: "start", fullWidth: true, icon: "plus", iconLibrary: "lucide", label: `Create "${this.searchQuery.trim()}"` })), (this.showFavorites || this.showRecent) && !this.searchQuery && (h("div", { key: '0cfe965844fa111cb8888b1392e3dcac8b35c51a', class: "footer-meta" }, this.showFavorites && h("span", { key: '0b5f1c8816ed31ab7cdc5988f1271a2c7b384372' }, "Favorites: ", this.favoriteIds.length), this.showRecent && h("span", { key: 'aec4a486adee16e6100efa773475fc03d8b2f155' }, "Recent: ", this.recentIds.length)))))));
|
|
551
|
-
}
|
|
552
|
-
static get watchers() { return {
|
|
553
|
-
"options": [{
|
|
554
|
-
"watchOptions": 0
|
|
555
|
-
}],
|
|
556
|
-
"value": [{
|
|
557
|
-
"watchValue": 0
|
|
558
|
-
}]
|
|
559
|
-
}; }
|
|
560
|
-
};
|
|
561
|
-
SmartLocationDropdown.style = smartLocationDropdownCss();
|
|
562
|
-
|
|
563
|
-
export { SmartLocationDropdown as ui_smart_location_dropdown };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as i,a as r,h as s,H as e}from"./p-DUsoYu9r.js";const a=class{constructor(r){t(this,r),this.sliderChange=i(this,"sliderChange"),this.sliderDragStart=i(this,"sliderDragStart"),this.sliderDragEnd=i(this,"sliderDragEnd")}get el(){return r(this)}trackElement;isDragging=!1;activeThumb=null;internals;min=0;max=100;step=1;value=50;startValue=25;endValue=75;range=!1;minRange=0;disabled=!1;showTooltip=!0;tooltipAlwaysVisible=!1;color="#3bf673";trackColor="#e5e7eb";size="md";startIcon="";endIcon="";displayFormat="";showMarks=!1;marks=[];restrictedValues=[];vertical=!1;label="";variant="";prefixText="";suffixText="";showMinMax=!1;inputSync=!1;gradientTrack=!1;showValue=!0;customSteps=[];rtl=!1;circle=!1;hideRange=!1;isHovering=!1;isDraggingState=!1;get resolvedColor(){if(Array.isArray(this.color)){const t=this.range?this.endValue:this.value,i=this.color.find((i=>t>=i.min&&t<=i.max));return i?i.color:"#3bf673"}return this.variant&&{primary:"#3bf673",success:"#10b981",danger:"#ef4444",warning:"#f59e0b",info:"#06b6d4",purple:"#8b5cf6"}[this.variant]||("string"==typeof this.color?this.color:this.color.from)}get resolvedGradient(){if(Array.isArray(this.color)){const t=this.range?this.endValue:this.value,i=this.color.find((i=>t>=i.min&&t<=i.max)),r=i?i.color:"#3bf673";return`linear-gradient(90deg, ${r}, ${r}aa)`}const t="string"==typeof this.color?this.color:this.color.from;return this.variant?{primary:"linear-gradient(90deg, #3bf673, #6366f1)",success:"linear-gradient(90deg, #10b981, #34d399)",danger:"linear-gradient(90deg, #ef4444, #f97316)",warning:"linear-gradient(90deg, #f59e0b, #fbbf24)",info:"linear-gradient(90deg, #06b6d4, #3bf673)",purple:"linear-gradient(90deg, #8b5cf6, #ec4899)"}[this.variant]||`linear-gradient(90deg, ${t}, ${t})`:"object"!=typeof this.color||null===this.color||Array.isArray(this.color)?`linear-gradient(90deg, ${this.color}, ${this.color}aa)`:`linear-gradient(90deg, ${this.color.from}, ${this.color.to})`}sliderChange;sliderDragStart;sliderDragEnd;handleColorChange(){this.normalizeProps()}handleMarksChange(){this.normalizeProps()}componentWillLoad(){"function"==typeof this.el.attachInternals&&(this.internals=this.el.attachInternals()),this.normalizeProps(),this.updateFormValue()}updateFormValue(){this.internals&&this.internals.setFormValue(this.range?`${this.startValue},${this.endValue}`:this.value.toString())}normalizeProps(){try{"string"==typeof this.color&&(this.color.startsWith("{")||this.color.startsWith("["))&&(this.color=JSON.parse(this.color)),"string"==typeof this.marks&&(this.marks=JSON.parse(this.marks)),"string"==typeof this.restrictedValues&&(this.restrictedValues=JSON.parse(this.restrictedValues)),"string"==typeof this.customSteps&&(this.customSteps=JSON.parse(this.customSteps))}catch(t){console.warn("Failed to parse complex slider prop",t)}}componentDidLoad(){document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("touchmove",this.handleTouchMove),document.addEventListener("touchend",this.handleTouchEnd)}disconnectedCallback(){document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("touchmove",this.handleTouchMove),document.removeEventListener("touchend",this.handleTouchEnd)}getMarks(){if("string"==typeof this.marks)try{return JSON.parse(this.marks)}catch{return[]}return this.marks}getRestrictedValues(){if("string"==typeof this.restrictedValues)try{return JSON.parse(this.restrictedValues)}catch{return[]}return this.restrictedValues}getCustomSteps(){if("string"==typeof this.customSteps)try{return JSON.parse(this.customSteps)}catch{return[]}return this.customSteps}getNearestValue(t){const i=this.getRestrictedValues();if(i.length>0)return i.reduce(((i,r)=>Math.abs(r-t)<Math.abs(i-t)?r:i));const r=this.getCustomSteps();if(r.length>0)return r.reduce(((i,r)=>Math.abs(r-t)<Math.abs(i-t)?r:i));const s=Math.round((t-this.min)/this.step);return Math.min(this.max,Math.max(this.min,this.min+s*this.step))}isRtl(){return this.rtl||"rtl"===document.dir||this.el&&"rtl"===this.el.getAttribute("dir")}getPositionFromValue(t){const i=this.getCustomSteps();if(i.length>0){const r=[...i].sort(((t,i)=>t-i)),s=r.indexOf(t);if(-1!==s)return s/(r.length-1)*100;for(let i=0;i<r.length-1;i++)if(t>=r[i]&&t<=r[i+1]){const s=i/(r.length-1)*100;return s+(t-r[i])/(r[i+1]-r[i])*((i+1)/(r.length-1)*100-s)}}return(t-this.min)/(this.max-this.min)*100}getValueFromPosition(t){const i=this.getCustomSteps();if(i.length>0){const r=[...i].sort(((t,i)=>t-i)),s=Math.round(t/100*(r.length-1));return r[Math.max(0,Math.min(s,r.length-1))]}return this.getNearestValue(this.min+t/100*(this.max-this.min))}handleTrackClick=t=>{if(this.disabled)return;const i=this.trackElement.getBoundingClientRect();let r;if(this.vertical)r=(i.bottom-t.clientY)/i.height*100;else{const s=(t.clientX-i.left)/i.width*100;r=this.isRtl()?100-s:s}const s=this.getValueFromPosition(Math.max(0,Math.min(100,r)));if(this.range){const t=this.getPositionFromValue(this.startValue),i=this.getPositionFromValue(this.endValue),e=r;Math.abs(e-t)<Math.abs(e-i)?this.startValue=Math.min(s,this.endValue-this.minRange):this.endValue=Math.max(s,this.startValue+this.minRange),this.sliderChange.emit({start:this.startValue,end:this.endValue}),this.updateFormValue()}else this.value=s,this.sliderChange.emit(this.value),this.updateFormValue()};handleThumbMouseDown=t=>i=>{this.disabled||(i.preventDefault(),this.isDragging=!0,this.isDraggingState=!0,this.activeThumb=t,this.sliderDragStart.emit())};handleThumbTouchStart=t=>i=>{this.disabled||(i.preventDefault(),this.isDragging=!0,this.isDraggingState=!0,this.activeThumb=t,this.sliderDragStart.emit())};handleMouseMove=t=>{this.isDragging&&!this.disabled&&this.updateValueFromEvent(t.clientX,t.clientY)};handleTouchMove=t=>{if(!this.isDragging||this.disabled)return;const i=t.touches[0];this.updateValueFromEvent(i.clientX,i.clientY)};updateValueFromEvent(t,i){if(!this.trackElement)return;const r=this.trackElement.getBoundingClientRect();let s;if(this.vertical)s=(r.bottom-i)/r.height*100;else{const i=(t-r.left)/r.width*100;s=this.isRtl()?100-i:i}const e=this.getValueFromPosition(Math.max(0,Math.min(100,s)));this.range?("start"===this.activeThumb?this.startValue=Math.min(e,this.endValue-this.minRange):"end"===this.activeThumb&&(this.endValue=Math.max(e,this.startValue+this.minRange)),this.sliderChange.emit({start:this.startValue,end:this.endValue})):(this.value=e,this.sliderChange.emit(this.value)),this.updateFormValue()}handleMouseUp=()=>{this.isDragging&&(this.isDragging=!1,this.isDraggingState=!1,this.activeThumb=null,this.sliderDragEnd.emit())};handleTouchEnd=()=>{this.isDragging&&(this.isDragging=!1,this.isDraggingState=!1,this.activeThumb=null,this.sliderDragEnd.emit())};formatValue(t){let i;if(this.displayFormat)try{i=this.displayFormat.replace("{value}",t.toString())}catch{i=t.toString()}else i=t.toString();return`${this.prefixText}${i}${this.suffixText}`}handleInputChange=t=>i=>{const r=Math.max(this.min,Math.min(this.max,Number(i.detail)));isNaN(r)||("start"===t?(this.startValue=Math.min(r,this.endValue),this.sliderChange.emit({start:this.startValue,end:this.endValue})):"end"===t?(this.endValue=Math.max(r,this.startValue),this.sliderChange.emit({start:this.startValue,end:this.endValue})):(this.value=r,this.sliderChange.emit(this.value)))};handleKeyDown=t=>i=>{if(this.disabled)return;let r="start"===t?this.startValue:this.range?this.endValue:this.value;const s=this.step,e=10*this.step;let a=!1;switch(i.key){case"ArrowRight":case"ArrowUp":r+=s,a=!0;break;case"ArrowLeft":case"ArrowDown":r-=s,a=!0;break;case"PageUp":r+=e,a=!0;break;case"PageDown":r-=e,a=!0;break;case"Home":r=this.min,a=!0;break;case"End":r=this.max,a=!0;break;default:return}a&&(i.preventDefault(),i.stopPropagation(),r=Math.max(this.min,Math.min(this.max,r)),this.range?("start"===t?this.startValue=Math.min(r,this.endValue):this.endValue=Math.max(r,this.startValue),this.sliderChange.emit({start:this.startValue,end:this.endValue})):(this.value=r,this.sliderChange.emit(this.value)))};renderMarks(){const t=this.getMarks(),i=this.getCustomSteps(),r=this.resolvedColor;let e=t;if(0===e.length&&this.showMarks){const t=i.length>0?i:[];if(0===t.length)for(let i=this.min;i<=this.max;i+=this.step)t.push(i);e=t.map((t=>({value:t})))}const a=this.range?this.startValue:this.min,o=this.range?this.endValue:this.value;return e.map((t=>{const i=this.getPositionFromValue(t.value);return s("div",{class:"slider-mark",style:this.vertical?{bottom:`${i}%`}:{left:`${i}%`}},s("div",{class:"slider-mark-dot",style:t.value>=a&&t.value<=o?{backgroundColor:r,borderColor:"white"}:{}}),t.label&&s("div",{class:"slider-mark-label"},t.label))}))}render(){const t=this.range?this.getPositionFromValue(this.startValue):0,i=this.getPositionFromValue(this.range?this.endValue:this.value),r=this.resolvedColor,a=this.vertical?{bottom:`${t}%`,height:i-t+"%",...this.gradientTrack?{background:this.resolvedGradient}:{backgroundColor:r}}:{left:`${t}%`,width:i-t+"%",...this.gradientTrack?{background:this.resolvedGradient}:{backgroundColor:r}},o=(t,i)=>{const s="object"==typeof this.color&&null!==this.color,e=i?{bottom:`${t}%`}:{[this.isRtl()?"right":"left"]:`${t}%`};return s||this.gradientTrack&&this.variant?e.background=this.resolvedGradient:e.backgroundColor=r,e.boxShadow=`0 0 0 3px ${r}33`,e};return s(e,{dir:this.isRtl()?"rtl":"ltr"},this.label&&s("div",{class:"slider-label"},this.label),s("div",{class:{"slider-container":!0,[`slider-${this.size}`]:!0,[`variant-${this.variant}`]:!!this.variant,"variant-circle":this.circle,"slider-vertical":this.vertical,"slider-disabled":this.disabled,"slider-dragging":this.isDraggingState,"slider-rtl":this.isRtl()},dir:this.isRtl()?"rtl":"ltr",onMouseEnter:()=>this.isHovering=!0,onMouseLeave:()=>this.isHovering=!1},this.startIcon&&s("div",{class:"slider-icon slider-start-icon"},this.startIcon),s("div",{class:"slider-wrapper"},this.showMinMax&&s("div",{class:"slider-minmax-labels"},s("span",{class:"slider-minmax-min"},this.formatValue(this.min)),s("span",{class:"slider-minmax-max"},this.formatValue(this.max))),s("div",{class:"slider-track",ref:t=>this.trackElement=t,onClick:this.handleTrackClick,style:{background:this.trackColor}},!this.hideRange&&s("div",{class:"slider-range",style:a}),this.showMarks&&s("div",{class:"slider-marks"},this.renderMarks()),this.range&&s("div",{class:{"slider-thumb":!0,"slider-thumb-active":"start"===this.activeThumb},style:o(t,this.vertical),onMouseDown:this.handleThumbMouseDown("start"),onTouchStart:this.handleThumbTouchStart("start"),onKeyDown:this.handleKeyDown("start"),tabIndex:this.disabled?-1:0,role:"slider","aria-label":"Start Value","aria-valuemin":this.min,"aria-valuemax":this.endValue,"aria-valuenow":this.startValue},this.showTooltip&&(this.tooltipAlwaysVisible||this.isHovering||this.isDraggingState)&&s("div",{class:"slider-tooltip"},this.formatValue(this.startValue))),s("div",{class:{"slider-thumb":!0,"slider-thumb-active":!this.range||"end"===this.activeThumb},style:o(i,this.vertical),onMouseDown:this.handleThumbMouseDown(this.range?"end":null),onTouchStart:this.handleThumbTouchStart(this.range?"end":null),onKeyDown:this.handleKeyDown("end"),tabIndex:this.disabled?-1:0,role:"slider","aria-label":this.range?"End Value":"Value","aria-valuemin":this.range?this.startValue:this.min,"aria-valuemax":this.max,"aria-valuenow":this.range?this.endValue:this.value},this.showTooltip&&(this.tooltipAlwaysVisible||this.isHovering||this.isDraggingState)&&s("div",{class:"slider-tooltip"},this.formatValue(this.range?this.endValue:this.value)))),this.showValue&&s("div",{class:"slider-value-display"},this.range?`${this.formatValue(this.startValue)} – ${this.formatValue(this.endValue)}`:this.formatValue(this.value)),this.inputSync&&!this.range&&s("ui-input",{type:"number",class:"slider-input",min:this.min,max:this.max,step:this.step,value:this.value,disabled:this.disabled,onInputChange:this.handleInputChange("single"),size:"sm"}),this.inputSync&&this.range&&s("div",{class:"slider-input-row"},s("ui-input",{type:"number",class:"slider-input",min:this.min,max:this.endValue,step:this.step,value:this.startValue,disabled:this.disabled,onInputChange:this.handleInputChange("start"),size:"sm"}),s("span",{class:"slider-input-sep"},"–"),s("ui-input",{type:"number",class:"slider-input",min:this.startValue,max:this.max,step:this.step,value:this.endValue,disabled:this.disabled,onInputChange:this.handleInputChange("end"),size:"sm"}))),this.endIcon&&s("div",{class:"slider-icon slider-end-icon"},this.endIcon)))}static get formAssociated(){return!0}static get watchers(){return{color:[{handleColorChange:0}],marks:[{handleMarksChange:0}]}}};a.style='.sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}.a11y-sr-only{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border-width:0 !important}:host{display:block;width:100%;font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}.slider-label{font-size:13px;font-weight:600;color:var(--label-color, var(--text-secondary, #374151));margin-bottom:10px;letter-spacing:0.01em}.slider-minmax-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--label-subtitle-color, var(--text-muted, #9ca3af));margin-bottom:8px;padding:0;width:100%;pointer-events:none}.slider-input{width:64px;padding:4px 8px;border:1.5px solid var(--border-strong, #d1d5db);border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary, #374151);text-align:center;outline:none;transition:border-color 0.2s;background:var(--bg-primary, #ffffff);-moz-appearance:textfield;appearance:textfield}.slider-input::-webkit-inner-spin-button,.slider-input::-webkit-outer-spin-button{opacity:1}.slider-input:focus{border-color:var(--color-primary, #10b981);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246), 0.15)}.slider-input-row{display:flex;align-items:center;gap:8px;margin-top:10px;justify-content:center}.slider-input-sep{color:var(--text-muted, #9ca3af);font-size:14px;font-weight:600}.slider-container{display:flex;align-items:flex-start;gap:16px;width:100%;user-select:none}.slider-vertical{flex-direction:column;height:300px;width:auto;align-items:center}.slider-disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.slider-icon{display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-muted, #6b7280);flex-shrink:0;line-height:1;height:24px}.slider-sm .slider-icon{font-size:14px;height:20px}.slider-lg .slider-icon{font-size:20px;height:28px}.slider-wrapper{flex:1;display:flex;flex-direction:column;gap:8px;position:relative;align-items:stretch;min-height:24px;padding:0 12px}.slider-sm .slider-wrapper{min-height:20px}.slider-lg .slider-wrapper{min-height:28px}.slider-vertical .slider-wrapper{flex:1;width:100%;align-items:center;justify-content:center;min-height:0}.slider-track{position:relative;width:100%;border-radius:10px;cursor:pointer;background-color:var(--bg-primary, #e5e7eb);margin:12px 0}.slider-sm .slider-track{height:4px}.slider-md .slider-track{height:6px}.slider-lg .slider-track{height:8px}.slider-vertical .slider-track{width:6px;height:100%}.slider-vertical.slider-sm .slider-track{width:4px}.slider-vertical.slider-lg .slider-track{width:8px}.slider-range{position:absolute;border-radius:10px;background-color:var(--color-primary, #10b981);pointer-events:none;transition:background-color 0.2s ease}.slider-sm .slider-range{height:4px}.slider-md .slider-range{height:6px}.slider-lg .slider-range{height:8px}.slider-vertical .slider-range{width:100%;height:auto}.slider-thumb{position:absolute;transform:translate(-50%, -50%);top:50%;border-radius:50%;background-color:var(--color-primary, #10b981);cursor:grab;box-shadow:0 2px 6px rgba(0, 0, 0, 0.15);transition:transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease, left 0.1s ease-out, bottom 0.1s ease-out;z-index:10;border:2px solid var(--bg-primary, #ffffff)}.slider-thumb:hover{transform:translate(-50%, -50%) scale(1.15);box-shadow:0 4px 14px rgba(0, 0, 0, 0.18)}.slider-thumb-active,.slider-dragging .slider-thumb-active{cursor:grabbing;transform:translate(-50%, -50%) scale(1.2);box-shadow:0 4px 16px rgba(var(--color-primary-rgb, 59, 130, 246), 0.45);z-index:11}.slider-sm .slider-thumb{width:14px;height:14px}.slider-md .slider-thumb{width:18px;height:18px}.slider-lg .slider-thumb{width:24px;height:24px}.slider-vertical .slider-thumb{left:50%;top:auto;transform:translate(-50%, 50%)}.slider-vertical .slider-thumb:hover{transform:translate(-50%, 50%) scale(1.1)}.slider-vertical .slider-thumb-active,.slider-vertical.slider-dragging .slider-thumb-active{transform:translate(-50%, 50%) scale(1.15)}.slider-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);padding:4px 8px;background-color:rgba(0, 0, 0, 0.85);color:var(--text-standard, #ffffff);font-size:12px;border-radius:4px;white-space:nowrap;pointer-events:none;opacity:0;animation:tooltipFadeIn 0.2s ease forwards}.slider-tooltip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:rgba(0, 0, 0, 0.85)}.slider-vertical .slider-tooltip{bottom:auto;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.slider-vertical .slider-tooltip::after{top:50%;left:-8px;transform:translateY(-50%);border:4px solid transparent;border-right-color:rgba(0, 0, 0, 0.85);border-top-color:transparent}@keyframes tooltipFadeIn{to{opacity:1}}.slider-marks{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.slider-mark{position:absolute;transform:translateX(-50%)}.slider-vertical .slider-mark{transform:translateY(50%);left:50%}.slider-mark-dot{width:8px;height:8px;border-radius:50%;background-color:var(--bg-secondary, #d1d5db);border:2px solid var(--bg-primary, #ffffff);position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.slider-sm .slider-mark-dot{width:6px;height:6px}.slider-lg .slider-mark-dot{width:10px;height:10px}.slider-mark-label{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);font-size:11px;color:var(--text-muted, #6b7280);white-space:nowrap}.slider-vertical .slider-mark-label{top:50%;left:calc(100% + 12px);transform:translateY(-50%)}.slider-value-display{text-align:center;font-size:13px;color:var(--text-secondary, #374151);font-weight:600;margin-top:8px;letter-spacing:0.01em}.slider-sm .slider-value-display{font-size:12px}.slider-lg .slider-value-display{font-size:14px}.slider-vertical .slider-value-display{display:none}.slider-thumb:focus{outline:none;box-shadow:0 0 0 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.25)}.slider-track.has-restricted-values .slider-mark-dot{background-color:var(--color-primary, #10b981)}.slider-range,.slider-thumb{transition:all 0.1s ease-out}.slider-dragging .slider-range,.slider-dragging .slider-thumb{transition:none}.slider-thumb[aria-disabled=true]{cursor:not-allowed;opacity:0.5}@media (hover: none) and (pointer: coarse){.slider-thumb{width:24px;height:24px}.slider-sm .slider-thumb{width:20px;height:20px}.slider-lg .slider-thumb{width:30px;height:30px}}.variant-glass .slider-track{background:rgba(255, 255, 255, 0.1) !important;backdrop-filter:blur(8px);border:1px solid rgba(255, 255, 255, 0.2);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.1)}.variant-glass .slider-thumb{background:rgba(255, 255, 255, 0.9);backdrop-filter:blur(4px);border:1px solid var(--bg-primary, #ffffff);box-shadow:0 8px 16px rgba(0, 0, 0, 0.2)}.variant-glass .slider-thumb:hover{background:var(--bg-primary, #ffffff) !important;transform:translate(-50%, -50%) scale(1.1)}.variant-glass .slider-range{background:linear-gradient(90deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.8))}.variant-detailed .slider-track{height:12px !important;border-radius:6px !important;background:var(--bg-secondary, #f1f5f9) !important;box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.05)}.variant-detailed .slider-track::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(rgba(0, 0, 0, 0.02), transparent);border-radius:6px;pointer-events:none}.variant-detailed .slider-range{height:12px !important;border-radius:6px !important;box-shadow:0 4px 10px rgba(var(--color-primary-rgb, 59, 130, 246), 0.2);background-size:200% 200% !important;animation:livingTrack 3s ease infinite !important}.variant-detailed .slider-range::after{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:rgba(255, 255, 255, 0.2);border-radius:6px 6px 0 0}.variant-detailed .slider-mark-active .slider-mark-dot{transform:translate(-50%, -50%) scale(1.5) !important;background:var(--dd-primary, var(--color-primary, #10b981)) !important;box-shadow:0 0 10px rgba(var(--color-primary-rgb, 59, 130, 246), 0.5) !important}.variant-detailed .slider-thumb{width:24px !important;height:24px !important;background:var(--bg-primary, #ffffff);border:2px solid var(--dd-primary, var(--color-primary, #10b981)) !important;box-shadow:0 4px 12px rgba(0, 0, 0, 0.1), 0 0 0 4px rgba(var(--color-primary-rgb, 59, 130, 246), 0.1)}.variant-detailed .slider-thumb::after{content:"";position:absolute;width:4px;height:10px;background:var(--bg-primary, #e2e8f0);border-radius:2px;left:50%;top:50%;transform:translate(-50%, -50%)}.variant-detailed .slider-thumb:hover{box-shadow:0 8px 24px rgba(0, 0, 0, 0.15), 0 0 0 6px rgba(var(--color-primary-rgb, 59, 130, 246), 0.15);border-color:var(--dd-primary-strong, var(--color-primary-hover, #2563eb)) !important}.variant-detailed .slider-tooltip{background:var(--bg-primary, #1e293b) !important;border-radius:10px !important;padding:8px 12px !important;font-weight:700 !important;box-shadow:0 10px 20px rgba(0, 0, 0, 0.2) !important}.variant-detailed .slider-tooltip::after{border-top-color:var(--border-subtle, #1e293b) !important}.variant-detailed .slider-mark-dot{width:4px !important;height:12px !important;border-radius:2px !important;border:none !important;background:var(--color-primary, #cbd5e1) !important}.variant-circle .slider-track{height:8px !important;background:var(--bg-secondary, #f1f5f9) !important;border:1px solid var(--border-subtle, #e2e8f0)}.variant-circle .slider-thumb{width:28px !important;height:28px !important;background:var(--bg-primary, #ffffff);border:6px solid var(--dd-primary, var(--color-primary, #10b981)) !important;box-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1)}.variant-circle .slider-thumb:hover{transform:translate(-50%, -50%) scale(1.1);box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1)}.variant-circle .slider-range{background:var(--dd-primary, var(--color-primary, #10b981)) !important;height:8px !important}.slider-container[dir=rtl] .slider-start-icon{order:2}.slider-container[dir=rtl] .slider-end-icon{order:0}.slider-container[dir=rtl] .slider-wrapper{order:1}.slider-container[dir=rtl] .slider-thumb{cursor:grab}@keyframes livingTrack{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}';export{a as ui_range_slider}
|