@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/context-menu.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const A=require("./ElementBase-DxbvhLJs.js"),S=require("./portal-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const A=require("./ElementBase-DxbvhLJs.js"),S=require("./portal-XbYR3m_q.js"),P=require("./overlay-motion-B56x1GoY.js"),w=require("./dismissable-layer-DNfrKA20.js"),O=require("./positioner-DZ1FW6A9.js"),L=require("./menu-item-styles-B4onAr4C.js");require("./listbox-CTpRpuF7.js");const l='.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [data-menu-item]',b=[":scope > .menuitem",':scope > [role="menuitem"]',':scope > [role="menuitemcheckbox"]',':scope > [role="menuitemradio"]',":scope > [data-menu-item]"].join(", "),R=":scope > .submenu",a=8,C=6,I=420,k=110,T=["--ui-color-primary","--ui-color-primary-hover","--ui-color-foreground-on-primary","--ui-color-background","--ui-color-surface","--ui-color-surface-alt","--ui-color-text","--ui-color-muted","--ui-color-border","--ui-color-focus-ring","--ui-color-success","--ui-color-danger","--ui-color-warning","--ui-primary","--ui-primary-hover","--ui-foreground","--ui-background","--ui-surface","--ui-surface-alt","--ui-text","--ui-muted","--ui-border","--ui-focus-ring","--ui-radius","--color-background","--color-surface","--color-panel","--color-panel-solid","--color-panel-translucent","--color-overlay","--accent-contrast","--accent-surface","--accent-indicator","--accent-track"],z=[{prefix:"--accent-",from:1,to:12},{prefix:"--accent-a",from:1,to:12},{prefix:"--gray-",from:1,to:12},{prefix:"--gray-a",from:1,to:12},{prefix:"--black-a",from:1,to:12},{prefix:"--white-a",from:1,to:12},{prefix:"--shadow-",from:1,to:6},{prefix:"--radius-",from:1,to:6}],B=["--base-context-menu-bg","--base-context-menu-radius","--base-context-menu-shadow","--base-context-menu-min-width","--base-context-menu-padding","--base-context-menu-item-radius","--base-context-menu-item-gap","--base-context-menu-item-height","--base-context-menu-item-padding-y","--base-context-menu-item-padding-x","--base-context-menu-item-font-size","--base-context-menu-item-line-height","--base-context-menu-submenu-radius","--base-context-menu-submenu-padding"],g=`
|
|
2
2
|
:host {
|
|
3
3
|
position: fixed;
|
|
4
4
|
inset: 0;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
--ui-context-menu-color: var(--ui-color-text, var(--ui-text, #0f172a));
|
|
12
12
|
--ui-context-menu-border-color: color-mix(in srgb, var(--ui-color-border, var(--ui-border, #cbd5e1)) 86%, transparent);
|
|
13
13
|
--ui-context-menu-border: 1px solid var(--ui-context-menu-border-color);
|
|
14
|
-
--ui-context-menu-radius: var(--base-context-menu-radius, var(--ui-radius,
|
|
14
|
+
--ui-context-menu-radius: var(--base-context-menu-radius, var(--ui-radius, 6px));
|
|
15
15
|
--ui-context-menu-shadow: var(--base-context-menu-shadow, var(--shadow-5));
|
|
16
16
|
--ui-context-menu-min-width: var(--base-context-menu-min-width, 240px);
|
|
17
17
|
--ui-context-menu-padding: var(--base-context-menu-padding, 6px);
|
|
@@ -287,7 +287,7 @@
|
|
|
287
287
|
flex-direction: column;
|
|
288
288
|
gap: 0;
|
|
289
289
|
}
|
|
290
|
-
${
|
|
290
|
+
${L.createSharedMenuItemCss({scopes:['ui-context-menu [slot="menu"]','ui-context-menu [slot="content"]'],prefix:"--ui-context-menu",itemSelectors:[".menuitem",'[role="menuitem"]','[role="menuitemcheckbox"]','[role="menuitemradio"]',"[data-menu-item]"],activeStateSelectors:['.menuitem[data-submenu-open="true"]','[role="menuitem"][data-submenu-open="true"]']})}
|
|
291
291
|
|
|
292
292
|
ui-context-menu [slot="menu"] .submenu,
|
|
293
293
|
ui-context-menu [slot="content"] .submenu {
|
|
@@ -336,15 +336,15 @@
|
|
|
336
336
|
top: auto;
|
|
337
337
|
bottom: -6px;
|
|
338
338
|
}
|
|
339
|
-
`;function
|
|
340
|
-
${n} {`})}function
|
|
341
|
-
${D(v)}`;function q(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function $(s,t){return typeof s=="number"?{x:s,y:typeof t=="number"?t:0}:s}function V(s){return s==="top"||s==="left"||s==="right"?s:"bottom"}function N(s){return`${s}-start`}function _(s){if(!s)return"";const t=s.trim().toLowerCase();return t==="1"?"sm":t==="2"?"md":t==="3"?"lg":t==="sm"||t==="md"||t==="lg"?t:t==="compact"?"sm":t==="comfortable"?"lg":""}function y(s){if(!s)return"";const t=s.trim().toLowerCase();return t?t==="none"?"0px":t==="sm"?"8px":t==="md"?"12px":t==="lg"?"16px":t==="full"?"999px":t==="square"?"6px":t==="soft"?"16px":/^\d+(\.\d+)?$/.test(t)?`${t}px`:s:""}function W(s){if(!s.isConnected||s.hidden)return!1;const t=window.getComputedStyle(s);return!(t.display==="none"||t.visibility==="hidden")}function U(s){if(!s.isConnected)return!1;const t=window.getComputedStyle(s);if(t.display==="none"||t.visibility==="hidden")return!1;const e=s.getBoundingClientRect();if(e.width>0||e.height>0)return!0;const i=Number.parseFloat(t.width||"0"),o=Number.parseFloat(t.height||"0");return i>0||o>0}function x(s){const t=s.getAttribute("aria-disabled");return s.hasAttribute("disabled")||t==="true"||s.disabled===!0}function G(s){for(const t of s)if(t instanceof HTMLElement&&t.matches(l))return t;return null}class E extends A.ElementBase{constructor(){super(),this._isOpen=!1,this._anchorEl=null,this._point={x:0,y:0},this._restoreFocusEl=null,this._portalEl=null,this._portalSurfaceEl=null,this._portalContentHostEl=null,this._dismissableLayer=null,this._positioner=null,this._positionerPlacement=null,this._positionerOffset=0,this._positionerAnchorEl=null,this._contentAnchor=null,this._contentSourceEl=null,this._contentOriginalParent=null,this._positionRaf=null,this._submenuRaf=null,this._anchorTrackRaf=null,this._typeaheadBuffer="",this._typeaheadTimer=null,this._submenuIntentTimer=null,this._submenuIntentItem=null,this._hoveredItem=null,this._lastAnchorRect=null,this._resizeListenerBound=!1,this._scrollListenerBound=!1,this._nextOpenSource="attribute",this._onRootClick=this._onRootClick.bind(this),this._onRootKeyDown=this._onRootKeyDown.bind(this),this._onRootPointerOver=this._onRootPointerOver.bind(this),this._onRootPointerLeave=this._onRootPointerLeave.bind(this),this._onRootFocusIn=this._onRootFocusIn.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onViewportChange=this._onViewportChange.bind(this),this._trackAnchorLayout=this._trackAnchorLayout.bind(this)}static get observedAttributes(){return["open","headless","variant","size","radius","density","shape","elevation","tone","close-on-select","close-on-escape","typeahead","state","state-text","disabled","placement"]}connectedCallback(){super.connectedCallback(),B(),this.addEventListener("contextmenu",this._onContextMenu),this._syncVisualState(),this._syncOpenState()}disconnectedCallback(){this.removeEventListener("contextmenu",this._onContextMenu),this._unbindGlobalListeners(),this._cancelScheduledWork(),this._teardownPortal(),super.disconnectedCallback()}attributeChangedCallback(t,e,i){if(e!==i){if(t==="open"){this._syncOpenState();return}if(t==="headless"){this.headless&&this._isOpen&&this.close(),this._syncSurfaceState(),this._syncPortalVisualState();return}if(t==="disabled"){this.isDisabled&&this._isOpen&&this._setOpen(!1,"attribute"),this._syncSurfaceState(),this._syncPortalVisualState();return}if(t==="state"||t==="state-text"){this._syncPortalVisualState(),this.isConnected&&this.requestRender();return}(t==="variant"||t==="size"||t==="radius"||t==="density"||t==="shape"||t==="elevation"||t==="tone")&&this._syncVisualState(),this._isOpen&&(t==="placement"||t==="variant"||t==="size"||t==="radius"||t==="density"||t==="shape"||t==="elevation"||t==="tone")&&(this._syncPortalVisualState(),this._schedulePosition(),this._scheduleSubmenuLayout())}}get open(){return this.hasAttribute("open")}set open(t){this._setOpen(t,"api")}get headless(){return this.hasAttribute("headless")}set headless(t){t?this.setAttribute("headless",""):this.removeAttribute("headless")}get closeOnSelect(){const t=this.getAttribute("close-on-select");return t==null?!0:t!=="false"&&t!=="0"}set closeOnSelect(t){this.setAttribute("close-on-select",t?"true":"false")}get closeOnEscape(){const t=this.getAttribute("close-on-escape");return t==null?!0:t!=="false"&&t!=="0"}set closeOnEscape(t){this.setAttribute("close-on-escape",t?"true":"false")}get typeahead(){const t=this.getAttribute("typeahead");return t==null?!0:t!=="false"&&t!=="0"}set typeahead(t){this.setAttribute("typeahead",t?"true":"false")}get state(){const t=(this.getAttribute("state")||"idle").toLowerCase();return t==="loading"||t==="error"||t==="success"?t:"idle"}set state(t){t==="idle"?this.removeAttribute("state"):this.setAttribute("state",t)}get isDisabled(){const t=this.getAttribute("disabled");return t==null?!1:t!=="false"&&t!=="0"}set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribute("disabled")}openAt(t,e){if(!(this.headless||this.isDisabled)){if(this._anchorEl=null,this._point=$(t,e),this._isOpen){this._syncGlobalListeners(!0),this._syncDismissableLayer(),this._schedulePosition(),this._scheduleSubmenuLayout();return}this._setOpen(!0,"api")}}openForAnchor(t){if(this.headless||this.isDisabled)return;this._anchorEl=t;const e=t.getBoundingClientRect();if(this._point={x:e.left,y:e.bottom},this._isOpen){this._syncGlobalListeners(!0),this._syncDismissableLayer(),this._schedulePosition(),this._scheduleSubmenuLayout();return}this._setOpen(!0,"anchor")}openForAnchorId(t){const e=typeof document<"u"?document.getElementById(t):null;e&&this.openForAnchor(e)}showForAnchorId(t){this.openForAnchorId(t)}openFor(t){if(typeof t=="string"){this.openForAnchorId(t);return}this.openForAnchor(t)}close(){this._setOpen(!1,"api")}getPortalContentHost(){return this._portalContentHostEl}refreshLayout(){this._isOpen&&(this._normalizeMenuSemantics(),this._schedulePosition(),this._scheduleSubmenuLayout())}_surface(){return this._portalSurfaceEl||this.root.querySelector(".surface")}_listbox(){return this._portalContentHostEl||this.root.querySelector("ui-listbox.content-host")}_menuHost(){return this._contentSourceEl||this._portalContentHostEl||this.querySelector('[slot="menu"]')||this.querySelector('[slot="content"]')}_stateText(){const t=this.getAttribute("state-text");return t||(this.state==="loading"?"Loading actions":this.state==="error"?"Action unavailable":this.state==="success"?"Action ready":"")}_emitOpenState(t,e,i){const o={open:t,previousOpen:e,source:i};this.dispatchEvent(new CustomEvent(t?"open":"close",{detail:o,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent(t?"ui-open":"ui-close",{detail:o,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{...o},bubbles:!0,composed:!0}))}_setOpen(t,e){t!==this.open&&(t&&(this.headless||this.isDisabled)||(this._nextOpenSource=e,t?this.setAttribute("open",""):this.removeAttribute("open")))}_syncOpenState(){const t=this.hasAttribute("open"),e=this._nextOpenSource;if(this._nextOpenSource="attribute",t===this._isOpen){this._syncGlobalListeners(t),t?((!this._portalEl||!this._portalEl.isConnected)&&this._mountPortal(),this._syncPortalVisualState(),this._syncSurfaceState(),this._syncDismissableLayer(),this._schedulePosition(),this._scheduleSubmenuLayout()):this._syncSurfaceState();return}if(this._isOpen=t,this._syncGlobalListeners(t),t){this._restoreFocusEl=document.activeElement instanceof HTMLElement?document.activeElement:null,this._mountPortal(),this._normalizeMenuSemantics(),this._syncSurfaceState(),this._emitOpenState(!0,!1,e),this._schedulePosition(),this._scheduleSubmenuLayout(),requestAnimationFrame(()=>{this._focusFirstItem()});return}if(this._clearSubmenuState(),this._cancelScheduledWork(),this._teardownPortal(),this._syncSurfaceState(),this._anchorEl=null,this._emitOpenState(!1,!0,e),this._restoreFocusEl?.isConnected)try{this._restoreFocusEl.focus()}catch{}this._restoreFocusEl=null}_syncSurfaceState(){const t=this._surface();if(!t)return;const e=this._isOpen&&!this.headless,i=e&&!this.isDisabled&&this.state!=="loading";t.setAttribute("aria-hidden",this._isOpen?"false":"true"),t.setAttribute("aria-busy",this.state==="loading"?"true":"false"),this._isOpen?t.removeAttribute("hidden"):t.setAttribute("hidden",""),t.style.display=this.headless?"none":"block",t.style.visibility=e?"visible":"hidden",t.style.opacity=e?"1":"0",t.style.transform=e?"translateY(0) scale(1)":"translateY(4px) scale(0.985)",t.style.pointerEvents=i?"auto":"none"}_syncVisualState(){const t=_(this.getAttribute("size")||this.getAttribute("density"));t&&t!=="md"?this.setAttribute("data-ui-context-menu-size",t):this.removeAttribute("data-ui-context-menu-size"),t==="sm"?(this.style.setProperty("--ui-context-menu-padding","4px"),this.style.setProperty("--ui-context-menu-item-gap","8px"),this.style.setProperty("--ui-context-menu-item-min-height","32px"),this.style.setProperty("--ui-context-menu-item-pad-y","6px"),this.style.setProperty("--ui-context-menu-item-pad-x","8px"),this.style.setProperty("--ui-context-menu-item-font-size","13px"),this.style.setProperty("--ui-context-menu-item-line-height","18px"),this.style.setProperty("--ui-context-menu-separator-margin","4px 8px")):t==="lg"?(this.style.setProperty("--ui-context-menu-padding","8px"),this.style.setProperty("--ui-context-menu-item-gap","12px"),this.style.setProperty("--ui-context-menu-item-min-height","40px"),this.style.setProperty("--ui-context-menu-item-pad-y","9px"),this.style.setProperty("--ui-context-menu-item-pad-x","12px"),this.style.setProperty("--ui-context-menu-item-font-size","15px"),this.style.setProperty("--ui-context-menu-item-line-height","22px"),this.style.setProperty("--ui-context-menu-separator-margin","8px 12px")):(this.style.removeProperty("--ui-context-menu-padding"),this.style.removeProperty("--ui-context-menu-item-gap"),this.style.removeProperty("--ui-context-menu-item-min-height"),this.style.removeProperty("--ui-context-menu-item-pad-y"),this.style.removeProperty("--ui-context-menu-item-pad-x"),this.style.removeProperty("--ui-context-menu-item-font-size"),this.style.removeProperty("--ui-context-menu-item-line-height"),this.style.removeProperty("--ui-context-menu-separator-margin"));const e=y(this.getAttribute("radius")||this.getAttribute("shape"));e?(this.style.setProperty("--ui-context-menu-radius",e),this.style.setProperty("--ui-context-menu-item-radius",e),this.style.setProperty("--ui-context-menu-submenu-radius",e)):(this.style.removeProperty("--ui-context-menu-radius"),this.style.removeProperty("--ui-context-menu-item-radius"),this.style.removeProperty("--ui-context-menu-submenu-radius"))}_syncGlobalListeners(t){const e=t,i=t&&!!this._anchorEl;e&&!this._resizeListenerBound?(window.addEventListener("resize",this._onViewportChange),this._resizeListenerBound=!0):!e&&this._resizeListenerBound&&(window.removeEventListener("resize",this._onViewportChange),this._resizeListenerBound=!1),i&&!this._scrollListenerBound?(window.addEventListener("scroll",this._onViewportChange,{passive:!0,capture:!0}),this._scrollListenerBound=!0):!i&&this._scrollListenerBound&&(window.removeEventListener("scroll",this._onViewportChange,!0),this._scrollListenerBound=!1),t&&this._anchorEl?this._startAnchorTracking():this._stopAnchorTracking()}_unbindGlobalListeners(){this._syncGlobalListeners(!1)}_bindPortalInteractionListeners(){this._portalEl&&(this._portalEl.addEventListener("click",this._onRootClick),this._portalEl.addEventListener("keydown",this._onRootKeyDown),this._portalEl.addEventListener("pointerover",this._onRootPointerOver),this._portalEl.addEventListener("pointerleave",this._onRootPointerLeave),this._portalEl.addEventListener("focusin",this._onRootFocusIn))}_unbindPortalInteractionListeners(){this._portalEl&&(this._portalEl.removeEventListener("click",this._onRootClick),this._portalEl.removeEventListener("keydown",this._onRootKeyDown),this._portalEl.removeEventListener("pointerover",this._onRootPointerOver),this._portalEl.removeEventListener("pointerleave",this._onRootPointerLeave),this._portalEl.removeEventListener("focusin",this._onRootFocusIn))}_setPortalFlag(t,e){this._portalEl&&(e?this._portalEl.setAttribute(`data-${t}`,"true"):this._portalEl.removeAttribute(`data-${t}`))}_syncPortalThemeVariables(){if(!this._portalEl)return;const t=getComputedStyle(this),e=i=>{const o=t.getPropertyValue(i).trim();o?this._portalEl.style.setProperty(i,o):this._portalEl.style.removeProperty(i)};k.forEach(e),z.forEach(e),T.forEach(({prefix:i,from:o,to:n})=>{for(let r=o;r<=n;r+=1)e(`${i}${r}`)})}_syncPortalVisualState(){if(!this._portalEl)return;const t=_(this.getAttribute("size")||this.getAttribute("density")),e=y(this.getAttribute("radius")||this.getAttribute("shape"));this._syncPortalThemeVariables(),this._setPortalFlag("open",this._isOpen),this._setPortalFlag("headless",this.headless),this._setPortalFlag("disabled",this.isDisabled);const i=this.getAttribute("variant"),o=_(this.getAttribute("size")||this.getAttribute("density")),n=this.getAttribute("density"),r=this.getAttribute("radius"),u=this.getAttribute("shape"),c=this.getAttribute("elevation"),h=this.getAttribute("tone"),m=this.getAttribute("placement");i?this._portalEl.setAttribute("data-variant",i):this._portalEl.removeAttribute("data-variant"),o&&o!=="md"?this._portalEl.setAttribute("data-size",o):this._portalEl.removeAttribute("data-size"),n?this._portalEl.setAttribute("data-density",n):this._portalEl.removeAttribute("data-density"),r?this._portalEl.setAttribute("data-radius",r):this._portalEl.removeAttribute("data-radius"),u?this._portalEl.setAttribute("data-shape",u):this._portalEl.removeAttribute("data-shape"),c?this._portalEl.setAttribute("data-elevation",c):this._portalEl.removeAttribute("data-elevation"),h?this._portalEl.setAttribute("data-tone",h):this._portalEl.removeAttribute("data-tone"),m?this._portalEl.setAttribute("data-placement-request",m):this._portalEl.removeAttribute("data-placement-request"),t==="sm"?(this._portalEl.style.setProperty("--ui-context-menu-padding","4px"),this._portalEl.style.setProperty("--ui-context-menu-item-gap","8px"),this._portalEl.style.setProperty("--ui-context-menu-item-min-height","32px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-y","6px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-x","8px"),this._portalEl.style.setProperty("--ui-context-menu-item-font-size","13px"),this._portalEl.style.setProperty("--ui-context-menu-item-line-height","18px"),this._portalEl.style.setProperty("--ui-context-menu-separator-margin","4px 8px")):t==="lg"?(this._portalEl.style.setProperty("--ui-context-menu-padding","8px"),this._portalEl.style.setProperty("--ui-context-menu-item-gap","12px"),this._portalEl.style.setProperty("--ui-context-menu-item-min-height","40px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-y","9px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-x","12px"),this._portalEl.style.setProperty("--ui-context-menu-item-font-size","15px"),this._portalEl.style.setProperty("--ui-context-menu-item-line-height","22px"),this._portalEl.style.setProperty("--ui-context-menu-separator-margin","8px 12px")):(this._portalEl.style.removeProperty("--ui-context-menu-padding"),this._portalEl.style.removeProperty("--ui-context-menu-item-gap"),this._portalEl.style.removeProperty("--ui-context-menu-item-min-height"),this._portalEl.style.removeProperty("--ui-context-menu-item-pad-y"),this._portalEl.style.removeProperty("--ui-context-menu-item-pad-x"),this._portalEl.style.removeProperty("--ui-context-menu-item-font-size"),this._portalEl.style.removeProperty("--ui-context-menu-item-line-height"),this._portalEl.style.removeProperty("--ui-context-menu-separator-margin")),e?(this._portalEl.style.setProperty("--ui-context-menu-radius",e),this._portalEl.style.setProperty("--ui-context-menu-item-radius",e),this._portalEl.style.setProperty("--ui-context-menu-submenu-radius",e)):(this._portalEl.style.removeProperty("--ui-context-menu-radius"),this._portalEl.style.removeProperty("--ui-context-menu-item-radius"),this._portalEl.style.removeProperty("--ui-context-menu-submenu-radius")),this.state!=="idle"?this._portalEl.setAttribute("data-state",this.state):this._portalEl.removeAttribute("data-state");const p=this._portalEl.querySelector(".state-row");p&&(p.textContent=this._stateText())}_moveContentIntoPortal(){if(this._contentSourceEl)return;const t=this.querySelector('[slot="menu"]')||this.querySelector('[slot="content"]'),e=this._portalContentHostEl;!t||!e||(this._contentOriginalParent=t.parentNode,this._contentAnchor=document.createComment("ui-context-menu-anchor"),this._contentOriginalParent&&this._contentOriginalParent.insertBefore(this._contentAnchor,t),this._contentSourceEl=t,e.appendChild(t))}_restoreContentFromPortal(){const t=this._contentSourceEl;if(!t)return;const e=this._contentAnchor,i=this._contentOriginalParent;e?.parentNode?(e.parentNode.insertBefore(t,e),e.parentNode.removeChild(e)):i&&i.appendChild(t),this._contentSourceEl=null,this._contentAnchor=null,this._contentOriginalParent=null}_mountPortal(){if(this._portalEl?.isConnected)return;const t=S.createPortalContainer();if(!t)return;const e=document.createElement("div");e.className="ui-context-menu-portal",e.style.position="absolute",e.style.pointerEvents="auto",e.innerHTML=`
|
|
342
|
-
<style>${
|
|
339
|
+
`;function F(){if(typeof document>"u")return;const s="ui-context-menu-light-dom-style";if(document.getElementById(s))return;const t=document.createElement("style");t.id=s,t.textContent=v,document.head.appendChild(t)}function H(s,t){return s.replace(/(^|})\s*([^@}{][^{}]*)\{/g,(e,i,o)=>{const n=o.split(",").map(r=>r.trim()).filter(Boolean).map(r=>r.startsWith(t)?r:`${t} ${r}`).join(", ");return`${i}
|
|
340
|
+
${n} {`})}function D(s){const t=s.replace(/:host\(\[([a-z-]+)(?:="([^"]+)")?\]\)/g,(e,i,o)=>o!=null?`.ui-context-menu-portal[data-${i}="${o}"]`:`.ui-context-menu-portal[data-${i}="true"]`).replace(/:host/g,".ui-context-menu-portal");return H(t,".ui-context-menu-portal")}function M(s){return s.replace(/(^|,)\s*ui-context-menu\b/gm,(t,e)=>`${e} .ui-context-menu-portal`)}const q=`${D(g)}
|
|
341
|
+
${M(v)}`;function $(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function V(s,t){return typeof s=="number"?{x:s,y:typeof t=="number"?t:0}:s}function N(s){return s==="top"||s==="left"||s==="right"?s:"bottom"}function W(s){return`${s}-start`}function _(s){if(!s)return"";const t=s.trim().toLowerCase();return t==="1"?"sm":t==="2"?"md":t==="3"?"lg":t==="sm"||t==="md"||t==="lg"?t:t==="compact"?"sm":t==="comfortable"?"lg":""}function y(s){if(!s)return"";const t=s.trim().toLowerCase();return t?t==="none"?"0px":t==="sm"?"8px":t==="md"?"12px":t==="lg"?"16px":t==="full"?"999px":t==="square"?"6px":t==="soft"?"16px":/^\d+(\.\d+)?$/.test(t)?`${t}px`:s:""}function U(s){if(!s.isConnected||s.hidden)return!1;const t=window.getComputedStyle(s);return!(t.display==="none"||t.visibility==="hidden")}function G(s){if(!s.isConnected)return!1;const t=window.getComputedStyle(s);if(t.display==="none"||t.visibility==="hidden")return!1;const e=s.getBoundingClientRect();if(e.width>0||e.height>0)return!0;const i=Number.parseFloat(t.width||"0"),o=Number.parseFloat(t.height||"0");return i>0||o>0}function x(s){const t=s.getAttribute("aria-disabled");return s.hasAttribute("disabled")||t==="true"||s.disabled===!0}function K(s){for(const t of s)if(t instanceof HTMLElement&&t.matches(l))return t;return null}class E extends A.ElementBase{constructor(){super(),this._isOpen=!1,this._anchorEl=null,this._point={x:0,y:0},this._restoreFocusEl=null,this._portalEl=null,this._portalSurfaceEl=null,this._portalContentHostEl=null,this._dismissableLayer=null,this._positioner=null,this._positionerPlacement=null,this._positionerOffset=0,this._positionerAnchorEl=null,this._contentAnchor=null,this._contentSourceEl=null,this._contentOriginalParent=null,this._positionRaf=null,this._submenuRaf=null,this._anchorTrackRaf=null,this._typeaheadBuffer="",this._typeaheadTimer=null,this._submenuIntentTimer=null,this._submenuIntentItem=null,this._hoveredItem=null,this._lastAnchorRect=null,this._resizeListenerBound=!1,this._scrollListenerBound=!1,this._nextOpenSource="attribute",this._onRootClick=this._onRootClick.bind(this),this._onRootKeyDown=this._onRootKeyDown.bind(this),this._onRootPointerOver=this._onRootPointerOver.bind(this),this._onRootPointerLeave=this._onRootPointerLeave.bind(this),this._onRootFocusIn=this._onRootFocusIn.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onViewportChange=this._onViewportChange.bind(this),this._trackAnchorLayout=this._trackAnchorLayout.bind(this)}static get observedAttributes(){return["open","headless","variant","size","radius","density","shape","elevation","tone","close-on-select","close-on-escape","typeahead","state","state-text","disabled","placement"]}connectedCallback(){super.connectedCallback(),F(),this.addEventListener("contextmenu",this._onContextMenu),this._syncVisualState(),this._syncOpenState()}disconnectedCallback(){this.removeEventListener("contextmenu",this._onContextMenu),this._unbindGlobalListeners(),this._cancelScheduledWork(),this._teardownPortal(),super.disconnectedCallback()}attributeChangedCallback(t,e,i){if(e!==i){if(t==="open"){this._syncOpenState();return}if(t==="headless"){this.headless&&this._isOpen&&this.close(),this._syncSurfaceState(),this._syncPortalVisualState();return}if(t==="disabled"){this.isDisabled&&this._isOpen&&this._setOpen(!1,"attribute"),this._syncSurfaceState(),this._syncPortalVisualState();return}if(t==="state"||t==="state-text"){this._syncPortalVisualState(),this.isConnected&&this.requestRender();return}(t==="variant"||t==="size"||t==="radius"||t==="density"||t==="shape"||t==="elevation"||t==="tone")&&this._syncVisualState(),this._isOpen&&(t==="placement"||t==="variant"||t==="size"||t==="radius"||t==="density"||t==="shape"||t==="elevation"||t==="tone")&&(this._syncPortalVisualState(),this._schedulePosition(),this._scheduleSubmenuLayout())}}get open(){return this.hasAttribute("open")}set open(t){this._setOpen(t,"api")}get headless(){return this.hasAttribute("headless")}set headless(t){t?this.setAttribute("headless",""):this.removeAttribute("headless")}get closeOnSelect(){const t=this.getAttribute("close-on-select");return t==null?!0:t!=="false"&&t!=="0"}set closeOnSelect(t){this.setAttribute("close-on-select",t?"true":"false")}get closeOnEscape(){const t=this.getAttribute("close-on-escape");return t==null?!0:t!=="false"&&t!=="0"}set closeOnEscape(t){this.setAttribute("close-on-escape",t?"true":"false")}get typeahead(){const t=this.getAttribute("typeahead");return t==null?!0:t!=="false"&&t!=="0"}set typeahead(t){this.setAttribute("typeahead",t?"true":"false")}get state(){const t=(this.getAttribute("state")||"idle").toLowerCase();return t==="loading"||t==="error"||t==="success"?t:"idle"}set state(t){t==="idle"?this.removeAttribute("state"):this.setAttribute("state",t)}get isDisabled(){const t=this.getAttribute("disabled");return t==null?!1:t!=="false"&&t!=="0"}set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribute("disabled")}openAt(t,e){if(!(this.headless||this.isDisabled)){if(this._anchorEl=null,this._point=V(t,e),this._isOpen){this._syncGlobalListeners(!0),this._syncDismissableLayer(),this._schedulePosition(),this._scheduleSubmenuLayout();return}this._setOpen(!0,"api")}}openForAnchor(t){if(this.headless||this.isDisabled)return;this._anchorEl=t;const e=t.getBoundingClientRect();if(this._point={x:e.left,y:e.bottom},this._isOpen){this._syncGlobalListeners(!0),this._syncDismissableLayer(),this._schedulePosition(),this._scheduleSubmenuLayout();return}this._setOpen(!0,"anchor")}openForAnchorId(t){const e=typeof document<"u"?document.getElementById(t):null;e&&this.openForAnchor(e)}showForAnchorId(t){this.openForAnchorId(t)}openFor(t){if(typeof t=="string"){this.openForAnchorId(t);return}this.openForAnchor(t)}close(){this._setOpen(!1,"api")}getPortalContentHost(){return this._portalContentHostEl}refreshLayout(){this._isOpen&&(this._normalizeMenuSemantics(),this._schedulePosition(),this._scheduleSubmenuLayout())}_surface(){return this._portalSurfaceEl||this.root.querySelector(".surface")}_listbox(){return this._portalContentHostEl||this.root.querySelector("ui-listbox.content-host")}_menuHost(){return this._contentSourceEl||this._portalContentHostEl||this.querySelector('[slot="menu"]')||this.querySelector('[slot="content"]')}_stateText(){const t=this.getAttribute("state-text");return t||(this.state==="loading"?"Loading actions":this.state==="error"?"Action unavailable":this.state==="success"?"Action ready":"")}_emitOpenState(t,e,i){const o={open:t,previousOpen:e,source:i};this.dispatchEvent(new CustomEvent(t?"open":"close",{detail:o,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent(t?"ui-open":"ui-close",{detail:o,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{...o},bubbles:!0,composed:!0}))}_setOpen(t,e){t!==this.open&&(t&&(this.headless||this.isDisabled)||(this._nextOpenSource=e,t?this.setAttribute("open",""):this.removeAttribute("open")))}_syncOpenState(){const t=this.hasAttribute("open"),e=this._nextOpenSource;if(this._nextOpenSource="attribute",t===this._isOpen){this._syncGlobalListeners(t),t?((!this._portalEl||!this._portalEl.isConnected)&&this._mountPortal(),this._syncPortalVisualState(),this._syncSurfaceState(),this._syncDismissableLayer(),this._schedulePosition(),this._scheduleSubmenuLayout()):this._syncSurfaceState();return}if(this._isOpen=t,this._syncGlobalListeners(t),t){this._restoreFocusEl=document.activeElement instanceof HTMLElement?document.activeElement:null,this._mountPortal(),this._normalizeMenuSemantics(),this._syncSurfaceState(),this._emitOpenState(!0,!1,e),this._schedulePosition(),this._scheduleSubmenuLayout(),requestAnimationFrame(()=>{this._focusFirstItem()});return}if(this._clearSubmenuState(),this._cancelScheduledWork(),this._teardownPortal(),this._syncSurfaceState(),this._anchorEl=null,this._emitOpenState(!1,!0,e),this._restoreFocusEl?.isConnected)try{this._restoreFocusEl.focus()}catch{}this._restoreFocusEl=null}_syncSurfaceState(){const t=this._surface();if(!t)return;const e=this._isOpen&&!this.headless,i=e&&!this.isDisabled&&this.state!=="loading";t.setAttribute("aria-hidden",this._isOpen?"false":"true"),t.setAttribute("aria-busy",this.state==="loading"?"true":"false"),this._isOpen?t.removeAttribute("hidden"):t.setAttribute("hidden",""),t.style.display=this.headless?"none":"block",t.style.visibility=e?"visible":"hidden",t.style.opacity=e?"1":"0",t.style.transform=e?"translateY(0) scale(1)":"translateY(4px) scale(0.985)",t.style.pointerEvents=i?"auto":"none"}_syncVisualState(){const t=_(this.getAttribute("size")||this.getAttribute("density"));t&&t!=="md"?this.setAttribute("data-ui-context-menu-size",t):this.removeAttribute("data-ui-context-menu-size"),t==="sm"?(this.style.setProperty("--ui-context-menu-padding","4px"),this.style.setProperty("--ui-context-menu-item-gap","8px"),this.style.setProperty("--ui-context-menu-item-min-height","32px"),this.style.setProperty("--ui-context-menu-item-pad-y","6px"),this.style.setProperty("--ui-context-menu-item-pad-x","8px"),this.style.setProperty("--ui-context-menu-item-font-size","13px"),this.style.setProperty("--ui-context-menu-item-line-height","18px"),this.style.setProperty("--ui-context-menu-separator-margin","4px 8px")):t==="lg"?(this.style.setProperty("--ui-context-menu-padding","8px"),this.style.setProperty("--ui-context-menu-item-gap","12px"),this.style.setProperty("--ui-context-menu-item-min-height","40px"),this.style.setProperty("--ui-context-menu-item-pad-y","9px"),this.style.setProperty("--ui-context-menu-item-pad-x","12px"),this.style.setProperty("--ui-context-menu-item-font-size","15px"),this.style.setProperty("--ui-context-menu-item-line-height","22px"),this.style.setProperty("--ui-context-menu-separator-margin","8px 12px")):(this.style.removeProperty("--ui-context-menu-padding"),this.style.removeProperty("--ui-context-menu-item-gap"),this.style.removeProperty("--ui-context-menu-item-min-height"),this.style.removeProperty("--ui-context-menu-item-pad-y"),this.style.removeProperty("--ui-context-menu-item-pad-x"),this.style.removeProperty("--ui-context-menu-item-font-size"),this.style.removeProperty("--ui-context-menu-item-line-height"),this.style.removeProperty("--ui-context-menu-separator-margin"));const e=y(this.getAttribute("radius")||this.getAttribute("shape"));e?(this.style.setProperty("--ui-context-menu-radius",e),this.style.setProperty("--ui-context-menu-item-radius",e),this.style.setProperty("--ui-context-menu-submenu-radius",e)):(this.style.removeProperty("--ui-context-menu-radius"),this.style.removeProperty("--ui-context-menu-item-radius"),this.style.removeProperty("--ui-context-menu-submenu-radius"))}_syncGlobalListeners(t){const e=t,i=t&&!!this._anchorEl;e&&!this._resizeListenerBound?(window.addEventListener("resize",this._onViewportChange),this._resizeListenerBound=!0):!e&&this._resizeListenerBound&&(window.removeEventListener("resize",this._onViewportChange),this._resizeListenerBound=!1),i&&!this._scrollListenerBound?(window.addEventListener("scroll",this._onViewportChange,{passive:!0,capture:!0}),this._scrollListenerBound=!0):!i&&this._scrollListenerBound&&(window.removeEventListener("scroll",this._onViewportChange,!0),this._scrollListenerBound=!1),t&&this._anchorEl?this._startAnchorTracking():this._stopAnchorTracking()}_unbindGlobalListeners(){this._syncGlobalListeners(!1)}_bindPortalInteractionListeners(){this._portalEl&&(this._portalEl.addEventListener("click",this._onRootClick),this._portalEl.addEventListener("keydown",this._onRootKeyDown),this._portalEl.addEventListener("pointerover",this._onRootPointerOver),this._portalEl.addEventListener("pointerleave",this._onRootPointerLeave),this._portalEl.addEventListener("focusin",this._onRootFocusIn))}_unbindPortalInteractionListeners(){this._portalEl&&(this._portalEl.removeEventListener("click",this._onRootClick),this._portalEl.removeEventListener("keydown",this._onRootKeyDown),this._portalEl.removeEventListener("pointerover",this._onRootPointerOver),this._portalEl.removeEventListener("pointerleave",this._onRootPointerLeave),this._portalEl.removeEventListener("focusin",this._onRootFocusIn))}_setPortalFlag(t,e){this._portalEl&&(e?this._portalEl.setAttribute(`data-${t}`,"true"):this._portalEl.removeAttribute(`data-${t}`))}_syncPortalThemeVariables(){if(!this._portalEl)return;const t=getComputedStyle(this),e=i=>{const o=t.getPropertyValue(i).trim();o?this._portalEl.style.setProperty(i,o):this._portalEl.style.removeProperty(i)};T.forEach(e),B.forEach(e),z.forEach(({prefix:i,from:o,to:n})=>{for(let r=o;r<=n;r+=1)e(`${i}${r}`)})}_syncPortalVisualState(){if(!this._portalEl)return;const t=_(this.getAttribute("size")||this.getAttribute("density")),e=y(this.getAttribute("radius")||this.getAttribute("shape"));this._syncPortalThemeVariables(),this._setPortalFlag("open",this._isOpen),this._setPortalFlag("headless",this.headless),this._setPortalFlag("disabled",this.isDisabled);const i=this.getAttribute("variant"),o=_(this.getAttribute("size")||this.getAttribute("density")),n=this.getAttribute("density"),r=this.getAttribute("radius"),u=this.getAttribute("shape"),c=this.getAttribute("elevation"),h=this.getAttribute("tone"),m=this.getAttribute("placement");i?this._portalEl.setAttribute("data-variant",i):this._portalEl.removeAttribute("data-variant"),o&&o!=="md"?this._portalEl.setAttribute("data-size",o):this._portalEl.removeAttribute("data-size"),n?this._portalEl.setAttribute("data-density",n):this._portalEl.removeAttribute("data-density"),r?this._portalEl.setAttribute("data-radius",r):this._portalEl.removeAttribute("data-radius"),u?this._portalEl.setAttribute("data-shape",u):this._portalEl.removeAttribute("data-shape"),c?this._portalEl.setAttribute("data-elevation",c):this._portalEl.removeAttribute("data-elevation"),h?this._portalEl.setAttribute("data-tone",h):this._portalEl.removeAttribute("data-tone"),m?this._portalEl.setAttribute("data-placement-request",m):this._portalEl.removeAttribute("data-placement-request"),t==="sm"?(this._portalEl.style.setProperty("--ui-context-menu-padding","4px"),this._portalEl.style.setProperty("--ui-context-menu-item-gap","8px"),this._portalEl.style.setProperty("--ui-context-menu-item-min-height","32px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-y","6px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-x","8px"),this._portalEl.style.setProperty("--ui-context-menu-item-font-size","13px"),this._portalEl.style.setProperty("--ui-context-menu-item-line-height","18px"),this._portalEl.style.setProperty("--ui-context-menu-separator-margin","4px 8px")):t==="lg"?(this._portalEl.style.setProperty("--ui-context-menu-padding","8px"),this._portalEl.style.setProperty("--ui-context-menu-item-gap","12px"),this._portalEl.style.setProperty("--ui-context-menu-item-min-height","40px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-y","9px"),this._portalEl.style.setProperty("--ui-context-menu-item-pad-x","12px"),this._portalEl.style.setProperty("--ui-context-menu-item-font-size","15px"),this._portalEl.style.setProperty("--ui-context-menu-item-line-height","22px"),this._portalEl.style.setProperty("--ui-context-menu-separator-margin","8px 12px")):(this._portalEl.style.removeProperty("--ui-context-menu-padding"),this._portalEl.style.removeProperty("--ui-context-menu-item-gap"),this._portalEl.style.removeProperty("--ui-context-menu-item-min-height"),this._portalEl.style.removeProperty("--ui-context-menu-item-pad-y"),this._portalEl.style.removeProperty("--ui-context-menu-item-pad-x"),this._portalEl.style.removeProperty("--ui-context-menu-item-font-size"),this._portalEl.style.removeProperty("--ui-context-menu-item-line-height"),this._portalEl.style.removeProperty("--ui-context-menu-separator-margin")),e?(this._portalEl.style.setProperty("--ui-context-menu-radius",e),this._portalEl.style.setProperty("--ui-context-menu-item-radius",e),this._portalEl.style.setProperty("--ui-context-menu-submenu-radius",e)):(this._portalEl.style.removeProperty("--ui-context-menu-radius"),this._portalEl.style.removeProperty("--ui-context-menu-item-radius"),this._portalEl.style.removeProperty("--ui-context-menu-submenu-radius")),this.state!=="idle"?this._portalEl.setAttribute("data-state",this.state):this._portalEl.removeAttribute("data-state");const p=this._portalEl.querySelector(".state-row");p&&(p.textContent=this._stateText())}_moveContentIntoPortal(){if(this._contentSourceEl)return;const t=this.querySelector('[slot="menu"]')||this.querySelector('[slot="content"]'),e=this._portalContentHostEl;!t||!e||(this._contentOriginalParent=t.parentNode,this._contentAnchor=document.createComment("ui-context-menu-anchor"),this._contentOriginalParent&&this._contentOriginalParent.insertBefore(this._contentAnchor,t),this._contentSourceEl=t,e.appendChild(t))}_restoreContentFromPortal(){const t=this._contentSourceEl;if(!t)return;const e=this._contentAnchor,i=this._contentOriginalParent;e?.parentNode?(e.parentNode.insertBefore(t,e),e.parentNode.removeChild(e)):i&&i.appendChild(t),this._contentSourceEl=null,this._contentAnchor=null,this._contentOriginalParent=null}_mountPortal(){if(this._portalEl?.isConnected)return;const t=S.createPortalContainer();if(!t)return;const e=document.createElement("div");e.className="ui-context-menu-portal",e.style.position="absolute",e.style.pointerEvents="auto",e.innerHTML=`
|
|
342
|
+
<style>${q}</style>
|
|
343
343
|
<div class="surface" part="menu" role="menu" aria-hidden="true" aria-busy="false" tabindex="-1">
|
|
344
344
|
<div class="state-row" part="state"></div>
|
|
345
345
|
<ui-listbox class="content-host" slot="menu" role="menu" item-selector="${l.replace(/"/g,""")}" direct-item-selector="${b.replace(/"/g,""")}" item-role="menuitem" active-attribute="data-active"></ui-listbox>
|
|
346
346
|
</div>
|
|
347
|
-
`,t.appendChild(e),this._portalEl=e,this._portalSurfaceEl=e.querySelector(".surface"),this._portalContentHostEl=e.querySelector("ui-listbox.content-host"),this._moveContentIntoPortal(),this._portalContentHostEl?.refresh(),this._syncPortalVisualState(),this._syncSurfaceState(),this._bindPortalInteractionListeners(),this._syncDismissableLayer()}_teardownPortal(){if(this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._positioner?.destroy(),this._positioner=null,this._positionerPlacement=null,this._positionerOffset=0,this._positionerAnchorEl=null,this._unbindPortalInteractionListeners(),this._restoreContentFromPortal(),this._portalContentHostEl=null,this._portalSurfaceEl=null,this._portalEl?.parentElement)try{this._portalEl.parentElement.removeChild(this._portalEl)}catch{}this._portalEl=null}_syncDismissableLayer(){const t=this._portalSurfaceEl;if(!t||!this._isOpen){this._dismissableLayer?.destroy(),this._dismissableLayer=null;return}this._dismissableLayer?.destroy(),this._dismissableLayer=P.createDismissableLayer({node:t,trigger:this._anchorEl||this,closeOnEscape:this.closeOnEscape,closeOnPointerOutside:!0,closeOnFocusOutside:!0,onDismiss:e=>{const i=e==="escape-key"?"escape":"outside";this._setOpen(!1,i)}})}_cancelScheduledWork(){this._positionRaf!=null&&(cancelAnimationFrame(this._positionRaf),this._positionRaf=null),this._submenuRaf!=null&&(cancelAnimationFrame(this._submenuRaf),this._submenuRaf=null),this._stopAnchorTracking(),this._cancelSubmenuIntent(),this._resetTypeahead()}_captureAnchorRect(){if(!this._anchorEl)return null;const t=this._anchorEl.getBoundingClientRect();return{top:t.top,left:t.left,right:t.right,bottom:t.bottom,width:t.width,height:t.height}}_pointVirtualAnchor(){return{getBoundingClientRect:()=>{const{x:t,y:e}=this._point;return{x:t,y:e,top:e,left:t,right:t,bottom:e,width:0,height:0,toJSON:()=>({})}}}}_rebuildPositioner(t,e,i){this._positioner?.destroy(),this._positioner=w.createPositioner({anchor:this._anchorEl||this._pointVirtualAnchor(),floating:t,placement:e,strategy:"fixed",offset:i,flip:!0,shift:!0,boundaryPadding:a,observeWindowResize:!1,observeScroll:!1,observeAncestorScroll:!1,observeAncestorResize:!1,observeLayoutShift:!1,observeAnchorResize:!1,observeFloatingResize:!1,onUpdate:o=>{const n=window.innerWidth||document.documentElement.clientWidth||0,r=window.innerHeight||document.documentElement.clientHeight||0;t.style.maxWidth=`${Math.max(160,n-a*2)}px`,t.style.maxHeight=`${Math.max(120,r-a*2)}px`,t.setAttribute("data-placement",o.placement.split("-")[0])}}),this._positionerPlacement=e,this._positionerOffset=i,this._positionerAnchorEl=this._anchorEl}_startAnchorTracking(){!this._isOpen||!this._anchorEl||this._anchorTrackRaf!=null||(this._lastAnchorRect=this._captureAnchorRect(),this._anchorTrackRaf=requestAnimationFrame(this._trackAnchorLayout))}_stopAnchorTracking(){this._anchorTrackRaf!=null&&(cancelAnimationFrame(this._anchorTrackRaf),this._anchorTrackRaf=null),this._lastAnchorRect=null}_trackAnchorLayout(){if(this._anchorTrackRaf=null,!this._isOpen||!this._anchorEl)return;const t=this._captureAnchorRect(),e=this._lastAnchorRect;if(this._lastAnchorRect=t,!t){this.close();return}e&&(t.top!==e.top||t.left!==e.left||t.right!==e.right||t.bottom!==e.bottom||t.width!==e.width||t.height!==e.height)&&(this._positionMenu(),this._layoutSubmenus()),this._anchorTrackRaf=requestAnimationFrame(this._trackAnchorLayout)}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_normalizeMenuSemantics(){const t=this._menuHost();t&&this._listbox()?.syncItemSemantics({container:t})}_queryMenuItems(t){const e=t||this._menuHost();return e?(this._listbox()?.queryItems({container:e})||[]).filter(i=>W(i)):[]}_submenuFor(t){return t.querySelector(L)}_clearHighlights(){this._hoveredItem=null}_focusItem(t){if(!t)return;this._clearHighlights();const e=t.closest(".submenu")||this._menuHost();this._listbox()?.setActiveItem(t,{container:e,focus:!0,owner:this._surface(),scroll:!0}),this._setOpenBranch(t,!1)}_focusFirstItem(){const t=this._listbox()?.focusBoundary("first",{container:this._menuHost(),focus:!0,owner:this._surface(),scroll:!0});if(t){this._setOpenBranch(t,!1);return}const e=this._surface();if(e)try{e.focus({preventScroll:!0})}catch{e.focus()}}_focusLastItem(){const t=this._listbox()?.focusBoundary("last",{container:this._menuHost(),focus:!0,owner:this._surface(),scroll:!0});t&&this._setOpenBranch(t,!1)}_findCurrentItem(t){if(t&&typeof t.composedPath=="function"){const i=G(t.composedPath());if(i)return i}const e=document.activeElement;if(e instanceof HTMLElement){const i=e.closest(l);if(i instanceof HTMLElement)return i}return this._hoveredItem?.isConnected?this._hoveredItem:null}_moveFocus(t,e){const i=t.closest(".submenu")||this._menuHost();if(!i)return;if(e==="first"){const n=this._listbox()?.focusBoundary("first",{container:i,focus:!0,owner:this._surface(),scroll:!0});n&&this._setOpenBranch(n,!1);return}if(e==="last"){const n=this._listbox()?.focusBoundary("last",{container:i,focus:!0,owner:this._surface(),scroll:!0});n&&this._setOpenBranch(n,!1);return}const o=this._listbox()?.move(e==="next"?1:-1,{container:i,current:t,focus:!0,owner:this._surface(),scroll:!0});o&&this._setOpenBranch(o,!1)}_setOpenBranch(t,e){const i=this._menuHost();if(!i||(i.querySelectorAll('[data-submenu-open="true"]').forEach(r=>r.removeAttribute("data-submenu-open")),!t))return;const o=[];let n=t;for(;n;){const r=n.closest(".submenu");if(!r)break;const u=r.parentElement;if(!(u instanceof HTMLElement)||!u.matches(l))break;o.unshift(u),n=u}o.forEach(r=>r.setAttribute("data-submenu-open","true")),e&&this._submenuFor(t)&&t.setAttribute("data-submenu-open","true")}_openSubmenu(t,e){this._cancelSubmenuIntent();const i=this._submenuFor(t);if(!i||x(t))return!1;if(this._setOpenBranch(t,!0),this._scheduleSubmenuLayout(),!e)return!0;const o=this._listbox()?.focusBoundary("first",{container:i,focus:!0,owner:this._surface(),scroll:!0});return o&&this._setOpenBranch(o,!1),!0}_closeParentSubmenu(t){const e=t.closest(".submenu");if(!e)return!1;const i=e.parentElement;return!(i instanceof HTMLElement)||!i.matches(l)?!1:(this._focusItem(i),this._setOpenBranch(i,!1),i.removeAttribute("data-submenu-open"),!0)}_clearSubmenuState(){this._cancelSubmenuIntent(),this._hoveredItem=null;const t=this._menuHost();t&&(t.querySelectorAll('[data-submenu-open="true"]').forEach(e=>e.removeAttribute("data-submenu-open")),this._listbox()?.clearActive({container:t}))}_handleTypeahead(t,e){if(!this.typeahead||t.ctrlKey||t.altKey||t.metaKey||t.key.length!==1||!/\S/.test(t.key))return!1;const i=e?.closest(".submenu")||this._menuHost();if(!i)return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${t.key}`.slice(-24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),C);const o=this._listbox()?.typeahead(this._typeaheadBuffer,{container:i,current:e,focus:!0,owner:this._surface(),scroll:!0});return o?(t.preventDefault(),this._setOpenBranch(o,!1),!0):!1}_applySelectionBehavior(t){const e=t.getAttribute("role");if(e==="menuitemcheckbox"){const n=t.getAttribute("aria-checked")!=="true";t.setAttribute("aria-checked",n?"true":"false"),t.setAttribute("data-state",n?"checked":"unchecked");return}if(e!=="menuitemradio")return;const i=t.closest(".submenu")||this._menuHost();if(!i)return;const o=t.getAttribute("data-group")||t.getAttribute("name")||"";i.querySelectorAll('[role="menuitemradio"]').forEach(n=>{const r=n.getAttribute("data-group")||n.getAttribute("name")||"";o&&r!==o||(n.setAttribute("aria-checked","false"),n.setAttribute("data-state","unchecked"))}),t.setAttribute("aria-checked","true"),t.setAttribute("data-state","checked")}_emitSelect(t){const e=this._menuHost(),o=(e?Array.from(e.querySelectorAll(l)):[]).indexOf(t);this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{index:o,value:t.getAttribute("data-value")||t.getAttribute("value")||void 0,label:t.getAttribute("aria-label")||t.textContent?.trim()||void 0,checked:t.getAttribute("aria-checked")==="true",item:t}}))}_schedulePosition(){this._isOpen&&(this._positionRaf!=null&&cancelAnimationFrame(this._positionRaf),this._positionRaf=requestAnimationFrame(()=>{this._positionRaf=null,this._positionMenu()}))}_positionMenu(){const t=this._surface();if(!t)return;if(this._anchorEl&&!U(this._anchorEl)){this.close();return}const e=V(this.getAttribute("placement")),i=N(e),o=this._anchorEl?R:0;if(!this._positioner||this._positionerPlacement!==i||this._positionerOffset!==o||this._positionerAnchorEl!==this._anchorEl){this._rebuildPositioner(t,i,o);return}this._positioner?.update()}_scheduleSubmenuLayout(){this._isOpen&&(this._submenuRaf!=null&&cancelAnimationFrame(this._submenuRaf),this._submenuRaf=requestAnimationFrame(()=>{this._submenuRaf=null,this._layoutSubmenus()}))}_layoutSubmenus(){const t=this._menuHost();if(!t)return;const e=window.innerWidth||document.documentElement.clientWidth||0,i=window.innerHeight||document.documentElement.clientHeight||0;Array.from(t.querySelectorAll('.menuitem > .submenu, [role="menuitem"] > .submenu')).forEach(n=>{const r=n.parentElement;if(!(r instanceof HTMLElement))return;r.removeAttribute("data-submenu-side"),r.removeAttribute("data-submenu-align");const u=n.style.display,c=n.style.visibility,h=n.style.pointerEvents,m=n.style.opacity,p=n.style.transform;n.style.display="grid",n.style.visibility="hidden",n.style.pointerEvents="none",n.style.opacity="0",n.style.transform="none";const d=r.getBoundingClientRect(),f=n.getBoundingClientRect();d.right+a+f.width>e&&d.left-a-f.width>=a&&r.setAttribute("data-submenu-side","left"),d.top+f.height>i-a&&d.bottom-f.height>=a&&r.setAttribute("data-submenu-align","up"),n.style.display=u,n.style.visibility=c,n.style.pointerEvents=h,n.style.opacity=m,n.style.transform=p})}_onRootClick(t){if(!this._isOpen||this.isDisabled||this.state==="loading")return;const e=this._findCurrentItem(t);if(!(!e||x(e))){if(this._submenuFor(e)){this._openSubmenu(e,!0);return}this._applySelectionBehavior(e),this._emitSelect(e),this.closeOnSelect?this._setOpen(!1,"select"):this._focusItem(e)}}_onRootPointerOver(t){if(!this._isOpen)return;const e=this._findCurrentItem(t);if(!(!e||x(e))){if(this._hoveredItem=e,this._submenuFor(e)){this._scheduleSubmenuIntent(e);return}this._cancelSubmenuIntent(),this._setOpenBranch(e,!1)}}_onRootPointerLeave(){this._cancelSubmenuIntent(),this._clearHighlights()}_onRootFocusIn(t){if(!this._isOpen)return;this._cancelSubmenuIntent();const e=this._findCurrentItem(t);if(!e||x(e))return;const i=e.closest(".submenu")||this._menuHost();this._listbox()?.setActiveItem(e,{container:i,focus:!1,owner:this._surface(),scroll:!1}),this._setOpenBranch(e,!1)}_cancelSubmenuIntent(){this._submenuIntentTimer!=null&&(window.clearTimeout(this._submenuIntentTimer),this._submenuIntentTimer=null),this._submenuIntentItem=null}_scheduleSubmenuIntent(t){this._submenuIntentItem===t&&this._submenuIntentTimer!=null||(this._cancelSubmenuIntent(),this._submenuIntentItem=t,this._submenuIntentTimer=window.setTimeout(()=>{this._submenuIntentTimer=null;const e=this._submenuIntentItem;this._submenuIntentItem=null,!(!e||!e.isConnected||!this._isOpen)&&(this._setOpenBranch(e,!0),this._scheduleSubmenuLayout())},I))}_onRootKeyDown(t){if(!this._isOpen)return;const e=this._findCurrentItem(t);if(!this._handleTypeahead(t,e)){if(t.key==="Escape"){if(!this.closeOnEscape)return;t.preventDefault(),this._setOpen(!1,"escape");return}if(!(this.isDisabled||this.state==="loading")){if(!e){t.key==="ArrowDown"?(t.preventDefault(),this._focusFirstItem()):t.key==="ArrowUp"&&(t.preventDefault(),this._focusLastItem());return}if(t.key==="ArrowDown"){t.preventDefault(),this._moveFocus(e,"next");return}if(t.key==="ArrowUp"){t.preventDefault(),this._moveFocus(e,"prev");return}if(t.key==="Home"){t.preventDefault(),this._moveFocus(e,"first");return}if(t.key==="End"){t.preventDefault(),this._moveFocus(e,"last");return}if(t.key==="ArrowRight"){t.preventDefault(),this._openSubmenu(e,!0);return}if(t.key==="ArrowLeft"){this._closeParentSubmenu(e)&&t.preventDefault();return}(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),e.click())}}}_onContextMenu(t){this.headless||this.isDisabled||t.defaultPrevented||t.target instanceof HTMLElement&&t.target.closest('[slot="menu"], [slot="content"]')||(t.preventDefault(),this._anchorEl=null,this._point={x:t.clientX,y:t.clientY},this._setOpen(!0,"contextmenu"))}_onViewportChange(){this._isOpen&&(this._schedulePosition(),this._scheduleSubmenuLayout())}render(){const t=q(this._stateText());this.setContent(`
|
|
347
|
+
`,t.appendChild(e),this._portalEl=e,this._portalSurfaceEl=e.querySelector(".surface"),this._portalContentHostEl=e.querySelector("ui-listbox.content-host"),this._portalSurfaceEl&&P.openOverlay(this._portalSurfaceEl,{animate:!1}),this._moveContentIntoPortal(),this._portalContentHostEl?.refresh(),this._syncPortalVisualState(),this._syncSurfaceState(),this._bindPortalInteractionListeners(),this._syncDismissableLayer()}_teardownPortal(){if(this._dismissableLayer?.destroy(),this._dismissableLayer=null,this._positioner?.destroy(),this._positioner=null,this._positionerPlacement=null,this._positionerOffset=0,this._positionerAnchorEl=null,this._unbindPortalInteractionListeners(),this._restoreContentFromPortal(),this._portalContentHostEl=null,this._portalSurfaceEl=null,this._portalEl?.parentElement)try{this._portalEl.parentElement.removeChild(this._portalEl)}catch{}this._portalEl=null}_syncDismissableLayer(){const t=this._portalSurfaceEl;if(!t||!this._isOpen){this._dismissableLayer?.destroy(),this._dismissableLayer=null;return}this._dismissableLayer?.destroy(),this._dismissableLayer=w.createDismissableLayer({node:t,trigger:this._anchorEl||this,closeOnEscape:this.closeOnEscape,closeOnPointerOutside:!0,closeOnFocusOutside:!0,onDismiss:e=>{const i=e==="escape-key"?"escape":"outside";this._setOpen(!1,i)}})}_cancelScheduledWork(){this._positionRaf!=null&&(cancelAnimationFrame(this._positionRaf),this._positionRaf=null),this._submenuRaf!=null&&(cancelAnimationFrame(this._submenuRaf),this._submenuRaf=null),this._stopAnchorTracking(),this._cancelSubmenuIntent(),this._resetTypeahead()}_captureAnchorRect(){if(!this._anchorEl)return null;const t=this._anchorEl.getBoundingClientRect();return{top:t.top,left:t.left,right:t.right,bottom:t.bottom,width:t.width,height:t.height}}_pointVirtualAnchor(){return{getBoundingClientRect:()=>{const{x:t,y:e}=this._point;return{x:t,y:e,top:e,left:t,right:t,bottom:e,width:0,height:0,toJSON:()=>({})}}}}_rebuildPositioner(t,e,i){this._positioner?.destroy(),this._positioner=O.createPositioner({anchor:this._anchorEl||this._pointVirtualAnchor(),floating:t,placement:e,strategy:"fixed",offset:i,flip:!0,shift:!0,boundaryPadding:a,observeWindowResize:!1,observeScroll:!1,observeAncestorScroll:!1,observeAncestorResize:!1,observeLayoutShift:!1,observeAnchorResize:!1,observeFloatingResize:!1,onUpdate:o=>{const n=window.innerWidth||document.documentElement.clientWidth||0,r=window.innerHeight||document.documentElement.clientHeight||0;t.style.maxWidth=`${Math.max(160,n-a*2)}px`,t.style.maxHeight=`${Math.max(120,r-a*2)}px`,t.setAttribute("data-placement",o.placement.split("-")[0])}}),this._positionerPlacement=e,this._positionerOffset=i,this._positionerAnchorEl=this._anchorEl}_startAnchorTracking(){!this._isOpen||!this._anchorEl||this._anchorTrackRaf!=null||(this._lastAnchorRect=this._captureAnchorRect(),this._anchorTrackRaf=requestAnimationFrame(this._trackAnchorLayout))}_stopAnchorTracking(){this._anchorTrackRaf!=null&&(cancelAnimationFrame(this._anchorTrackRaf),this._anchorTrackRaf=null),this._lastAnchorRect=null}_trackAnchorLayout(){if(this._anchorTrackRaf=null,!this._isOpen||!this._anchorEl)return;const t=this._captureAnchorRect(),e=this._lastAnchorRect;if(this._lastAnchorRect=t,!t){this.close();return}e&&(t.top!==e.top||t.left!==e.left||t.right!==e.right||t.bottom!==e.bottom||t.width!==e.width||t.height!==e.height)&&(this._positionMenu(),this._layoutSubmenus()),this._anchorTrackRaf=requestAnimationFrame(this._trackAnchorLayout)}_resetTypeahead(){this._typeaheadBuffer="",this._typeaheadTimer!=null&&(window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=null)}_normalizeMenuSemantics(){const t=this._menuHost();t&&this._listbox()?.syncItemSemantics({container:t})}_queryMenuItems(t){const e=t||this._menuHost();return e?(this._listbox()?.queryItems({container:e})||[]).filter(i=>U(i)):[]}_submenuFor(t){return t.querySelector(R)}_clearHighlights(){this._hoveredItem=null}_focusItem(t){if(!t)return;this._clearHighlights();const e=t.closest(".submenu")||this._menuHost();this._listbox()?.setActiveItem(t,{container:e,focus:!0,owner:this._surface(),scroll:!0}),this._setOpenBranch(t,!1)}_focusFirstItem(){const t=this._listbox()?.focusBoundary("first",{container:this._menuHost(),focus:!0,owner:this._surface(),scroll:!0});if(t){this._setOpenBranch(t,!1);return}const e=this._surface();if(e)try{e.focus({preventScroll:!0})}catch{e.focus()}}_focusLastItem(){const t=this._listbox()?.focusBoundary("last",{container:this._menuHost(),focus:!0,owner:this._surface(),scroll:!0});t&&this._setOpenBranch(t,!1)}_findCurrentItem(t){if(t&&typeof t.composedPath=="function"){const i=K(t.composedPath());if(i)return i}const e=document.activeElement;if(e instanceof HTMLElement){const i=e.closest(l);if(i instanceof HTMLElement)return i}return this._hoveredItem?.isConnected?this._hoveredItem:null}_moveFocus(t,e){const i=t.closest(".submenu")||this._menuHost();if(!i)return;if(e==="first"){const n=this._listbox()?.focusBoundary("first",{container:i,focus:!0,owner:this._surface(),scroll:!0});n&&this._setOpenBranch(n,!1);return}if(e==="last"){const n=this._listbox()?.focusBoundary("last",{container:i,focus:!0,owner:this._surface(),scroll:!0});n&&this._setOpenBranch(n,!1);return}const o=this._listbox()?.move(e==="next"?1:-1,{container:i,current:t,focus:!0,owner:this._surface(),scroll:!0});o&&this._setOpenBranch(o,!1)}_setOpenBranch(t,e){const i=this._menuHost();if(!i||(i.querySelectorAll('[data-submenu-open="true"]').forEach(r=>r.removeAttribute("data-submenu-open")),!t))return;const o=[];let n=t;for(;n;){const r=n.closest(".submenu");if(!r)break;const u=r.parentElement;if(!(u instanceof HTMLElement)||!u.matches(l))break;o.unshift(u),n=u}o.forEach(r=>r.setAttribute("data-submenu-open","true")),e&&this._submenuFor(t)&&t.setAttribute("data-submenu-open","true")}_openSubmenu(t,e){this._cancelSubmenuIntent();const i=this._submenuFor(t);if(!i||x(t))return!1;if(this._setOpenBranch(t,!0),this._scheduleSubmenuLayout(),!e)return!0;const o=this._listbox()?.focusBoundary("first",{container:i,focus:!0,owner:this._surface(),scroll:!0});return o&&this._setOpenBranch(o,!1),!0}_closeParentSubmenu(t){const e=t.closest(".submenu");if(!e)return!1;const i=e.parentElement;return!(i instanceof HTMLElement)||!i.matches(l)?!1:(this._focusItem(i),this._setOpenBranch(i,!1),i.removeAttribute("data-submenu-open"),!0)}_clearSubmenuState(){this._cancelSubmenuIntent(),this._hoveredItem=null;const t=this._menuHost();t&&(t.querySelectorAll('[data-submenu-open="true"]').forEach(e=>e.removeAttribute("data-submenu-open")),this._listbox()?.clearActive({container:t}))}_handleTypeahead(t,e){if(!this.typeahead||t.ctrlKey||t.altKey||t.metaKey||t.key.length!==1||!/\S/.test(t.key))return!1;const i=e?.closest(".submenu")||this._menuHost();if(!i)return!1;this._typeaheadBuffer=`${this._typeaheadBuffer}${t.key}`.slice(-24),this._typeaheadTimer!=null&&window.clearTimeout(this._typeaheadTimer),this._typeaheadTimer=window.setTimeout(()=>this._resetTypeahead(),I);const o=this._listbox()?.typeahead(this._typeaheadBuffer,{container:i,current:e,focus:!0,owner:this._surface(),scroll:!0});return o?(t.preventDefault(),this._setOpenBranch(o,!1),!0):!1}_applySelectionBehavior(t){const e=t.getAttribute("role");if(e==="menuitemcheckbox"){const n=t.getAttribute("aria-checked")!=="true";t.setAttribute("aria-checked",n?"true":"false"),t.setAttribute("data-state",n?"checked":"unchecked");return}if(e!=="menuitemradio")return;const i=t.closest(".submenu")||this._menuHost();if(!i)return;const o=t.getAttribute("data-group")||t.getAttribute("name")||"";i.querySelectorAll('[role="menuitemradio"]').forEach(n=>{const r=n.getAttribute("data-group")||n.getAttribute("name")||"";o&&r!==o||(n.setAttribute("aria-checked","false"),n.setAttribute("data-state","unchecked"))}),t.setAttribute("aria-checked","true"),t.setAttribute("data-state","checked")}_emitSelect(t){const e=this._menuHost(),o=(e?Array.from(e.querySelectorAll(l)):[]).indexOf(t);this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{index:o,value:t.getAttribute("data-value")||t.getAttribute("value")||void 0,label:t.getAttribute("aria-label")||t.textContent?.trim()||void 0,checked:t.getAttribute("aria-checked")==="true",item:t}}))}_schedulePosition(){this._isOpen&&(this._positionRaf!=null&&cancelAnimationFrame(this._positionRaf),this._positionRaf=requestAnimationFrame(()=>{this._positionRaf=null,this._positionMenu()}))}_positionMenu(){const t=this._surface();if(!t)return;if(this._anchorEl&&!G(this._anchorEl)){this.close();return}const e=N(this.getAttribute("placement")),i=W(e),o=this._anchorEl?C:0;if(!this._positioner||this._positionerPlacement!==i||this._positionerOffset!==o||this._positionerAnchorEl!==this._anchorEl){this._rebuildPositioner(t,i,o);return}this._positioner?.update()}_scheduleSubmenuLayout(){this._isOpen&&(this._submenuRaf!=null&&cancelAnimationFrame(this._submenuRaf),this._submenuRaf=requestAnimationFrame(()=>{this._submenuRaf=null,this._layoutSubmenus()}))}_layoutSubmenus(){const t=this._menuHost();if(!t)return;const e=window.innerWidth||document.documentElement.clientWidth||0,i=window.innerHeight||document.documentElement.clientHeight||0;Array.from(t.querySelectorAll('.menuitem > .submenu, [role="menuitem"] > .submenu')).forEach(n=>{const r=n.parentElement;if(!(r instanceof HTMLElement))return;r.removeAttribute("data-submenu-side"),r.removeAttribute("data-submenu-align");const u=n.style.display,c=n.style.visibility,h=n.style.pointerEvents,m=n.style.opacity,p=n.style.transform;n.style.display="grid",n.style.visibility="hidden",n.style.pointerEvents="none",n.style.opacity="0",n.style.transform="none";const d=r.getBoundingClientRect(),f=n.getBoundingClientRect();d.right+a+f.width>e&&d.left-a-f.width>=a&&r.setAttribute("data-submenu-side","left"),d.top+f.height>i-a&&d.bottom-f.height>=a&&r.setAttribute("data-submenu-align","up"),n.style.display=u,n.style.visibility=c,n.style.pointerEvents=h,n.style.opacity=m,n.style.transform=p})}_onRootClick(t){if(!this._isOpen||this.isDisabled||this.state==="loading")return;const e=this._findCurrentItem(t);if(!(!e||x(e))){if(this._submenuFor(e)){this._openSubmenu(e,!0);return}this._applySelectionBehavior(e),this._emitSelect(e),this.closeOnSelect?this._setOpen(!1,"select"):this._focusItem(e)}}_onRootPointerOver(t){if(!this._isOpen)return;const e=this._findCurrentItem(t);if(!(!e||x(e))){if(this._hoveredItem=e,this._submenuFor(e)){this._scheduleSubmenuIntent(e);return}this._cancelSubmenuIntent(),this._setOpenBranch(e,!1)}}_onRootPointerLeave(){this._cancelSubmenuIntent(),this._clearHighlights()}_onRootFocusIn(t){if(!this._isOpen)return;this._cancelSubmenuIntent();const e=this._findCurrentItem(t);if(!e||x(e))return;const i=e.closest(".submenu")||this._menuHost();this._listbox()?.setActiveItem(e,{container:i,focus:!1,owner:this._surface(),scroll:!1}),this._setOpenBranch(e,!1)}_cancelSubmenuIntent(){this._submenuIntentTimer!=null&&(window.clearTimeout(this._submenuIntentTimer),this._submenuIntentTimer=null),this._submenuIntentItem=null}_scheduleSubmenuIntent(t){this._submenuIntentItem===t&&this._submenuIntentTimer!=null||(this._cancelSubmenuIntent(),this._submenuIntentItem=t,this._submenuIntentTimer=window.setTimeout(()=>{this._submenuIntentTimer=null;const e=this._submenuIntentItem;this._submenuIntentItem=null,!(!e||!e.isConnected||!this._isOpen)&&(this._setOpenBranch(e,!0),this._scheduleSubmenuLayout())},k))}_onRootKeyDown(t){if(!this._isOpen)return;const e=this._findCurrentItem(t);if(!this._handleTypeahead(t,e)){if(t.key==="Escape"){if(!this.closeOnEscape)return;t.preventDefault(),this._setOpen(!1,"escape");return}if(!(this.isDisabled||this.state==="loading")){if(!e){t.key==="ArrowDown"?(t.preventDefault(),this._focusFirstItem()):t.key==="ArrowUp"&&(t.preventDefault(),this._focusLastItem());return}if(t.key==="ArrowDown"){t.preventDefault(),this._moveFocus(e,"next");return}if(t.key==="ArrowUp"){t.preventDefault(),this._moveFocus(e,"prev");return}if(t.key==="Home"){t.preventDefault(),this._moveFocus(e,"first");return}if(t.key==="End"){t.preventDefault(),this._moveFocus(e,"last");return}if(t.key==="ArrowRight"){t.preventDefault(),this._openSubmenu(e,!0);return}if(t.key==="ArrowLeft"){this._closeParentSubmenu(e)&&t.preventDefault();return}(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),e.click())}}}_onContextMenu(t){this.headless||this.isDisabled||t.defaultPrevented||t.target instanceof HTMLElement&&t.target.closest('[slot="menu"], [slot="content"]')||(t.preventDefault(),this._anchorEl=null,this._point={x:t.clientX,y:t.clientY},this._setOpen(!0,"contextmenu"))}_onViewportChange(){this._isOpen&&(this._schedulePosition(),this._scheduleSubmenuLayout())}render(){const t=$(this._stateText());this.setContent(`
|
|
348
348
|
<style>${g}</style>
|
|
349
349
|
<div class="surface" part="menu" role="menu" aria-hidden="true" aria-busy="false" tabindex="-1">
|
|
350
350
|
<div class="state-row" part="state" data-state="${this.state}">${t}</div>
|
package/dist/context-menu.esm.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { E } from "./ElementBase-BeZT54Hj.mjs";
|
|
2
|
-
import { b as A } from "./portal-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { b as A } from "./portal-DeaM1tYY.mjs";
|
|
3
|
+
import { o as S } from "./overlay-motion-BX3dPLay.mjs";
|
|
4
|
+
import { c as P } from "./dismissable-layer-BmPIoK80.mjs";
|
|
5
|
+
import { e as w } from "./positioner-BE8Nbho2.mjs";
|
|
6
|
+
import { c as O } from "./menu-item-styles-IGSFLAHu.mjs";
|
|
6
7
|
import "./listbox-hMVOhKHC.mjs";
|
|
7
8
|
const l = '.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"], [data-menu-item]', b = [
|
|
8
9
|
":scope > .menuitem",
|
|
@@ -10,7 +11,7 @@ const l = '.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menui
|
|
|
10
11
|
':scope > [role="menuitemcheckbox"]',
|
|
11
12
|
':scope > [role="menuitemradio"]',
|
|
12
13
|
":scope > [data-menu-item]"
|
|
13
|
-
].join(", "),
|
|
14
|
+
].join(", "), L = ":scope > .submenu", a = 8, R = 6, C = 420, I = 110, k = [
|
|
14
15
|
"--ui-color-primary",
|
|
15
16
|
"--ui-color-primary-hover",
|
|
16
17
|
"--ui-color-foreground-on-primary",
|
|
@@ -45,7 +46,7 @@ const l = '.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menui
|
|
|
45
46
|
"--accent-surface",
|
|
46
47
|
"--accent-indicator",
|
|
47
48
|
"--accent-track"
|
|
48
|
-
],
|
|
49
|
+
], T = [
|
|
49
50
|
{ prefix: "--accent-", from: 1, to: 12 },
|
|
50
51
|
{ prefix: "--accent-a", from: 1, to: 12 },
|
|
51
52
|
{ prefix: "--gray-", from: 1, to: 12 },
|
|
@@ -54,7 +55,7 @@ const l = '.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menui
|
|
|
54
55
|
{ prefix: "--white-a", from: 1, to: 12 },
|
|
55
56
|
{ prefix: "--shadow-", from: 1, to: 6 },
|
|
56
57
|
{ prefix: "--radius-", from: 1, to: 6 }
|
|
57
|
-
],
|
|
58
|
+
], z = [
|
|
58
59
|
"--base-context-menu-bg",
|
|
59
60
|
"--base-context-menu-radius",
|
|
60
61
|
"--base-context-menu-shadow",
|
|
@@ -82,7 +83,7 @@ const l = '.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menui
|
|
|
82
83
|
--ui-context-menu-color: var(--ui-color-text, var(--ui-text, #0f172a));
|
|
83
84
|
--ui-context-menu-border-color: color-mix(in srgb, var(--ui-color-border, var(--ui-border, #cbd5e1)) 86%, transparent);
|
|
84
85
|
--ui-context-menu-border: 1px solid var(--ui-context-menu-border-color);
|
|
85
|
-
--ui-context-menu-radius: var(--base-context-menu-radius, var(--ui-radius,
|
|
86
|
+
--ui-context-menu-radius: var(--base-context-menu-radius, var(--ui-radius, 6px));
|
|
86
87
|
--ui-context-menu-shadow: var(--base-context-menu-shadow, var(--shadow-5));
|
|
87
88
|
--ui-context-menu-min-width: var(--base-context-menu-min-width, 240px);
|
|
88
89
|
--ui-context-menu-padding: var(--base-context-menu-padding, 6px);
|
|
@@ -358,7 +359,7 @@ const l = '.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menui
|
|
|
358
359
|
flex-direction: column;
|
|
359
360
|
gap: 0;
|
|
360
361
|
}
|
|
361
|
-
${
|
|
362
|
+
${O({
|
|
362
363
|
scopes: ['ui-context-menu [slot="menu"]', 'ui-context-menu [slot="content"]'],
|
|
363
364
|
prefix: "--ui-context-menu",
|
|
364
365
|
itemSelectors: [".menuitem", '[role="menuitem"]', '[role="menuitemcheckbox"]', '[role="menuitemradio"]', "[data-menu-item]"],
|
|
@@ -413,39 +414,39 @@ const l = '.menuitem, [role="menuitem"], [role="menuitemcheckbox"], [role="menui
|
|
|
413
414
|
bottom: -6px;
|
|
414
415
|
}
|
|
415
416
|
`;
|
|
416
|
-
function
|
|
417
|
+
function B() {
|
|
417
418
|
if (typeof document > "u") return;
|
|
418
419
|
const s = "ui-context-menu-light-dom-style";
|
|
419
420
|
if (document.getElementById(s)) return;
|
|
420
421
|
const t = document.createElement("style");
|
|
421
422
|
t.id = s, t.textContent = v, document.head.appendChild(t);
|
|
422
423
|
}
|
|
423
|
-
function
|
|
424
|
+
function F(s, t) {
|
|
424
425
|
return s.replace(/(^|})\s*([^@}{][^{}]*)\{/g, (e, i, o) => {
|
|
425
426
|
const n = o.split(",").map((r) => r.trim()).filter(Boolean).map((r) => r.startsWith(t) ? r : `${t} ${r}`).join(", ");
|
|
426
427
|
return `${i}
|
|
427
428
|
${n} {`;
|
|
428
429
|
});
|
|
429
430
|
}
|
|
430
|
-
function
|
|
431
|
+
function H(s) {
|
|
431
432
|
const t = s.replace(/:host\(\[([a-z-]+)(?:="([^"]+)")?\]\)/g, (e, i, o) => o != null ? `.ui-context-menu-portal[data-${i}="${o}"]` : `.ui-context-menu-portal[data-${i}="true"]`).replace(/:host/g, ".ui-context-menu-portal");
|
|
432
|
-
return
|
|
433
|
+
return F(t, ".ui-context-menu-portal");
|
|
433
434
|
}
|
|
434
|
-
function
|
|
435
|
+
function D(s) {
|
|
435
436
|
return s.replace(/(^|,)\s*ui-context-menu\b/gm, (t, e) => `${e} .ui-context-menu-portal`);
|
|
436
437
|
}
|
|
437
|
-
const
|
|
438
|
-
${
|
|
439
|
-
function
|
|
438
|
+
const M = `${H(g)}
|
|
439
|
+
${D(v)}`;
|
|
440
|
+
function q(s) {
|
|
440
441
|
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
441
442
|
}
|
|
442
|
-
function
|
|
443
|
+
function $(s, t) {
|
|
443
444
|
return typeof s == "number" ? { x: s, y: typeof t == "number" ? t : 0 } : s;
|
|
444
445
|
}
|
|
445
|
-
function
|
|
446
|
+
function V(s) {
|
|
446
447
|
return s === "top" || s === "left" || s === "right" ? s : "bottom";
|
|
447
448
|
}
|
|
448
|
-
function
|
|
449
|
+
function N(s) {
|
|
449
450
|
return `${s}-start`;
|
|
450
451
|
}
|
|
451
452
|
function _(s) {
|
|
@@ -458,12 +459,12 @@ function y(s) {
|
|
|
458
459
|
const t = s.trim().toLowerCase();
|
|
459
460
|
return t ? t === "none" ? "0px" : t === "sm" ? "8px" : t === "md" ? "12px" : t === "lg" ? "16px" : t === "full" ? "999px" : t === "square" ? "6px" : t === "soft" ? "16px" : /^\d+(\.\d+)?$/.test(t) ? `${t}px` : s : "";
|
|
460
461
|
}
|
|
461
|
-
function
|
|
462
|
+
function W(s) {
|
|
462
463
|
if (!s.isConnected || s.hidden) return !1;
|
|
463
464
|
const t = window.getComputedStyle(s);
|
|
464
465
|
return !(t.display === "none" || t.visibility === "hidden");
|
|
465
466
|
}
|
|
466
|
-
function
|
|
467
|
+
function G(s) {
|
|
467
468
|
if (!s.isConnected) return !1;
|
|
468
469
|
const t = window.getComputedStyle(s);
|
|
469
470
|
if (t.display === "none" || t.visibility === "hidden") return !1;
|
|
@@ -476,13 +477,13 @@ function x(s) {
|
|
|
476
477
|
const t = s.getAttribute("aria-disabled");
|
|
477
478
|
return s.hasAttribute("disabled") || t === "true" || s.disabled === !0;
|
|
478
479
|
}
|
|
479
|
-
function
|
|
480
|
+
function U(s) {
|
|
480
481
|
for (const t of s)
|
|
481
482
|
if (t instanceof HTMLElement && t.matches(l))
|
|
482
483
|
return t;
|
|
483
484
|
return null;
|
|
484
485
|
}
|
|
485
|
-
class
|
|
486
|
+
class K extends E {
|
|
486
487
|
constructor() {
|
|
487
488
|
super(), this._isOpen = !1, this._anchorEl = null, this._point = { x: 0, y: 0 }, this._restoreFocusEl = null, this._portalEl = null, this._portalSurfaceEl = null, this._portalContentHostEl = null, this._dismissableLayer = null, this._positioner = null, this._positionerPlacement = null, this._positionerOffset = 0, this._positionerAnchorEl = null, this._contentAnchor = null, this._contentSourceEl = null, this._contentOriginalParent = null, this._positionRaf = null, this._submenuRaf = null, this._anchorTrackRaf = null, this._typeaheadBuffer = "", this._typeaheadTimer = null, this._submenuIntentTimer = null, this._submenuIntentItem = null, this._hoveredItem = null, this._lastAnchorRect = null, this._resizeListenerBound = !1, this._scrollListenerBound = !1, this._nextOpenSource = "attribute", this._onRootClick = this._onRootClick.bind(this), this._onRootKeyDown = this._onRootKeyDown.bind(this), this._onRootPointerOver = this._onRootPointerOver.bind(this), this._onRootPointerLeave = this._onRootPointerLeave.bind(this), this._onRootFocusIn = this._onRootFocusIn.bind(this), this._onContextMenu = this._onContextMenu.bind(this), this._onViewportChange = this._onViewportChange.bind(this), this._trackAnchorLayout = this._trackAnchorLayout.bind(this);
|
|
488
489
|
}
|
|
@@ -507,7 +508,7 @@ class U extends E {
|
|
|
507
508
|
];
|
|
508
509
|
}
|
|
509
510
|
connectedCallback() {
|
|
510
|
-
super.connectedCallback(),
|
|
511
|
+
super.connectedCallback(), B(), this.addEventListener("contextmenu", this._onContextMenu), this._syncVisualState(), this._syncOpenState();
|
|
511
512
|
}
|
|
512
513
|
disconnectedCallback() {
|
|
513
514
|
this.removeEventListener("contextmenu", this._onContextMenu), this._unbindGlobalListeners(), this._cancelScheduledWork(), this._teardownPortal(), super.disconnectedCallback();
|
|
@@ -582,7 +583,7 @@ class U extends E {
|
|
|
582
583
|
}
|
|
583
584
|
openAt(t, e) {
|
|
584
585
|
if (!(this.headless || this.isDisabled)) {
|
|
585
|
-
if (this._anchorEl = null, this._point =
|
|
586
|
+
if (this._anchorEl = null, this._point = $(t, e), this._isOpen) {
|
|
586
587
|
this._syncGlobalListeners(!0), this._syncDismissableLayer(), this._schedulePosition(), this._scheduleSubmenuLayout();
|
|
587
588
|
return;
|
|
588
589
|
}
|
|
@@ -695,7 +696,7 @@ class U extends E {
|
|
|
695
696
|
const o = t.getPropertyValue(i).trim();
|
|
696
697
|
o ? this._portalEl.style.setProperty(i, o) : this._portalEl.style.removeProperty(i);
|
|
697
698
|
};
|
|
698
|
-
|
|
699
|
+
k.forEach(e), z.forEach(e), T.forEach(({ prefix: i, from: o, to: n }) => {
|
|
699
700
|
for (let r = o; r <= n; r += 1) e(`${i}${r}`);
|
|
700
701
|
});
|
|
701
702
|
}
|
|
@@ -725,12 +726,12 @@ class U extends E {
|
|
|
725
726
|
if (!t) return;
|
|
726
727
|
const e = document.createElement("div");
|
|
727
728
|
e.className = "ui-context-menu-portal", e.style.position = "absolute", e.style.pointerEvents = "auto", e.innerHTML = `
|
|
728
|
-
<style>${
|
|
729
|
+
<style>${M}</style>
|
|
729
730
|
<div class="surface" part="menu" role="menu" aria-hidden="true" aria-busy="false" tabindex="-1">
|
|
730
731
|
<div class="state-row" part="state"></div>
|
|
731
732
|
<ui-listbox class="content-host" slot="menu" role="menu" item-selector="${l.replace(/"/g, """)}" direct-item-selector="${b.replace(/"/g, """)}" item-role="menuitem" active-attribute="data-active"></ui-listbox>
|
|
732
733
|
</div>
|
|
733
|
-
`, t.appendChild(e), this._portalEl = e, this._portalSurfaceEl = e.querySelector(".surface"), this._portalContentHostEl = e.querySelector("ui-listbox.content-host"), this._moveContentIntoPortal(), this._portalContentHostEl?.refresh(), this._syncPortalVisualState(), this._syncSurfaceState(), this._bindPortalInteractionListeners(), this._syncDismissableLayer();
|
|
734
|
+
`, t.appendChild(e), this._portalEl = e, this._portalSurfaceEl = e.querySelector(".surface"), this._portalContentHostEl = e.querySelector("ui-listbox.content-host"), this._portalSurfaceEl && S(this._portalSurfaceEl, { animate: !1 }), this._moveContentIntoPortal(), this._portalContentHostEl?.refresh(), this._syncPortalVisualState(), this._syncSurfaceState(), this._bindPortalInteractionListeners(), this._syncDismissableLayer();
|
|
734
735
|
}
|
|
735
736
|
_teardownPortal() {
|
|
736
737
|
if (this._dismissableLayer?.destroy(), this._dismissableLayer = null, this._positioner?.destroy(), this._positioner = null, this._positionerPlacement = null, this._positionerOffset = 0, this._positionerAnchorEl = null, this._unbindPortalInteractionListeners(), this._restoreContentFromPortal(), this._portalContentHostEl = null, this._portalSurfaceEl = null, this._portalEl?.parentElement)
|
|
@@ -746,7 +747,7 @@ class U extends E {
|
|
|
746
747
|
this._dismissableLayer?.destroy(), this._dismissableLayer = null;
|
|
747
748
|
return;
|
|
748
749
|
}
|
|
749
|
-
this._dismissableLayer?.destroy(), this._dismissableLayer =
|
|
750
|
+
this._dismissableLayer?.destroy(), this._dismissableLayer = P({
|
|
750
751
|
node: t,
|
|
751
752
|
trigger: this._anchorEl || this,
|
|
752
753
|
closeOnEscape: this.closeOnEscape,
|
|
@@ -792,7 +793,7 @@ class U extends E {
|
|
|
792
793
|
};
|
|
793
794
|
}
|
|
794
795
|
_rebuildPositioner(t, e, i) {
|
|
795
|
-
this._positioner?.destroy(), this._positioner =
|
|
796
|
+
this._positioner?.destroy(), this._positioner = w({
|
|
796
797
|
anchor: this._anchorEl || this._pointVirtualAnchor(),
|
|
797
798
|
floating: t,
|
|
798
799
|
placement: e,
|
|
@@ -838,10 +839,10 @@ class U extends E {
|
|
|
838
839
|
}
|
|
839
840
|
_queryMenuItems(t) {
|
|
840
841
|
const e = t || this._menuHost();
|
|
841
|
-
return e ? (this._listbox()?.queryItems({ container: e }) || []).filter((i) =>
|
|
842
|
+
return e ? (this._listbox()?.queryItems({ container: e }) || []).filter((i) => W(i)) : [];
|
|
842
843
|
}
|
|
843
844
|
_submenuFor(t) {
|
|
844
|
-
return t.querySelector(
|
|
845
|
+
return t.querySelector(L);
|
|
845
846
|
}
|
|
846
847
|
_clearHighlights() {
|
|
847
848
|
this._hoveredItem = null;
|
|
@@ -887,7 +888,7 @@ class U extends E {
|
|
|
887
888
|
}
|
|
888
889
|
_findCurrentItem(t) {
|
|
889
890
|
if (t && typeof t.composedPath == "function") {
|
|
890
|
-
const i =
|
|
891
|
+
const i = U(t.composedPath());
|
|
891
892
|
if (i) return i;
|
|
892
893
|
}
|
|
893
894
|
const e = document.activeElement;
|
|
@@ -971,7 +972,7 @@ class U extends E {
|
|
|
971
972
|
if (!this.typeahead || t.ctrlKey || t.altKey || t.metaKey || t.key.length !== 1 || !/\S/.test(t.key)) return !1;
|
|
972
973
|
const i = e?.closest(".submenu") || this._menuHost();
|
|
973
974
|
if (!i) return !1;
|
|
974
|
-
this._typeaheadBuffer = `${this._typeaheadBuffer}${t.key}`.slice(-24), this._typeaheadTimer != null && window.clearTimeout(this._typeaheadTimer), this._typeaheadTimer = window.setTimeout(() => this._resetTypeahead(),
|
|
975
|
+
this._typeaheadBuffer = `${this._typeaheadBuffer}${t.key}`.slice(-24), this._typeaheadTimer != null && window.clearTimeout(this._typeaheadTimer), this._typeaheadTimer = window.setTimeout(() => this._resetTypeahead(), C);
|
|
975
976
|
const o = this._listbox()?.typeahead(this._typeaheadBuffer, {
|
|
976
977
|
container: i,
|
|
977
978
|
current: e,
|
|
@@ -1019,11 +1020,11 @@ class U extends E {
|
|
|
1019
1020
|
_positionMenu() {
|
|
1020
1021
|
const t = this._surface();
|
|
1021
1022
|
if (!t) return;
|
|
1022
|
-
if (this._anchorEl && !
|
|
1023
|
+
if (this._anchorEl && !G(this._anchorEl)) {
|
|
1023
1024
|
this.close();
|
|
1024
1025
|
return;
|
|
1025
1026
|
}
|
|
1026
|
-
const e =
|
|
1027
|
+
const e = V(this.getAttribute("placement")), i = N(e), o = this._anchorEl ? R : 0;
|
|
1027
1028
|
if (!this._positioner || this._positionerPlacement !== i || this._positionerOffset !== o || this._positionerAnchorEl !== this._anchorEl) {
|
|
1028
1029
|
this._rebuildPositioner(t, i, o);
|
|
1029
1030
|
return;
|
|
@@ -1095,7 +1096,7 @@ class U extends E {
|
|
|
1095
1096
|
this._submenuIntentTimer = null;
|
|
1096
1097
|
const e = this._submenuIntentItem;
|
|
1097
1098
|
this._submenuIntentItem = null, !(!e || !e.isConnected || !this._isOpen) && (this._setOpenBranch(e, !0), this._scheduleSubmenuLayout());
|
|
1098
|
-
},
|
|
1099
|
+
}, I));
|
|
1099
1100
|
}
|
|
1100
1101
|
_onRootKeyDown(t) {
|
|
1101
1102
|
if (!this._isOpen) return;
|
|
@@ -1146,7 +1147,7 @@ class U extends E {
|
|
|
1146
1147
|
this._isOpen && (this._schedulePosition(), this._scheduleSubmenuLayout());
|
|
1147
1148
|
}
|
|
1148
1149
|
render() {
|
|
1149
|
-
const t =
|
|
1150
|
+
const t = q(this._stateText());
|
|
1150
1151
|
this.setContent(`
|
|
1151
1152
|
<style>${g}</style>
|
|
1152
1153
|
<div class="surface" part="menu" role="menu" aria-hidden="true" aria-busy="false" tabindex="-1">
|
|
@@ -1163,7 +1164,7 @@ class U extends E {
|
|
|
1163
1164
|
return !1;
|
|
1164
1165
|
}
|
|
1165
1166
|
}
|
|
1166
|
-
typeof customElements < "u" && !customElements.get("ui-context-menu") && customElements.define("ui-context-menu",
|
|
1167
|
+
typeof customElements < "u" && !customElements.get("ui-context-menu") && customElements.define("ui-context-menu", K);
|
|
1167
1168
|
export {
|
|
1168
|
-
|
|
1169
|
+
K as UIContextMenu
|
|
1169
1170
|
};
|