@threadlabs/looma 0.1.19 → 0.1.21

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.
Files changed (49) hide show
  1. package/dist/{chunk-NMV2BBWK.js → chunk-FSGGPFID.js} +29 -29
  2. package/dist/cjs/ui-tree.cjs.entry.js +59 -20
  3. package/dist/collection/components/ui-tree/ui-tree.js +59 -20
  4. package/dist/components/ui-tree.js +1 -1
  5. package/dist/esm/ui-tree.entry.js +59 -20
  6. package/dist/index.cjs +59 -20
  7. package/dist/index.js +1 -1
  8. package/dist/looma/looma.esm.js +1 -1
  9. package/dist/looma/p-b0431118.entry.js +1 -0
  10. package/dist/types/components/ui-tree/ui-tree.d.ts +3 -0
  11. package/dist/{ui-affordance-scope.entry-2CJOZHBF.js → ui-affordance-scope.entry-Z3H4CM6J.js} +1 -1
  12. package/dist/{ui-avatar-group.entry-WMDVHRVT.js → ui-avatar-group.entry-ONGVFRD3.js} +1 -1
  13. package/dist/{ui-avatar.entry-SHX6AOME.js → ui-avatar.entry-TBA3IEED.js} +1 -1
  14. package/dist/{ui-badge.entry-S5VSVEBD.js → ui-badge.entry-DKBPJ7G7.js} +1 -1
  15. package/dist/{ui-button.entry-HVSZQOA3.js → ui-button.entry-U2MMIHLY.js} +1 -1
  16. package/dist/{ui-checkbox.entry-2DWUSIEP.js → ui-checkbox.entry-QJTO2U6Z.js} +1 -1
  17. package/dist/{ui-context-menu.entry-ZCGK2ZM3.js → ui-context-menu.entry-CC4VXCEB.js} +1 -1
  18. package/dist/{ui-dialog.entry-XVTGSOKV.js → ui-dialog.entry-GPJWOH5Z.js} +1 -1
  19. package/dist/{ui-disclosure.entry-Z4UNBYPO.js → ui-disclosure.entry-EGG3HXD4.js} +1 -1
  20. package/dist/{ui-floating-action-button.entry-7QXOFMZ2.js → ui-floating-action-button.entry-XUD44HRX.js} +1 -1
  21. package/dist/{ui-form-field.entry-ENMTDKN2.js → ui-form-field.entry-UHLNDUXR.js} +1 -1
  22. package/dist/{ui-icon-button.entry-4DMRMHP2.js → ui-icon-button.entry-6HDCV3E7.js} +1 -1
  23. package/dist/{ui-input.entry-JQROBMAB.js → ui-input.entry-73QXAVLL.js} +1 -1
  24. package/dist/{ui-menu-item.entry-4KZUH65O.js → ui-menu-item.entry-HCZRSY5Y.js} +1 -1
  25. package/dist/{ui-menu.entry-HEKD6EUJ.js → ui-menu.entry-ASIVAX6M.js} +1 -1
  26. package/dist/{ui-popover.entry-MP5QS5WD.js → ui-popover.entry-WSQ7AEJN.js} +1 -1
  27. package/dist/{ui-radio-group.entry-YWXQLMSD.js → ui-radio-group.entry-2N7BEBJW.js} +1 -1
  28. package/dist/{ui-radio.entry-TYQ36J2G.js → ui-radio.entry-TOM6HBXP.js} +1 -1
  29. package/dist/{ui-search-result-row.entry-EV73E2AD.js → ui-search-result-row.entry-KA3P76WE.js} +1 -1
  30. package/dist/{ui-search-shell.entry-RRS62AZU.js → ui-search-shell.entry-ERMS7TIH.js} +1 -1
  31. package/dist/{ui-select.entry-NJRM2C2R.js → ui-select.entry-KDIM3SWS.js} +1 -1
  32. package/dist/{ui-switch.entry-JNWSBOIW.js → ui-switch.entry-VRTB6X4D.js} +1 -1
  33. package/dist/{ui-tabs.entry-JNBWW2G3.js → ui-tabs.entry-GIAO5W3U.js} +1 -1
  34. package/dist/{ui-textarea.entry-CDCRB2S3.js → ui-textarea.entry-T6YH4HVG.js} +1 -1
  35. package/dist/{ui-toast-region.entry-QLPSSQ5I.js → ui-toast-region.entry-DBQCXOPJ.js} +1 -1
  36. package/dist/{ui-tooltip.entry-FAZT5VYK.js → ui-tooltip.entry-VS26OECS.js} +1 -1
  37. package/dist/{ui-top-bar.entry-LNUHSZSM.js → ui-top-bar.entry-HGWP6PFQ.js} +1 -1
  38. package/dist/{ui-tree-item.entry-TLYU63UE.js → ui-tree-item.entry-ZRXUIZDR.js} +1 -1
  39. package/dist/{ui-tree.entry-3OF7ZPOH.js → ui-tree.entry-TC2SCQJF.js} +60 -21
  40. package/editor/{chunk-3QMBK3XZ.js → chunk-64GLF274.js} +12 -2
  41. package/editor/{chunk-OXFYYLUC.js → chunk-QCOYOVQL.js} +83 -15
  42. package/editor/extensions/index.d.ts +7 -2
  43. package/editor/extensions/index.js +5 -1
  44. package/editor/index.d.ts +1 -1
  45. package/editor/index.js +6 -2
  46. package/editor/ui.js +1 -1
  47. package/editor.css +49 -0
  48. package/package.json +1 -1
  49. package/dist/looma/p-95368dee.entry.js +0 -1
@@ -11,6 +11,8 @@ export declare class UITree {
11
11
  private itemFromEvent;
12
12
  private itemId;
13
13
  private rowFor;
14
+ private itemAtPoint;
15
+ private isWithinTree;
14
16
  private acceptsChildren;
15
17
  private itemMetadata;
16
18
  private permitsDrop;
@@ -20,6 +22,7 @@ export declare class UITree {
20
22
  private onDragStart;
21
23
  private onDragOver;
22
24
  private onDragLeave;
25
+ private dispatchReorder;
23
26
  private onDrop;
24
27
  private onDragEnd;
25
28
  private visibleItems;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-affordance-scope.entry.js
13
13
  var uiAffordanceScopeCss = () => `:host{display:contents;--ui-affordance-scope-engaged:0}:host([data-ui-interaction='engaged']){--ui-affordance-scope-engaged:1}`;
@@ -3,7 +3,7 @@ import {
3
3
  getElement,
4
4
  h,
5
5
  registerInstance
6
- } from "./chunk-NMV2BBWK.js";
6
+ } from "./chunk-FSGGPFID.js";
7
7
 
8
8
  // dist/esm/ui-avatar-group.entry.js
9
9
  var uiAvatarGroupCss = () => `:host{display:flex;align-items:center;flex-direction:row-reverse;gap:0}::slotted(*:not([data-ui-avatar-group-overflow])){margin-inline-end:-0.5rem;flex-shrink:0}::slotted(*:last-of-type:not([data-ui-avatar-group-overflow])){margin-inline-end:0}.overflow{margin-inline-end:-0.5rem;display:inline-flex;align-items:center;justify-content:center;inline-size:2.5rem;block-size:2.5rem;border-radius:999px;border:1px solid var(--ui-border-default);background:var(--ui-surface-muted);color:var(--ui-text-secondary);font:inherit;font-size:0.75rem;font-weight:600;flex-shrink:0}`;
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-NMV2BBWK.js";
5
+ } from "./chunk-FSGGPFID.js";
6
6
 
7
7
  // dist/esm/ui-avatar.entry.js
8
8
  function toInitials(value) {
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-NMV2BBWK.js";
5
+ } from "./chunk-FSGGPFID.js";
6
6
 
7
7
  // dist/esm/ui-badge.entry.js
8
8
  var uiBadgeCss = () => `:host{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ui-border-default);border-radius:999px;background:var(--ui-surface-muted);color:var(--ui-text-secondary);font:inherit;font-size:0.75rem;line-height:1;padding:0.25em 0.6em;white-space:nowrap}:host([data-tone='accent']){background:var(--ui-accent-solid);border-color:var(--ui-accent-solid);color:var(--ui-text-on-accent)}:host([data-tone='danger']){background:var(--ui-danger-solid);border-color:var(--ui-danger-solid);color:var(--ui-text-on-accent)}:host([data-tone='success']){background:var(--ui-success-solid);border-color:var(--ui-success-solid);color:var(--ui-text-on-accent)}:host([data-tone='warning']){background:var(--ui-warning-solid);border-color:var(--ui-warning-solid);color:var(--ui-text-primary)}:host([data-tone='info']){background:var(--ui-info-solid);border-color:var(--ui-info-solid);color:var(--ui-text-on-accent)}:host([data-variant='subtle'][data-tone='accent']){background:var(--ui-accent-soft);border-color:var(--ui-accent-soft);color:var(--ui-accent-solid)}:host([data-variant='subtle'][data-tone='danger']){background:var(--ui-danger-soft);border-color:var(--ui-danger-soft);color:var(--ui-danger-solid)}:host([data-variant='subtle'][data-tone='success']){background:var(--ui-success-soft);border-color:var(--ui-success-soft);color:var(--ui-success-solid)}:host([data-variant='subtle'][data-tone='warning']){background:var(--ui-warning-soft);border-color:var(--ui-warning-soft);color:var(--ui-warning-solid)}:host([data-variant='subtle'][data-tone='info']){background:var(--ui-info-soft);border-color:var(--ui-info-soft);color:var(--ui-info-solid)}`;
@@ -6,7 +6,7 @@ import {
6
6
  getElement,
7
7
  h,
8
8
  registerInstance
9
- } from "./chunk-NMV2BBWK.js";
9
+ } from "./chunk-FSGGPFID.js";
10
10
 
11
11
  // dist/esm/ui-button.entry.js
12
12
  var uiButtonCss = () => `:host{display:inline-flex;vertical-align:middle;color:var(--ui-text-primary)}:host([variant='outline'])::slotted(button),::slotted(button){appearance:none;border:1px solid var(--ui-border-default);border-radius:var(--ui-button-radius, var(--ui-radius-2));background:var(--ui-surface-default);color:inherit;font:inherit;font-weight:var(--ui-font-medium, 500);line-height:var(--ui-line-height-tight);padding:var(--ui-space-2) var(--ui-space-3);cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease);margin:0}:host([data-size='sm'])::slotted(button){padding:var(--ui-space-1) var(--ui-space-2);font-size:0.875rem}:host([data-size='lg'])::slotted(button){padding:var(--ui-space-3) var(--ui-space-4);font-size:1rem}::slotted(button:hover:enabled){background:var(--ui-surface-muted);border-color:var(--ui-border-strong)}::slotted(button:active:enabled){background:var(--ui-surface-subtle)}:host([variant='solid'])::slotted(button){border-color:var(--ui-accent-solid);background:var(--ui-accent-solid);color:var(--ui-text-on-accent);box-shadow:var(--ui-button-solid-shadow, inset 0 1px rgb(255 255 255 / 0.16), var(--ui-shadow-xs))}:host([variant='solid'])::slotted(button:hover:enabled){background:var(--ui-accent-hover);border-color:var(--ui-accent-hover);box-shadow:var(--ui-shadow-sm);transform:translateY(-1px)}:host([variant='solid'])::slotted(button:active:enabled){background:var(--ui-accent-active);border-color:var(--ui-accent-active);box-shadow:none;transform:translateY(0)}:host([variant='destructive'])::slotted(button){border-color:var(--ui-danger-solid);background:var(--ui-danger-solid);color:var(--ui-text-on-accent);box-shadow:var(--ui-button-destructive-shadow, inset 0 1px rgb(255 255 255 / 0.14), var(--ui-shadow-xs))}:host([variant='destructive'])::slotted(button:hover:enabled){background:var(--ui-danger-hover);border-color:var(--ui-danger-hover);box-shadow:var(--ui-shadow-sm);transform:translateY(-1px)}:host([variant='destructive'])::slotted(button:active:enabled){box-shadow:none;transform:translateY(0)}:host([variant='ghost'])::slotted(button){border-color:transparent;background:transparent}:host([variant='ghost'])::slotted(button:hover:enabled){background:var(--ui-surface-muted);border-color:transparent}:host([variant='ghost'])::slotted(button:active:enabled){background:var(--ui-surface-subtle);border-color:transparent}::slotted(button:focus-visible){outline:2px solid var(--ui-focus-ring);outline-offset:2px}::slotted(button:disabled),:host([data-disabled]){opacity:0.6;cursor:not-allowed}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-checkbox.entry.js
13
13
  var uiCheckboxCss = () => `:host{display:inline-flex;align-items:center;gap:var(--ui-space-2);color:var(--ui-text-primary)}:host([aria-disabled='true']),:host([data-disabled='true']){opacity:0.6;cursor:not-allowed}::slotted(input[type='checkbox']){accent-color:var(--ui-accent-solid);width:1.125em;height:1.125em;cursor:pointer}::slotted(input[type='checkbox']:focus-visible){outline:2px solid var(--ui-accent-solid);outline-offset:2px}`;
@@ -14,7 +14,7 @@ import {
14
14
  getElement,
15
15
  h,
16
16
  registerInstance
17
- } from "./chunk-NMV2BBWK.js";
17
+ } from "./chunk-FSGGPFID.js";
18
18
 
19
19
  // dist/esm/ui-context-menu.entry.js
20
20
  var uiContextMenuCss = () => `:host{display:contents}:host([data-focus-trigger='pointer']) ::slotted(ui-menu-item:focus){outline:none}.menu{position:fixed;inset:auto;margin:0;z-index:var(--ui-z-overlay, 1000);min-width:12rem;opacity:0;transform:translateY(-4px) scale(0.99);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}.menu:popover-open{opacity:1;transform:translateY(0) scale(1)}@starting-style{.menu:popover-open{opacity:0;transform:translateY(-4px) scale(0.99)}}.menu[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){.menu{transition:none}}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-NMV2BBWK.js";
14
+ } from "./chunk-FSGGPFID.js";
15
15
 
16
16
  // dist/esm/ui-dialog.entry.js
17
17
  var uiDialogCss = () => `:host{display:block}:host:not([data-open]){display:none}:host dialog{--ui-dialog-duration:var(--ui-motion-base);--ui-dialog-viewport-gap:var(--ui-space-4, 1rem);position:fixed;inset:0;inline-size:min( calc(100% - (var(--ui-dialog-viewport-gap) * 2)), var(--ui-dialog-max-width, 440px) );max-inline-size:none;max-block-size:calc(100dvh - (var(--ui-dialog-viewport-gap) * 2));margin:auto;padding:var(--ui-space-4);overflow:auto;background:var(--ui-surface-elevated);border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-dialog);box-shadow:var(--ui-shadow-dialog);visibility:hidden;pointer-events:none;opacity:0;transform:scale(0.96);transition:opacity var(--ui-dialog-duration) var(--ui-motion-ease), transform var(--ui-dialog-duration) var(--ui-motion-ease), visibility var(--ui-dialog-duration), display var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete, overlay var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete}:host dialog[open]{visibility:visible;pointer-events:auto;opacity:1;transform:scale(1);animation:ui-dialog-enter var(--ui-dialog-duration) var(--ui-motion-ease)}@keyframes ui-dialog-enter{from{opacity:0;transform:scale(0.96)}}:host dialog::backdrop{background-color:transparent;transition:background-color var(--ui-dialog-duration) var(--ui-motion-ease), display var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete, overlay var(--ui-dialog-duration) var(--ui-motion-ease) allow-discrete}:host dialog[open]::backdrop{background-color:var(--ui-overlay-backdrop);animation:ui-dialog-backdrop-enter var(--ui-dialog-duration) var(--ui-motion-ease)}@keyframes ui-dialog-backdrop-enter{from{background-color:transparent}}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-NMV2BBWK.js";
14
+ } from "./chunk-FSGGPFID.js";
15
15
 
16
16
  // dist/esm/ui-disclosure.entry.js
17
17
  var uiDisclosureCss = () => `:host{display:block}::slotted([hidden]){display:none !important}`;
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-NMV2BBWK.js";
5
+ } from "./chunk-FSGGPFID.js";
6
6
 
7
7
  // dist/esm/ui-floating-action-button.entry.js
8
8
  var uiFloatingActionButtonCss = () => `:host{position:fixed;inset-block-end:calc( var(--ui-floating-action-button-bottom, var(--ui-space-6, 1.5rem)) + env(safe-area-inset-bottom) );inset-inline-end:max( var(--ui-floating-action-button-inline-end, var(--ui-space-5, 1.25rem)), env(safe-area-inset-right) );inline-size:var(--ui-floating-action-button-size, 56px);block-size:var(--ui-floating-action-button-size, 56px);display:inline-flex;z-index:var(--ui-floating-action-button-z-index, 100)}button{appearance:none;inline-size:100%;block-size:100%;border:none;border-radius:999px;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--ui-floating-action-button-bg, var(--ui-accent-solid));color:var(--ui-floating-action-button-color, var(--ui-text-on-accent));box-shadow:var( --ui-floating-action-button-shadow, 0 4px 12px color-mix(in srgb, var(--ui-accent-solid) 40%, transparent) );cursor:pointer;transition:background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease), transform var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease), box-shadow var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease)}button:hover:enabled{background:var(--ui-floating-action-button-hover-bg, var(--ui-accent-hover));box-shadow:var( --ui-floating-action-button-hover-shadow, 0 6px 16px color-mix(in srgb, var(--ui-accent-solid) 50%, transparent) )}button:active:enabled{transform:scale(var(--ui-floating-action-button-active-scale, 0.94))}button:focus-visible{outline:2px solid var(--ui-focus-ring);outline-offset:2px}button:disabled,:host([disabled]){opacity:0.6;cursor:not-allowed}::slotted(svg){inline-size:var(--ui-floating-action-button-icon-size, 24px);block-size:var(--ui-floating-action-button-icon-size, 24px);flex-shrink:0}@media (min-width: 768px){:host([mobile-only]){display:none}}`;
@@ -6,7 +6,7 @@ import {
6
6
  getElement,
7
7
  h,
8
8
  registerInstance
9
- } from "./chunk-NMV2BBWK.js";
9
+ } from "./chunk-FSGGPFID.js";
10
10
 
11
11
  // dist/esm/ui-form-field.entry.js
12
12
  var uiFormFieldCss = () => `:host{display:grid;gap:var(--ui-space-2);color:var(--ui-text-primary)}::slotted(label){color:var(--ui-text-secondary);font-size:0.95rem}::slotted([data-slot='help']){color:var(--ui-text-muted);font-size:0.875rem}::slotted([data-slot='error']),::slotted([role='alert']){color:var(--ui-accent-active);font-size:0.875rem}`;
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-NMV2BBWK.js";
5
+ } from "./chunk-FSGGPFID.js";
6
6
 
7
7
  // dist/esm/ui-icon-button.entry.js
8
8
  var uiIconButtonCss = () => `:host{display:inline-flex;color:var(--ui-text-secondary)}:host([anticipatory]){position:relative}:host([anticipatory])::before{content:'';position:absolute;inset:50% auto auto 50%;z-index:1;inline-size:var(--ui-affordance-guide-size, 0.25rem);block-size:var(--ui-affordance-guide-size, 0.25rem);border-radius:var(--ui-radius-round, 999px);background:var(--ui-affordance-guide-color, var(--ui-border-strong));opacity:var(--ui-affordance-guide-opacity, 0.42);transform:translate(-50%, -50%);transition:opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);pointer-events:none}:host([anticipatory]) button{opacity:0;transform:scale(0.72);pointer-events:none}:host([anticipatory][data-ui-proximity='near'])::before,:host([anticipatory]:focus-within)::before,:host([anticipatory]:hover)::before,:host([anticipatory][variant='solid'])::before{opacity:0}:host([anticipatory][data-ui-proximity='near']) button,:host([anticipatory]:focus-within) button,:host([anticipatory]:hover) button,:host([anticipatory][variant='solid']) button{opacity:1;transform:scale(1);pointer-events:auto}button{appearance:none;inline-size:var(--ui-icon-button-size, 2.5rem);block-size:var(--ui-icon-button-size, 2.5rem);min-inline-size:var(--ui-icon-button-size, 2.5rem);min-block-size:var(--ui-icon-button-size, 2.5rem);padding:0;margin:0;border:1px solid transparent;border-radius:var(--ui-icon-button-radius, var(--ui-radius-2));background:var(--ui-icon-button-bg, transparent);color:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease)}@media (hover: none), (pointer: coarse){:host([anticipatory])::before{opacity:0}:host([anticipatory]) button{opacity:1;transform:none;pointer-events:auto}}:host([size='sm']) button{inline-size:var(--ui-icon-button-size-sm, 2rem);block-size:var(--ui-icon-button-size-sm, 2rem);min-inline-size:var(--ui-icon-button-size-sm, 2rem);min-block-size:var(--ui-icon-button-size-sm, 2rem)}:host([size='lg']) button{inline-size:var(--ui-icon-button-size-lg, 2.75rem);block-size:var(--ui-icon-button-size-lg, 2.75rem);min-inline-size:var(--ui-icon-button-size-lg, 2.75rem);min-block-size:var(--ui-icon-button-size-lg, 2.75rem)}:host([variant='outline']) button{border-color:var(--ui-icon-button-border, var(--ui-border-default));background:var(--ui-icon-button-outline-bg, var(--ui-surface-default));color:var(--ui-icon-button-outline-color, var(--ui-text-primary))}:host([variant='solid']) button{background:var(--ui-icon-button-solid-bg, var(--ui-accent-solid));color:var(--ui-icon-button-solid-color, var(--ui-text-on-accent));box-shadow:var( --ui-icon-button-solid-shadow, 0 1px 2px color-mix(in srgb, var(--ui-accent-solid) 18%, transparent) )}button:hover:enabled{background:var(--ui-icon-button-hover-bg, var(--ui-surface-muted));color:var(--ui-icon-button-hover-color, var(--ui-text-primary))}:host([variant='outline']) button:hover:enabled{border-color:var(--ui-icon-button-hover-border, var(--ui-border-strong))}:host([variant='solid']) button:hover:enabled{background:var(--ui-icon-button-solid-hover-bg, var(--ui-accent-hover))}button:active:enabled{transform:scale(var(--ui-icon-button-active-scale, 0.96))}button:focus-visible{outline:2px solid var(--ui-focus-ring);outline-offset:2px}button:disabled,:host([disabled]){opacity:0.6;cursor:not-allowed}::slotted(svg){inline-size:var(--ui-icon-button-icon-size, 1.125rem);block-size:var(--ui-icon-button-icon-size, 1.125rem);flex-shrink:0;stroke-width:var(--ui-icon-button-icon-stroke-width, 1.75)}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-input.entry.js
13
13
  var uiInputCss = () => `:host{display:inline-flex;color:var(--ui-text-primary)}::slotted(input){width:100%;appearance:none;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background:var(--ui-surface-default);color:inherit;font:inherit;line-height:var(--ui-line-height-md);padding:var(--ui-space-2) var(--ui-space-3);margin:0;transition:border-color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), background-color var(--ui-motion-fast) var(--ui-motion-ease)}::slotted(input:hover:not(:focus):not(:disabled)){border-color:var(--ui-border-strong)}::slotted(input:focus){border-color:var(--ui-focus-ring);box-shadow:0 0 0 3px var(--ui-accent-soft)}:host([data-invalid='true'])::slotted(input),::slotted(input[aria-invalid='true']){border-color:var(--ui-accent-active)}::slotted(input:disabled){background:var(--ui-surface-muted);color:var(--ui-text-muted);cursor:not-allowed}::slotted(input:focus-visible){outline:2px solid var(--ui-focus-ring);outline-offset:2px}`;
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-NMV2BBWK.js";
5
+ } from "./chunk-FSGGPFID.js";
6
6
 
7
7
  // dist/esm/ui-menu-item.entry.js
8
8
  var uiMenuItemCss = () => `:host{display:block;width:100%;padding:var(--ui-space-2) var(--ui-space-3);text-align:left;background:none;border:none;border-radius:var(--ui-radius-2);color:var(--ui-text-primary);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-medium, 500);cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease)}:host(:hover:not([aria-disabled='true']):not([disabled])){background:var(--ui-surface-subtle)}:host([aria-disabled='true']),:host([disabled]){opacity:0.6;cursor:not-allowed}`;
@@ -15,7 +15,7 @@ import {
15
15
  getElement,
16
16
  h,
17
17
  registerInstance
18
- } from "./chunk-NMV2BBWK.js";
18
+ } from "./chunk-FSGGPFID.js";
19
19
 
20
20
  // dist/esm/ui-menu.entry.js
21
21
  var uiMenuCss = () => `:host{--ui-menu-viewport-gap:var(--ui-space-2, 0.5rem);display:flex;flex-direction:column;inline-size:max-content;min-inline-size:min(12rem, calc(100vw - (var(--ui-menu-viewport-gap) * 2)));max-inline-size:calc(100vw - (var(--ui-menu-viewport-gap) * 2));padding:var(--ui-space-1);background:var(--ui-surface-elevated);border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-3);box-shadow:var(--ui-shadow-lg)}:host(:not([data-open])){display:none}:host([popover]){position:fixed;inset:auto;margin:0;overflow:auto;max-block-size:calc(100dvh - (var(--ui-menu-viewport-gap) * 2));opacity:0;transform:translateY(-4px) scale(0.99);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}:host([popover]:popover-open){opacity:1;transform:translateY(0) scale(1)}@starting-style{:host([popover]:popover-open){opacity:0;transform:translateY(-4px) scale(0.99)}}:host([hidden]){display:none !important}@media (prefers-reduced-motion: reduce){:host([popover]){transition:none}}::slotted(ui-menu-item){display:block;width:100%;padding:var(--ui-space-2) var(--ui-space-3);text-align:left;background:none;border:none;border-radius:var(--ui-radius-2);color:var(--ui-text-primary);font-size:var(--ui-font-size-md);font-weight:var(--ui-font-medium, 500);cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease)}::slotted(ui-menu-item:hover:not([aria-disabled='true']):not([disabled])){background:var(--ui-surface-subtle)}::slotted(ui-menu-item[aria-disabled='true']),::slotted(ui-menu-item[disabled]){opacity:0.6;cursor:not-allowed}`;
@@ -14,7 +14,7 @@ import {
14
14
  getElement,
15
15
  h,
16
16
  registerInstance
17
- } from "./chunk-NMV2BBWK.js";
17
+ } from "./chunk-FSGGPFID.js";
18
18
 
19
19
  // dist/esm/ui-popover.entry.js
20
20
  var uiPopoverCss = () => `:host{--ui-popover-viewport-gap:var(--ui-space-2, 0.5rem);padding:var(--ui-space-3);background:var(--ui-surface-elevated);border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-3);box-shadow:var(--ui-shadow-lg);max-inline-size:min( 20rem, calc(100vw - (var(--ui-popover-viewport-gap) * 2)) );max-block-size:calc(100dvh - (var(--ui-popover-viewport-gap) * 2));overflow:auto}:host(:not([data-open])){display:none}:host([popover]){position:fixed;inset:auto;margin:0;opacity:0;transform:translateY(-4px) scale(0.99);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}:host([popover]:popover-open){opacity:1;transform:translateY(0) scale(1)}@starting-style{:host([popover]:popover-open){opacity:0;transform:translateY(-4px) scale(0.99)}}:host([hidden]){display:none !important}@media (prefers-reduced-motion: reduce){:host([popover]){transition:none}}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-radio-group.entry.js
13
13
  var uiRadioGroupCss = () => `:host{display:inline-flex;align-items:center;gap:var(--ui-space-2)}:host([data-orientation='vertical']){display:inline-grid;justify-items:start}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-radio.entry.js
13
13
  var uiRadioCss = () => `:host{display:inline-flex;align-items:center;gap:var(--ui-space-2);color:var(--ui-text-primary)}:host([data-disabled='true']),:host([aria-disabled='true']){opacity:0.6;cursor:not-allowed}::slotted(input[type='radio']){accent-color:var(--ui-accent-solid);cursor:pointer}::slotted(input[type='radio']:focus-visible){outline:2px solid var(--ui-accent-solid);outline-offset:2px}`;
@@ -2,7 +2,7 @@ import {
2
2
  Host,
3
3
  h,
4
4
  registerInstance
5
- } from "./chunk-NMV2BBWK.js";
5
+ } from "./chunk-FSGGPFID.js";
6
6
 
7
7
  // dist/esm/ui-search-result-row.entry.js
8
8
  var uiSearchResultRowCss = () => `:host{display:block}.search-result-row{appearance:none;inline-size:100%;min-block-size:var(--ui-search-result-row-min-height, 56px);margin:0;padding-block:var(--ui-search-result-row-padding-block, var(--ui-space-3, 0.75rem));padding-inline:var(--ui-search-result-row-padding-inline, var(--ui-space-4, 1rem));display:flex;align-items:flex-start;gap:var(--ui-search-result-row-gap, var(--ui-space-3, 0.75rem));background:var(--ui-search-result-row-bg, transparent);border:none;border-block-end:1px solid var(--ui-search-result-row-border, var(--ui-border, #e5e7eb));color:inherit;cursor:pointer;text-align:left;transition:background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease)}:host(:last-child) .search-result-row{border-block-end:none}.search-result-row:hover:enabled{background:var(--ui-search-result-row-hover-bg, color-mix(in srgb, var(--ui-surface, #ffffff) 85%, black 3%))}:host([selected]) .search-result-row{background:var( --ui-search-result-row-selected-bg, var(--ui-search-result-row-hover-bg, color-mix(in srgb, var(--ui-surface, #ffffff) 85%, black 3%)) )}.search-result-row:focus-visible{outline:2px solid var(--ui-focus-ring, #2563eb);outline-offset:-2px}.search-result-row:disabled,:host([disabled]) .search-result-row{opacity:0.6;cursor:not-allowed}.search-result-row__leading,.search-result-row__trailing{display:inline-flex;align-items:flex-start;flex-shrink:0}.search-result-row__content{min-inline-size:0;flex:1;display:flex;flex-direction:column}.search-result-row__title,.search-result-row__meta,.search-result-row__excerpt{display:block;min-inline-size:0}[hidden]{display:none}::slotted([slot='title']),::slotted([slot='meta']),::slotted([slot='excerpt']){display:block;margin:0}`;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  h,
3
3
  registerInstance
4
- } from "./chunk-NMV2BBWK.js";
4
+ } from "./chunk-FSGGPFID.js";
5
5
 
6
6
  // dist/esm/ui-search-shell.entry.js
7
7
  var uiSearchShellCss = () => `:host{position:fixed;inset:0;z-index:var(--ui-search-shell-z-index, 400);display:block}.search-shell{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-block-start:var(--ui-search-shell-padding-top, 10vh)}.search-shell__panel{position:relative;inline-size:min( calc(100% - (var(--ui-search-shell-margin-inline, var(--ui-space-4, 1rem)) * 2)), var(--ui-search-shell-max-width, 640px) );max-block-size:var(--ui-search-shell-max-height, 80vh);display:flex;flex-direction:column;overflow:hidden;background:var(--ui-search-shell-bg, var(--ui-surface, #ffffff));border:1px solid var(--ui-search-shell-border, var(--ui-border, #e5e7eb));border-radius:var(--ui-search-shell-radius, var(--ui-radius-xl, 1rem));box-shadow:var(--ui-search-shell-shadow, var(--ui-shadow-lg, 0 8px 24px rgba(0, 0, 0, 0.12)))}.search-shell__search,.search-shell__status,.search-shell__footer{flex-shrink:0}.search-shell__body{flex:1;min-block-size:0}[hidden]{display:none}@media (max-width: 767px){.search-shell{padding-block-start:0;align-items:stretch}.search-shell__panel{inline-size:100%;block-size:100vh;block-size:100dvh;max-block-size:none;border-radius:0;border-inline:none;border-block-start:none}}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-select.entry.js
13
13
  var uiSelectCss = () => `:host{display:inline-flex;color:var(--ui-text-primary)}::slotted(select){width:100%;appearance:none;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background-color:var(--ui-surface-default);color:inherit;font:inherit;line-height:var(--ui-line-height-md);padding-block:var(--ui-select-padding-block, var(--ui-space-2));padding-inline-start:var(--ui-select-padding-inline-start, var(--ui-space-3));padding-inline-end:var(--ui-select-padding-inline-end, calc(var(--ui-space-6) + var(--ui-space-3)));margin:0;background-image:linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);background-position:calc(100% - 1rem) calc(50% - 2px), calc(100% - 0.7rem) calc(50% - 2px);background-size:0.35rem 0.35rem, 0.35rem 0.35rem;background-repeat:no-repeat;transition:border-color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), background-color var(--ui-motion-fast) var(--ui-motion-ease)}::slotted(select:hover:not(:focus):not(:disabled)){border-color:var(--ui-border-strong)}::slotted(select:focus){border-color:var(--ui-focus-ring);box-shadow:0 0 0 3px var(--ui-accent-soft)}:host([data-invalid='true'])::slotted(select),::slotted(select[aria-invalid='true']){border-color:var(--ui-accent-active)}::slotted(select:disabled){background-color:var(--ui-surface-muted);color:var(--ui-text-muted);cursor:not-allowed}::slotted(select:focus-visible){outline:2px solid var(--ui-focus-ring);outline-offset:2px}::slotted(select[multiple]),::slotted(select[size]:not([size='1'])){background-image:none;padding-inline-end:var(--ui-select-padding-inline-start, var(--ui-space-3))}`;
@@ -6,7 +6,7 @@ import {
6
6
  getElement,
7
7
  h,
8
8
  registerInstance
9
- } from "./chunk-NMV2BBWK.js";
9
+ } from "./chunk-FSGGPFID.js";
10
10
 
11
11
  // dist/esm/ui-switch.entry.js
12
12
  var uiSwitchCss = () => `:host{display:inline-flex;align-items:center;gap:var(--ui-space-2);color:var(--ui-text-primary)}:host([aria-disabled='true']),:host([data-disabled='true']){opacity:0.6;cursor:not-allowed}:host([role='switch']){cursor:pointer}:host input[type='checkbox']{appearance:none;-webkit-appearance:none;display:block;position:relative;width:2.25rem;height:1.25rem;padding:0;border:1px solid var(--ui-border-default);border-radius:999px;background:var(--ui-surface-muted);cursor:pointer;transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease);margin:0}:host input[type='checkbox']::after{content:'';position:absolute;top:2px;left:2px;width:0.875rem;height:0.875rem;border-radius:999px;background:var(--ui-surface-default);border:1px solid var(--ui-border-default);transition:transform var(--ui-motion-fast) var(--ui-motion-ease)}:host input[type='checkbox']:checked{background:var(--ui-accent-solid);border-color:var(--ui-accent-solid)}:host input[type='checkbox']:checked::after{transform:translateX(calc(2.25rem - 0.875rem - 4px));background:var(--ui-text-on-accent);border-color:var(--ui-text-on-accent)}:host input[type='checkbox']:focus-visible{outline:2px solid var(--ui-accent-solid);outline-offset:2px}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-tabs.entry.js
13
13
  var uiTabsCss = () => `:host{display:flex;flex-direction:column;gap:0}:host([data-orientation='vertical']){flex-direction:row}::slotted([role='tablist']){display:flex;gap:0;max-inline-size:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-bottom:1px solid var(--ui-border-default)}:host([data-orientation='vertical']) ::slotted([role='tablist']){flex-direction:column;border-bottom:none;border-inline-end:1px solid var(--ui-border-default)}::slotted(button[role='tab']),::slotted([role='tab']),::slotted(ui-button) button[role='tab']{padding:var(--ui-space-2) var(--ui-space-3);font-size:var(--ui-font-size-sm);font-weight:var(--ui-font-medium, 500);color:var(--ui-text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;transition:color var(--ui-motion-fast) var(--ui-motion-ease);box-shadow:none}::slotted(button[role='tab']:hover),::slotted([role='tab']:hover){color:var(--ui-text-primary)}::slotted(button[role='tab'][aria-selected='true']),::slotted([role='tab'][aria-selected='true']){color:var(--ui-accent-solid);border-bottom-color:var(--ui-accent-solid)}:host([data-orientation='vertical']) ::slotted(button[role='tab']),:host([data-orientation='vertical']) ::slotted([role='tab']){border-bottom:none;border-inline-end:2px solid transparent;margin-bottom:0;margin-inline-end:-1px}:host([data-orientation='vertical']) ::slotted(button[role='tab'][aria-selected='true']),:host([data-orientation='vertical']) ::slotted([role='tab'][aria-selected='true']){border-inline-end-color:var(--ui-accent-solid)}::slotted([role='tabpanel']){padding:var(--ui-space-4)}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-textarea.entry.js
13
13
  var uiTextareaCss = () => `:host{display:inline-flex;color:var(--ui-text-primary)}::slotted(textarea){width:100%;appearance:none;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background:var(--ui-surface-default);color:inherit;font:inherit;line-height:var(--ui-line-height-md);min-block-size:calc(var(--ui-space-12, 3rem) * 2);padding:var(--ui-space-2) var(--ui-space-3);margin:0;resize:vertical;transition:border-color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), background-color var(--ui-motion-fast) var(--ui-motion-ease)}::slotted(textarea:hover:not(:focus):not(:disabled)){border-color:var(--ui-border-strong)}::slotted(textarea:focus){border-color:var(--ui-focus-ring);box-shadow:0 0 0 3px var(--ui-accent-soft)}:host([data-invalid='true'])::slotted(textarea),::slotted(textarea[aria-invalid='true']){border-color:var(--ui-accent-active)}::slotted(textarea:disabled){background:var(--ui-surface-muted);color:var(--ui-text-muted);cursor:not-allowed}::slotted(textarea:focus-visible){outline:2px solid var(--ui-focus-ring);outline-offset:2px}`;
@@ -10,7 +10,7 @@ import {
10
10
  getElement,
11
11
  h,
12
12
  registerInstance
13
- } from "./chunk-NMV2BBWK.js";
13
+ } from "./chunk-FSGGPFID.js";
14
14
 
15
15
  // dist/esm/ui-toast-region.entry.js
16
16
  var uiToastRegionCss = () => `:host{position:fixed;top:calc(var(--ui-space-4) + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:9999;display:grid;gap:var(--ui-space-2);inline-size:min(24rem, calc(100vw - (var(--ui-space-4) * 2)));max-inline-size:100%;pointer-events:none}:host([popover]){right:auto;bottom:auto;margin:0}:host>*{pointer-events:auto}::slotted([data-ui-toast]){display:grid;grid-template-columns:1fr auto;gap:var(--ui-space-2);align-items:start;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-3);padding:var(--ui-space-3) var(--ui-space-4);background:var(--ui-surface-elevated);color:var(--ui-text-primary);box-shadow:var(--ui-shadow-lg);animation:ui-toast-enter 0.25s var(--ui-motion-ease) forwards}@keyframes ui-toast-enter{from{opacity:0;transform:translateY(-0.5rem)}to{opacity:1;transform:translateY(0)}}::slotted([data-ui-toast][aria-hidden='true']){display:none}::slotted([data-ui-toast-dismiss]){border:0;background:transparent;color:var(--ui-text-secondary);cursor:pointer;font:inherit}`;
@@ -14,7 +14,7 @@ import {
14
14
  getElement,
15
15
  h,
16
16
  registerInstance
17
- } from "./chunk-NMV2BBWK.js";
17
+ } from "./chunk-FSGGPFID.js";
18
18
 
19
19
  // dist/esm/ui-tooltip.entry.js
20
20
  var uiTooltipCss = () => `:host{position:fixed;inset:auto;margin:0;display:inline-block;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-2);background:var(--ui-surface-elevated);color:var(--ui-text-primary);padding:var(--ui-space-2) var(--ui-space-3);font-size:var(--ui-font-size-sm);box-shadow:var(--ui-shadow-md);opacity:0;transform:translateY(4px);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease), transform var(--ui-motion-fast) var(--ui-motion-ease), display var(--ui-motion-fast) allow-discrete, overlay var(--ui-motion-fast) allow-discrete}:host(:popover-open){opacity:1;transform:translateY(0)}@starting-style{:host(:popover-open){opacity:0;transform:translateY(4px)}}:host([hidden]){display:none !important}@media (prefers-reduced-motion: reduce){:host{transition:none}}`;
@@ -3,7 +3,7 @@ import {
3
3
  getElement,
4
4
  h,
5
5
  registerInstance
6
- } from "./chunk-NMV2BBWK.js";
6
+ } from "./chunk-FSGGPFID.js";
7
7
 
8
8
  // dist/esm/ui-top-bar.entry.js
9
9
  var uiTopBarCss = () => `:host{position:sticky;inset-block-start:0;z-index:var(--ui-top-bar-z-index, 100);display:block}.top-bar{min-block-size:calc(var(--ui-top-bar-height, 56px) + env(safe-area-inset-top));display:flex;align-items:center;gap:var(--ui-top-bar-gap, var(--ui-space-3, 0.75rem));padding-block-start:env(safe-area-inset-top);padding-inline-start:max( var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-left) );padding-inline-end:max( var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-right) );background:var(--ui-top-bar-bg, var(--ui-surface, #ffffff));border-block-end:1px solid var(--ui-top-bar-border, var(--ui-border, #e5e7eb))}.top-bar__leading,.top-bar__search,.top-bar__actions{display:flex;align-items:center;flex-shrink:0}.top-bar__actions{gap:var(--ui-top-bar-actions-gap, var(--ui-space-1, 0.25rem))}.top-bar__title{min-inline-size:0;flex:1}[hidden]{display:none}@media (min-width: 768px){:host{display:none}}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-NMV2BBWK.js";
10
+ } from "./chunk-FSGGPFID.js";
11
11
 
12
12
  // dist/esm/ui-tree-item.entry.js
13
13
  var Bold = [
@@ -6,7 +6,7 @@ import {
6
6
  getElement,
7
7
  h,
8
8
  registerInstance
9
- } from "./chunk-NMV2BBWK.js";
9
+ } from "./chunk-FSGGPFID.js";
10
10
 
11
11
  // dist/esm/ui-tree.entry.js
12
12
  function classifyDropPosition(rect, clientY, acceptsChildren) {
@@ -69,6 +69,7 @@ var UITree = class {
69
69
  componentDidLoad() {
70
70
  this.hoverIntent = createHoverIntent(this.hoverExpandDelay, this.expandTarget);
71
71
  this.host.addEventListener("dragstart", this.onDragStart);
72
+ this.host.addEventListener("dragenter", this.onDragOver);
72
73
  this.host.addEventListener("dragover", this.onDragOver);
73
74
  this.host.addEventListener("dragleave", this.onDragLeave);
74
75
  this.host.addEventListener("drop", this.onDrop);
@@ -78,6 +79,7 @@ var UITree = class {
78
79
  disconnectedCallback() {
79
80
  this.hoverIntent?.destroy();
80
81
  this.host.removeEventListener("dragstart", this.onDragStart);
82
+ this.host.removeEventListener("dragenter", this.onDragOver);
81
83
  this.host.removeEventListener("dragover", this.onDragOver);
82
84
  this.host.removeEventListener("dragleave", this.onDragLeave);
83
85
  this.host.removeEventListener("drop", this.onDrop);
@@ -93,6 +95,27 @@ var UITree = class {
93
95
  rowFor(item) {
94
96
  return item.shadowRoot?.querySelector('[part="row"]') ?? null;
95
97
  }
98
+ itemAtPoint(clientX, clientY) {
99
+ let element = this.host.ownerDocument.elementFromPoint(clientX, clientY);
100
+ while (element) {
101
+ if (element.localName === "ui-tree-item" && this.host.contains(element)) {
102
+ return element;
103
+ }
104
+ const root = element.getRootNode();
105
+ element = root instanceof ShadowRoot ? root.host : element.parentElement;
106
+ }
107
+ return null;
108
+ }
109
+ isWithinTree(node) {
110
+ let element = node instanceof HTMLElement ? node : null;
111
+ while (element) {
112
+ if (element === this.host || this.host.contains(element))
113
+ return true;
114
+ const root = element.getRootNode();
115
+ element = root instanceof ShadowRoot ? root.host : element.parentElement;
116
+ }
117
+ return false;
118
+ }
96
119
  acceptsChildren(item) {
97
120
  return Boolean(item.container ?? item.hasAttribute("container")) && !Boolean(item.disabled ?? item.hasAttribute("disabled"));
98
121
  }
@@ -187,34 +210,50 @@ var UITree = class {
187
210
  }
188
211
  };
189
212
  onDragLeave = (event) => {
190
- const related = event.relatedTarget;
191
- if (related instanceof Node && this.host.contains(related))
213
+ if (this.isWithinTree(event.relatedTarget))
214
+ return;
215
+ if (this.itemAtPoint(event.clientX, event.clientY))
192
216
  return;
193
217
  this.clearTarget();
194
218
  };
219
+ dispatchReorder(source, target, position) {
220
+ const sourceId = this.itemId(source);
221
+ const targetId = this.itemId(target);
222
+ if (!sourceId || !targetId)
223
+ return;
224
+ const sourceMeta = this.itemMetadata(source);
225
+ const targetMeta = this.itemMetadata(target);
226
+ dispatchDetail(this.host, "reorder", {
227
+ sourceId,
228
+ targetId,
229
+ position,
230
+ sourceType: sourceMeta.type,
231
+ targetType: targetMeta.type,
232
+ sourceScope: sourceMeta.scope,
233
+ targetScope: targetMeta.scope,
234
+ trigger: "pointer"
235
+ });
236
+ }
195
237
  onDrop = (event) => {
196
238
  if (!this.source || !this.target || !this.position)
197
239
  return;
198
240
  event.preventDefault();
199
- const sourceId = this.itemId(this.source);
200
- const targetId = this.itemId(this.target);
201
- if (sourceId && targetId) {
202
- const sourceMeta = this.itemMetadata(this.source);
203
- const targetMeta = this.itemMetadata(this.target);
204
- dispatchDetail(this.host, "reorder", {
205
- sourceId,
206
- targetId,
207
- position: this.position,
208
- sourceType: sourceMeta.type,
209
- targetType: targetMeta.type,
210
- sourceScope: sourceMeta.scope,
211
- targetScope: targetMeta.scope,
212
- trigger: "pointer"
213
- });
214
- }
241
+ this.dispatchReorder(this.source, this.target, this.position);
215
242
  this.finishDrag();
216
243
  };
217
- onDragEnd = () => {
244
+ onDragEnd = (event) => {
245
+ if (this.source) {
246
+ const target = this.itemAtPoint(event.clientX, event.clientY);
247
+ if (target && target !== this.source) {
248
+ const row = this.rowFor(target);
249
+ if (row) {
250
+ const position = classifyDropPosition(row.getBoundingClientRect(), event.clientY, this.acceptsChildren(target));
251
+ if (this.permitsDrop(this.source, target, position)) {
252
+ this.dispatchReorder(this.source, target, position);
253
+ }
254
+ }
255
+ }
256
+ }
218
257
  this.finishDrag();
219
258
  };
220
259
  visibleItems() {
@@ -235,7 +274,7 @@ var UITree = class {
235
274
  next.focus();
236
275
  };
237
276
  render() {
238
- return h(Host, { key: "5761d2840d2694340a4b937d46522f15f81973ac", role: "tree", "aria-label": this.label || "Tree" }, h("slot", { key: "08e5a7b489eed4f4eae9de6462104fd12defd336" }));
277
+ return h(Host, { key: "b659635f6acdf09a3618c514f5bdd9bf173f9d98", role: "tree", "aria-label": this.label || "Tree" }, h("slot", { key: "0815f0eb0bfe766dd2f358385af1516fd4328e2e" }));
239
278
  }
240
279
  };
241
280
  UITree.style = uiTreeCss();
@@ -1075,7 +1075,7 @@ if (typeof HTMLElement !== "undefined") {
1075
1075
  }
1076
1076
  set selectedIndex(value) {
1077
1077
  this.#selectedIndex = Number.isFinite(value) ? Math.max(0, value) : 0;
1078
- this.render();
1078
+ this.updateSelectedItem(true);
1079
1079
  }
1080
1080
  get anchorRect() {
1081
1081
  return this.#anchorRect;
@@ -1133,7 +1133,7 @@ if (typeof HTMLElement !== "undefined") {
1133
1133
  return;
1134
1134
  }
1135
1135
  this.#selectedIndex = index;
1136
- this.render();
1136
+ this.updateSelectedItem();
1137
1137
  dispatchSlashMenuEvent(
1138
1138
  this,
1139
1139
  "looma-editor-slash-menu-highlight",
@@ -1193,6 +1193,16 @@ if (typeof HTMLElement !== "undefined") {
1193
1193
  this.style.width = `${MENU_WIDTH2}px`;
1194
1194
  this.style.maxHeight = "";
1195
1195
  }
1196
+ updateSelectedItem(ensureVisible = false) {
1197
+ let selectedOption = null;
1198
+ for (const option of this.querySelectorAll("[data-index]")) {
1199
+ const selected = Number.parseInt(option.dataset.index ?? "", 10) === this.#selectedIndex;
1200
+ option.classList.toggle("ui-editor-slash-menu__item--active", selected);
1201
+ option.setAttribute("aria-selected", selected ? "true" : "false");
1202
+ if (selected) selectedOption = option;
1203
+ }
1204
+ if (ensureVisible) selectedOption?.scrollIntoView?.({ block: "nearest" });
1205
+ }
1196
1206
  render() {
1197
1207
  const visible = this.#open && this.#items.length > 0 && this.#normalizedAnchorRect;
1198
1208
  this.hidden = !visible;