@editora/ui-core 0.2.1 → 0.3.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/dist/{ElementBase-DxbvhLJs.js → ElementBase-CbUsP3D6.js} +1 -1
- package/dist/{ElementBase-BeZT54Hj.mjs → ElementBase-D5QsC5Vw.mjs} +10 -1
- package/dist/ElementBase.d.ts +7 -0
- package/dist/ElementBase.d.ts.map +1 -1
- package/dist/accordion.cjs.js +1 -1
- package/dist/accordion.esm.js +1 -1
- package/dist/add-icons-CVeHOsWl.js +1 -0
- package/dist/add-icons-DBUZJ0g7.mjs +14 -0
- package/dist/add-icons.cjs.js +1 -0
- package/dist/add-icons.d.ts +16 -0
- package/dist/add-icons.d.ts.map +1 -0
- package/dist/add-icons.esm.js +4 -0
- package/dist/alert-dialog.cjs.js +24 -24
- package/dist/alert-dialog.esm.js +112 -107
- package/dist/alert.cjs.js +8 -8
- package/dist/alert.esm.js +22 -22
- package/dist/animated-beam.cjs.js +1 -1
- package/dist/animated-beam.esm.js +1 -1
- package/dist/animated-list.cjs.js +1 -1
- package/dist/animated-list.esm.js +1 -1
- package/dist/animated-text.cjs.js +1 -1
- package/dist/animated-text.esm.js +1 -1
- package/dist/app-header.cjs.js +15 -3
- package/dist/app-header.esm.js +31 -4
- package/dist/aspect-ratio.cjs.js +1 -1
- package/dist/aspect-ratio.esm.js +1 -1
- package/dist/avatar.cjs.js +1 -1
- package/dist/avatar.esm.js +1 -1
- package/dist/badge.cjs.js +1 -1
- package/dist/badge.esm.js +1 -1
- package/dist/block-controls.cjs.js +1 -1
- package/dist/block-controls.esm.js +1 -1
- package/dist/box.cjs.js +1 -1
- package/dist/box.esm.js +1 -1
- package/dist/breadcrumb.cjs.js +4 -4
- package/dist/breadcrumb.esm.js +93 -84
- package/dist/button.cjs.js +520 -1
- package/dist/button.esm.js +682 -2
- package/dist/{calendar-CzpWDxLc.js → calendar-BsVqtpjM.js} +6 -6
- package/dist/{calendar-DkSDFg33.mjs → calendar-CFafqZVA.mjs} +6 -6
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.esm.js +1 -1
- package/dist/card.cjs.js +6 -5
- package/dist/card.esm.js +52 -39
- package/dist/chart.cjs.js +2 -2
- package/dist/chart.esm.js +2 -2
- package/dist/checkbox.cjs.js +4 -4
- package/dist/checkbox.esm.js +36 -15
- package/dist/clone-source-BxK2pEVw.mjs +11 -0
- package/dist/clone-source-C7E_ri5f.js +1 -0
- package/dist/collapsible.cjs.js +1 -1
- package/dist/collapsible.esm.js +1 -1
- package/dist/color-picker.cjs.js +2 -2
- package/dist/color-picker.esm.js +3 -3
- package/dist/combobox.cjs.js +4 -4
- package/dist/combobox.esm.js +22 -19
- package/dist/command-palette.cjs.js +1 -1
- package/dist/command-palette.esm.js +1 -1
- package/dist/command.cjs.js +1 -1
- package/dist/command.esm.js +1 -1
- 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-app-header.d.ts +1 -0
- package/dist/components/ui-app-header.d.ts.map +1 -1
- package/dist/components/ui-breadcrumb.d.ts.map +1 -1
- package/dist/components/ui-card.d.ts +7 -0
- package/dist/components/ui-card.d.ts.map +1 -1
- package/dist/components/ui-checkbox.d.ts +6 -0
- package/dist/components/ui-checkbox.d.ts.map +1 -1
- package/dist/components/ui-combobox.d.ts.map +1 -1
- package/dist/components/ui-date-time-picker.d.ts.map +1 -1
- package/dist/components/ui-dialog.d.ts +1 -0
- package/dist/components/ui-dialog.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-hover-card.d.ts.map +1 -1
- package/dist/components/ui-icon.d.ts +1 -0
- package/dist/components/ui-icon.d.ts.map +1 -1
- package/dist/components/ui-input.d.ts +16 -0
- package/dist/components/ui-input.d.ts.map +1 -1
- package/dist/components/ui-layout.d.ts +20 -0
- package/dist/components/ui-layout.d.ts.map +1 -1
- package/dist/components/ui-menu.d.ts +1 -0
- package/dist/components/ui-menu.d.ts.map +1 -1
- package/dist/components/ui-menubar.d.ts.map +1 -1
- package/dist/components/ui-multi-select.d.ts +6 -0
- package/dist/components/ui-multi-select.d.ts.map +1 -1
- package/dist/components/ui-number-field.d.ts +6 -0
- package/dist/components/ui-number-field.d.ts.map +1 -1
- package/dist/components/ui-pagination.d.ts.map +1 -1
- package/dist/components/ui-password-field.d.ts +11 -0
- package/dist/components/ui-password-field.d.ts.map +1 -1
- package/dist/components/ui-popover.d.ts.map +1 -1
- package/dist/components/ui-positioner.d.ts.map +1 -1
- package/dist/components/ui-radio-group.d.ts +6 -0
- package/dist/components/ui-radio-group.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-select.d.ts +7 -0
- package/dist/components/ui-select.d.ts.map +1 -1
- package/dist/components/ui-sidebar.d.ts +1 -0
- package/dist/components/ui-sidebar.d.ts.map +1 -1
- package/dist/components/ui-slider.d.ts +6 -0
- package/dist/components/ui-slider.d.ts.map +1 -1
- package/dist/components/ui-sortable.d.ts +1 -0
- package/dist/components/ui-sortable.d.ts.map +1 -1
- package/dist/components/ui-switch.d.ts +6 -0
- package/dist/components/ui-switch.d.ts.map +1 -1
- package/dist/components/ui-tabs.d.ts +2 -0
- package/dist/components/ui-tabs.d.ts.map +1 -1
- package/dist/components/ui-textarea.d.ts +6 -0
- package/dist/components/ui-textarea.d.ts.map +1 -1
- package/dist/components/ui-toast.d.ts.map +1 -1
- package/dist/components/ui-tooltip.d.ts.map +1 -1
- package/dist/container.cjs.js +1 -1
- package/dist/container.esm.js +1 -1
- package/dist/context-menu.cjs.js +2 -2
- package/dist/context-menu.esm.js +2 -2
- package/dist/control-group.cjs.js +1 -1
- package/dist/control-group.esm.js +1 -1
- package/dist/data-table.cjs.js +5 -5
- package/dist/data-table.esm.js +7 -7
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.esm.js +3 -3
- package/dist/date-picker.cjs.js +2 -2
- package/dist/date-picker.esm.js +17 -17
- package/dist/date-range-picker.cjs.js +2 -2
- package/dist/date-range-picker.esm.js +4 -4
- package/dist/date-range-time-picker.cjs.js +3 -3
- package/dist/date-range-time-picker.esm.js +16 -16
- package/dist/date-time-picker.cjs.js +26 -23
- package/dist/date-time-picker.esm.js +49 -46
- package/dist/{date-time-utils-zAx4ghvC.mjs → date-time-utils-CJUksWj3.mjs} +1 -1
- package/dist/{date-time-utils-C-4eHTyy.js → date-time-utils-D3hQQ5Om.js} +1 -1
- package/dist/description.cjs.js +1 -1
- package/dist/description.esm.js +1 -1
- package/dist/dialog.cjs.js +7 -7
- package/dist/dialog.esm.js +51 -47
- package/dist/direction-provider.cjs.js +1 -1
- package/dist/direction-provider.esm.js +1 -1
- package/dist/dismissable-layer.cjs.js +1 -1
- package/dist/dismissable-layer.esm.js +1 -1
- package/dist/dock.cjs.js +1 -1
- package/dist/dock.esm.js +1 -1
- package/dist/drawer.cjs.js +5 -5
- package/dist/drawer.esm.js +18 -17
- package/dist/dropdown.cjs.js +7 -7
- package/dist/dropdown.esm.js +39 -38
- package/dist/empty-state.cjs.js +12 -2
- package/dist/empty-state.esm.js +17 -7
- package/dist/field-error.cjs.js +1 -1
- package/dist/field-error.esm.js +1 -1
- package/dist/field.cjs.js +2 -2
- package/dist/field.esm.js +2 -2
- package/dist/fieldset.cjs.js +1 -1
- package/dist/fieldset.esm.js +1 -1
- package/dist/file-upload.cjs.js +1 -1
- package/dist/file-upload.esm.js +1 -1
- package/dist/flex.cjs.js +1 -1
- package/dist/flex.esm.js +1 -1
- package/dist/floating-toolbar.cjs.js +2 -2
- package/dist/floating-toolbar.esm.js +2 -2
- package/dist/focus-scope-Dl0qk5GP.mjs +177 -0
- package/dist/focus-scope-Doz0bnE1.js +1 -0
- package/dist/focus-scope.cjs.js +1 -1
- package/dist/focus-scope.esm.js +2 -2
- package/dist/form-control-B90_3kYN.js +1 -0
- package/dist/form-control-D9wWUMBl.mjs +86 -0
- package/dist/form.cjs.js +2 -2
- package/dist/form.esm.js +2 -2
- package/dist/gantt.cjs.js +2 -2
- package/dist/gantt.esm.js +2 -2
- package/dist/grid.cjs.js +1 -1
- package/dist/grid.esm.js +1 -1
- package/dist/hover-card.cjs.js +5 -5
- package/dist/hover-card.esm.js +19 -18
- package/dist/icon-cloud.cjs.js +1 -1
- package/dist/icon-cloud.esm.js +1 -1
- package/dist/icon.cjs.js +207 -1
- package/dist/icon.esm.js +294 -2
- package/dist/icons-CpCpPXV5.js +1 -0
- package/dist/icons-DWYbbhb0.mjs +115 -0
- package/dist/icons.d.ts +11 -1
- package/dist/icons.d.ts.map +1 -1
- package/dist/implicit-submit-B6M5Uc56.js +1 -0
- package/dist/implicit-submit-Lr0-q2LR.mjs +44 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +309 -299
- package/dist/inline-edit.cjs.js +1 -1
- package/dist/inline-edit.esm.js +1 -1
- package/dist/input.cjs.js +62 -20
- package/dist/input.esm.js +164 -58
- package/dist/label.cjs.js +1 -1
- package/dist/label.esm.js +1 -1
- package/dist/layout.cjs.js +145 -4
- package/dist/layout.esm.js +278 -40
- package/dist/marquee.cjs.js +1 -1
- package/dist/marquee.esm.js +1 -1
- package/dist/masonry-grid.cjs.js +1 -1
- package/dist/masonry-grid.esm.js +1 -1
- package/dist/menu.cjs.js +8 -8
- package/dist/menu.esm.js +51 -47
- package/dist/menubar.cjs.js +9 -9
- package/dist/menubar.esm.js +41 -40
- package/dist/meter.cjs.js +1 -1
- package/dist/meter.esm.js +1 -1
- package/dist/multi-select.cjs.js +7 -7
- package/dist/multi-select.esm.js +55 -34
- package/dist/navigate-CXebafwF.mjs +18 -0
- package/dist/navigate-ChJVIIuS.js +1 -0
- package/dist/navigation-menu.cjs.js +1 -1
- package/dist/navigation-menu.esm.js +1 -1
- package/dist/number-attribute-BAF07JrU.mjs +8 -0
- package/dist/number-attribute-C4Rrl7d3.js +1 -0
- package/dist/number-field.cjs.js +8 -8
- package/dist/number-field.esm.js +90 -69
- package/dist/number-ticker.cjs.js +1 -1
- package/dist/number-ticker.esm.js +1 -1
- package/dist/odometer.cjs.js +1 -1
- package/dist/odometer.esm.js +1 -1
- package/dist/orbiter.cjs.js +1 -1
- package/dist/orbiter.esm.js +1 -1
- package/dist/pagination.cjs.js +24 -23
- package/dist/pagination.esm.js +61 -46
- package/dist/{panel-group-BVHJEdfx.js → panel-group-BIzzpQ5i.js} +1 -1
- package/dist/{panel-group-BxO_eNW6.mjs → panel-group-CFLjzRWI.mjs} +1 -1
- package/dist/panel-group.cjs.js +1 -1
- package/dist/panel-group.esm.js +1 -1
- package/dist/panel.cjs.js +1 -1
- package/dist/panel.esm.js +1 -1
- package/dist/password-field.cjs.js +36 -16
- package/dist/password-field.esm.js +113 -44
- package/dist/pin-input.cjs.js +1 -1
- package/dist/pin-input.esm.js +1 -1
- package/dist/placement-grid.cjs.js +1 -1
- package/dist/placement-grid.esm.js +1 -1
- package/dist/plugin-panel.cjs.js +1 -1
- package/dist/plugin-panel.esm.js +1 -1
- package/dist/popover.cjs.js +2 -2
- package/dist/popover.esm.js +28 -26
- package/dist/portal.cjs.js +1 -1
- package/dist/portal.esm.js +1 -1
- package/dist/positioner.cjs.js +2 -2
- package/dist/positioner.esm.js +35 -38
- package/dist/preload.cjs.js +221 -0
- package/dist/preload.css +220 -0
- package/dist/preload.d.ts +17 -0
- package/dist/preload.d.ts.map +1 -0
- package/dist/preload.esm.js +224 -0
- package/dist/presence.cjs.js +1 -1
- package/dist/presence.esm.js +1 -1
- package/dist/primitives/clone-source.d.ts +3 -0
- package/dist/primitives/clone-source.d.ts.map +1 -0
- package/dist/primitives/focus-scope.d.ts +6 -0
- package/dist/primitives/focus-scope.d.ts.map +1 -1
- package/dist/primitives/form-control.d.ts +68 -0
- package/dist/primitives/form-control.d.ts.map +1 -0
- package/dist/primitives/implicit-submit.d.ts +17 -0
- package/dist/primitives/implicit-submit.d.ts.map +1 -0
- package/dist/primitives/navigate.d.ts +27 -0
- package/dist/primitives/navigate.d.ts.map +1 -0
- package/dist/primitives/number-attribute.d.ts +7 -0
- package/dist/primitives/number-attribute.d.ts.map +1 -0
- package/dist/primitives/slotted-input.d.ts +19 -0
- package/dist/primitives/slotted-input.d.ts.map +1 -0
- package/dist/progress.cjs.js +3 -3
- package/dist/progress.esm.js +3 -3
- package/dist/quick-actions.cjs.js +5 -5
- package/dist/quick-actions.esm.js +3 -3
- package/dist/radio-group.cjs.js +9 -9
- package/dist/radio-group.esm.js +47 -24
- package/dist/radio.cjs.js +1 -1
- package/dist/radio.esm.js +1 -1
- package/dist/rating.cjs.js +6 -6
- package/dist/rating.esm.js +21 -10
- package/dist/{runtime-BRT7E4A8.mjs → runtime-CORXjP7e.mjs} +379 -357
- package/dist/runtime-uCly3ECd.js +5 -0
- package/dist/runtime.cjs.js +1 -1
- package/dist/runtime.esm.js +1 -1
- package/dist/scroll-area.cjs.js +1 -1
- package/dist/scroll-area.esm.js +1 -1
- package/dist/section.cjs.js +1 -1
- package/dist/section.esm.js +1 -1
- package/dist/select.cjs.js +21 -21
- package/dist/select.esm.js +111 -71
- package/dist/selection-popup.cjs.js +2 -2
- package/dist/selection-popup.esm.js +2 -2
- package/dist/semantic-tokens.d.ts.map +1 -1
- package/dist/separator.cjs.js +1 -1
- package/dist/separator.esm.js +1 -1
- package/dist/sidebar.cjs.js +15 -15
- package/dist/sidebar.esm.js +48 -42
- package/dist/skeleton.cjs.js +1 -1
- package/dist/skeleton.esm.js +1 -1
- package/dist/slider.cjs.js +11 -11
- package/dist/slider.esm.js +40 -23
- package/dist/slot.cjs.js +1 -1
- package/dist/slot.esm.js +1 -1
- package/dist/slotted-input-BVq2QQg2.js +1 -0
- package/dist/slotted-input-atWznLfm.mjs +13 -0
- package/dist/sortable.cjs.js +25 -25
- package/dist/sortable.esm.js +29 -21
- package/dist/spinning-text.cjs.js +1 -1
- package/dist/spinning-text.esm.js +1 -1
- package/dist/split-button.cjs.js +1 -1
- package/dist/split-button.esm.js +1 -1
- package/dist/splitter.cjs.js +1 -1
- package/dist/splitter.esm.js +1 -1
- package/dist/standalone/add-icons.d.ts +2 -0
- package/dist/standalone/add-icons.d.ts.map +1 -0
- package/dist/standalone/preload.d.ts +2 -0
- package/dist/standalone/preload.d.ts.map +1 -0
- package/dist/stepper.cjs.js +3 -3
- package/dist/stepper.esm.js +3 -3
- package/dist/switch.cjs.js +9 -9
- package/dist/switch.esm.js +56 -35
- package/dist/table.cjs.js +1 -1
- package/dist/table.esm.js +1 -1
- package/dist/tabs.cjs.js +14 -14
- package/dist/tabs.esm.js +129 -115
- package/dist/tags-input.cjs.js +1 -1
- package/dist/tags-input.esm.js +1 -1
- package/dist/textarea.cjs.js +33 -11
- package/dist/textarea.esm.js +74 -35
- package/dist/theme.d.ts +6 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/time-field.cjs.js +1 -1
- package/dist/time-field.esm.js +2 -2
- package/dist/time-picker.cjs.js +1 -1
- package/dist/time-picker.esm.js +3 -3
- package/dist/timeline.cjs.js +2 -2
- package/dist/timeline.esm.js +2 -2
- package/dist/toast.cjs.js +4 -4
- package/dist/toast.esm.js +17 -16
- package/dist/toggle-group.cjs.js +1 -1
- package/dist/toggle-group.esm.js +1 -1
- package/dist/toggle.cjs.js +3 -3
- package/dist/toggle.esm.js +9 -9
- package/dist/toolbar.cjs.js +1 -1
- package/dist/toolbar.esm.js +1 -1
- package/dist/tooltip.cjs.js +2 -2
- package/dist/tooltip.esm.js +12 -14
- package/dist/transfer-list.cjs.js +1 -1
- package/dist/transfer-list.esm.js +1 -1
- package/dist/{tree-33fVNnaf.mjs → tree-CD2k2lIC.mjs} +1 -1
- package/dist/{tree-Dc02MChE.js → tree-ChQfhxya.js} +1 -1
- package/dist/tree-item.cjs.js +1 -1
- package/dist/tree-item.esm.js +1 -1
- package/dist/tree.cjs.js +1 -1
- package/dist/tree.esm.js +1 -1
- package/dist/visually-hidden.cjs.js +1 -1
- package/dist/visually-hidden.esm.js +1 -1
- package/dist/wizard.cjs.js +4 -4
- package/dist/wizard.esm.js +4 -4
- package/package.json +3 -2
- package/dist/focus-scope-Bwug2gDv.js +0 -1
- package/dist/focus-scope-CmEsG5UZ.mjs +0 -138
- package/dist/runtime-CXw4SGV9.js +0 -5
- package/dist/ui-button-C3OmI7Sn.mjs +0 -684
- package/dist/ui-button-CnLwXBnx.js +0 -520
- package/dist/ui-icon-D3avtxX_.js +0 -207
- package/dist/ui-icon-DLhB08Fo.mjs +0 -361
package/dist/menubar.esm.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { E } from "./ElementBase-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { E } from "./ElementBase-D5QsC5Vw.mjs";
|
|
2
|
+
import { h as k, r as L } from "./clone-source-BxK2pEVw.mjs";
|
|
3
|
+
import { b as I } from "./portal-DeaM1tYY.mjs";
|
|
4
|
+
import { d as C } from "./collection-C7URGjEI.mjs";
|
|
5
|
+
import { c as T } from "./dismissable-layer-BmPIoK80.mjs";
|
|
6
|
+
import { r as g, s as v, f as D, m as y, g as x } from "./roving-focus-group-Dbm1Jko_.mjs";
|
|
7
|
+
import { e as z } from "./positioner-BE8Nbho2.mjs";
|
|
8
|
+
import { O, o as B, r as F, a as R } from "./overlay-motion-BX3dPLay.mjs";
|
|
8
9
|
import "./listbox-hMVOhKHC.mjs";
|
|
9
|
-
import { c as
|
|
10
|
-
const
|
|
10
|
+
import { c as M } from "./menu-item-styles-CdqxPUuw.mjs";
|
|
11
|
+
const $ = ":scope > .submenu", H = [
|
|
11
12
|
"--ui-color-primary",
|
|
12
13
|
"--ui-color-primary-hover",
|
|
13
14
|
"--ui-color-foreground-on-primary",
|
|
@@ -42,7 +43,7 @@ const R = ":scope > .submenu", M = [
|
|
|
42
43
|
"--accent-surface",
|
|
43
44
|
"--accent-indicator",
|
|
44
45
|
"--accent-track"
|
|
45
|
-
],
|
|
46
|
+
], q = [
|
|
46
47
|
{ prefix: "--accent-", from: 1, to: 12 },
|
|
47
48
|
{ prefix: "--accent-a", from: 1, to: 12 },
|
|
48
49
|
{ prefix: "--gray-", from: 1, to: 12 },
|
|
@@ -52,13 +53,13 @@ const R = ":scope > .submenu", M = [
|
|
|
52
53
|
{ prefix: "--shadow-", from: 1, to: 6 },
|
|
53
54
|
{ prefix: "--radius-", from: 1, to: 6 }
|
|
54
55
|
];
|
|
55
|
-
function
|
|
56
|
+
function N(n) {
|
|
56
57
|
return n === "sm" || n === "1" || n === "compact" ? "sm" : n === "lg" || n === "3" || n === "comfortable" ? "lg" : "md";
|
|
57
58
|
}
|
|
58
59
|
function S(n) {
|
|
59
60
|
return !n || n === "default" ? null : n === "none" || n === "square" ? "0px" : n === "sm" ? "8px" : n === "md" || n === "soft" ? "12px" : n === "lg" ? "16px" : n === "full" ? "999px" : /^\d+(\.\d+)?$/.test(n) ? `${n}px` : /^\d+(\.\d+)?(px|rem|em|%)$/.test(n) ? n : null;
|
|
60
61
|
}
|
|
61
|
-
const
|
|
62
|
+
const V = `
|
|
62
63
|
:host {
|
|
63
64
|
--ui-menubar-gap: var(--base-menubar-gap, 6px);
|
|
64
65
|
--ui-menubar-padding: var(--base-menubar-padding, 6px);
|
|
@@ -138,7 +139,7 @@ const q = `
|
|
|
138
139
|
--ui-menubar-item-hover-bg: color-mix(in srgb, #ffffff 16%, transparent);
|
|
139
140
|
--ui-menubar-item-active-bg: color-mix(in srgb, #ffffff 20%, transparent);
|
|
140
141
|
--ui-menubar-item-active-color: #ffffff;
|
|
141
|
-
--ui-menubar-ring: #93c5fd;
|
|
142
|
+
--ui-menubar-ring: var(--ui-color-accent-on-dark, #93c5fd);
|
|
142
143
|
border-color: #334155;
|
|
143
144
|
}
|
|
144
145
|
|
|
@@ -264,8 +265,8 @@ const q = `
|
|
|
264
265
|
border-color: Highlight;
|
|
265
266
|
}
|
|
266
267
|
}
|
|
267
|
-
`,
|
|
268
|
-
${
|
|
268
|
+
`, K = `
|
|
269
|
+
${O}
|
|
269
270
|
|
|
270
271
|
.ui-menubar-portal {
|
|
271
272
|
position: absolute;
|
|
@@ -366,7 +367,7 @@ const q = `
|
|
|
366
367
|
0 6px 18px rgba(2, 6, 23, 0.14);
|
|
367
368
|
}
|
|
368
369
|
|
|
369
|
-
${
|
|
370
|
+
${M({
|
|
370
371
|
scopes: [".ui-menubar-portal .content-host"],
|
|
371
372
|
prefix: "--ui-menubar-panel",
|
|
372
373
|
shortcutSelectors: [".shortcut", ".meta"],
|
|
@@ -492,11 +493,11 @@ const q = `
|
|
|
492
493
|
}
|
|
493
494
|
}
|
|
494
495
|
`;
|
|
495
|
-
function
|
|
496
|
+
function G(n) {
|
|
496
497
|
return n === "top" || n === "left" || n === "right" ? n : "bottom";
|
|
497
498
|
}
|
|
498
|
-
function
|
|
499
|
-
const e =
|
|
499
|
+
function U(n) {
|
|
500
|
+
const e = G(n);
|
|
500
501
|
return e === "top" ? "top" : e === "left" ? "left" : e === "right" ? "right" : "bottom";
|
|
501
502
|
}
|
|
502
503
|
function f(n, e) {
|
|
@@ -533,7 +534,7 @@ function m(n) {
|
|
|
533
534
|
function b(n, e) {
|
|
534
535
|
return n.getAttribute(e) || "";
|
|
535
536
|
}
|
|
536
|
-
class
|
|
537
|
+
class j extends E {
|
|
537
538
|
constructor() {
|
|
538
539
|
super(), this._items = [], this._contents = [], this._itemSlot = null, this._contentSlot = null, this._uid = Math.random().toString(36).slice(2, 8), this._ignoreSelected = !1, this._open = !1, this._portalEl = null, this._portalSurfaceEl = null, this._portalContentHostEl = null, this._positioner = null, this._dismissableLayer = null, this._panelForIndex = -1, this._typeaheadBuffer = "", this._typeaheadTimer = null, this._submenuRaf = null, this._globalListenersBound = !1, this._focusIndex = -1, this._onClick = this._onClick.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onDocKeyDown = this._onDocKeyDown.bind(this), this._onDocScroll = this._onDocScroll.bind(this), this._onSlotChange = this._onSlotChange.bind(this), this._onMouseMove = this._onMouseMove.bind(this), this._onPanelPointerOver = this._onPanelPointerOver.bind(this), this._onPanelPointerLeave = this._onPanelPointerLeave.bind(this), this._onPanelFocusIn = this._onPanelFocusIn.bind(this);
|
|
539
540
|
}
|
|
@@ -582,7 +583,7 @@ class G extends E {
|
|
|
582
583
|
render() {
|
|
583
584
|
const e = this.getAttribute("orientation") === "vertical" ? "vertical" : "horizontal";
|
|
584
585
|
this.setContent(`
|
|
585
|
-
<style>${
|
|
586
|
+
<style>${V}</style>
|
|
586
587
|
<div class="bar" part="bar" role="menubar" aria-orientation="${e}">
|
|
587
588
|
<slot name="item"></slot>
|
|
588
589
|
</div>
|
|
@@ -687,7 +688,7 @@ class G extends E {
|
|
|
687
688
|
this._globalListenersBound && (document.removeEventListener("keydown", this._onDocKeyDown), document.removeEventListener("scroll", this._onDocScroll, !0), this._globalListenersBound = !1);
|
|
688
689
|
}
|
|
689
690
|
_syncStructure() {
|
|
690
|
-
this._items = this._itemSlot ? this._itemSlot.assignedElements({ flatten: !0 }) : [], this._contents = this._contentSlot ? this._contentSlot.assignedElements({ flatten: !0 }) : [];
|
|
691
|
+
this._items = this._itemSlot ? this._itemSlot.assignedElements({ flatten: !0 }) : [], this._contents = this._contentSlot ? this._contentSlot.assignedElements({ flatten: !0 }) : [], this._contents.forEach((a) => k(a));
|
|
691
692
|
const e = this._selectedIndex(), t = g(this._items, {
|
|
692
693
|
activeIndex: this._focusIndex,
|
|
693
694
|
selectedIndex: e,
|
|
@@ -712,7 +713,7 @@ class G extends E {
|
|
|
712
713
|
return this._panelListbox()?.queryEnabledItems({ container: e || this._panelListbox() }) || [];
|
|
713
714
|
}
|
|
714
715
|
_submenuFor(e) {
|
|
715
|
-
return e.querySelector(
|
|
716
|
+
return e.querySelector($);
|
|
716
717
|
}
|
|
717
718
|
_setOpenPanelBranch(e, t) {
|
|
718
719
|
const r = this._panelListbox();
|
|
@@ -765,8 +766,8 @@ class G extends E {
|
|
|
765
766
|
s.removeAttribute("data-submenu-side"), s.removeAttribute("data-submenu-align");
|
|
766
767
|
const o = i.style.display, u = i.style.visibility, c = i.style.pointerEvents, d = i.style.opacity, P = i.style.transform;
|
|
767
768
|
i.style.display = "grid", i.style.visibility = "hidden", i.style.pointerEvents = "none", i.style.opacity = "0", i.style.transform = "none";
|
|
768
|
-
const
|
|
769
|
-
|
|
769
|
+
const h = s.getBoundingClientRect(), p = i.getBoundingClientRect();
|
|
770
|
+
h.right + 4 + p.width > t - 8 && h.left - 4 - p.width >= 8 && s.setAttribute("data-submenu-side", "left"), h.top + p.height > r - 8 && h.bottom - p.height >= 8 && s.setAttribute("data-submenu-align", "up"), i.style.display = o, i.style.visibility = u, i.style.pointerEvents = c, i.style.opacity = d, i.style.transform = P;
|
|
770
771
|
});
|
|
771
772
|
}
|
|
772
773
|
_panelListbox() {
|
|
@@ -778,7 +779,7 @@ class G extends E {
|
|
|
778
779
|
_buildPanelContent(e) {
|
|
779
780
|
const t = this._contents[e], r = document.createElement("div");
|
|
780
781
|
r.className = "ui-menubar-portal", r.style.position = "absolute", r.style.pointerEvents = "auto", r.innerHTML = `
|
|
781
|
-
<style>${
|
|
782
|
+
<style>${K}</style>
|
|
782
783
|
<div class="surface menu-panel" part="menu" role="menu" aria-hidden="false" aria-busy="false" tabindex="-1">
|
|
783
784
|
<div class="state-row" part="state"></div>
|
|
784
785
|
<ui-listbox class="content-host" slot="menu" role="menu" item-selector="${l().replace(/"/g, """)}" direct-item-selector=":scope > [slot="menu"] > ${l().replace(/"/g, """)}" item-role="menuitem" active-attribute="data-active"></ui-listbox>
|
|
@@ -787,7 +788,7 @@ class G extends E {
|
|
|
787
788
|
const a = r.querySelector("ui-listbox.content-host"), i = r.querySelector(".surface");
|
|
788
789
|
if (!a || !i) return r;
|
|
789
790
|
if (i.id = t?.id || `ui-menubar-panel-${this._uid}-${e}`, i.setAttribute("aria-labelledby", this._items[e]?.id || ""), this._applyPanelVariantData(r), this._applyPanelTokens(r), t) {
|
|
790
|
-
const s = t.cloneNode(!0);
|
|
791
|
+
const s = L(t.cloneNode(!0));
|
|
791
792
|
s.setAttribute("slot", "menu"), a.appendChild(s);
|
|
792
793
|
}
|
|
793
794
|
if (this._hydratePanelItems(a), a.refresh(), !a.querySelector(l())) {
|
|
@@ -819,7 +820,7 @@ class G extends E {
|
|
|
819
820
|
}), r.addEventListener("pointerover", this._onPanelPointerOver), r.addEventListener("pointerleave", this._onPanelPointerLeave), r.addEventListener("focusin", this._onPanelFocusIn), r;
|
|
820
821
|
}
|
|
821
822
|
_applyPanelVariantData(e) {
|
|
822
|
-
const t = b(this, "variant"), r =
|
|
823
|
+
const t = b(this, "variant"), r = N(this.getAttribute("size") || this.getAttribute("density")), a = b(this, "density"), i = this.getAttribute("radius"), s = b(this, "shape"), o = b(this, "elevation"), u = b(this, "tone"), c = t === "default" || t === "" ? "" : t === "glass" ? "soft" : t === "line" ? "outline" : t;
|
|
823
824
|
c ? e.setAttribute("data-variant", c) : e.removeAttribute("data-variant"), r !== "md" ? e.setAttribute("data-size", r) : e.removeAttribute("data-size"), a && a !== "default" ? e.setAttribute("data-density", a) : e.removeAttribute("data-density"), i ? e.setAttribute("data-radius", i) : e.removeAttribute("data-radius"), s && s !== "default" ? e.setAttribute("data-shape", s) : e.removeAttribute("data-shape"), o && o !== "default" ? e.setAttribute("data-elevation", o) : e.removeAttribute("data-elevation"), u && u !== "default" && u !== "brand" ? e.setAttribute("data-tone", u) : e.removeAttribute("data-tone"), this._open ? e.setAttribute("data-open", "true") : e.removeAttribute("data-open");
|
|
824
825
|
const d = S(i || s || null);
|
|
825
826
|
d ? (e.style.setProperty("--ui-menubar-panel-radius", d), e.style.setProperty("--ui-menubar-panel-item-radius", d === "999px" ? "999px" : `calc(${d} - 2px)`)) : (e.style.removeProperty("--ui-menubar-panel-radius"), e.style.removeProperty("--ui-menubar-panel-item-radius"));
|
|
@@ -884,10 +885,10 @@ class G extends E {
|
|
|
884
885
|
].forEach((a) => {
|
|
885
886
|
const i = t.getPropertyValue(a).trim();
|
|
886
887
|
i ? e.style.setProperty(a, i) : e.style.removeProperty(a);
|
|
887
|
-
}),
|
|
888
|
+
}), H.forEach((a) => {
|
|
888
889
|
const i = t.getPropertyValue(a).trim();
|
|
889
890
|
i ? e.style.setProperty(a, i) : e.style.removeProperty(a);
|
|
890
|
-
}),
|
|
891
|
+
}), q.forEach(({ prefix: a, from: i, to: s }) => {
|
|
891
892
|
for (let o = i; o <= s; o += 1) {
|
|
892
893
|
const u = `${a}${o}`, c = t.getPropertyValue(u).trim();
|
|
893
894
|
c ? e.style.setProperty(u, c) : e.style.removeProperty(u);
|
|
@@ -913,30 +914,30 @@ class G extends E {
|
|
|
913
914
|
this._teardownPanel();
|
|
914
915
|
const r = this._buildPanelContent(e);
|
|
915
916
|
this._portalEl = r, this._portalSurfaceEl = r.querySelector(".surface"), this._portalContentHostEl = r.querySelector("ui-listbox.content-host"), this._panelForIndex = e;
|
|
916
|
-
const a =
|
|
917
|
+
const a = I();
|
|
917
918
|
if (!a) {
|
|
918
919
|
this._portalEl = null, this._panelForIndex = -1;
|
|
919
920
|
return;
|
|
920
921
|
}
|
|
921
|
-
a.appendChild(r), this._positioner =
|
|
922
|
+
a.appendChild(r), this._positioner = z({
|
|
922
923
|
anchor: t,
|
|
923
924
|
floating: this._panelSurface() || r,
|
|
924
|
-
placement:
|
|
925
|
+
placement: U(this.getAttribute("placement")),
|
|
925
926
|
offset: 6,
|
|
926
927
|
flip: !0,
|
|
927
928
|
shift: !0,
|
|
928
929
|
fitViewport: !0,
|
|
929
930
|
observeScroll: !1
|
|
930
|
-
}), this._dismissableLayer =
|
|
931
|
+
}), this._dismissableLayer = T({
|
|
931
932
|
node: this._panelSurface() || r,
|
|
932
933
|
trigger: t,
|
|
933
934
|
closeOnEscape: !0,
|
|
934
935
|
closeOnPointerOutside: !0,
|
|
935
936
|
onDismiss: () => this.close()
|
|
936
|
-
}),
|
|
937
|
+
}), B(this._panelSurface() || r);
|
|
937
938
|
}
|
|
938
939
|
_teardownPanel(e = !1) {
|
|
939
|
-
this._dismissableLayer?.destroy(), this._dismissableLayer = null, this._positioner?.destroy(), this._positioner = null, e ?
|
|
940
|
+
this._dismissableLayer?.destroy(), this._dismissableLayer = null, this._positioner?.destroy(), this._positioner = null, e ? F(this._portalEl) : R(this._portalEl), this._portalEl = null, this._portalSurfaceEl = null, this._portalContentHostEl = null, this._panelForIndex = -1, this._submenuRaf != null && (cancelAnimationFrame(this._submenuRaf), this._submenuRaf = null), this._resetTypeahead();
|
|
940
941
|
}
|
|
941
942
|
_selectIndex(e, t) {
|
|
942
943
|
const r = this._selectedIndex(), a = A(e, this._items.length);
|
|
@@ -949,7 +950,7 @@ class G extends E {
|
|
|
949
950
|
}
|
|
950
951
|
_focusItem(e) {
|
|
951
952
|
const t = this._items[e];
|
|
952
|
-
t && (this._focusIndex = e, v(this._items, t, { activeAttribute: null }),
|
|
953
|
+
t && (this._focusIndex = e, v(this._items, t, { activeAttribute: null }), D(t));
|
|
953
954
|
}
|
|
954
955
|
_queryPanelItems() {
|
|
955
956
|
return this._queryPanelItemsIn(this._panelListbox());
|
|
@@ -982,7 +983,7 @@ class G extends E {
|
|
|
982
983
|
_typeaheadOnBar(e) {
|
|
983
984
|
if (!this.typeahead || !this._isTypeaheadKey(e)) return !1;
|
|
984
985
|
this._typeaheadBuffer = `${this._typeaheadBuffer}${e.key.toLowerCase()}`.slice(0, 24), this._typeaheadTimer != null && window.clearTimeout(this._typeaheadTimer), this._typeaheadTimer = window.setTimeout(() => this._resetTypeahead(), 420);
|
|
985
|
-
const t = this._items.findIndex((a) => a === e.target || a.contains(e.target)), r =
|
|
986
|
+
const t = this._items.findIndex((a) => a === e.target || a.contains(e.target)), r = C(this._items, this._typeaheadBuffer, {
|
|
986
987
|
startIndex: t,
|
|
987
988
|
getLabel: (a) => a.getAttribute("aria-label") || a.textContent || "",
|
|
988
989
|
getDisabled: m
|
|
@@ -1122,7 +1123,7 @@ class G extends E {
|
|
|
1122
1123
|
return !1;
|
|
1123
1124
|
}
|
|
1124
1125
|
}
|
|
1125
|
-
typeof customElements < "u" && !customElements.get("ui-menubar") && customElements.define("ui-menubar",
|
|
1126
|
+
typeof customElements < "u" && !customElements.get("ui-menubar") && customElements.define("ui-menubar", j);
|
|
1126
1127
|
export {
|
|
1127
|
-
|
|
1128
|
+
j as UIMenubar
|
|
1128
1129
|
};
|
package/dist/meter.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("./ElementBase-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("./ElementBase-CbUsP3D6.js"),f=`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
width: 100%;
|
package/dist/meter.esm.js
CHANGED
package/dist/multi-select.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
2
|
-
${
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const W=require("./ElementBase-CbUsP3D6.js"),O=require("./form-control-B90_3kYN.js"),V=require("./overlay-motion-B56x1GoY.js"),j=require("./control-name-BmoI1m3a.js"),C=require("./collection-qv8A8rq4.js");require("./listbox-CTpRpuF7.js");let H=0;const J=`
|
|
2
|
+
${V.OVERLAY_MOTION_CSS}
|
|
3
3
|
|
|
4
4
|
:host {
|
|
5
5
|
--ui-multi-select-border-color: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
@@ -468,8 +468,8 @@
|
|
|
468
468
|
--ui-multi-select-text: #e2e8f0;
|
|
469
469
|
--ui-multi-select-muted: #93a4bd;
|
|
470
470
|
--ui-multi-select-border-color: #334155;
|
|
471
|
-
--ui-multi-select-focus: #93c5fd;
|
|
472
|
-
--ui-multi-select-chip-bg: color-mix(in srgb, #93c5fd 18%, transparent);
|
|
471
|
+
--ui-multi-select-focus: var(--ui-color-accent-on-dark, #93c5fd);
|
|
472
|
+
--ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-accent-on-dark, #93c5fd) 18%, transparent);
|
|
473
473
|
--ui-multi-select-chip-text: #e2e8f0;
|
|
474
474
|
}
|
|
475
475
|
|
|
@@ -535,8 +535,8 @@
|
|
|
535
535
|
--ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-danger, #dc2626) 12%, transparent);
|
|
536
536
|
--ui-multi-select-chip-text: var(--ui-color-danger-text, color-mix(in srgb, var(--ui-color-danger, #dc2626) 82%, #0f172a 18%));
|
|
537
537
|
}
|
|
538
|
-
`;function
|
|
539
|
-
<style>${
|
|
538
|
+
`;function N(r){if(!r)return[];try{const e=JSON.parse(r);if(!Array.isArray(e))return[];const t=[],s=(l,n)=>{const a=String(l.value??"").trim();a&&t.push({value:a,label:String(l.label??a),description:l.description?String(l.description):void 0,disabled:!!l.disabled,group:n})};return e.forEach(l=>{if(!l||typeof l!="object")return;const n=l;if(Array.isArray(n.options)){const a=String(n.label??"").trim();n.options.forEach(c=>{!c||typeof c!="object"||s(c,a||void 0)});return}s(n)}),t}catch{return[]}}function v(r){if(!r)return[];const e=r.trim();if(!e)return[];if(e.startsWith("["))try{const t=JSON.parse(e);if(Array.isArray(t))return t.map(s=>String(s)).filter(Boolean)}catch{}return e.split(",").map(t=>t.trim()).filter(Boolean)}function D(r){return!r||r==="default"?null:r==="none"||r==="square"?"0px":r==="sm"?"8px":r==="md"||r==="soft"?"12px":r==="lg"?"16px":r==="full"?"999px":/^\d+(\.\d+)?$/.test(r)?`${r}px`:/^\d+(\.\d+)?(px|rem|em|%)$/.test(r)?r:null}function G(r){return r==="sm"||r==="1"?"sm":r==="lg"||r==="3"?"lg":"md"}const q=class q extends W.ElementBase{constructor(){super(),this._formControl=new O.FormControl(this,{getValue:()=>this.value,getValidity:()=>({valueMissing:O.isRequired(this)&&this.value.length===0,message:"Please select at least one item.",anchor:this._inputEl}),defaultAttribute:"value"}),this._options=[],this._selected=[],this._query="",this._inputEl=null,this._shellEl=null,this._panelEl=null,this._formUnregister=null,this._outsidePointerDown=null,this._activeValue=null,this._uid=`ui-multi-select-${++H}`,this._isSyncingUi=!1,this._needsSyncUi=!1,this._onInput=this._onInput.bind(this),this._onKeyDown=this._onKeyDown.bind(this),this._onToggle=this._onToggle.bind(this),this._onFocusIn=this._onFocusIn.bind(this),this._onFocusOut=this._onFocusOut.bind(this)}static get observedAttributes(){return["options","value","placeholder","label","aria-label","aria-description","aria-describedby","description","data-error","name","required","disabled","readonly","loading","loading-text","clearable","open","max-selections","render-limit","selection-indicator","option-border","variant","tone","density","shape","size","radius","option-radius","elevation"]}get value(){return[...this._selected]}set value(e){const t=Array.isArray(e)?e.map(s=>String(s)).filter(Boolean):v(String(e??""));this._setSelected(t,"api")}get open(){return this.hasAttribute("open")}set open(e){e?this.setAttribute("open",""):this.removeAttribute("open")}formResetCallback(){this._formControl.formResetCallback()}formDisabledCallback(e){this._formControl.formDisabledCallback(e)}get form(){return this._formControl.form}connectedCallback(){super.connectedCallback(),this._formControl.connect(),this._registerWithForm()}disconnectedCallback(){this._formControl.disconnect(),this._detachOutsideListener(),this._formUnregister&&(this._formUnregister(),this._formUnregister=null),super.disconnectedCallback()}attributeChangedCallback(e,t,s){if(t!==s&&(e==="options"&&(this._options=N(s)),e==="value"&&(this._selected=v(s)),e==="name"&&this.isConnected&&this._registerWithForm(),!!this._shellEl)){if(e==="variant"||e==="tone"||e==="density"||e==="shape"||e==="size"||e==="radius"||e==="option-radius"||e==="elevation"){this._syncVisualState(),e==="size"&&this._syncUi();return}this._syncUi()}}shouldRenderOnAttributeChange(){return!1}render(){this.setContent(`
|
|
539
|
+
<style>${J}</style>
|
|
540
540
|
<div class="root">
|
|
541
541
|
<div class="meta" hidden>
|
|
542
542
|
<div class="label" hidden><span class="label-text" id="${this._uid}-label"></span><span class="required" hidden>*</span></div>
|
|
@@ -559,4 +559,4 @@
|
|
|
559
559
|
</div>
|
|
560
560
|
<div class="error" part="error" hidden></div>
|
|
561
561
|
</div>
|
|
562
|
-
`),this._options=I(this.getAttribute("options")),this._selected=v(this.getAttribute("value")),this._shellEl=this.root.querySelector(".shell"),this._inputEl=this.root.querySelector(".input"),this._panelEl=this.root.querySelector(".panel"),this._inputEl?.addEventListener("input",this._onInput),this._inputEl?.addEventListener("keydown",this._onKeyDown),this.root.querySelector(".toggle")?.addEventListener("click",this._onToggle),this.root.querySelector(".clear")?.addEventListener("click",()=>this._clearSelection("clear-button")),this._shellEl?.addEventListener("focusin",this._onFocusIn),this._shellEl?.addEventListener("focusout",this._onFocusOut),this._syncVisualState(),this._syncUi()}_syncVisualState(){const e=L(this.getAttribute("radius")||this.getAttribute("shape"));e?this.style.setProperty("--ui-multi-select-radius",e):this.style.removeProperty("--ui-multi-select-radius");const t=L(this.getAttribute("option-radius"));t?this.style.setProperty("--ui-multi-select-option-radius",t):this.style.removeProperty("--ui-multi-select-option-radius");const s=H(this.getAttribute("size"));this.setAttribute("data-size",s)}_selectionIndicator(){const e=(this.getAttribute("selection-indicator")||"checkbox").trim().toLowerCase();return e==="none"||e==="check"?e:"checkbox"}_isInteractionLocked(){return this.hasAttribute("disabled")||this.hasAttribute("readonly")}_attachOutsideListener(){this._outsidePointerDown||typeof document>"u"||(this._outsidePointerDown=e=>{const t=e.composedPath();t.includes(this)||t.includes(this.root)||this._panelEl&&t.includes(this._panelEl)||this._inputEl&&t.includes(this._inputEl)||(this.open=!1,this._syncUi())},document.addEventListener("pointerdown",this._outsidePointerDown))}_detachOutsideListener(){!this._outsidePointerDown||typeof document>"u"||(document.removeEventListener("pointerdown",this._outsidePointerDown),this._outsidePointerDown=null)}_filteredOptions(){const e=S.normalizeCollectionText(this._query);return e?this._options.filter(t=>S.normalizeCollectionText(t.label).includes(e)||S.normalizeCollectionText(t.value).includes(e)):this._options}_renderLimit(){const e=Number(this.getAttribute("render-limit"));return Number.isFinite(e)&&e>0?e:200}_findOptionNode(e){return!e||!this._panelEl?null:Array.from(this._panelEl.querySelectorAll(".option")).find(t=>t.getAttribute("data-value")===e)}_selectedOptionRecords(){return this._selected.map(e=>this._options.find(t=>t.value===e)).filter(Boolean)}_emitChange(e,t){this.dispatchEvent(new CustomEvent("change",{detail:{value:[...this._selected],previousValue:t,selectedItems:this._selectedOptionRecords(),source:e},bubbles:!0,composed:!0}))}_setSelected(e,t){const s=Number(this.getAttribute("max-selections")),l=[];e.forEach(c=>{if(!c)return;const p=l.indexOf(c);p>=0&&l.splice(p,1),l.push(c)});const n=Number.isFinite(s)&&s>0?l.slice(-s):l,a=[...this._selected];if(a.length===n.length&&a.every((c,p)=>c===n[p])){this._syncUi();return}this._selected=n,this._selected.length?this.setAttribute("value",JSON.stringify(this._selected)):this.removeAttribute("value"),this._syncUi(),this._emitChange(t,a)}_toggleValue(e,t){if(this._isInteractionLocked()||this.hasAttribute("loading"))return;const l=this._selected.includes(e)?this._selected.filter(n=>n!==e):[...this._selected,e];this._activeValue=e,this._setSelected(l,t)}_removeChip(e){this._isInteractionLocked()||(this._activeValue===e&&(this._activeValue=null),this._toggleValue(e,"remove-chip"))}_clearSelection(e){if(!(this._isInteractionLocked()||!this._selected.length)){this._activeValue=null,this._setSelected([],e),this._query="",this._inputEl&&(this._inputEl.value="");try{this._inputEl?.focus({preventScroll:!0})}catch{this._inputEl?.focus()}}}_registerWithForm(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);try{const l=this.getRootNode().host?.closest?.("ui-form")||null||this.closest("ui-form"),n=this.getAttribute("name");l&&typeof l.registerField=="function"&&n&&(this._formUnregister=l.registerField(n,{name:n,getValue:()=>[...this._selected],setValue:a=>{Array.isArray(a)?this._setSelected(a.map(c=>String(c)),"form"):this._setSelected(v(String(a??"")),"form")},validate:async()=>this.hasAttribute("required")&&this._selected.length===0?{valid:!1,message:"At least one option is required"}:{valid:!0},setError:a=>{a?this.setAttribute("data-error",a):this.removeAttribute("data-error"),this._syncUi()}}))}catch{}}_onInput(e){this._isInteractionLocked()||(this._query=e.target?.value||"",this.open||(this.open=!0),this._syncUi())}_onKeyDown(e){if(!this._isInteractionLocked()){if(e.key==="ArrowDown"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.getActiveItem()?this._panelEl.move(1,{focus:!1,owner:this._inputEl,scroll:!1}):this._panelEl?.focusBoundary("first",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="ArrowUp"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.getActiveItem()?this._panelEl.move(-1,{focus:!1,owner:this._inputEl,scroll:!1}):this._panelEl?.focusBoundary("last",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="Home"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.focusBoundary("first",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="End"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.focusBoundary("last",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="Enter"){const t=this._panelEl?.getActiveItem();if(t){e.preventDefault();const s=t.getAttribute("data-value");s&&(this._activeValue=s,this._toggleValue(s,"keyboard"),this._query="",this._inputEl&&(this._inputEl.value=""),this._inputEl?.focus())}return}if(e.key==="Escape"){e.preventDefault(),this._query?(this._query="",this._inputEl&&(this._inputEl.value="")):this.open=!1,this._syncUi();return}if(e.key==="Tab"){this.open=!1,this._syncUi();return}e.key==="Backspace"&&!this._query&&this._selected.length&&this._removeChip(this._selected[this._selected.length-1])}}_onToggle(){this._isInteractionLocked()||(this.open=!this.open,this._syncUi(),this.open&&this._inputEl?.focus())}_onFocusIn(){this._isInteractionLocked()||(this.open=!0),this._syncUi()}_onFocusOut(e){this._shellEl?.contains(e.relatedTarget)||(this.open=!1,this._syncUi())}_syncUi(){if(this._isSyncingUi){this._needsSyncUi=!0;return}if(!(!this._shellEl||!this._inputEl||!this._panelEl)){this._isSyncingUi=!0;try{const e=(this.getAttribute("label")||"").trim(),t=(this.getAttribute("description")||"").trim(),s=(this.getAttribute("data-error")||"").trim(),l=this.root.querySelector(".meta"),n=this.root.querySelector(".label"),a=this.root.querySelector(".label-text"),c=this.root.querySelector(".required"),p=this.root.querySelector(".description"),D=this.root.querySelector(".chips"),C=this.root.querySelector(".toggle"),q=this.root.querySelector(".clear"),x=this.root.querySelector(".error"),U=this._selectionIndicator(),_=this.hasAttribute("loading"),V=(this.getAttribute("loading-text")||"Loading options...").trim(),m=this.hasAttribute("disabled"),b=this.hasAttribute("readonly"),F=this.hasAttribute("clearable");if(l.hidden=!e&&!t,n.hidden=!e,a.textContent=e,e)this._inputEl.setAttribute("aria-labelledby",`${this._uid}-label`),this._inputEl.removeAttribute("aria-label");else{this._inputEl.removeAttribute("aria-labelledby");const i=(this.getAttribute("aria-label")||"").trim();i?this._inputEl.setAttribute("aria-label",i):this._inputEl.removeAttribute("aria-label")}c.hidden=!this.hasAttribute("required"),p.hidden=!t,p.textContent=t,x.hidden=!s,x.textContent=s,x.id=`${this._uid}-error`,K.syncControlDescription(this._inputEl,this,this._uid,[t?`${this._uid}-description`:"",s?`${this._uid}-error`:""].filter(Boolean)),this._shellEl.setAttribute("data-open",this.open?"true":"false"),this._shellEl.setAttribute("data-invalid",s?"true":"false"),this._shellEl.setAttribute("data-readonly",b?"true":"false"),m?this._shellEl.setAttribute("aria-disabled","true"):this._shellEl.removeAttribute("aria-disabled"),C.setAttribute("data-open",this.open?"true":"false"),C.disabled=m||b,q.hidden=!F||this._selected.length===0,q.disabled=m||b,this._inputEl.setAttribute("aria-expanded",this.open?"true":"false"),this._inputEl.setAttribute("aria-busy",_?"true":"false"),this._inputEl.placeholder=this._selected.length?"":this.getAttribute("placeholder")||"Select options",this._inputEl.disabled=m,this._inputEl.readOnly=b,this._inputEl.value!==this._query&&(this._inputEl.value=this._query),this.open?this._attachOutsideListener():this._detachOutsideListener(),D.replaceChildren(...this._selectedOptionRecords().map(i=>{const h=document.createElement("span");h.className="chip",h.textContent=i.label;const d=document.createElement("button");return d.type="button",d.className="chip-remove",d.setAttribute("data-value",i.value),d.setAttribute("aria-label",`Remove ${i.label}`),d.textContent="×",d.disabled=this.hasAttribute("disabled"),d.addEventListener("pointerdown",o=>{o.preventDefault()}),d.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),this._removeChip(i.value),this._inputEl?.focus()}),h.append(d),h}));const y=this._filteredOptions(),$=this._renderLimit(),E=y.slice(0,$),B=y.length>E.length;if(O.setPanelOpen(this._panelEl,this.open,"bottom"),_?this._panelEl.setAttribute("aria-busy","true"):this._panelEl.removeAttribute("aria-busy"),_){const i=document.createElement("div");i.className="status",i.textContent=V,this._panelEl.replaceChildren(i),this._inputEl.removeAttribute("aria-activedescendant");return}if(!y.length){const i=document.createElement("div");i.className="status",i.setAttribute("role","option"),i.setAttribute("aria-disabled","true"),i.setAttribute("aria-selected","false"),i.textContent="No matching options",this._panelEl.replaceChildren(i),this._inputEl.removeAttribute("aria-activedescendant");return}const P=new Set(this._selected),T=this._panelEl.getActiveItem()?.getAttribute("data-value"),g=[];let A=null;if(E.forEach((i,h)=>{if(i.group&&i.group!==A){const u=document.createElement("div");u.className="group",u.setAttribute("role","presentation"),u.textContent=i.group,g.push(u),A=i.group}else i.group||(A=null);const d=P.has(i.value),o=document.createElement("button");o.className="option",o.type="button",o.id=`${this._uid}-option-${h}`,o.setAttribute("role","option"),o.setAttribute("data-value",i.value),o.setAttribute("data-selected",String(d)),o.setAttribute("data-indicator",U),o.setAttribute("aria-selected",d?"true":"false"),(i.disabled||m||b)&&(o.disabled=!0),o.addEventListener("pointerdown",u=>{u.preventDefault()}),o.addEventListener("click",u=>{u.preventDefault(),!i.disabled&&(this._activeValue=i.value,this._toggleValue(i.value,"option"),this._query="",this._inputEl&&(this._inputEl.value=""),this._inputEl?.focus())});const f=document.createElement("div");f.className="option-text";const z=document.createElement("span");if(z.className="option-label",z.textContent=i.label,f.append(z),i.description){const u=document.createElement("span");u.className="option-description",u.textContent=i.description,f.append(u)}if(U!=="none"){const u=document.createElement("span");u.className="check",u.textContent=d?"✓":"",o.append(u)}o.append(f),g.push(o)}),B){const i=document.createElement("div");i.className="status",i.textContent=`Showing first ${E.length} results. Keep typing to narrow the list.`,g.push(i)}this._panelEl.replaceChildren(...g);const R=T||this._activeValue||this._selected[this._selected.length-1]||null,k=this._findOptionNode(R),w=k&&!k.hasAttribute("disabled")?this._panelEl.setActiveItem(k,{focus:!1,owner:this._inputEl,scroll:!1}):(this._panelEl.clearActive(),null);this._activeValue=w?.getAttribute("data-value")||null,w?.id?this._inputEl.setAttribute("aria-activedescendant",w.id):this._inputEl.removeAttribute("aria-activedescendant")}finally{this._isSyncingUi=!1,this._needsSyncUi&&(this._needsSyncUi=!1,this._syncUi())}}}}typeof customElements<"u"&&!customElements.get("ui-multi-select")&&customElements.define("ui-multi-select",N);exports.UIMultiSelect=N;
|
|
562
|
+
`),this._options=N(this.getAttribute("options")),this._selected=v(this.getAttribute("value")),this._shellEl=this.root.querySelector(".shell"),this._inputEl=this.root.querySelector(".input"),this._panelEl=this.root.querySelector(".panel"),this._inputEl?.addEventListener("input",this._onInput),this._inputEl?.addEventListener("keydown",this._onKeyDown),this.root.querySelector(".toggle")?.addEventListener("click",this._onToggle),this.root.querySelector(".clear")?.addEventListener("click",()=>this._clearSelection("clear-button")),this._shellEl?.addEventListener("focusin",this._onFocusIn),this._shellEl?.addEventListener("focusout",this._onFocusOut),this._syncVisualState(),this._syncUi()}_syncVisualState(){const e=D(this.getAttribute("radius")||this.getAttribute("shape"));e?this.style.setProperty("--ui-multi-select-radius",e):this.style.removeProperty("--ui-multi-select-radius");const t=D(this.getAttribute("option-radius"));t?this.style.setProperty("--ui-multi-select-option-radius",t):this.style.removeProperty("--ui-multi-select-option-radius");const s=G(this.getAttribute("size"));this.setAttribute("data-size",s)}_selectionIndicator(){const e=(this.getAttribute("selection-indicator")||"checkbox").trim().toLowerCase();return e==="none"||e==="check"?e:"checkbox"}_isInteractionLocked(){return this.hasAttribute("disabled")||this.hasAttribute("readonly")}_attachOutsideListener(){this._outsidePointerDown||typeof document>"u"||(this._outsidePointerDown=e=>{const t=e.composedPath();t.includes(this)||t.includes(this.root)||this._panelEl&&t.includes(this._panelEl)||this._inputEl&&t.includes(this._inputEl)||(this.open=!1,this._syncUi())},document.addEventListener("pointerdown",this._outsidePointerDown))}_detachOutsideListener(){!this._outsidePointerDown||typeof document>"u"||(document.removeEventListener("pointerdown",this._outsidePointerDown),this._outsidePointerDown=null)}_filteredOptions(){const e=C.normalizeCollectionText(this._query);return e?this._options.filter(t=>C.normalizeCollectionText(t.label).includes(e)||C.normalizeCollectionText(t.value).includes(e)):this._options}_renderLimit(){const e=Number(this.getAttribute("render-limit"));return Number.isFinite(e)&&e>0?e:200}_findOptionNode(e){return!e||!this._panelEl?null:Array.from(this._panelEl.querySelectorAll(".option")).find(t=>t.getAttribute("data-value")===e)}_selectedOptionRecords(){return this._selected.map(e=>this._options.find(t=>t.value===e)).filter(Boolean)}_emitChange(e,t){this.dispatchEvent(new CustomEvent("change",{detail:{value:[...this._selected],previousValue:t,selectedItems:this._selectedOptionRecords(),source:e},bubbles:!0,composed:!0}))}_setSelected(e,t){const s=Number(this.getAttribute("max-selections")),l=[];e.forEach(c=>{if(!c)return;const p=l.indexOf(c);p>=0&&l.splice(p,1),l.push(c)});const n=Number.isFinite(s)&&s>0?l.slice(-s):l,a=[...this._selected];if(a.length===n.length&&a.every((c,p)=>c===n[p])){this._syncUi();return}this._selected=n,this._selected.length?this.setAttribute("value",JSON.stringify(this._selected)):this.removeAttribute("value"),this._syncUi(),this._emitChange(t,a)}_toggleValue(e,t){if(this._isInteractionLocked()||this.hasAttribute("loading"))return;const l=this._selected.includes(e)?this._selected.filter(n=>n!==e):[...this._selected,e];this._activeValue=e,this._setSelected(l,t)}_removeChip(e){this._isInteractionLocked()||(this._activeValue===e&&(this._activeValue=null),this._toggleValue(e,"remove-chip"))}_clearSelection(e){if(!(this._isInteractionLocked()||!this._selected.length)){this._activeValue=null,this._setSelected([],e),this._query="",this._inputEl&&(this._inputEl.value="");try{this._inputEl?.focus({preventScroll:!0})}catch{this._inputEl?.focus()}}}_registerWithForm(){this._formUnregister&&(this._formUnregister(),this._formUnregister=null);try{const l=this.getRootNode().host?.closest?.("ui-form")||null||this.closest("ui-form"),n=this.getAttribute("name");l&&typeof l.registerField=="function"&&n&&(this._formUnregister=l.registerField(n,{name:n,getValue:()=>[...this._selected],setValue:a=>{Array.isArray(a)?this._setSelected(a.map(c=>String(c)),"form"):this._setSelected(v(String(a??"")),"form")},validate:async()=>this.hasAttribute("required")&&this._selected.length===0?{valid:!1,message:"At least one option is required"}:{valid:!0},setError:a=>{a?this.setAttribute("data-error",a):this.removeAttribute("data-error"),this._syncUi()}}))}catch{}}_onInput(e){this._isInteractionLocked()||(this._query=e.target?.value||"",this.open||(this.open=!0),this._syncUi())}_onKeyDown(e){if(!this._isInteractionLocked()){if(e.key==="ArrowDown"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.getActiveItem()?this._panelEl.move(1,{focus:!1,owner:this._inputEl,scroll:!1}):this._panelEl?.focusBoundary("first",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="ArrowUp"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.getActiveItem()?this._panelEl.move(-1,{focus:!1,owner:this._inputEl,scroll:!1}):this._panelEl?.focusBoundary("last",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="Home"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.focusBoundary("first",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="End"){e.preventDefault(),this.open||(this.open=!0),this._syncUi(),this._panelEl?.focusBoundary("last",{focus:!1,owner:this._inputEl,scroll:!1});return}if(e.key==="Enter"){const t=this._panelEl?.getActiveItem();if(t){e.preventDefault();const s=t.getAttribute("data-value");s&&(this._activeValue=s,this._toggleValue(s,"keyboard"),this._query="",this._inputEl&&(this._inputEl.value=""),this._inputEl?.focus())}return}if(e.key==="Escape"){e.preventDefault(),this._query?(this._query="",this._inputEl&&(this._inputEl.value="")):this.open=!1,this._syncUi();return}if(e.key==="Tab"){this.open=!1,this._syncUi();return}e.key==="Backspace"&&!this._query&&this._selected.length&&this._removeChip(this._selected[this._selected.length-1])}}_onToggle(){this._isInteractionLocked()||(this.open=!this.open,this._syncUi(),this.open&&this._inputEl?.focus())}_onFocusIn(){this._isInteractionLocked()||(this.open=!0),this._syncUi()}_onFocusOut(e){this._shellEl?.contains(e.relatedTarget)||(this.open=!1,this._syncUi())}_syncUi(){if(this._isSyncingUi){this._needsSyncUi=!0;return}if(!(!this._shellEl||!this._inputEl||!this._panelEl)){this._isSyncingUi=!0;try{const e=(this.getAttribute("label")||"").trim(),t=(this.getAttribute("description")||"").trim(),s=(this.getAttribute("data-error")||"").trim(),l=this.root.querySelector(".meta"),n=this.root.querySelector(".label"),a=this.root.querySelector(".label-text"),c=this.root.querySelector(".required"),p=this.root.querySelector(".description"),F=this.root.querySelector(".chips"),U=this.root.querySelector(".toggle"),I=this.root.querySelector(".clear"),_=this.root.querySelector(".error"),L=this._selectionIndicator(),y=this.hasAttribute("loading"),$=(this.getAttribute("loading-text")||"Loading options...").trim(),m=this.hasAttribute("disabled"),b=this.hasAttribute("readonly"),P=this.hasAttribute("clearable");if(l.hidden=!e&&!t,n.hidden=!e,a.textContent=e,e)this._inputEl.setAttribute("aria-labelledby",`${this._uid}-label`),this._inputEl.removeAttribute("aria-label");else{this._inputEl.removeAttribute("aria-labelledby");const i=(this.getAttribute("aria-label")||"").trim();i?this._inputEl.setAttribute("aria-label",i):this._inputEl.removeAttribute("aria-label")}c.hidden=!this.hasAttribute("required"),p.hidden=!t,p.textContent=t,_.hidden=!s,_.textContent=s,_.id=`${this._uid}-error`,j.syncControlDescription(this._inputEl,this,this._uid,[t?`${this._uid}-description`:"",s?`${this._uid}-error`:""].filter(Boolean)),this._shellEl.setAttribute("data-open",this.open?"true":"false"),this._shellEl.setAttribute("data-invalid",s?"true":"false"),this._shellEl.setAttribute("data-readonly",b?"true":"false"),m?this._shellEl.setAttribute("aria-disabled","true"):this._shellEl.removeAttribute("aria-disabled"),U.setAttribute("data-open",this.open?"true":"false"),U.disabled=m||b,I.hidden=!P||this._selected.length===0,I.disabled=m||b,this._inputEl.setAttribute("aria-expanded",this.open?"true":"false"),this._inputEl.setAttribute("aria-busy",y?"true":"false"),this._inputEl.placeholder=this._selected.length?"":this.getAttribute("placeholder")||"Select options",this._inputEl.disabled=m,this._inputEl.readOnly=b,this._inputEl.value!==this._query&&(this._inputEl.value=this._query),this.open?this._attachOutsideListener():this._detachOutsideListener(),F.replaceChildren(...this._selectedOptionRecords().map(i=>{const h=document.createElement("span");h.className="chip",h.textContent=i.label;const d=document.createElement("button");return d.type="button",d.className="chip-remove",d.setAttribute("data-value",i.value),d.setAttribute("aria-label",`Remove ${i.label}`),d.textContent="×",d.disabled=this.hasAttribute("disabled"),d.addEventListener("pointerdown",o=>{o.preventDefault()}),d.addEventListener("click",o=>{o.preventDefault(),o.stopPropagation(),this._removeChip(i.value),this._inputEl?.focus()}),h.append(d),h}));const E=this._filteredOptions(),B=this._renderLimit(),A=E.slice(0,B),T=E.length>A.length;if(V.setPanelOpen(this._panelEl,this.open,"bottom"),y?this._panelEl.setAttribute("aria-busy","true"):this._panelEl.removeAttribute("aria-busy"),y){const i=document.createElement("div");i.className="status",i.textContent=$,this._panelEl.replaceChildren(i),this._inputEl.removeAttribute("aria-activedescendant");return}if(!E.length){const i=document.createElement("div");i.className="status",i.setAttribute("role","option"),i.setAttribute("aria-disabled","true"),i.setAttribute("aria-selected","false"),i.textContent="No matching options",this._panelEl.replaceChildren(i),this._inputEl.removeAttribute("aria-activedescendant");return}const R=new Set(this._selected),M=this._panelEl.getActiveItem()?.getAttribute("data-value"),g=[];let k=null;if(A.forEach((i,h)=>{if(i.group&&i.group!==k){const u=document.createElement("div");u.className="group",u.setAttribute("role","presentation"),u.textContent=i.group,g.push(u),k=i.group}else i.group||(k=null);const d=R.has(i.value),o=document.createElement("button");o.className="option",o.type="button",o.id=`${this._uid}-option-${h}`,o.setAttribute("role","option"),o.setAttribute("data-value",i.value),o.setAttribute("data-selected",String(d)),o.setAttribute("data-indicator",L),o.setAttribute("aria-selected",d?"true":"false"),(i.disabled||m||b)&&(o.disabled=!0),o.addEventListener("pointerdown",u=>{u.preventDefault()}),o.addEventListener("click",u=>{u.preventDefault(),!i.disabled&&(this._activeValue=i.value,this._toggleValue(i.value,"option"),this._query="",this._inputEl&&(this._inputEl.value=""),this._inputEl?.focus())});const f=document.createElement("div");f.className="option-text";const S=document.createElement("span");if(S.className="option-label",S.textContent=i.label,f.append(S),i.description){const u=document.createElement("span");u.className="option-description",u.textContent=i.description,f.append(u)}if(L!=="none"){const u=document.createElement("span");u.className="check",u.textContent=d?"✓":"",o.append(u)}o.append(f),g.push(o)}),T){const i=document.createElement("div");i.className="status",i.textContent=`Showing first ${A.length} results. Keep typing to narrow the list.`,g.push(i)}this._panelEl.replaceChildren(...g);const K=M||this._activeValue||this._selected[this._selected.length-1]||null,w=this._findOptionNode(K),z=w&&!w.hasAttribute("disabled")?this._panelEl.setActiveItem(w,{focus:!1,owner:this._inputEl,scroll:!1}):(this._panelEl.clearActive(),null);this._activeValue=z?.getAttribute("data-value")||null,z?.id?this._inputEl.setAttribute("aria-activedescendant",z.id):this._inputEl.removeAttribute("aria-activedescendant")}finally{this._isSyncingUi=!1,this._needsSyncUi&&(this._needsSyncUi=!1,this._syncUi())}}}};q.formAssociated=!0;let x=q;typeof customElements<"u"&&!customElements.get("ui-multi-select")&&customElements.define("ui-multi-select",x);exports.UIMultiSelect=x;
|
package/dist/multi-select.esm.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { E as
|
|
2
|
-
import {
|
|
1
|
+
import { E as K } from "./ElementBase-D5QsC5Vw.mjs";
|
|
2
|
+
import { F as W, i as H } from "./form-control-D9wWUMBl.mjs";
|
|
3
|
+
import { O as j, s as J } from "./overlay-motion-BX3dPLay.mjs";
|
|
3
4
|
import { a as M } from "./control-name-Bpj7F34X.mjs";
|
|
4
5
|
import { n as S } from "./collection-C7URGjEI.mjs";
|
|
5
6
|
import "./listbox-hMVOhKHC.mjs";
|
|
6
|
-
let
|
|
7
|
-
const
|
|
8
|
-
${
|
|
7
|
+
let G = 0;
|
|
8
|
+
const Y = `
|
|
9
|
+
${j}
|
|
9
10
|
|
|
10
11
|
:host {
|
|
11
12
|
--ui-multi-select-border-color: var(--ui-color-line, var(--ui-color-border, #cbd5e1));
|
|
@@ -474,8 +475,8 @@ const H = `
|
|
|
474
475
|
--ui-multi-select-text: #e2e8f0;
|
|
475
476
|
--ui-multi-select-muted: #93a4bd;
|
|
476
477
|
--ui-multi-select-border-color: #334155;
|
|
477
|
-
--ui-multi-select-focus: #93c5fd;
|
|
478
|
-
--ui-multi-select-chip-bg: color-mix(in srgb, #93c5fd 18%, transparent);
|
|
478
|
+
--ui-multi-select-focus: var(--ui-color-accent-on-dark, #93c5fd);
|
|
479
|
+
--ui-multi-select-chip-bg: color-mix(in srgb, var(--ui-color-accent-on-dark, #93c5fd) 18%, transparent);
|
|
479
480
|
--ui-multi-select-chip-text: #e2e8f0;
|
|
480
481
|
}
|
|
481
482
|
|
|
@@ -542,7 +543,7 @@ const H = `
|
|
|
542
543
|
--ui-multi-select-chip-text: var(--ui-color-danger-text, color-mix(in srgb, var(--ui-color-danger, #dc2626) 82%, #0f172a 18%));
|
|
543
544
|
}
|
|
544
545
|
`;
|
|
545
|
-
function
|
|
546
|
+
function O(r) {
|
|
546
547
|
if (!r) return [];
|
|
547
548
|
try {
|
|
548
549
|
const e = JSON.parse(r);
|
|
@@ -585,15 +586,23 @@ function v(r) {
|
|
|
585
586
|
}
|
|
586
587
|
return e.split(",").map((t) => t.trim()).filter(Boolean);
|
|
587
588
|
}
|
|
588
|
-
function
|
|
589
|
+
function N(r) {
|
|
589
590
|
return !r || r === "default" ? null : r === "none" || r === "square" ? "0px" : r === "sm" ? "8px" : r === "md" || r === "soft" ? "12px" : r === "lg" ? "16px" : r === "full" ? "999px" : /^\d+(\.\d+)?$/.test(r) ? `${r}px` : /^\d+(\.\d+)?(px|rem|em|%)$/.test(r) ? r : null;
|
|
590
591
|
}
|
|
591
|
-
function
|
|
592
|
+
function Q(r) {
|
|
592
593
|
return r === "sm" || r === "1" ? "sm" : r === "lg" || r === "3" ? "lg" : "md";
|
|
593
594
|
}
|
|
594
|
-
class
|
|
595
|
+
const q = class q extends K {
|
|
595
596
|
constructor() {
|
|
596
|
-
super(), this.
|
|
597
|
+
super(), this._formControl = new W(this, {
|
|
598
|
+
getValue: () => this.value,
|
|
599
|
+
getValidity: () => ({
|
|
600
|
+
valueMissing: H(this) && this.value.length === 0,
|
|
601
|
+
message: "Please select at least one item.",
|
|
602
|
+
anchor: this._inputEl
|
|
603
|
+
}),
|
|
604
|
+
defaultAttribute: "value"
|
|
605
|
+
}), this._options = [], this._selected = [], this._query = "", this._inputEl = null, this._shellEl = null, this._panelEl = null, this._formUnregister = null, this._outsidePointerDown = null, this._activeValue = null, this._uid = `ui-multi-select-${++G}`, this._isSyncingUi = !1, this._needsSyncUi = !1, this._onInput = this._onInput.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onToggle = this._onToggle.bind(this), this._onFocusIn = this._onFocusIn.bind(this), this._onFocusOut = this._onFocusOut.bind(this);
|
|
597
606
|
}
|
|
598
607
|
static get observedAttributes() {
|
|
599
608
|
return [
|
|
@@ -641,14 +650,24 @@ class J extends T {
|
|
|
641
650
|
set open(e) {
|
|
642
651
|
e ? this.setAttribute("open", "") : this.removeAttribute("open");
|
|
643
652
|
}
|
|
653
|
+
formResetCallback() {
|
|
654
|
+
this._formControl.formResetCallback();
|
|
655
|
+
}
|
|
656
|
+
formDisabledCallback(e) {
|
|
657
|
+
this._formControl.formDisabledCallback(e);
|
|
658
|
+
}
|
|
659
|
+
/** The `<form>` this field belongs to, if any. */
|
|
660
|
+
get form() {
|
|
661
|
+
return this._formControl.form;
|
|
662
|
+
}
|
|
644
663
|
connectedCallback() {
|
|
645
|
-
super.connectedCallback(), this._registerWithForm();
|
|
664
|
+
super.connectedCallback(), this._formControl.connect(), this._registerWithForm();
|
|
646
665
|
}
|
|
647
666
|
disconnectedCallback() {
|
|
648
|
-
this._detachOutsideListener(), this._formUnregister && (this._formUnregister(), this._formUnregister = null), super.disconnectedCallback();
|
|
667
|
+
this._formControl.disconnect(), this._detachOutsideListener(), this._formUnregister && (this._formUnregister(), this._formUnregister = null), super.disconnectedCallback();
|
|
649
668
|
}
|
|
650
669
|
attributeChangedCallback(e, t, s) {
|
|
651
|
-
if (t !== s && (e === "options" && (this._options =
|
|
670
|
+
if (t !== s && (e === "options" && (this._options = O(s)), e === "value" && (this._selected = v(s)), e === "name" && this.isConnected && this._registerWithForm(), !!this._shellEl)) {
|
|
652
671
|
if (e === "variant" || e === "tone" || e === "density" || e === "shape" || e === "size" || e === "radius" || e === "option-radius" || e === "elevation") {
|
|
653
672
|
this._syncVisualState(), e === "size" && this._syncUi();
|
|
654
673
|
return;
|
|
@@ -661,7 +680,7 @@ class J extends T {
|
|
|
661
680
|
}
|
|
662
681
|
render() {
|
|
663
682
|
this.setContent(`
|
|
664
|
-
<style>${
|
|
683
|
+
<style>${Y}</style>
|
|
665
684
|
<div class="root">
|
|
666
685
|
<div class="meta" hidden>
|
|
667
686
|
<div class="label" hidden><span class="label-text" id="${this._uid}-label"></span><span class="required" hidden>*</span></div>
|
|
@@ -684,14 +703,14 @@ class J extends T {
|
|
|
684
703
|
</div>
|
|
685
704
|
<div class="error" part="error" hidden></div>
|
|
686
705
|
</div>
|
|
687
|
-
`), this._options =
|
|
706
|
+
`), this._options = O(this.getAttribute("options")), this._selected = v(this.getAttribute("value")), this._shellEl = this.root.querySelector(".shell"), this._inputEl = this.root.querySelector(".input"), this._panelEl = this.root.querySelector(".panel"), this._inputEl?.addEventListener("input", this._onInput), this._inputEl?.addEventListener("keydown", this._onKeyDown), this.root.querySelector(".toggle")?.addEventListener("click", this._onToggle), this.root.querySelector(".clear")?.addEventListener("click", () => this._clearSelection("clear-button")), this._shellEl?.addEventListener("focusin", this._onFocusIn), this._shellEl?.addEventListener("focusout", this._onFocusOut), this._syncVisualState(), this._syncUi();
|
|
688
707
|
}
|
|
689
708
|
_syncVisualState() {
|
|
690
|
-
const e =
|
|
709
|
+
const e = N(this.getAttribute("radius") || this.getAttribute("shape"));
|
|
691
710
|
e ? this.style.setProperty("--ui-multi-select-radius", e) : this.style.removeProperty("--ui-multi-select-radius");
|
|
692
|
-
const t =
|
|
711
|
+
const t = N(this.getAttribute("option-radius"));
|
|
693
712
|
t ? this.style.setProperty("--ui-multi-select-option-radius", t) : this.style.removeProperty("--ui-multi-select-option-radius");
|
|
694
|
-
const s =
|
|
713
|
+
const s = Q(this.getAttribute("size"));
|
|
695
714
|
this.setAttribute("data-size", s);
|
|
696
715
|
}
|
|
697
716
|
_selectionIndicator() {
|
|
@@ -846,7 +865,7 @@ class J extends T {
|
|
|
846
865
|
if (!(!this._shellEl || !this._inputEl || !this._panelEl)) {
|
|
847
866
|
this._isSyncingUi = !0;
|
|
848
867
|
try {
|
|
849
|
-
const e = (this.getAttribute("label") || "").trim(), t = (this.getAttribute("description") || "").trim(), s = (this.getAttribute("data-error") || "").trim(), l = this.root.querySelector(".meta"), n = this.root.querySelector(".label"), a = this.root.querySelector(".label-text"), c = this.root.querySelector(".required"), p = this.root.querySelector(".description"),
|
|
868
|
+
const e = (this.getAttribute("label") || "").trim(), t = (this.getAttribute("description") || "").trim(), s = (this.getAttribute("data-error") || "").trim(), l = this.root.querySelector(".meta"), n = this.root.querySelector(".label"), a = this.root.querySelector(".label-text"), c = this.root.querySelector(".required"), p = this.root.querySelector(".description"), D = this.root.querySelector(".chips"), U = this.root.querySelector(".toggle"), I = this.root.querySelector(".clear"), x = this.root.querySelector(".error"), L = this._selectionIndicator(), _ = this.hasAttribute("loading"), V = (this.getAttribute("loading-text") || "Loading options...").trim(), m = this.hasAttribute("disabled"), b = this.hasAttribute("readonly"), F = this.hasAttribute("clearable");
|
|
850
869
|
if (l.hidden = !e && !t, n.hidden = !e, a.textContent = e, e)
|
|
851
870
|
this._inputEl.setAttribute("aria-labelledby", `${this._uid}-label`), this._inputEl.removeAttribute("aria-label");
|
|
852
871
|
else {
|
|
@@ -859,7 +878,7 @@ class J extends T {
|
|
|
859
878
|
this,
|
|
860
879
|
this._uid,
|
|
861
880
|
[t ? `${this._uid}-description` : "", s ? `${this._uid}-error` : ""].filter(Boolean)
|
|
862
|
-
), this._shellEl.setAttribute("data-open", this.open ? "true" : "false"), this._shellEl.setAttribute("data-invalid", s ? "true" : "false"), this._shellEl.setAttribute("data-readonly", b ? "true" : "false"), m ? this._shellEl.setAttribute("aria-disabled", "true") : this._shellEl.removeAttribute("aria-disabled"),
|
|
881
|
+
), this._shellEl.setAttribute("data-open", this.open ? "true" : "false"), this._shellEl.setAttribute("data-invalid", s ? "true" : "false"), this._shellEl.setAttribute("data-readonly", b ? "true" : "false"), m ? this._shellEl.setAttribute("aria-disabled", "true") : this._shellEl.removeAttribute("aria-disabled"), U.setAttribute("data-open", this.open ? "true" : "false"), U.disabled = m || b, I.hidden = !F || this._selected.length === 0, I.disabled = m || b, this._inputEl.setAttribute("aria-expanded", this.open ? "true" : "false"), this._inputEl.setAttribute("aria-busy", _ ? "true" : "false"), this._inputEl.placeholder = this._selected.length ? "" : this.getAttribute("placeholder") || "Select options", this._inputEl.disabled = m, this._inputEl.readOnly = b, this._inputEl.value !== this._query && (this._inputEl.value = this._query), this.open ? this._attachOutsideListener() : this._detachOutsideListener(), D.replaceChildren(...this._selectedOptionRecords().map((i) => {
|
|
863
882
|
const h = document.createElement("span");
|
|
864
883
|
h.className = "chip", h.textContent = i.label;
|
|
865
884
|
const d = document.createElement("button");
|
|
@@ -869,10 +888,10 @@ class J extends T {
|
|
|
869
888
|
o.preventDefault(), o.stopPropagation(), this._removeChip(i.value), this._inputEl?.focus();
|
|
870
889
|
}), h.append(d), h;
|
|
871
890
|
}));
|
|
872
|
-
const y = this._filteredOptions(),
|
|
873
|
-
if (
|
|
891
|
+
const y = this._filteredOptions(), $ = this._renderLimit(), E = y.slice(0, $), P = y.length > E.length;
|
|
892
|
+
if (J(this._panelEl, this.open, "bottom"), _ ? this._panelEl.setAttribute("aria-busy", "true") : this._panelEl.removeAttribute("aria-busy"), _) {
|
|
874
893
|
const i = document.createElement("div");
|
|
875
|
-
i.className = "status", i.textContent =
|
|
894
|
+
i.className = "status", i.textContent = V, this._panelEl.replaceChildren(i), this._inputEl.removeAttribute("aria-activedescendant");
|
|
876
895
|
return;
|
|
877
896
|
}
|
|
878
897
|
if (!y.length) {
|
|
@@ -880,15 +899,15 @@ class J extends T {
|
|
|
880
899
|
i.className = "status", i.setAttribute("role", "option"), i.setAttribute("aria-disabled", "true"), i.setAttribute("aria-selected", "false"), i.textContent = "No matching options", this._panelEl.replaceChildren(i), this._inputEl.removeAttribute("aria-activedescendant");
|
|
881
900
|
return;
|
|
882
901
|
}
|
|
883
|
-
const
|
|
902
|
+
const B = new Set(this._selected), R = this._panelEl.getActiveItem()?.getAttribute("data-value"), g = [];
|
|
884
903
|
let A = null;
|
|
885
904
|
if (E.forEach((i, h) => {
|
|
886
905
|
if (i.group && i.group !== A) {
|
|
887
906
|
const u = document.createElement("div");
|
|
888
907
|
u.className = "group", u.setAttribute("role", "presentation"), u.textContent = i.group, g.push(u), A = i.group;
|
|
889
908
|
} else i.group || (A = null);
|
|
890
|
-
const d =
|
|
891
|
-
o.className = "option", o.type = "button", o.id = `${this._uid}-option-${h}`, o.setAttribute("role", "option"), o.setAttribute("data-value", i.value), o.setAttribute("data-selected", String(d)), o.setAttribute("data-indicator",
|
|
909
|
+
const d = B.has(i.value), o = document.createElement("button");
|
|
910
|
+
o.className = "option", o.type = "button", o.id = `${this._uid}-option-${h}`, o.setAttribute("role", "option"), o.setAttribute("data-value", i.value), o.setAttribute("data-selected", String(d)), o.setAttribute("data-indicator", L), o.setAttribute("aria-selected", d ? "true" : "false"), (i.disabled || m || b) && (o.disabled = !0), o.addEventListener("pointerdown", (u) => {
|
|
892
911
|
u.preventDefault();
|
|
893
912
|
}), o.addEventListener("click", (u) => {
|
|
894
913
|
u.preventDefault(), !i.disabled && (this._activeValue = i.value, this._toggleValue(i.value, "option"), this._query = "", this._inputEl && (this._inputEl.value = ""), this._inputEl?.focus());
|
|
@@ -900,25 +919,27 @@ class J extends T {
|
|
|
900
919
|
const u = document.createElement("span");
|
|
901
920
|
u.className = "option-description", u.textContent = i.description, f.append(u);
|
|
902
921
|
}
|
|
903
|
-
if (
|
|
922
|
+
if (L !== "none") {
|
|
904
923
|
const u = document.createElement("span");
|
|
905
924
|
u.className = "check", u.textContent = d ? "✓" : "", o.append(u);
|
|
906
925
|
}
|
|
907
926
|
o.append(f), g.push(o);
|
|
908
|
-
}),
|
|
927
|
+
}), P) {
|
|
909
928
|
const i = document.createElement("div");
|
|
910
929
|
i.className = "status", i.textContent = `Showing first ${E.length} results. Keep typing to narrow the list.`, g.push(i);
|
|
911
930
|
}
|
|
912
931
|
this._panelEl.replaceChildren(...g);
|
|
913
|
-
const
|
|
932
|
+
const T = R || this._activeValue || this._selected[this._selected.length - 1] || null, k = this._findOptionNode(T), w = k && !k.hasAttribute("disabled") ? this._panelEl.setActiveItem(k, { focus: !1, owner: this._inputEl, scroll: !1 }) : (this._panelEl.clearActive(), null);
|
|
914
933
|
this._activeValue = w?.getAttribute("data-value") || null, w?.id ? this._inputEl.setAttribute("aria-activedescendant", w.id) : this._inputEl.removeAttribute("aria-activedescendant");
|
|
915
934
|
} finally {
|
|
916
935
|
this._isSyncingUi = !1, this._needsSyncUi && (this._needsSyncUi = !1, this._syncUi());
|
|
917
936
|
}
|
|
918
937
|
}
|
|
919
938
|
}
|
|
920
|
-
}
|
|
921
|
-
|
|
939
|
+
};
|
|
940
|
+
q.formAssociated = !0;
|
|
941
|
+
let C = q;
|
|
942
|
+
typeof customElements < "u" && !customElements.get("ui-multi-select") && customElements.define("ui-multi-select", C);
|
|
922
943
|
export {
|
|
923
|
-
|
|
944
|
+
C as UIMultiSelect
|
|
924
945
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
function o(e, t) {
|
|
2
|
+
if (t && t !== "_self") return !0;
|
|
3
|
+
if (!e || !("button" in e)) return !1;
|
|
4
|
+
const n = e;
|
|
5
|
+
return n.metaKey || n.ctrlKey || n.shiftKey || n.altKey || (n.button ?? 0) !== 0;
|
|
6
|
+
}
|
|
7
|
+
function u(e, t, n, r = "") {
|
|
8
|
+
if (!t.href || o(n, r.trim())) return !1;
|
|
9
|
+
const i = new CustomEvent("navigate", { detail: t, bubbles: !0, composed: !0, cancelable: !0 });
|
|
10
|
+
return !e.dispatchEvent(i) || e.getAttribute("navigation") === "client";
|
|
11
|
+
}
|
|
12
|
+
function s(e, t) {
|
|
13
|
+
u(e, t) || typeof window < "u" && window.location.assign(t.href);
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
s as n,
|
|
17
|
+
u as r
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function o(e,t){if(t&&t!=="_self")return!0;if(!e||!("button"in e))return!1;const n=e;return n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||(n.button??0)!==0}function i(e,t,n,r=""){if(!t.href||o(n,r.trim()))return!1;const u=new CustomEvent("navigate",{detail:t,bubbles:!0,composed:!0,cancelable:!0});return!e.dispatchEvent(u)||e.getAttribute("navigation")==="client"}function a(e,t){i(e,t)||typeof window<"u"&&window.location.assign(t.href)}exports.navigateTo=a;exports.requestNavigate=i;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("./ElementBase-CbUsP3D6.js"),_=`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
position: relative;
|