@editora/ui-core 0.1.24 → 0.2.0
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/README.md +339 -5
- package/dist/accordion.cjs.js +13 -12
- package/dist/accordion.esm.js +13 -12
- package/dist/alert-dialog.cjs.js +76 -45
- package/dist/alert-dialog.esm.js +179 -135
- package/dist/alert.cjs.js +41 -32
- package/dist/alert.esm.js +79 -70
- package/dist/animated-beam.cjs.js +42 -50
- package/dist/animated-beam.esm.js +47 -55
- package/dist/animated-list.cjs.js +11 -27
- package/dist/animated-list.esm.js +12 -28
- package/dist/animated-text.cjs.js +4 -4
- package/dist/animated-text.esm.js +4 -4
- package/dist/app-header.cjs.js +5 -5
- package/dist/app-header.esm.js +6 -6
- package/dist/aspect-ratio.cjs.js +10 -12
- package/dist/aspect-ratio.esm.js +11 -13
- package/dist/avatar.cjs.js +13 -17
- package/dist/avatar.esm.js +13 -17
- package/dist/badge.cjs.js +27 -22
- package/dist/badge.esm.js +32 -27
- package/dist/block-controls.cjs.js +11 -12
- package/dist/block-controls.esm.js +8 -9
- package/dist/box.cjs.js +2 -3
- package/dist/box.esm.js +2 -3
- package/dist/breadcrumb.cjs.js +12 -18
- package/dist/breadcrumb.esm.js +11 -17
- package/dist/button.cjs.js +1 -1
- package/dist/button.esm.js +1 -1
- package/dist/{calendar-B3PUKHQm.mjs → calendar-DmxiZrR7.mjs} +126 -117
- package/dist/{calendar-D-mXMgqc.js → calendar-o273O28D.js} +53 -44
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.esm.js +1 -1
- package/dist/card.cjs.js +6 -7
- package/dist/card.esm.js +5 -6
- package/dist/chart.cjs.js +52 -52
- package/dist/chart.esm.js +95 -95
- package/dist/checkbox.cjs.js +19 -15
- package/dist/checkbox.esm.js +19 -15
- package/dist/collapsible.cjs.js +7 -11
- package/dist/collapsible.esm.js +7 -11
- package/dist/color-picker.cjs.js +36 -17
- package/dist/color-picker.esm.js +132 -113
- package/dist/combobox.cjs.js +57 -54
- package/dist/combobox.esm.js +62 -58
- package/dist/command-palette.cjs.js +1 -0
- package/dist/command-palette.esm.js +1 -0
- package/dist/command.cjs.js +32 -14
- package/dist/command.esm.js +46 -28
- package/dist/components/date-time-utils.d.ts.map +1 -1
- package/dist/components/gantt-schedule.d.ts +79 -0
- package/dist/components/gantt-schedule.d.ts.map +1 -0
- package/dist/components/ui-accordion.d.ts.map +1 -1
- package/dist/components/ui-alert-dialog.d.ts +2 -0
- package/dist/components/ui-alert-dialog.d.ts.map +1 -1
- package/dist/components/ui-alert.d.ts.map +1 -1
- package/dist/components/ui-animated-beam.d.ts.map +1 -1
- package/dist/components/ui-animated-list.d.ts.map +1 -1
- package/dist/components/ui-aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui-avatar.d.ts.map +1 -1
- package/dist/components/ui-badge.d.ts.map +1 -1
- package/dist/components/ui-block-controls.d.ts.map +1 -1
- package/dist/components/ui-box.d.ts.map +1 -1
- package/dist/components/ui-breadcrumb.d.ts.map +1 -1
- package/dist/components/ui-button.d.ts.map +1 -1
- package/dist/components/ui-calendar.d.ts.map +1 -1
- package/dist/components/ui-card.d.ts.map +1 -1
- package/dist/components/ui-checkbox.d.ts.map +1 -1
- package/dist/components/ui-collapsible.d.ts.map +1 -1
- package/dist/components/ui-color-picker.d.ts.map +1 -1
- package/dist/components/ui-combobox.d.ts.map +1 -1
- package/dist/components/ui-command-palette.d.ts.map +1 -1
- package/dist/components/ui-command.d.ts.map +1 -1
- package/dist/components/ui-container.d.ts.map +1 -1
- package/dist/components/ui-context-menu.d.ts.map +1 -1
- package/dist/components/ui-data-table.d.ts +7 -0
- package/dist/components/ui-data-table.d.ts.map +1 -1
- package/dist/components/ui-date-picker.d.ts.map +1 -1
- package/dist/components/ui-date-range-picker.d.ts.map +1 -1
- package/dist/components/ui-date-range-time-picker.d.ts.map +1 -1
- package/dist/components/ui-date-time-picker.d.ts.map +1 -1
- package/dist/components/ui-dialog.d.ts +2 -0
- package/dist/components/ui-dialog.d.ts.map +1 -1
- package/dist/components/ui-dock.d.ts.map +1 -1
- package/dist/components/ui-drawer.d.ts.map +1 -1
- package/dist/components/ui-dropdown.d.ts.map +1 -1
- package/dist/components/ui-empty-state.d.ts.map +1 -1
- package/dist/components/ui-field.d.ts.map +1 -1
- package/dist/components/ui-fieldset.d.ts.map +1 -1
- package/dist/components/ui-file-upload.d.ts.map +1 -1
- package/dist/components/ui-floating-toolbar.d.ts.map +1 -1
- package/dist/components/ui-form.d.ts.map +1 -1
- package/dist/components/ui-gantt.d.ts +186 -2
- package/dist/components/ui-gantt.d.ts.map +1 -1
- package/dist/components/ui-icon-cloud.d.ts.map +1 -1
- package/dist/components/ui-inline-edit.d.ts.map +1 -1
- package/dist/components/ui-input.d.ts.map +1 -1
- package/dist/components/ui-marquee.d.ts.map +1 -1
- package/dist/components/ui-menu.d.ts.map +1 -1
- package/dist/components/ui-menubar.d.ts.map +1 -1
- package/dist/components/ui-meter.d.ts.map +1 -1
- package/dist/components/ui-multi-select.d.ts.map +1 -1
- package/dist/components/ui-number-field.d.ts.map +1 -1
- package/dist/components/ui-orbiter.d.ts.map +1 -1
- package/dist/components/ui-pagination.d.ts.map +1 -1
- package/dist/components/ui-password-field.d.ts.map +1 -1
- package/dist/components/ui-pin-input.d.ts.map +1 -1
- package/dist/components/ui-popover.d.ts.map +1 -1
- package/dist/components/ui-progress.d.ts.map +1 -1
- package/dist/components/ui-radio-group.d.ts.map +1 -1
- package/dist/components/ui-radio.d.ts.map +1 -1
- package/dist/components/ui-rating.d.ts +1 -0
- package/dist/components/ui-rating.d.ts.map +1 -1
- package/dist/components/ui-scroll-area.d.ts.map +1 -1
- package/dist/components/ui-section.d.ts.map +1 -1
- package/dist/components/ui-select.d.ts.map +1 -1
- package/dist/components/ui-selection-popup.d.ts.map +1 -1
- package/dist/components/ui-slider.d.ts.map +1 -1
- package/dist/components/ui-sortable.d.ts.map +1 -1
- package/dist/components/ui-spinning-text.d.ts.map +1 -1
- package/dist/components/ui-split-button.d.ts.map +1 -1
- package/dist/components/ui-splitter.d.ts.map +1 -1
- package/dist/components/ui-stepper.d.ts.map +1 -1
- package/dist/components/ui-switch.d.ts.map +1 -1
- package/dist/components/ui-tabs.d.ts.map +1 -1
- package/dist/components/ui-tags-input.d.ts.map +1 -1
- package/dist/components/ui-textarea.d.ts.map +1 -1
- package/dist/components/ui-time-picker.d.ts.map +1 -1
- package/dist/components/ui-toggle-group.d.ts +2 -0
- package/dist/components/ui-toggle-group.d.ts.map +1 -1
- package/dist/components/ui-toggle.d.ts.map +1 -1
- package/dist/components/ui-toolbar.d.ts +2 -0
- package/dist/components/ui-toolbar.d.ts.map +1 -1
- package/dist/components/ui-tooltip.d.ts.map +1 -1
- package/dist/components/ui-transfer-list.d.ts.map +1 -1
- package/dist/components/ui-tree-item.d.ts.map +1 -1
- package/dist/components/ui-tree.d.ts.map +1 -1
- package/dist/components/ui-wizard.d.ts.map +1 -1
- package/dist/container.cjs.js +6 -12
- package/dist/container.esm.js +8 -14
- package/dist/context-menu.cjs.js +8 -8
- package/dist/context-menu.esm.js +42 -41
- package/dist/data-table.cjs.js +18 -15
- package/dist/data-table.esm.js +207 -187
- package/dist/date-field.cjs.js +8 -8
- package/dist/date-field.esm.js +7 -7
- package/dist/date-picker.cjs.js +27 -18
- package/dist/date-picker.esm.js +57 -48
- package/dist/date-range-picker.cjs.js +22 -17
- package/dist/date-range-picker.esm.js +31 -26
- package/dist/date-range-time-picker.cjs.js +26 -19
- package/dist/date-range-time-picker.esm.js +23 -16
- package/dist/date-time-picker.cjs.js +23 -16
- package/dist/date-time-picker.esm.js +88 -81
- package/dist/{date-time-utils-BTlxnz5j.mjs → date-time-utils-B4hAkt36.mjs} +75 -68
- package/dist/date-time-utils-DdigV4hs.js +1 -0
- package/dist/dialog.cjs.js +57 -41
- package/dist/dialog.esm.js +84 -51
- package/dist/dock.cjs.js +16 -30
- package/dist/dock.esm.js +26 -40
- package/dist/drawer.cjs.js +8 -12
- package/dist/drawer.esm.js +6 -10
- package/dist/dropdown.cjs.js +8 -6
- package/dist/dropdown.esm.js +33 -30
- package/dist/empty-state.cjs.js +17 -15
- package/dist/empty-state.esm.js +13 -11
- package/dist/field.cjs.js +22 -13
- package/dist/field.esm.js +54 -45
- package/dist/fieldset.cjs.js +18 -11
- package/dist/fieldset.esm.js +20 -13
- package/dist/file-upload.cjs.js +77 -35
- package/dist/file-upload.esm.js +152 -110
- package/dist/floating-toolbar.cjs.js +6 -7
- package/dist/floating-toolbar.esm.js +8 -9
- package/dist/form.cjs.js +20 -23
- package/dist/form.esm.js +20 -23
- package/dist/gantt.cjs.js +525 -110
- package/dist/gantt.esm.js +1882 -377
- package/dist/hover-card.cjs.js +7 -7
- package/dist/hover-card.esm.js +7 -7
- package/dist/icon-cloud.cjs.js +19 -36
- package/dist/icon-cloud.esm.js +41 -58
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +108 -104
- package/dist/inline-edit.cjs.js +47 -19
- package/dist/inline-edit.esm.js +66 -38
- package/dist/input.cjs.js +44 -37
- package/dist/input.esm.js +59 -52
- package/dist/layout.cjs.js +3 -3
- package/dist/layout.esm.js +3 -3
- package/dist/marquee.cjs.js +7 -10
- package/dist/marquee.esm.js +7 -10
- package/dist/menu.cjs.js +8 -24
- package/dist/menu.esm.js +52 -72
- package/dist/menubar.cjs.js +9 -31
- package/dist/menubar.esm.js +127 -153
- package/dist/meter.cjs.js +4 -9
- package/dist/meter.esm.js +6 -11
- package/dist/multi-select.cjs.js +48 -35
- package/dist/multi-select.esm.js +67 -53
- package/dist/navigation-menu.cjs.js +10 -10
- package/dist/navigation-menu.esm.js +33 -33
- package/dist/number-field.cjs.js +27 -16
- package/dist/number-field.esm.js +36 -25
- package/dist/odometer.cjs.js +5 -5
- package/dist/odometer.esm.js +3 -3
- package/dist/orbiter.cjs.js +11 -28
- package/dist/orbiter.esm.js +28 -45
- package/dist/overlay-motion-B56x1GoY.js +49 -0
- package/dist/overlay-motion-BX3dPLay.mjs +120 -0
- package/dist/pagination.cjs.js +28 -25
- package/dist/pagination.esm.js +54 -51
- package/dist/password-field.cjs.js +38 -33
- package/dist/password-field.esm.js +62 -57
- package/dist/pin-input.cjs.js +17 -13
- package/dist/pin-input.esm.js +23 -19
- package/dist/plugin-panel.cjs.js +1 -1
- package/dist/plugin-panel.esm.js +1 -1
- package/dist/popover.cjs.js +16 -28
- package/dist/popover.esm.js +29 -45
- package/dist/portal-DeaM1tYY.mjs +121 -0
- package/dist/portal-XbYR3m_q.js +1 -0
- package/dist/portal.d.ts +3 -1
- package/dist/portal.d.ts.map +1 -1
- package/dist/{positioner-D0VGxtYU.mjs → positioner-BE8Nbho2.mjs} +5 -3
- package/dist/{positioner-D_fqyx_j.js → positioner-DZ1FW6A9.js} +1 -1
- package/dist/positioner.cjs.js +1 -1
- package/dist/positioner.esm.js +1 -1
- package/dist/primitives/overlay-motion.d.ts +47 -0
- package/dist/primitives/overlay-motion.d.ts.map +1 -0
- package/dist/primitives/positioner.d.ts.map +1 -1
- package/dist/progress.cjs.js +11 -16
- package/dist/progress.esm.js +37 -42
- package/dist/quick-actions.cjs.js +13 -13
- package/dist/quick-actions.esm.js +11 -11
- package/dist/radio-group.cjs.js +50 -26
- package/dist/radio-group.esm.js +53 -29
- package/dist/radio.cjs.js +15 -12
- package/dist/radio.esm.js +15 -12
- package/dist/rating.cjs.js +11 -15
- package/dist/rating.esm.js +48 -50
- package/dist/{runtime-CFnK53iC.mjs → runtime-CQM6wZOc.mjs} +498 -514
- package/dist/runtime-DxCl0A5q.js +5 -0
- package/dist/runtime.cjs.js +1 -1
- package/dist/runtime.d.ts +3 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.esm.js +36 -32
- package/dist/scroll-area.cjs.js +3 -4
- package/dist/scroll-area.esm.js +3 -4
- package/dist/section.cjs.js +2 -4
- package/dist/section.esm.js +2 -4
- package/dist/select.cjs.js +40 -73
- package/dist/select.esm.js +55 -87
- package/dist/selection-popup.cjs.js +3 -4
- package/dist/selection-popup.esm.js +3 -4
- package/dist/semantic-tokens.d.ts +17 -0
- package/dist/semantic-tokens.d.ts.map +1 -0
- package/dist/sidebar.cjs.js +22 -22
- package/dist/sidebar.esm.js +25 -25
- package/dist/skeleton.cjs.js +2 -2
- package/dist/skeleton.esm.js +2 -2
- package/dist/slider.cjs.js +22 -26
- package/dist/slider.esm.js +25 -29
- package/dist/sortable.cjs.js +4 -5
- package/dist/sortable.esm.js +4 -5
- package/dist/spinning-text.cjs.js +4 -13
- package/dist/spinning-text.esm.js +4 -13
- package/dist/split-button.cjs.js +5 -5
- package/dist/split-button.esm.js +15 -14
- package/dist/splitter.cjs.js +52 -10
- package/dist/splitter.esm.js +55 -13
- package/dist/stepper.cjs.js +31 -65
- package/dist/stepper.esm.js +32 -66
- package/dist/switch.cjs.js +20 -22
- package/dist/switch.esm.js +20 -22
- package/dist/table.cjs.js +5 -5
- package/dist/table.esm.js +20 -20
- package/dist/tabs.cjs.js +91 -21
- package/dist/tabs.esm.js +182 -112
- package/dist/tags-input.cjs.js +41 -15
- package/dist/tags-input.esm.js +73 -47
- package/dist/textarea.cjs.js +32 -33
- package/dist/textarea.esm.js +38 -39
- package/dist/theme.d.ts +25 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/time-field.cjs.js +7 -7
- package/dist/time-field.esm.js +6 -6
- package/dist/time-picker.cjs.js +16 -13
- package/dist/time-picker.esm.js +27 -24
- package/dist/timeline.cjs.js +10 -10
- package/dist/timeline.esm.js +7 -7
- package/dist/toggle-group.cjs.js +13 -13
- package/dist/toggle-group.esm.js +66 -61
- package/dist/toggle.cjs.js +52 -34
- package/dist/toggle.esm.js +80 -62
- package/dist/toolbar.cjs.js +14 -14
- package/dist/toolbar.esm.js +41 -33
- package/dist/tooltip.cjs.js +3 -3
- package/dist/tooltip.esm.js +39 -33
- package/dist/transfer-list.cjs.js +28 -29
- package/dist/transfer-list.esm.js +28 -29
- package/dist/{tree-B_oQput6.mjs → tree-33fVNnaf.mjs} +6 -5
- package/dist/{tree-SivHxcAy.js → tree-Dc02MChE.js} +6 -5
- package/dist/tree-item.cjs.js +9 -8
- package/dist/tree-item.esm.js +13 -12
- package/dist/tree.cjs.js +1 -1
- package/dist/tree.esm.js +1 -1
- package/dist/{ui-button-Co8Sid6t.mjs → ui-button-C3OmI7Sn.mjs} +152 -154
- package/dist/{ui-button-BPrzJScZ.js → ui-button-CnLwXBnx.js} +107 -109
- package/dist/wizard.cjs.js +39 -36
- package/dist/wizard.esm.js +39 -36
- package/package.json +1 -1
- package/dist/date-time-utils-y3AvNvGe.js +0 -1
- package/dist/portal-DgpQ3Jo1.js +0 -1
- package/dist/portal-bR42gHvG.mjs +0 -118
- package/dist/runtime-DwE-tizc.js +0 -1
package/dist/select.cjs.js
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const $=require("./ElementBase-DxbvhLJs.js"),I=require("./overlay-motion-B56x1GoY.js"),L=require("./control-name-BmoI1m3a.js"),_=require("./collection-qv8A8rq4.js"),F=require("./listbox-CTpRpuF7.js"),D=`
|
|
2
|
+
${I.OVERLAY_MOTION_CSS}
|
|
3
|
+
|
|
2
4
|
:host {
|
|
3
5
|
--ui-select-width: var(--ui-width, min(340px, 100%));
|
|
4
|
-
--ui-select-min-height: var(--base-select-height-md,
|
|
5
|
-
--ui-select-radius: var(--base-select-radius, var(--ui-radius,
|
|
6
|
-
--ui-select-padding-x: var(--base-select-padding-x, 12px);
|
|
6
|
+
--ui-select-min-height: var(--base-select-height-md, var(--ui-control-height-2, 32px));
|
|
7
|
+
--ui-select-radius: var(--base-select-radius, var(--ui-control-radius-2, var(--ui-radius, 6px)));
|
|
8
|
+
--ui-select-padding-x: var(--base-select-padding-x, var(--ui-control-padding-inline-2, 12px));
|
|
9
|
+
--ui-select-font-size: var(--ui-control-font-size-2, 14px);
|
|
7
10
|
|
|
8
11
|
--ui-select-bg: var(--base-select-bg, var(--ui-color-surface, #ffffff));
|
|
9
|
-
--ui-select-border: var(--base-select-border, 1px solid color-
|
|
12
|
+
--ui-select-border: var(--base-select-border, 1px solid var(--ui-color-line, var(--ui-color-border, #cbd5e1)));
|
|
10
13
|
--ui-select-border-color: color-mix(in srgb, var(--ui-select-border) 100%, transparent);
|
|
11
14
|
--ui-select-text: var(--ui-color-text, #0f172a);
|
|
12
15
|
--ui-select-muted: var(--ui-color-muted, #526175);
|
|
13
|
-
--ui-select-placeholder: color-mix(in srgb, var(--ui-select-text)
|
|
16
|
+
--ui-select-placeholder: var(--ui-color-placeholder, color-mix(in srgb, var(--ui-select-text) 62%, transparent));
|
|
14
17
|
--ui-select-focus: var(--ui-color-focus-ring, #2563eb);
|
|
15
18
|
--ui-select-accent: var(--ui-color-primary, #2563eb);
|
|
16
19
|
--ui-select-success: var(--ui-color-success, #15803d);
|
|
@@ -19,14 +22,12 @@
|
|
|
19
22
|
|
|
20
23
|
--ui-select-shadow: var(--base-select-shadow, none);
|
|
21
24
|
--ui-select-elevation: var(--ui-select-shadow);
|
|
22
|
-
--ui-select-menu-bg: var(--base-select-menu-bg, color-
|
|
25
|
+
--ui-select-menu-bg: var(--base-select-menu-bg, var(--color-panel-solid, var(--ui-color-surface, #ffffff)));
|
|
23
26
|
--ui-select-menu-color: var(--base-select-menu-color, var(--ui-select-text));
|
|
24
|
-
--ui-select-menu-border-color: color-mix(in srgb, var(--ui-select-border-color) 82%, transparent);
|
|
27
|
+
--ui-select-menu-border-color: var(--ui-color-line-subtle, color-mix(in srgb, var(--ui-select-border-color) 82%, transparent));
|
|
25
28
|
--ui-select-menu-border: 1px solid var(--ui-select-menu-border-color);
|
|
26
|
-
--ui-select-menu-radius: var(--base-select-menu-radius, var(--ui-
|
|
27
|
-
--ui-select-menu-shadow:
|
|
28
|
-
0 14px 34px rgba(15, 23, 42, 0.16),
|
|
29
|
-
0 3px 10px rgba(15, 23, 42, 0.08);
|
|
29
|
+
--ui-select-menu-radius: var(--base-select-menu-radius, calc(var(--ui-radius, 6px) + 2px));
|
|
30
|
+
--ui-select-menu-shadow: var(--shadow-5, 0 14px 34px rgba(15, 23, 42, 0.16));
|
|
30
31
|
--ui-select-menu-padding: 0px;
|
|
31
32
|
--ui-select-menu-gap: 8px;
|
|
32
33
|
--ui-select-menu-max-height: min(320px, var(--ui-select-available-height, 320px));
|
|
@@ -98,6 +99,7 @@
|
|
|
98
99
|
}
|
|
99
100
|
|
|
100
101
|
.control {
|
|
102
|
+
box-sizing: border-box;
|
|
101
103
|
min-inline-size: 0;
|
|
102
104
|
position: relative;
|
|
103
105
|
display: block;
|
|
@@ -117,10 +119,14 @@
|
|
|
117
119
|
|
|
118
120
|
.control[data-open="true"],
|
|
119
121
|
.control:focus-within {
|
|
120
|
-
border-color:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
border-color: var(--ui-ring-color, var(--ui-select-focus));
|
|
123
|
+
outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-select-focus));
|
|
124
|
+
outline-offset: -1px;
|
|
125
|
+
box-shadow: var(--ui-select-elevation);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.control:hover:not(:focus-within):not([data-open="true"]) {
|
|
129
|
+
border-color: var(--ui-color-line-strong, var(--ui-select-border-color));
|
|
124
130
|
}
|
|
125
131
|
|
|
126
132
|
.leading,
|
|
@@ -159,6 +165,7 @@
|
|
|
159
165
|
}
|
|
160
166
|
|
|
161
167
|
.trigger {
|
|
168
|
+
display: block;
|
|
162
169
|
inline-size: 100%;
|
|
163
170
|
min-inline-size: 0;
|
|
164
171
|
block-size: calc(var(--ui-select-min-height) - 2px);
|
|
@@ -167,8 +174,8 @@
|
|
|
167
174
|
outline: none;
|
|
168
175
|
background: transparent;
|
|
169
176
|
color: var(--ui-select-text);
|
|
170
|
-
font: 500
|
|
171
|
-
padding:
|
|
177
|
+
font: 500 var(--ui-select-font-size)/1.35 "Inter", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
178
|
+
padding: 0 calc(var(--ui-select-padding-x) + 24px) 0 var(--ui-select-padding-x);
|
|
172
179
|
margin: 0;
|
|
173
180
|
cursor: pointer;
|
|
174
181
|
text-align: left;
|
|
@@ -270,9 +277,7 @@
|
|
|
270
277
|
overflow-x: hidden;
|
|
271
278
|
border: var(--ui-select-menu-border);
|
|
272
279
|
border-radius: var(--ui-select-menu-radius);
|
|
273
|
-
background:
|
|
274
|
-
linear-gradient(180deg, color-mix(in srgb, var(--ui-select-accent) 3%, transparent) 0%, transparent 100%),
|
|
275
|
-
var(--ui-select-menu-bg);
|
|
280
|
+
background: var(--ui-select-menu-bg);
|
|
276
281
|
color: var(--ui-select-menu-color);
|
|
277
282
|
box-shadow: var(--ui-select-menu-shadow);
|
|
278
283
|
padding: var(--ui-select-menu-padding);
|
|
@@ -301,16 +306,6 @@
|
|
|
301
306
|
background-clip: padding-box;
|
|
302
307
|
}
|
|
303
308
|
|
|
304
|
-
.panel[data-placement="top"] .menu {
|
|
305
|
-
transform-origin: bottom center;
|
|
306
|
-
animation: ui-select-menu-enter-top 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
.panel[data-placement="bottom"] .menu {
|
|
310
|
-
transform-origin: top center;
|
|
311
|
-
animation: ui-select-menu-enter-bottom 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
309
|
.menu-group {
|
|
315
310
|
color: color-mix(in srgb, var(--ui-select-muted) 88%, transparent);
|
|
316
311
|
font: 700 11px/1.3 "Inter", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
@@ -475,17 +470,14 @@
|
|
|
475
470
|
|
|
476
471
|
:host([size="sm"]),
|
|
477
472
|
:host([size="1"]) {
|
|
478
|
-
--ui-select-min-height:
|
|
479
|
-
--ui-select-padding-x:
|
|
473
|
+
--ui-select-min-height: var(--base-select-height-sm, var(--ui-control-height-1, 24px));
|
|
474
|
+
--ui-select-padding-x: var(--ui-control-padding-inline-1, 8px);
|
|
475
|
+
--ui-select-font-size: var(--ui-control-font-size-1, 12px);
|
|
476
|
+
--ui-select-radius: var(--ui-control-radius-1, var(--ui-radius, 6px));
|
|
480
477
|
--ui-select-menu-gap: 6px;
|
|
481
478
|
--ui-select-menu-item-height: 34px;
|
|
482
479
|
}
|
|
483
480
|
|
|
484
|
-
:host([size="sm"]) .trigger,
|
|
485
|
-
:host([size="1"]) .trigger {
|
|
486
|
-
font-size: 12px;
|
|
487
|
-
}
|
|
488
|
-
|
|
489
481
|
:host([size="sm"]) .menu-item,
|
|
490
482
|
:host([size="1"]) .menu-item {
|
|
491
483
|
font-size: 12px;
|
|
@@ -494,17 +486,14 @@
|
|
|
494
486
|
|
|
495
487
|
:host([size="lg"]),
|
|
496
488
|
:host([size="3"]) {
|
|
497
|
-
--ui-select-min-height:
|
|
498
|
-
--ui-select-padding-x:
|
|
489
|
+
--ui-select-min-height: var(--base-select-height-lg, var(--ui-control-height-3, 40px));
|
|
490
|
+
--ui-select-padding-x: var(--ui-control-padding-inline-3, 16px);
|
|
491
|
+
--ui-select-font-size: var(--ui-control-font-size-3, 16px);
|
|
492
|
+
--ui-select-radius: var(--ui-control-radius-3, var(--ui-radius, 6px));
|
|
499
493
|
--ui-select-menu-gap: 10px;
|
|
500
494
|
--ui-select-menu-item-height: 42px;
|
|
501
495
|
}
|
|
502
496
|
|
|
503
|
-
:host([size="lg"]) .trigger,
|
|
504
|
-
:host([size="3"]) .trigger {
|
|
505
|
-
font-size: 15px;
|
|
506
|
-
}
|
|
507
|
-
|
|
508
497
|
:host([size="lg"]) .menu-item,
|
|
509
498
|
:host([size="3"]) .menu-item {
|
|
510
499
|
font-size: 14px;
|
|
@@ -655,7 +644,7 @@
|
|
|
655
644
|
:host([invalid]) .control,
|
|
656
645
|
:host([data-invalid="true"]) .control {
|
|
657
646
|
box-shadow:
|
|
658
|
-
0 0 0
|
|
647
|
+
0 0 0 1px var(--ui-select-error),
|
|
659
648
|
var(--ui-select-elevation);
|
|
660
649
|
}
|
|
661
650
|
|
|
@@ -669,28 +658,6 @@
|
|
|
669
658
|
}
|
|
670
659
|
}
|
|
671
660
|
|
|
672
|
-
@keyframes ui-select-menu-enter-bottom {
|
|
673
|
-
from {
|
|
674
|
-
opacity: 0;
|
|
675
|
-
transform: translateY(-4px) scale(0.985);
|
|
676
|
-
}
|
|
677
|
-
to {
|
|
678
|
-
opacity: 1;
|
|
679
|
-
transform: translateY(0) scale(1);
|
|
680
|
-
}
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
@keyframes ui-select-menu-enter-top {
|
|
684
|
-
from {
|
|
685
|
-
opacity: 0;
|
|
686
|
-
transform: translateY(4px) scale(0.985);
|
|
687
|
-
}
|
|
688
|
-
to {
|
|
689
|
-
opacity: 1;
|
|
690
|
-
transform: translateY(0) scale(1);
|
|
691
|
-
}
|
|
692
|
-
}
|
|
693
|
-
|
|
694
661
|
@media (prefers-reduced-motion: reduce) {
|
|
695
662
|
.control,
|
|
696
663
|
.indicator,
|
|
@@ -742,8 +709,8 @@
|
|
|
742
709
|
border-bottom-color: CanvasText;
|
|
743
710
|
}
|
|
744
711
|
}
|
|
745
|
-
`;function h(p){if(p==null)return!1;const e=String(p).toLowerCase();return e!=="false"&&e!=="0"}function v(p){return String(p).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function D(p){if(!p)return null;const e=String(p).trim();return e?e==="none"?"4px":e==="full"?"999px":e==="large"?"16px":/^-?\\d+(\\.\\d+)?$/.test(e)?`${e}px`:e:null}const C=new Set(["value","disabled","loading","required","placeholder","name","tabindex","headless","size","variant","tone","density","radius","shape","elevation","option-border","show-check","check-placement","label","description","error","aria-label","validation","invalid","data-invalid","data-valid","close-on-scroll"]);class I extends q.ElementBase{constructor(){super(),this._controlEl=null,this._triggerEl=null,this._valueEl=null,this._panelEl=null,this._menuEl=null,this._observer=null,this._formUnregister=null,this._optionsSyncRaf=0,this._panelPlacementRaf=0,this._uid=Math.random().toString(36).slice(2,8),this._options=[],this._menuItems=[],this._optionsFingerprint="",this._menuRenderFingerprint="",this._open=!1,this._activeIndex=-1,this._placement="bottom",this._onRootClick=this._onRootClick.bind(this),this._onRootKeyDown=this._onRootKeyDown.bind(this),this._onRootPointerDown=this._onRootPointerDown.bind(this),this._onRootPointerMove=this._onRootPointerMove.bind(this),this._onSlotChange=this._onSlotChange.bind(this),this._onDocumentPointerDown=this._onDocumentPointerDown.bind(this),this._onWindowResize=this._onWindowResize.bind(this),this._onWindowScroll=this._onWindowScroll.bind(this)}static get observedAttributes(){return["aria-description","aria-describedby","value","disabled","loading","required","placeholder","name","tabindex","headless","size","variant","tone","density","radius","shape","elevation","option-border","show-check","check-placement","label","description","error","aria-label","validation","invalid","data-invalid","data-valid","close-on-scroll"]}connectedCallback(){super.connectedCallback(),this.root.addEventListener("click",this._onRootClick),this.root.addEventListener("keydown",this._onRootKeyDown),this.root.addEventListener("pointerdown",this._onRootPointerDown),this.root.addEventListener("pointermove",this._onRootPointerMove,{passive:!0}),this.root.addEventListener("slotchange",this._onSlotChange),this._observer=new MutationObserver(e=>{e.some(i=>{if(!(i.target instanceof HTMLElement)||i.target===this)return i.type==="childList";const s=i.target.tagName.toLowerCase();return s==="option"||s==="optgroup"})&&this._scheduleOptionsSync()}),this._observer.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value","selected","disabled","label","slot"]}),this._attachFormRegistration()}disconnectedCallback(){this.root.removeEventListener("click",this._onRootClick),this.root.removeEventListener("keydown",this._onRootKeyDown),this.root.removeEventListener("pointerdown",this._onRootPointerDown),this.root.removeEventListener("pointermove",this._onRootPointerMove),this.root.removeEventListener("slotchange",this._onSlotChange),this._teardownOpenListeners(),this._observer&&(this._observer.disconnect(),this._observer=null),this._cancelOptionsSync(),this._cancelPanelPlacement(),this._formUnregister&&(this._formUnregister(),this._formUnregister=null),super.disconnectedCallback()}shouldRenderOnAttributeChange(e){return!C.has(e)}attributeChangedCallback(e,t,i){if(t!==i){if(e==="name"&&this._attachFormRegistration(),this._triggerEl&&C.has(e)){(e==="value"||e==="placeholder"||e==="required")&&(this._syncOptionsData(),this._open&&this._renderMenu()),(e==="show-check"||e==="check-placement")&&this._open&&this._renderMenu(),this._syncControlState(),this.disabled&&this._open&&this._closeMenu({restoreFocus:!1});return}super.attributeChangedCallback(e,t,i)}}get value(){return this.getAttribute("value")||""}set value(e){const t=String(e||"");t!==this.value&&this.setAttribute("value",t)}get disabled(){return h(this.getAttribute("disabled"))||h(this.getAttribute("loading"))}set disabled(e){e?this.setAttribute("disabled",""):this.removeAttribute("disabled")}get closeOnScroll(){return h(this.getAttribute("close-on-scroll"))||!this.hasAttribute("close-on-scroll")}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get showCheck(){return h(this.getAttribute("show-check"))}set showCheck(e){e?this.setAttribute("show-check","true"):this.removeAttribute("show-check")}focus(e){if(this._triggerEl){this._triggerEl.focus(e);return}super.focus(e)}blur(){if(this._triggerEl){this._triggerEl.blur();return}super.blur()}_onSlotChange(){this.requestRender()}_onRootPointerDown(e){const t=e.target;t&&t.closest(".menu-item")&&e.preventDefault()}_onRootPointerMove(e){if(!this._open)return;const i=e.target?.closest(".menu-item[data-index]");if(!i)return;const s=Number(i.dataset.index||"-1"),o=this._options[s];!o||o.disabled||s===this._activeIndex||this._setActiveIndex(s)}_onRootClick(e){const t=e.target;if(!t)return;if(t.closest(".trigger")){if(this.disabled)return;this._open?this._closeMenu({restoreFocus:!1}):this._openMenu();return}const i=t.closest(".menu-item[data-index]");if(!i)return;const s=Number(i.dataset.index||"-1"),o=this._options[s];!o||o.disabled||(this._applyValueFromUser(o.value),this._closeMenu())}_onRootKeyDown(e){const t=e.target;if(!(!t||t!==this._triggerEl&&!t.closest(".menu"))&&!this.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),this._open?this._moveActive(1):this._openMenu();break;case"ArrowUp":e.preventDefault(),this._open?this._moveActive(-1):this._openMenu();break;case"Home":if(!this._open)return;e.preventDefault(),this._setActiveIndex(this._firstEnabledIndex());break;case"End":if(!this._open)return;e.preventDefault(),this._setActiveIndex(this._lastEnabledIndex());break;case"Enter":case" ":{if(e.preventDefault(),!this._open){this._openMenu();return}this._selectActiveOption();break}case"Escape":if(!this._open)return;e.preventDefault(),this._closeMenu();break;case"Tab":this._open&&this._closeMenu({restoreFocus:!1});break}}_onDocumentPointerDown(e){if(!this._open)return;const t=typeof e.composedPath=="function"?e.composedPath():[];t.includes(this)||t.includes(this.root)||this._closeMenu({restoreFocus:!1})}_isInternalEvent(e){const t=e.target,i=typeof e.composedPath=="function"?e.composedPath():[];return i.includes(this)||i.includes(this.root)||t instanceof Node&&(t===this||this.root.contains(t)||this._controlEl?.contains(t)||this._panelEl?.contains(t)||this._menuEl?.contains(t))?!0:!!(this._controlEl&&i.includes(this._controlEl)||this._triggerEl&&i.includes(this._triggerEl)||this._panelEl&&i.includes(this._panelEl)||this._menuEl&&i.includes(this._menuEl))}_onWindowResize(){this._open&&this._schedulePanelPlacement()}_onWindowScroll(e){if(this._open&&!this._isInternalEvent(e)){if(this.closeOnScroll){this._closeMenu({restoreFocus:!1});return}this._schedulePanelPlacement()}}_attachOpenListeners(){document.addEventListener("pointerdown",this._onDocumentPointerDown,!0),window.addEventListener("resize",this._onWindowResize,{passive:!0}),window.addEventListener("scroll",this._onWindowScroll,{passive:!0,capture:!0})}_teardownOpenListeners(){document.removeEventListener("pointerdown",this._onDocumentPointerDown,!0),window.removeEventListener("resize",this._onWindowResize),window.removeEventListener("scroll",this._onWindowScroll,!0)}_scheduleOptionsSync(){this._optionsSyncRaf||(this._optionsSyncRaf=requestAnimationFrame(()=>{this._optionsSyncRaf=0,this._syncOptionsData()&&this._open?this._renderMenu():this._syncControlState()}))}_cancelOptionsSync(){this._optionsSyncRaf&&(cancelAnimationFrame(this._optionsSyncRaf),this._optionsSyncRaf=0)}_schedulePanelPlacement(){this._panelPlacementRaf||(this._panelPlacementRaf=requestAnimationFrame(()=>{this._panelPlacementRaf=0,this._syncPanelPlacement()}))}_cancelPanelPlacement(){this._panelPlacementRaf&&(cancelAnimationFrame(this._panelPlacementRaf),this._panelPlacementRaf=0)}_emitValue(e,t){this.dispatchEvent(new CustomEvent(e,{detail:{value:t},bubbles:!0,composed:!0}))}_applyValueFromUser(e){(this.getAttribute("value")||"")!==e&&(this.setAttribute("value",e),this._emitValue("input",e),this._emitValue("change",e))}_attachFormRegistration(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);const e=this.getAttribute("name");if(!e)return;const t=this.getRootNode(),s=(t instanceof ShadowRoot?t.host:null)?.closest?.("ui-form")||this.closest("ui-form");!s||typeof s.registerField!="function"||(this._formUnregister=s.registerField(e,{name:e,getValue:()=>this.value,setValue:o=>{this.value=o},validate:async()=>{if(!(h(this.getAttribute("required"))||this.hasAttribute("required")))return{valid:!0};const l=this.value.trim().length>0;return{valid:l,message:l?void 0:"This field is required."}},setError:o=>{o?(this.setAttribute("validation","error"),this.setAttribute("error",o)):(this.getAttribute("validation")==="error"&&this.removeAttribute("validation"),this.removeAttribute("error"))}}))}_hasSlotContent(e){return!!this.querySelector(`[slot="${e}"]`)}_setValueAttr(e){const t=String(e??"");this.getAttribute("value")!==t&&this.setAttribute("value",t)}_buildOptionsFromChildren(){const e=[],t=(r,u)=>{const n=(r.label||r.textContent||r.value||"").trim(),a=String(r.value??"");e.push({value:a,label:n||a,disabled:!!r.disabled,group:u})};Array.from(this.children).filter(r=>r instanceof HTMLElement?!r.hasAttribute("slot"):!1).forEach(r=>{const u=r.tagName.toLowerCase();if(u==="option"){t(r,"");return}if(u==="optgroup"){const n=r,a=(n.label||"").trim();Array.from(n.children).forEach(c=>{c instanceof HTMLOptionElement&&e.push({value:String(c.value??""),label:(c.label||c.textContent||c.value||"").trim()||String(c.value??""),disabled:!!c.disabled||!!n.disabled,group:a})})}});const s=(this.getAttribute("placeholder")||"").trim(),o=h(this.getAttribute("required"))||this.hasAttribute("required"),l=e.some(r=>r.value==="");return s&&!o&&!l&&e.unshift({value:"",label:s,disabled:!1,group:""}),e}_computeOptionsFingerprint(e){return e.map(t=>`${t.value}${t.label}${t.disabled?"1":"0"}${t.group}`).join("")}_firstEnabledIndex(){return _.findFirstEnabledIndex(this._options,e=>e.disabled)}_lastEnabledIndex(){return _.findLastEnabledIndex(this._options,e=>e.disabled)}_selectedIndex(){return _.findIndexByValue(this._options,this.value,e=>e.value)}_checkPlacement(){return this.getAttribute("check-placement")==="start"?"start":"end"}_syncOptionsData(){const e=this._buildOptionsFromChildren(),t=this._computeOptionsFingerprint(e),i=t!==this._optionsFingerprint;this._options=e,this._optionsFingerprint=t;const s=this.getAttribute("value")||"",o=this.hasAttribute("value"),l=this._options.some(a=>a.value===s),r=h(this.getAttribute("required"))||this.hasAttribute("required"),u=this._options.find(a=>!a.disabled)?.value||"",n=!r&&this._options.some(a=>a.value==="")?"":u;return o?l||this._setValueAttr(n):this._setValueAttr(n),i}_currentDisplayText(){const e=this.value,t=(this.getAttribute("placeholder")||"").trim();return e===""&&t?t:this._options.find(s=>s.value===e)?.label||e}_setActiveIndex(e){if(!this._menuEl||e===this._activeIndex)return;this._activeIndex=e;const t=e>=0&&this._menuItems[e]||null;this._menuEl.setActiveItem(t,{focus:!1,owner:this._triggerEl,scroll:!0})}_moveActive(e){if(!this._menuEl||!this._options.length)return;const t=this._activeIndex>=0?this._menuItems[this._activeIndex]:null,i=this._menuEl.move(e,{current:t,focus:!1,owner:this._triggerEl,scroll:!0});if(!i)return;const s=Number(i.dataset.index||"-1");s>=0&&(this._activeIndex=s)}_selectActiveOption(){if(this._activeIndex<0)return;const e=this._options[this._activeIndex];!e||e.disabled||(this._applyValueFromUser(e.value),this._closeMenu())}_renderMenu(){const e=this._menuEl;if(!e)return;const t=`${this._optionsFingerprint}${this.showCheck?"1":"0"}${this._checkPlacement()}`;if(this._menuItems.length>0&&t===this._menuRenderFingerprint&&this._menuItems.length===this._options.length){this._syncMenuSelectionState(),this._schedulePanelPlacement();return}if(e.replaceChildren(),this._menuItems=[],!this._options.length){const r=document.createElement("p");r.className="menu-empty",r.textContent="No options available",e.appendChild(r),this._menuRenderFingerprint=t,e.refresh();return}let s="__none__";this._options.forEach((r,u)=>{if(r.group&&r.group!==s){const d=document.createElement("div");d.className="menu-group",d.setAttribute("role","presentation"),d.textContent=r.group,e.appendChild(d),s=r.group}r.group||(s="__none__");const n=document.createElement("button");n.type="button",n.className="menu-item",n.id=`${this._uid}-opt-${u}`,n.setAttribute("role","option"),n.setAttribute("data-index",String(u)),n.setAttribute("data-value",r.value),n.setAttribute("aria-selected",r.value===this.value?"true":"false"),n.setAttribute("aria-disabled",r.disabled?"true":"false"),n.tabIndex=-1,r.disabled&&(n.disabled=!0);const a=document.createElement("span");a.className="menu-item-label",a.textContent=r.label;const c=document.createElement("span");c.className="menu-item-check",c.setAttribute("aria-hidden","true");const b=this.showCheck,m=this._checkPlacement();c.hidden=!b,n.setAttribute("data-check-placement",m),b&&m==="start"?n.append(c,a):n.append(a,c),e.appendChild(n),this._menuItems.push(n)});const o=this._menuItems[0]||null,l=this._menuItems[this._menuItems.length-1]||null;o&&o.setAttribute("data-edge-start","true"),l&&l.setAttribute("data-edge-end","true"),e.refresh(),this._menuRenderFingerprint=t,this._syncMenuSelectionState(),this._schedulePanelPlacement()}_syncMenuSelectionState(){if(!this._menuEl)return;const e=this._selectedIndex();this._menuItems.forEach(i=>{const s=Number(i.dataset.index||"-1");i.setAttribute("aria-selected",s===e?"true":"false")}),this._activeIndex=L.resolveListboxActiveIndex(this._options,{selectedIndex:e,getDisabled:i=>i.disabled});const t=this._activeIndex>=0&&this._menuItems[this._activeIndex]||null;this._menuEl.setActiveItem(t,{focus:!1,owner:this._triggerEl,scroll:!0})}_syncPanelPlacement(){const e=this._panelEl,t=this._controlEl,i=this._menuEl;if(!e||!t||!i||!this._open)return;const s=t.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight||0,l=Math.max(0,o-s.bottom-12),r=Math.max(0,s.top-12),u=Math.min(Math.max(i.scrollHeight,i.offsetHeight)+4,320),n=l<u&&r>l;this._placement=n?"top":"bottom",e.setAttribute("data-placement",this._placement),e.style.setProperty("--ui-select-available-height",`${Math.floor(n?r:l)}px`)}_openMenu(){this._open||this.disabled||(this._cancelPanelPlacement(),this._syncOptionsData(),this._open=!0,this._syncControlState(),this._renderMenu(),this._attachOpenListeners())}_closeMenu(e={}){if(this._open&&(this._open=!1,this._activeIndex=-1,this._cancelPanelPlacement(),this._teardownOpenListeners(),this._syncControlState(),e.restoreFocus!==!1))try{this._triggerEl?.focus({preventScroll:!0})}catch{this._triggerEl?.focus()}}_syncControlState(){const e=this._triggerEl,t=this._controlEl,i=this._valueEl,s=this._panelEl;if(!e||!t||!i||!s)return;const o=this.getAttribute("label")||"",l=this.getAttribute("description")||"",r=this.getAttribute("error")||"",u=this.getAttribute("aria-label")||o||"Select",n=h(this.getAttribute("loading")),a=h(this.getAttribute("required"))||this.hasAttribute("required"),c=this.getAttribute("tabindex"),b=this.hasAttribute("validation")&&this.getAttribute("validation")==="error"||this.hasAttribute("invalid")||this.getAttribute("data-invalid")==="true",m=D(this.getAttribute("radius")),d=this.root.querySelector(".label"),x=this.root.querySelector(".label-text"),g=this.root.querySelector(".description"),f=this.root.querySelector(".description-text"),y=this.root.querySelector(".error"),w=this.root.querySelector(".error-text"),A=this.root.querySelector(".meta"),E=this.root.querySelector(".required"),k=!!o||this._hasSlotContent("label"),S=!!l||this._hasSlotContent("description"),z=!!r||this._hasSlotContent("error"),P=this._hasSlotContent("leading"),M=this._hasSlotContent("trailing"),R=!!(this.getAttribute("placeholder")||"").trim()&&this.value==="";x&&(x.textContent=o),f&&(f.textContent=l),w&&(w.textContent=r),d&&(d.hidden=!k),g&&(g.hidden=!S),y&&(y.hidden=!z),A&&(A.hidden=!k&&!S),E&&(E.hidden=!a),i.textContent=this._currentDisplayText(),t.setAttribute("data-open",this._open?"true":"false"),t.setAttribute("data-placeholder-shown",R?"true":"false"),t.setAttribute("data-has-leading",String(P)),t.setAttribute("data-has-trailing",String(M)),e.disabled=this.disabled,e.setAttribute("aria-label",u),e.setAttribute("aria-expanded",this._open?"true":"false"),e.setAttribute("aria-busy",n?"true":"false"),e.setAttribute("aria-required",a?"true":"false"),b?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid"),c!=null&&!this.disabled?e.setAttribute("tabindex",c):this.disabled?e.setAttribute("tabindex","-1"):e.setAttribute("tabindex","0"),s.hidden=!this._open,s.setAttribute("data-placement",this._placement),this._open?e.setAttribute("aria-controls",`${this._uid}-listbox`):e.removeAttribute("aria-controls"),m&&!["none","full","large"].includes(this.getAttribute("radius")||"")?this.style.setProperty("--ui-select-radius",m):this.style.removeProperty("--ui-select-radius"),this.setAttribute("aria-disabled",this.disabled?"true":"false"),this.setAttribute("aria-busy",n?"true":"false"),this.toggleAttribute("open",this._open),this._open&&this._schedulePanelPlacement()}render(){const e=this.getAttribute("label")||"",t=this.getAttribute("description")||"",i=this.getAttribute("error")||"",s=h(this.getAttribute("required"))||this.hasAttribute("required"),o=this.getAttribute("aria-label")||e||"Select",l=!!e||this._hasSlotContent("label"),r=!!t||this._hasSlotContent("description"),u=!!i||this._hasSlotContent("error"),n=this._hasSlotContent("leading"),a=this._hasSlotContent("trailing"),c=`${this._uid}-label`,b=`${this._uid}-description`,m=`${this._uid}-error`,d=`${this._uid}-trigger`,x=`${this._uid}-listbox`,g=$.externalDescriptionMarkup(this,this._uid),f=[r?b:"",u?m:"",g.id].filter(Boolean).join(" ");this.setContent(`
|
|
746
|
-
<style>${
|
|
712
|
+
`;function h(p){if(p==null)return!1;const e=String(p).toLowerCase();return e!=="false"&&e!=="0"}function v(p){return String(p).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function O(p){if(!p)return null;const e=String(p).trim();return e?e==="none"?"4px":e==="full"?"999px":e==="large"?"16px":/^-?\\d+(\\.\\d+)?$/.test(e)?`${e}px`:e:null}const C=new Set(["value","disabled","loading","required","placeholder","name","tabindex","headless","size","variant","tone","density","radius","shape","elevation","option-border","show-check","check-placement","label","description","error","aria-label","validation","invalid","data-invalid","data-valid","close-on-scroll"]);class z extends $.ElementBase{constructor(){super(),this._controlEl=null,this._triggerEl=null,this._valueEl=null,this._panelEl=null,this._menuEl=null,this._observer=null,this._formUnregister=null,this._optionsSyncRaf=0,this._panelPlacementRaf=0,this._uid=Math.random().toString(36).slice(2,8),this._options=[],this._menuItems=[],this._optionsFingerprint="",this._menuRenderFingerprint="",this._open=!1,this._activeIndex=-1,this._placement="bottom",this._onRootClick=this._onRootClick.bind(this),this._onRootKeyDown=this._onRootKeyDown.bind(this),this._onRootPointerDown=this._onRootPointerDown.bind(this),this._onRootPointerMove=this._onRootPointerMove.bind(this),this._onSlotChange=this._onSlotChange.bind(this),this._onDocumentPointerDown=this._onDocumentPointerDown.bind(this),this._onWindowResize=this._onWindowResize.bind(this),this._onWindowScroll=this._onWindowScroll.bind(this)}static get observedAttributes(){return["aria-description","aria-describedby","value","disabled","loading","required","placeholder","name","tabindex","headless","size","variant","tone","density","radius","shape","elevation","option-border","show-check","check-placement","label","description","error","aria-label","validation","invalid","data-invalid","data-valid","close-on-scroll"]}connectedCallback(){super.connectedCallback(),this.root.addEventListener("click",this._onRootClick),this.root.addEventListener("keydown",this._onRootKeyDown),this.root.addEventListener("pointerdown",this._onRootPointerDown),this.root.addEventListener("pointermove",this._onRootPointerMove,{passive:!0}),this.root.addEventListener("slotchange",this._onSlotChange),this._observer=new MutationObserver(e=>{e.some(i=>{if(!(i.target instanceof HTMLElement)||i.target===this)return i.type==="childList";const s=i.target.tagName.toLowerCase();return s==="option"||s==="optgroup"})&&this._scheduleOptionsSync()}),this._observer.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value","selected","disabled","label","slot"]}),this._attachFormRegistration()}disconnectedCallback(){this.root.removeEventListener("click",this._onRootClick),this.root.removeEventListener("keydown",this._onRootKeyDown),this.root.removeEventListener("pointerdown",this._onRootPointerDown),this.root.removeEventListener("pointermove",this._onRootPointerMove),this.root.removeEventListener("slotchange",this._onSlotChange),this._teardownOpenListeners(),this._observer&&(this._observer.disconnect(),this._observer=null),this._cancelOptionsSync(),this._cancelPanelPlacement(),this._formUnregister&&(this._formUnregister(),this._formUnregister=null),super.disconnectedCallback()}shouldRenderOnAttributeChange(e){return!C.has(e)}attributeChangedCallback(e,t,i){if(t!==i){if(e==="name"&&this._attachFormRegistration(),this._triggerEl&&C.has(e)){(e==="value"||e==="placeholder"||e==="required")&&(this._syncOptionsData(),this._open&&this._renderMenu()),(e==="show-check"||e==="check-placement")&&this._open&&this._renderMenu(),this._syncControlState(),this.disabled&&this._open&&this._closeMenu({restoreFocus:!1});return}super.attributeChangedCallback(e,t,i)}}get value(){return this.getAttribute("value")||""}set value(e){const t=String(e||"");t!==this.value&&this.setAttribute("value",t)}get disabled(){return h(this.getAttribute("disabled"))||h(this.getAttribute("loading"))}set disabled(e){e?this.setAttribute("disabled",""):this.removeAttribute("disabled")}get closeOnScroll(){return h(this.getAttribute("close-on-scroll"))||!this.hasAttribute("close-on-scroll")}set closeOnScroll(e){this.setAttribute("close-on-scroll",e?"true":"false")}get showCheck(){return h(this.getAttribute("show-check"))}set showCheck(e){e?this.setAttribute("show-check","true"):this.removeAttribute("show-check")}focus(e){if(this._triggerEl){this._triggerEl.focus(e);return}super.focus(e)}blur(){if(this._triggerEl){this._triggerEl.blur();return}super.blur()}_onSlotChange(){this.requestRender()}_onRootPointerDown(e){const t=e.target;t&&t.closest(".menu-item")&&e.preventDefault()}_onRootPointerMove(e){if(!this._open)return;const i=e.target?.closest(".menu-item[data-index]");if(!i)return;const s=Number(i.dataset.index||"-1"),o=this._options[s];!o||o.disabled||s===this._activeIndex||this._setActiveIndex(s)}_onRootClick(e){const t=e.target;if(!t)return;if(t.closest(".trigger")){if(this.disabled)return;this._open?this._closeMenu({restoreFocus:!1}):this._openMenu();return}const i=t.closest(".menu-item[data-index]");if(!i)return;const s=Number(i.dataset.index||"-1"),o=this._options[s];!o||o.disabled||(this._applyValueFromUser(o.value),this._closeMenu())}_onRootKeyDown(e){const t=e.target;if(!(!t||t!==this._triggerEl&&!t.closest(".menu"))&&!this.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),this._open?this._moveActive(1):this._openMenu();break;case"ArrowUp":e.preventDefault(),this._open?this._moveActive(-1):this._openMenu();break;case"Home":if(!this._open)return;e.preventDefault(),this._setActiveIndex(this._firstEnabledIndex());break;case"End":if(!this._open)return;e.preventDefault(),this._setActiveIndex(this._lastEnabledIndex());break;case"Enter":case" ":{if(e.preventDefault(),!this._open){this._openMenu();return}this._selectActiveOption();break}case"Escape":if(!this._open)return;e.preventDefault(),this._closeMenu();break;case"Tab":this._open&&this._closeMenu({restoreFocus:!1});break}}_onDocumentPointerDown(e){if(!this._open)return;const t=typeof e.composedPath=="function"?e.composedPath():[];t.includes(this)||t.includes(this.root)||this._closeMenu({restoreFocus:!1})}_isInternalEvent(e){const t=e.target,i=typeof e.composedPath=="function"?e.composedPath():[];return i.includes(this)||i.includes(this.root)||t instanceof Node&&(t===this||this.root.contains(t)||this._controlEl?.contains(t)||this._panelEl?.contains(t)||this._menuEl?.contains(t))?!0:!!(this._controlEl&&i.includes(this._controlEl)||this._triggerEl&&i.includes(this._triggerEl)||this._panelEl&&i.includes(this._panelEl)||this._menuEl&&i.includes(this._menuEl))}_onWindowResize(){this._open&&this._schedulePanelPlacement()}_onWindowScroll(e){if(this._open&&!this._isInternalEvent(e)){if(this.closeOnScroll){this._closeMenu({restoreFocus:!1});return}this._schedulePanelPlacement()}}_attachOpenListeners(){document.addEventListener("pointerdown",this._onDocumentPointerDown,!0),window.addEventListener("resize",this._onWindowResize,{passive:!0}),window.addEventListener("scroll",this._onWindowScroll,{passive:!0,capture:!0})}_teardownOpenListeners(){document.removeEventListener("pointerdown",this._onDocumentPointerDown,!0),window.removeEventListener("resize",this._onWindowResize),window.removeEventListener("scroll",this._onWindowScroll,!0)}_scheduleOptionsSync(){this._optionsSyncRaf||(this._optionsSyncRaf=requestAnimationFrame(()=>{this._optionsSyncRaf=0,this._syncOptionsData()&&this._open?this._renderMenu():this._syncControlState()}))}_cancelOptionsSync(){this._optionsSyncRaf&&(cancelAnimationFrame(this._optionsSyncRaf),this._optionsSyncRaf=0)}_schedulePanelPlacement(){this._panelPlacementRaf||(this._panelPlacementRaf=requestAnimationFrame(()=>{this._panelPlacementRaf=0,this._syncPanelPlacement()}))}_cancelPanelPlacement(){this._panelPlacementRaf&&(cancelAnimationFrame(this._panelPlacementRaf),this._panelPlacementRaf=0)}_emitValue(e,t){this.dispatchEvent(new CustomEvent(e,{detail:{value:t},bubbles:!0,composed:!0}))}_applyValueFromUser(e){(this.getAttribute("value")||"")!==e&&(this.setAttribute("value",e),this._emitValue("input",e),this._emitValue("change",e))}_attachFormRegistration(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);const e=this.getAttribute("name");if(!e)return;const t=this.getRootNode(),s=(t instanceof ShadowRoot?t.host:null)?.closest?.("ui-form")||this.closest("ui-form");!s||typeof s.registerField!="function"||(this._formUnregister=s.registerField(e,{name:e,getValue:()=>this.value,setValue:o=>{this.value=o},validate:async()=>{if(!(h(this.getAttribute("required"))||this.hasAttribute("required")))return{valid:!0};const l=this.value.trim().length>0;return{valid:l,message:l?void 0:"This field is required."}},setError:o=>{o?(this.setAttribute("validation","error"),this.setAttribute("error",o)):(this.getAttribute("validation")==="error"&&this.removeAttribute("validation"),this.removeAttribute("error"))}}))}_hasSlotContent(e){return!!this.querySelector(`[slot="${e}"]`)}_setValueAttr(e){const t=String(e??"");this.getAttribute("value")!==t&&this.setAttribute("value",t)}_buildOptionsFromChildren(){const e=[],t=(r,u)=>{const n=(r.label||r.textContent||r.value||"").trim(),a=String(r.value??"");e.push({value:a,label:n||a,disabled:!!r.disabled,group:u})};Array.from(this.children).filter(r=>r instanceof HTMLElement?!r.hasAttribute("slot"):!1).forEach(r=>{const u=r.tagName.toLowerCase();if(u==="option"){t(r,"");return}if(u==="optgroup"){const n=r,a=(n.label||"").trim();Array.from(n.children).forEach(c=>{c instanceof HTMLOptionElement&&e.push({value:String(c.value??""),label:(c.label||c.textContent||c.value||"").trim()||String(c.value??""),disabled:!!c.disabled||!!n.disabled,group:a})})}});const s=(this.getAttribute("placeholder")||"").trim(),o=h(this.getAttribute("required"))||this.hasAttribute("required"),l=e.some(r=>r.value==="");return s&&!o&&!l&&e.unshift({value:"",label:s,disabled:!1,group:""}),e}_computeOptionsFingerprint(e){return e.map(t=>`${t.value}${t.label}${t.disabled?"1":"0"}${t.group}`).join("")}_firstEnabledIndex(){return _.findFirstEnabledIndex(this._options,e=>e.disabled)}_lastEnabledIndex(){return _.findLastEnabledIndex(this._options,e=>e.disabled)}_selectedIndex(){return _.findIndexByValue(this._options,this.value,e=>e.value)}_checkPlacement(){return this.getAttribute("check-placement")==="start"?"start":"end"}_syncOptionsData(){const e=this._buildOptionsFromChildren(),t=this._computeOptionsFingerprint(e),i=t!==this._optionsFingerprint;this._options=e,this._optionsFingerprint=t;const s=this.getAttribute("value")||"",o=this.hasAttribute("value"),l=this._options.some(a=>a.value===s),r=h(this.getAttribute("required"))||this.hasAttribute("required"),u=this._options.find(a=>!a.disabled)?.value||"",n=!r&&this._options.some(a=>a.value==="")?"":u;return o?l||this._setValueAttr(n):this._setValueAttr(n),i}_currentDisplayText(){const e=this.value,t=(this.getAttribute("placeholder")||"").trim();return e===""&&t?t:this._options.find(s=>s.value===e)?.label||e}_setActiveIndex(e){if(!this._menuEl||e===this._activeIndex)return;this._activeIndex=e;const t=e>=0&&this._menuItems[e]||null;this._menuEl.setActiveItem(t,{focus:!1,owner:this._triggerEl,scroll:!0})}_moveActive(e){if(!this._menuEl||!this._options.length)return;const t=this._activeIndex>=0?this._menuItems[this._activeIndex]:null,i=this._menuEl.move(e,{current:t,focus:!1,owner:this._triggerEl,scroll:!0});if(!i)return;const s=Number(i.dataset.index||"-1");s>=0&&(this._activeIndex=s)}_selectActiveOption(){if(this._activeIndex<0)return;const e=this._options[this._activeIndex];!e||e.disabled||(this._applyValueFromUser(e.value),this._closeMenu())}_renderMenu(){const e=this._menuEl;if(!e)return;const t=`${this._optionsFingerprint}${this.showCheck?"1":"0"}${this._checkPlacement()}`;if(this._menuItems.length>0&&t===this._menuRenderFingerprint&&this._menuItems.length===this._options.length){this._syncMenuSelectionState(),this._schedulePanelPlacement();return}if(e.replaceChildren(),this._menuItems=[],!this._options.length){const r=document.createElement("p");r.className="menu-empty",r.textContent="No options available",e.appendChild(r),this._menuRenderFingerprint=t,e.refresh();return}let s="__none__";this._options.forEach((r,u)=>{if(r.group&&r.group!==s){const d=document.createElement("div");d.className="menu-group",d.setAttribute("role","presentation"),d.textContent=r.group,e.appendChild(d),s=r.group}r.group||(s="__none__");const n=document.createElement("button");n.type="button",n.className="menu-item",n.id=`${this._uid}-opt-${u}`,n.setAttribute("role","option"),n.setAttribute("data-index",String(u)),n.setAttribute("data-value",r.value),n.setAttribute("aria-selected",r.value===this.value?"true":"false"),n.setAttribute("aria-disabled",r.disabled?"true":"false"),n.tabIndex=-1,r.disabled&&(n.disabled=!0);const a=document.createElement("span");a.className="menu-item-label",a.textContent=r.label;const c=document.createElement("span");c.className="menu-item-check",c.setAttribute("aria-hidden","true");const m=this.showCheck,b=this._checkPlacement();c.hidden=!m,n.setAttribute("data-check-placement",b),m&&b==="start"?n.append(c,a):n.append(a,c),e.appendChild(n),this._menuItems.push(n)});const o=this._menuItems[0]||null,l=this._menuItems[this._menuItems.length-1]||null;o&&o.setAttribute("data-edge-start","true"),l&&l.setAttribute("data-edge-end","true"),e.refresh(),this._menuRenderFingerprint=t,this._syncMenuSelectionState(),this._schedulePanelPlacement()}_syncMenuSelectionState(){if(!this._menuEl)return;const e=this._selectedIndex();this._menuItems.forEach(i=>{const s=Number(i.dataset.index||"-1");i.setAttribute("aria-selected",s===e?"true":"false")}),this._activeIndex=F.resolveListboxActiveIndex(this._options,{selectedIndex:e,getDisabled:i=>i.disabled});const t=this._activeIndex>=0&&this._menuItems[this._activeIndex]||null;this._menuEl.setActiveItem(t,{focus:!1,owner:this._triggerEl,scroll:!0})}_syncPanelPlacement(){const e=this._panelEl,t=this._controlEl,i=this._menuEl;if(!e||!t||!i||!this._open)return;const s=t.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight||0,l=Math.max(0,o-s.bottom-12),r=Math.max(0,s.top-12),u=Math.min(Math.max(i.scrollHeight,i.offsetHeight)+4,320),n=l<u&&r>l;this._placement=n?"top":"bottom",e.setAttribute("data-placement",this._placement),e.style.setProperty("--ui-select-available-height",`${Math.floor(n?r:l)}px`)}_openMenu(){this._open||this.disabled||(this._cancelPanelPlacement(),this._syncOptionsData(),this._open=!0,this._syncControlState(),this._renderMenu(),this._attachOpenListeners())}_closeMenu(e={}){if(this._open&&(this._open=!1,this._activeIndex=-1,this._cancelPanelPlacement(),this._teardownOpenListeners(),this._syncControlState(),e.restoreFocus!==!1))try{this._triggerEl?.focus({preventScroll:!0})}catch{this._triggerEl?.focus()}}_syncControlState(){const e=this._triggerEl,t=this._controlEl,i=this._valueEl,s=this._panelEl;if(!e||!t||!i||!s)return;const o=this.getAttribute("label")||"",l=this.getAttribute("description")||"",r=this.getAttribute("error")||"",u=this.getAttribute("aria-label")||o||"Select",n=h(this.getAttribute("loading")),a=h(this.getAttribute("required"))||this.hasAttribute("required"),c=this.getAttribute("tabindex"),m=this.hasAttribute("validation")&&this.getAttribute("validation")==="error"||this.hasAttribute("invalid")||this.getAttribute("data-invalid")==="true",b=O(this.getAttribute("radius")),d=this.root.querySelector(".label"),x=this.root.querySelector(".label-text"),g=this.root.querySelector(".description"),f=this.root.querySelector(".description-text"),y=this.root.querySelector(".error"),w=this.root.querySelector(".error-text"),A=this.root.querySelector(".meta"),E=this.root.querySelector(".required"),k=!!o||this._hasSlotContent("label"),S=!!l||this._hasSlotContent("description"),P=!!r||this._hasSlotContent("error"),M=this._hasSlotContent("leading"),R=this._hasSlotContent("trailing"),q=!!(this.getAttribute("placeholder")||"").trim()&&this.value==="";x&&(x.textContent=o),f&&(f.textContent=l),w&&(w.textContent=r),d&&(d.hidden=!k),g&&(g.hidden=!S),y&&(y.hidden=!P),A&&(A.hidden=!k&&!S),E&&(E.hidden=!a),i.textContent=this._currentDisplayText(),t.setAttribute("data-open",this._open?"true":"false"),t.setAttribute("data-placeholder-shown",q?"true":"false"),t.setAttribute("data-has-leading",String(M)),t.setAttribute("data-has-trailing",String(R)),e.disabled=this.disabled,e.setAttribute("aria-label",u),e.setAttribute("aria-expanded",this._open?"true":"false"),e.setAttribute("aria-busy",n?"true":"false"),e.setAttribute("aria-required",a?"true":"false"),m?e.setAttribute("aria-invalid","true"):e.removeAttribute("aria-invalid"),c!=null&&!this.disabled?e.setAttribute("tabindex",c):this.disabled?e.setAttribute("tabindex","-1"):e.setAttribute("tabindex","0"),s.setAttribute("data-placement",this._placement),I.setPanelOpen(s,this._open,String(this._placement).split("-")[0]),this._open?e.setAttribute("aria-controls",`${this._uid}-listbox`):e.removeAttribute("aria-controls"),b&&!["none","full","large"].includes(this.getAttribute("radius")||"")?this.style.setProperty("--ui-select-radius",b):this.style.removeProperty("--ui-select-radius"),this.setAttribute("aria-disabled",this.disabled?"true":"false"),this.setAttribute("aria-busy",n?"true":"false"),this.toggleAttribute("open",this._open),this._open&&this._schedulePanelPlacement()}render(){const e=this.getAttribute("label")||"",t=this.getAttribute("description")||"",i=this.getAttribute("error")||"",s=h(this.getAttribute("required"))||this.hasAttribute("required"),o=this.getAttribute("aria-label")||e||"Select",l=!!e||this._hasSlotContent("label"),r=!!t||this._hasSlotContent("description"),u=!!i||this._hasSlotContent("error"),n=this._hasSlotContent("leading"),a=this._hasSlotContent("trailing"),c=`${this._uid}-label`,m=`${this._uid}-description`,b=`${this._uid}-error`,d=`${this._uid}-trigger`,x=`${this._uid}-listbox`,g=L.externalDescriptionMarkup(this,this._uid),f=[r?m:"",u?b:"",g.id].filter(Boolean).join(" ");this.setContent(`
|
|
713
|
+
<style>${D}</style>
|
|
747
714
|
<slot class="content-slot"></slot>
|
|
748
715
|
<div class="root" part="root">
|
|
749
716
|
<div class="meta" part="meta" ${l||r?"":"hidden"}>
|
|
@@ -751,7 +718,7 @@
|
|
|
751
718
|
<slot name="label"><span class="label-text">${v(e)}</span></slot>
|
|
752
719
|
<span class="required" aria-hidden="true" ${s?"":"hidden"}>*</span>
|
|
753
720
|
</label>
|
|
754
|
-
<p class="description" part="description" id="${
|
|
721
|
+
<p class="description" part="description" id="${m}" ${r?"":"hidden"}>
|
|
755
722
|
<slot name="description"><span class="description-text">${v(t)}</span></slot>
|
|
756
723
|
</p>
|
|
757
724
|
</div>
|
|
@@ -791,9 +758,9 @@
|
|
|
791
758
|
></ui-listbox>
|
|
792
759
|
</div>
|
|
793
760
|
</div>
|
|
794
|
-
<p class="error" part="error" id="${
|
|
761
|
+
<p class="error" part="error" id="${b}" ${u?"":"hidden"}>
|
|
795
762
|
<slot name="error"><span class="error-text">${v(i)}</span></slot>
|
|
796
763
|
</p>
|
|
797
764
|
${g.html}
|
|
798
765
|
</div>
|
|
799
|
-
`),this._controlEl=this.root.querySelector(".control"),this._triggerEl=this.root.querySelector(".trigger"),this._valueEl=this.root.querySelector(".value"),this._panelEl=this.root.querySelector(".panel"),this._menuEl=this.root.querySelector(".menu"),this._menuItems=[],this._menuRenderFingerprint="",this._syncOptionsData(),this._renderMenu(),!this._open&&this._panelEl&&(this._panelEl.hidden=!0),this._syncControlState()}}typeof customElements<"u"&&!customElements.get("ui-select")&&customElements.define("ui-select",
|
|
766
|
+
`),this._controlEl=this.root.querySelector(".control"),this._triggerEl=this.root.querySelector(".trigger"),this._valueEl=this.root.querySelector(".value"),this._panelEl=this.root.querySelector(".panel"),this._menuEl=this.root.querySelector(".menu"),this._menuItems=[],this._menuRenderFingerprint="",this._syncOptionsData(),this._renderMenu(),!this._open&&this._panelEl&&(this._panelEl.hidden=!0),this._syncControlState()}}typeof customElements<"u"&&!customElements.get("ui-select")&&customElements.define("ui-select",z);exports.UISelect=z;
|
package/dist/select.esm.js
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { E as R } from "./ElementBase-BeZT54Hj.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
2
|
+
import { s as M, O as $ } from "./overlay-motion-BX3dPLay.mjs";
|
|
3
|
+
import { e as q } from "./control-name-Bpj7F34X.mjs";
|
|
4
|
+
import { f as L, b as F, a as D } from "./collection-C7URGjEI.mjs";
|
|
5
|
+
import { r as O } from "./listbox-hMVOhKHC.mjs";
|
|
6
|
+
const T = `
|
|
7
|
+
${$}
|
|
8
|
+
|
|
6
9
|
:host {
|
|
7
10
|
--ui-select-width: var(--ui-width, min(340px, 100%));
|
|
8
|
-
--ui-select-min-height: var(--base-select-height-md,
|
|
9
|
-
--ui-select-radius: var(--base-select-radius, var(--ui-radius,
|
|
10
|
-
--ui-select-padding-x: var(--base-select-padding-x, 12px);
|
|
11
|
+
--ui-select-min-height: var(--base-select-height-md, var(--ui-control-height-2, 32px));
|
|
12
|
+
--ui-select-radius: var(--base-select-radius, var(--ui-control-radius-2, var(--ui-radius, 6px)));
|
|
13
|
+
--ui-select-padding-x: var(--base-select-padding-x, var(--ui-control-padding-inline-2, 12px));
|
|
14
|
+
--ui-select-font-size: var(--ui-control-font-size-2, 14px);
|
|
11
15
|
|
|
12
16
|
--ui-select-bg: var(--base-select-bg, var(--ui-color-surface, #ffffff));
|
|
13
|
-
--ui-select-border: var(--base-select-border, 1px solid color-
|
|
17
|
+
--ui-select-border: var(--base-select-border, 1px solid var(--ui-color-line, var(--ui-color-border, #cbd5e1)));
|
|
14
18
|
--ui-select-border-color: color-mix(in srgb, var(--ui-select-border) 100%, transparent);
|
|
15
19
|
--ui-select-text: var(--ui-color-text, #0f172a);
|
|
16
20
|
--ui-select-muted: var(--ui-color-muted, #526175);
|
|
17
|
-
--ui-select-placeholder: color-mix(in srgb, var(--ui-select-text)
|
|
21
|
+
--ui-select-placeholder: var(--ui-color-placeholder, color-mix(in srgb, var(--ui-select-text) 62%, transparent));
|
|
18
22
|
--ui-select-focus: var(--ui-color-focus-ring, #2563eb);
|
|
19
23
|
--ui-select-accent: var(--ui-color-primary, #2563eb);
|
|
20
24
|
--ui-select-success: var(--ui-color-success, #15803d);
|
|
@@ -23,14 +27,12 @@ const D = `
|
|
|
23
27
|
|
|
24
28
|
--ui-select-shadow: var(--base-select-shadow, none);
|
|
25
29
|
--ui-select-elevation: var(--ui-select-shadow);
|
|
26
|
-
--ui-select-menu-bg: var(--base-select-menu-bg, color-
|
|
30
|
+
--ui-select-menu-bg: var(--base-select-menu-bg, var(--color-panel-solid, var(--ui-color-surface, #ffffff)));
|
|
27
31
|
--ui-select-menu-color: var(--base-select-menu-color, var(--ui-select-text));
|
|
28
|
-
--ui-select-menu-border-color: color-mix(in srgb, var(--ui-select-border-color) 82%, transparent);
|
|
32
|
+
--ui-select-menu-border-color: var(--ui-color-line-subtle, color-mix(in srgb, var(--ui-select-border-color) 82%, transparent));
|
|
29
33
|
--ui-select-menu-border: 1px solid var(--ui-select-menu-border-color);
|
|
30
|
-
--ui-select-menu-radius: var(--base-select-menu-radius, var(--ui-
|
|
31
|
-
--ui-select-menu-shadow:
|
|
32
|
-
0 14px 34px rgba(15, 23, 42, 0.16),
|
|
33
|
-
0 3px 10px rgba(15, 23, 42, 0.08);
|
|
34
|
+
--ui-select-menu-radius: var(--base-select-menu-radius, calc(var(--ui-radius, 6px) + 2px));
|
|
35
|
+
--ui-select-menu-shadow: var(--shadow-5, 0 14px 34px rgba(15, 23, 42, 0.16));
|
|
34
36
|
--ui-select-menu-padding: 0px;
|
|
35
37
|
--ui-select-menu-gap: 8px;
|
|
36
38
|
--ui-select-menu-max-height: min(320px, var(--ui-select-available-height, 320px));
|
|
@@ -102,6 +104,7 @@ const D = `
|
|
|
102
104
|
}
|
|
103
105
|
|
|
104
106
|
.control {
|
|
107
|
+
box-sizing: border-box;
|
|
105
108
|
min-inline-size: 0;
|
|
106
109
|
position: relative;
|
|
107
110
|
display: block;
|
|
@@ -121,10 +124,14 @@ const D = `
|
|
|
121
124
|
|
|
122
125
|
.control[data-open="true"],
|
|
123
126
|
.control:focus-within {
|
|
124
|
-
border-color:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
border-color: var(--ui-ring-color, var(--ui-select-focus));
|
|
128
|
+
outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-select-focus));
|
|
129
|
+
outline-offset: -1px;
|
|
130
|
+
box-shadow: var(--ui-select-elevation);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.control:hover:not(:focus-within):not([data-open="true"]) {
|
|
134
|
+
border-color: var(--ui-color-line-strong, var(--ui-select-border-color));
|
|
128
135
|
}
|
|
129
136
|
|
|
130
137
|
.leading,
|
|
@@ -163,6 +170,7 @@ const D = `
|
|
|
163
170
|
}
|
|
164
171
|
|
|
165
172
|
.trigger {
|
|
173
|
+
display: block;
|
|
166
174
|
inline-size: 100%;
|
|
167
175
|
min-inline-size: 0;
|
|
168
176
|
block-size: calc(var(--ui-select-min-height) - 2px);
|
|
@@ -171,8 +179,8 @@ const D = `
|
|
|
171
179
|
outline: none;
|
|
172
180
|
background: transparent;
|
|
173
181
|
color: var(--ui-select-text);
|
|
174
|
-
font: 500
|
|
175
|
-
padding:
|
|
182
|
+
font: 500 var(--ui-select-font-size)/1.35 "Inter", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
183
|
+
padding: 0 calc(var(--ui-select-padding-x) + 24px) 0 var(--ui-select-padding-x);
|
|
176
184
|
margin: 0;
|
|
177
185
|
cursor: pointer;
|
|
178
186
|
text-align: left;
|
|
@@ -274,9 +282,7 @@ const D = `
|
|
|
274
282
|
overflow-x: hidden;
|
|
275
283
|
border: var(--ui-select-menu-border);
|
|
276
284
|
border-radius: var(--ui-select-menu-radius);
|
|
277
|
-
background:
|
|
278
|
-
linear-gradient(180deg, color-mix(in srgb, var(--ui-select-accent) 3%, transparent) 0%, transparent 100%),
|
|
279
|
-
var(--ui-select-menu-bg);
|
|
285
|
+
background: var(--ui-select-menu-bg);
|
|
280
286
|
color: var(--ui-select-menu-color);
|
|
281
287
|
box-shadow: var(--ui-select-menu-shadow);
|
|
282
288
|
padding: var(--ui-select-menu-padding);
|
|
@@ -305,16 +311,6 @@ const D = `
|
|
|
305
311
|
background-clip: padding-box;
|
|
306
312
|
}
|
|
307
313
|
|
|
308
|
-
.panel[data-placement="top"] .menu {
|
|
309
|
-
transform-origin: bottom center;
|
|
310
|
-
animation: ui-select-menu-enter-top 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
.panel[data-placement="bottom"] .menu {
|
|
314
|
-
transform-origin: top center;
|
|
315
|
-
animation: ui-select-menu-enter-bottom 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
316
|
-
}
|
|
317
|
-
|
|
318
314
|
.menu-group {
|
|
319
315
|
color: color-mix(in srgb, var(--ui-select-muted) 88%, transparent);
|
|
320
316
|
font: 700 11px/1.3 "Inter", "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
@@ -479,17 +475,14 @@ const D = `
|
|
|
479
475
|
|
|
480
476
|
:host([size="sm"]),
|
|
481
477
|
:host([size="1"]) {
|
|
482
|
-
--ui-select-min-height:
|
|
483
|
-
--ui-select-padding-x:
|
|
478
|
+
--ui-select-min-height: var(--base-select-height-sm, var(--ui-control-height-1, 24px));
|
|
479
|
+
--ui-select-padding-x: var(--ui-control-padding-inline-1, 8px);
|
|
480
|
+
--ui-select-font-size: var(--ui-control-font-size-1, 12px);
|
|
481
|
+
--ui-select-radius: var(--ui-control-radius-1, var(--ui-radius, 6px));
|
|
484
482
|
--ui-select-menu-gap: 6px;
|
|
485
483
|
--ui-select-menu-item-height: 34px;
|
|
486
484
|
}
|
|
487
485
|
|
|
488
|
-
:host([size="sm"]) .trigger,
|
|
489
|
-
:host([size="1"]) .trigger {
|
|
490
|
-
font-size: 12px;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
486
|
:host([size="sm"]) .menu-item,
|
|
494
487
|
:host([size="1"]) .menu-item {
|
|
495
488
|
font-size: 12px;
|
|
@@ -498,17 +491,14 @@ const D = `
|
|
|
498
491
|
|
|
499
492
|
:host([size="lg"]),
|
|
500
493
|
:host([size="3"]) {
|
|
501
|
-
--ui-select-min-height:
|
|
502
|
-
--ui-select-padding-x:
|
|
494
|
+
--ui-select-min-height: var(--base-select-height-lg, var(--ui-control-height-3, 40px));
|
|
495
|
+
--ui-select-padding-x: var(--ui-control-padding-inline-3, 16px);
|
|
496
|
+
--ui-select-font-size: var(--ui-control-font-size-3, 16px);
|
|
497
|
+
--ui-select-radius: var(--ui-control-radius-3, var(--ui-radius, 6px));
|
|
503
498
|
--ui-select-menu-gap: 10px;
|
|
504
499
|
--ui-select-menu-item-height: 42px;
|
|
505
500
|
}
|
|
506
501
|
|
|
507
|
-
:host([size="lg"]) .trigger,
|
|
508
|
-
:host([size="3"]) .trigger {
|
|
509
|
-
font-size: 15px;
|
|
510
|
-
}
|
|
511
|
-
|
|
512
502
|
:host([size="lg"]) .menu-item,
|
|
513
503
|
:host([size="3"]) .menu-item {
|
|
514
504
|
font-size: 14px;
|
|
@@ -659,7 +649,7 @@ const D = `
|
|
|
659
649
|
:host([invalid]) .control,
|
|
660
650
|
:host([data-invalid="true"]) .control {
|
|
661
651
|
box-shadow:
|
|
662
|
-
0 0 0
|
|
652
|
+
0 0 0 1px var(--ui-select-error),
|
|
663
653
|
var(--ui-select-elevation);
|
|
664
654
|
}
|
|
665
655
|
|
|
@@ -673,28 +663,6 @@ const D = `
|
|
|
673
663
|
}
|
|
674
664
|
}
|
|
675
665
|
|
|
676
|
-
@keyframes ui-select-menu-enter-bottom {
|
|
677
|
-
from {
|
|
678
|
-
opacity: 0;
|
|
679
|
-
transform: translateY(-4px) scale(0.985);
|
|
680
|
-
}
|
|
681
|
-
to {
|
|
682
|
-
opacity: 1;
|
|
683
|
-
transform: translateY(0) scale(1);
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
@keyframes ui-select-menu-enter-top {
|
|
688
|
-
from {
|
|
689
|
-
opacity: 0;
|
|
690
|
-
transform: translateY(4px) scale(0.985);
|
|
691
|
-
}
|
|
692
|
-
to {
|
|
693
|
-
opacity: 1;
|
|
694
|
-
transform: translateY(0) scale(1);
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
|
|
698
666
|
@media (prefers-reduced-motion: reduce) {
|
|
699
667
|
.control,
|
|
700
668
|
.indicator,
|
|
@@ -755,7 +723,7 @@ function h(p) {
|
|
|
755
723
|
function v(p) {
|
|
756
724
|
return String(p).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
757
725
|
}
|
|
758
|
-
function
|
|
726
|
+
function U(p) {
|
|
759
727
|
if (!p) return null;
|
|
760
728
|
const e = String(p).trim();
|
|
761
729
|
return e ? e === "none" ? "4px" : e === "full" ? "999px" : e === "large" ? "16px" : /^-?\\d+(\\.\\d+)?$/.test(e) ? `${e}px` : e : null;
|
|
@@ -789,7 +757,7 @@ const S = /* @__PURE__ */ new Set([
|
|
|
789
757
|
"data-valid",
|
|
790
758
|
"close-on-scroll"
|
|
791
759
|
]);
|
|
792
|
-
class
|
|
760
|
+
class B extends R {
|
|
793
761
|
constructor() {
|
|
794
762
|
super(), this._controlEl = null, this._triggerEl = null, this._valueEl = null, this._panelEl = null, this._menuEl = null, this._observer = null, this._formUnregister = null, this._optionsSyncRaf = 0, this._panelPlacementRaf = 0, this._uid = Math.random().toString(36).slice(2, 8), this._options = [], this._menuItems = [], this._optionsFingerprint = "", this._menuRenderFingerprint = "", this._open = !1, this._activeIndex = -1, this._placement = "bottom", this._onRootClick = this._onRootClick.bind(this), this._onRootKeyDown = this._onRootKeyDown.bind(this), this._onRootPointerDown = this._onRootPointerDown.bind(this), this._onRootPointerMove = this._onRootPointerMove.bind(this), this._onSlotChange = this._onSlotChange.bind(this), this._onDocumentPointerDown = this._onDocumentPointerDown.bind(this), this._onWindowResize = this._onWindowResize.bind(this), this._onWindowScroll = this._onWindowScroll.bind(this);
|
|
795
763
|
}
|
|
@@ -1075,13 +1043,13 @@ class T extends R {
|
|
|
1075
1043
|
return e.map((t) => `${t.value}${t.label}${t.disabled ? "1" : "0"}${t.group}`).join("");
|
|
1076
1044
|
}
|
|
1077
1045
|
_firstEnabledIndex() {
|
|
1078
|
-
return
|
|
1046
|
+
return L(this._options, (e) => e.disabled);
|
|
1079
1047
|
}
|
|
1080
1048
|
_lastEnabledIndex() {
|
|
1081
|
-
return
|
|
1049
|
+
return F(this._options, (e) => e.disabled);
|
|
1082
1050
|
}
|
|
1083
1051
|
_selectedIndex() {
|
|
1084
|
-
return
|
|
1052
|
+
return D(this._options, this.value, (e) => e.value);
|
|
1085
1053
|
}
|
|
1086
1054
|
_checkPlacement() {
|
|
1087
1055
|
return this.getAttribute("check-placement") === "start" ? "start" : "end";
|
|
@@ -1149,8 +1117,8 @@ class T extends R {
|
|
|
1149
1117
|
a.className = "menu-item-label", a.textContent = r.label;
|
|
1150
1118
|
const c = document.createElement("span");
|
|
1151
1119
|
c.className = "menu-item-check", c.setAttribute("aria-hidden", "true");
|
|
1152
|
-
const
|
|
1153
|
-
c.hidden = !
|
|
1120
|
+
const m = this.showCheck, b = this._checkPlacement();
|
|
1121
|
+
c.hidden = !m, n.setAttribute("data-check-placement", b), m && b === "start" ? n.append(c, a) : n.append(a, c), e.appendChild(n), this._menuItems.push(n);
|
|
1154
1122
|
});
|
|
1155
1123
|
const o = this._menuItems[0] || null, l = this._menuItems[this._menuItems.length - 1] || null;
|
|
1156
1124
|
o && o.setAttribute("data-edge-start", "true"), l && l.setAttribute("data-edge-end", "true"), e.refresh(), this._menuRenderFingerprint = t, this._syncMenuSelectionState(), this._schedulePanelPlacement();
|
|
@@ -1161,7 +1129,7 @@ class T extends R {
|
|
|
1161
1129
|
this._menuItems.forEach((i) => {
|
|
1162
1130
|
const s = Number(i.dataset.index || "-1");
|
|
1163
1131
|
i.setAttribute("aria-selected", s === e ? "true" : "false");
|
|
1164
|
-
}), this._activeIndex =
|
|
1132
|
+
}), this._activeIndex = O(this._options, {
|
|
1165
1133
|
selectedIndex: e,
|
|
1166
1134
|
getDisabled: (i) => i.disabled
|
|
1167
1135
|
});
|
|
@@ -1192,13 +1160,13 @@ class T extends R {
|
|
|
1192
1160
|
_syncControlState() {
|
|
1193
1161
|
const e = this._triggerEl, t = this._controlEl, i = this._valueEl, s = this._panelEl;
|
|
1194
1162
|
if (!e || !t || !i || !s) return;
|
|
1195
|
-
const o = this.getAttribute("label") || "", l = this.getAttribute("description") || "", r = this.getAttribute("error") || "", u = this.getAttribute("aria-label") || o || "Select", n = h(this.getAttribute("loading")), a = h(this.getAttribute("required")) || this.hasAttribute("required"), c = this.getAttribute("tabindex"),
|
|
1196
|
-
x && (x.textContent = o), f && (f.textContent = l), y && (y.textContent = r), d && (d.hidden = !E), g && (g.hidden = !k), _ && (_.hidden = !C), w && (w.hidden = !E && !k), A && (A.hidden = !a), i.textContent = this._currentDisplayText(), t.setAttribute("data-open", this._open ? "true" : "false"), t.setAttribute("data-placeholder-shown", P ? "true" : "false"), t.setAttribute("data-has-leading", String(I)), t.setAttribute("data-has-trailing", String(z)), e.disabled = this.disabled, e.setAttribute("aria-label", u), e.setAttribute("aria-expanded", this._open ? "true" : "false"), e.setAttribute("aria-busy", n ? "true" : "false"), e.setAttribute("aria-required", a ? "true" : "false"),
|
|
1163
|
+
const o = this.getAttribute("label") || "", l = this.getAttribute("description") || "", r = this.getAttribute("error") || "", u = this.getAttribute("aria-label") || o || "Select", n = h(this.getAttribute("loading")), a = h(this.getAttribute("required")) || this.hasAttribute("required"), c = this.getAttribute("tabindex"), m = this.hasAttribute("validation") && this.getAttribute("validation") === "error" || this.hasAttribute("invalid") || this.getAttribute("data-invalid") === "true", b = U(this.getAttribute("radius")), d = this.root.querySelector(".label"), x = this.root.querySelector(".label-text"), g = this.root.querySelector(".description"), f = this.root.querySelector(".description-text"), _ = this.root.querySelector(".error"), y = this.root.querySelector(".error-text"), w = this.root.querySelector(".meta"), A = this.root.querySelector(".required"), E = !!o || this._hasSlotContent("label"), k = !!l || this._hasSlotContent("description"), C = !!r || this._hasSlotContent("error"), I = this._hasSlotContent("leading"), z = this._hasSlotContent("trailing"), P = !!(this.getAttribute("placeholder") || "").trim() && this.value === "";
|
|
1164
|
+
x && (x.textContent = o), f && (f.textContent = l), y && (y.textContent = r), d && (d.hidden = !E), g && (g.hidden = !k), _ && (_.hidden = !C), w && (w.hidden = !E && !k), A && (A.hidden = !a), i.textContent = this._currentDisplayText(), t.setAttribute("data-open", this._open ? "true" : "false"), t.setAttribute("data-placeholder-shown", P ? "true" : "false"), t.setAttribute("data-has-leading", String(I)), t.setAttribute("data-has-trailing", String(z)), e.disabled = this.disabled, e.setAttribute("aria-label", u), e.setAttribute("aria-expanded", this._open ? "true" : "false"), e.setAttribute("aria-busy", n ? "true" : "false"), e.setAttribute("aria-required", a ? "true" : "false"), m ? e.setAttribute("aria-invalid", "true") : e.removeAttribute("aria-invalid"), c != null && !this.disabled ? e.setAttribute("tabindex", c) : this.disabled ? e.setAttribute("tabindex", "-1") : e.setAttribute("tabindex", "0"), s.setAttribute("data-placement", this._placement), M(s, this._open, String(this._placement).split("-")[0]), this._open ? e.setAttribute("aria-controls", `${this._uid}-listbox`) : e.removeAttribute("aria-controls"), b && !["none", "full", "large"].includes(this.getAttribute("radius") || "") ? this.style.setProperty("--ui-select-radius", b) : this.style.removeProperty("--ui-select-radius"), this.setAttribute("aria-disabled", this.disabled ? "true" : "false"), this.setAttribute("aria-busy", n ? "true" : "false"), this.toggleAttribute("open", this._open), this._open && this._schedulePanelPlacement();
|
|
1197
1165
|
}
|
|
1198
1166
|
render() {
|
|
1199
|
-
const e = this.getAttribute("label") || "", t = this.getAttribute("description") || "", i = this.getAttribute("error") || "", s = h(this.getAttribute("required")) || this.hasAttribute("required"), o = this.getAttribute("aria-label") || e || "Select", l = !!e || this._hasSlotContent("label"), r = !!t || this._hasSlotContent("description"), u = !!i || this._hasSlotContent("error"), n = this._hasSlotContent("leading"), a = this._hasSlotContent("trailing"), c = `${this._uid}-label`,
|
|
1167
|
+
const e = this.getAttribute("label") || "", t = this.getAttribute("description") || "", i = this.getAttribute("error") || "", s = h(this.getAttribute("required")) || this.hasAttribute("required"), o = this.getAttribute("aria-label") || e || "Select", l = !!e || this._hasSlotContent("label"), r = !!t || this._hasSlotContent("description"), u = !!i || this._hasSlotContent("error"), n = this._hasSlotContent("leading"), a = this._hasSlotContent("trailing"), c = `${this._uid}-label`, m = `${this._uid}-description`, b = `${this._uid}-error`, d = `${this._uid}-trigger`, x = `${this._uid}-listbox`, g = q(this, this._uid), f = [r ? m : "", u ? b : "", g.id].filter(Boolean).join(" ");
|
|
1200
1168
|
this.setContent(`
|
|
1201
|
-
<style>${
|
|
1169
|
+
<style>${T}</style>
|
|
1202
1170
|
<slot class="content-slot"></slot>
|
|
1203
1171
|
<div class="root" part="root">
|
|
1204
1172
|
<div class="meta" part="meta" ${l || r ? "" : "hidden"}>
|
|
@@ -1206,7 +1174,7 @@ class T extends R {
|
|
|
1206
1174
|
<slot name="label"><span class="label-text">${v(e)}</span></slot>
|
|
1207
1175
|
<span class="required" aria-hidden="true" ${s ? "" : "hidden"}>*</span>
|
|
1208
1176
|
</label>
|
|
1209
|
-
<p class="description" part="description" id="${
|
|
1177
|
+
<p class="description" part="description" id="${m}" ${r ? "" : "hidden"}>
|
|
1210
1178
|
<slot name="description"><span class="description-text">${v(t)}</span></slot>
|
|
1211
1179
|
</p>
|
|
1212
1180
|
</div>
|
|
@@ -1246,7 +1214,7 @@ class T extends R {
|
|
|
1246
1214
|
></ui-listbox>
|
|
1247
1215
|
</div>
|
|
1248
1216
|
</div>
|
|
1249
|
-
<p class="error" part="error" id="${
|
|
1217
|
+
<p class="error" part="error" id="${b}" ${u ? "" : "hidden"}>
|
|
1250
1218
|
<slot name="error"><span class="error-text">${v(i)}</span></slot>
|
|
1251
1219
|
</p>
|
|
1252
1220
|
${g.html}
|
|
@@ -1254,7 +1222,7 @@ class T extends R {
|
|
|
1254
1222
|
`), this._controlEl = this.root.querySelector(".control"), this._triggerEl = this.root.querySelector(".trigger"), this._valueEl = this.root.querySelector(".value"), this._panelEl = this.root.querySelector(".panel"), this._menuEl = this.root.querySelector(".menu"), this._menuItems = [], this._menuRenderFingerprint = "", this._syncOptionsData(), this._renderMenu(), !this._open && this._panelEl && (this._panelEl.hidden = !0), this._syncControlState();
|
|
1255
1223
|
}
|
|
1256
1224
|
}
|
|
1257
|
-
typeof customElements < "u" && !customElements.get("ui-select") && customElements.define("ui-select",
|
|
1225
|
+
typeof customElements < "u" && !customElements.get("ui-select") && customElements.define("ui-select", B);
|
|
1258
1226
|
export {
|
|
1259
|
-
|
|
1227
|
+
B as UISelect
|
|
1260
1228
|
};
|