@threadlabs/looma 0.2.0 → 0.2.2

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 (76) hide show
  1. package/dist/{chunk-JXSHRMYW.js → chunk-CSULYHMX.js} +32 -32
  2. package/dist/{chunk-M7FPK6GN.js → chunk-D5WRORG6.js} +21 -1
  3. package/dist/cjs/{positioning-D5q9DM-0.js → positioning-CCR6ifPj.js} +35 -0
  4. package/dist/cjs/ui-affordance-scope.cjs.entry.js +1 -1
  5. package/dist/cjs/ui-chip_2.cjs.entry.js +1 -1
  6. package/dist/cjs/ui-combobox.cjs.entry.js +1 -1
  7. package/dist/cjs/ui-context-menu.cjs.entry.js +1 -1
  8. package/dist/cjs/ui-menu.cjs.entry.js +1 -1
  9. package/dist/cjs/ui-popover.cjs.entry.js +1 -1
  10. package/dist/cjs/ui-toast-region.cjs.entry.js +1 -1
  11. package/dist/collection/overlay/positioning.js +35 -0
  12. package/dist/components/{p-DYiNETk6.js → p-6SWSrfmW.js} +1 -1
  13. package/dist/components/p-B_DaIVEY.js +1 -0
  14. package/dist/components/{p-DWN2m6ta.js → p-BzaB_bXo.js} +1 -1
  15. package/dist/components/ui-affordance-scope.js +1 -1
  16. package/dist/components/ui-combobox.js +1 -1
  17. package/dist/components/ui-context-menu.js +1 -1
  18. package/dist/components/ui-menu.js +1 -1
  19. package/dist/components/ui-popover.js +1 -1
  20. package/dist/components/ui-toast-region.js +1 -1
  21. package/dist/components/ui-tooltip.js +1 -1
  22. package/dist/esm/{positioning-Drmwg-C1.js → positioning-ZOr-2PSe.js} +35 -0
  23. package/dist/esm/ui-affordance-scope.entry.js +1 -1
  24. package/dist/esm/ui-chip_2.entry.js +1 -1
  25. package/dist/esm/ui-combobox.entry.js +1 -1
  26. package/dist/esm/ui-context-menu.entry.js +1 -1
  27. package/dist/esm/ui-menu.entry.js +1 -1
  28. package/dist/esm/ui-popover.entry.js +1 -1
  29. package/dist/esm/ui-toast-region.entry.js +1 -1
  30. package/dist/index.cjs +48 -10
  31. package/dist/index.js +19 -1
  32. package/dist/looma/looma.esm.js +1 -1
  33. package/dist/looma/{p-55e06e2e.entry.js → p-0b5b8d9e.entry.js} +1 -1
  34. package/dist/looma/{p-32c85198.entry.js → p-16e0669d.entry.js} +1 -1
  35. package/dist/looma/{p-37ec2b4b.entry.js → p-6d8b99ee.entry.js} +1 -1
  36. package/dist/looma/{p-b6fb6ba3.entry.js → p-99116a72.entry.js} +1 -1
  37. package/dist/looma/{p-5cbbf7a0.entry.js → p-9ff2fa19.entry.js} +1 -1
  38. package/dist/looma/p-ZOr-2PSe.js +1 -0
  39. package/dist/looma/{p-d46317e0.entry.js → p-a2dd4c6c.entry.js} +1 -1
  40. package/dist/looma/p-ca2a54fd.entry.js +1 -0
  41. package/dist/{ui-affordance-scope.entry-VR7FLAWG.js → ui-affordance-scope.entry-UHAPBKUL.js} +2 -2
  42. package/dist/{ui-avatar-group.entry-L3UKOY3U.js → ui-avatar-group.entry-5CW7NZXC.js} +1 -1
  43. package/dist/{ui-avatar.entry-VM5OHEFQ.js → ui-avatar.entry-6HZBNQ4Y.js} +1 -1
  44. package/dist/{ui-badge.entry-ZTM4OPUD.js → ui-badge.entry-SNSI6RIY.js} +1 -1
  45. package/dist/{ui-button.entry-CIPUSV5B.js → ui-button.entry-Z3T6L2OC.js} +1 -1
  46. package/dist/{ui-callout.entry-OBFCI2O7.js → ui-callout.entry-DLUGC27N.js} +1 -1
  47. package/dist/{ui-checkbox.entry-XT6ET56H.js → ui-checkbox.entry-3V3KTI2D.js} +1 -1
  48. package/dist/{ui-chip_2.entry-32SHCLV6.js → ui-chip_2.entry-YKN25ITS.js} +2 -2
  49. package/dist/{ui-combobox.entry-ONBBPQ2C.js → ui-combobox.entry-ZQ6MXY7Z.js} +2 -2
  50. package/dist/{ui-context-menu.entry-RXNUOK24.js → ui-context-menu.entry-RAWB3GNP.js} +2 -2
  51. package/dist/{ui-dialog.entry-IJXNUARC.js → ui-dialog.entry-ZRXQ2XCL.js} +1 -1
  52. package/dist/{ui-disclosure.entry-5QS7UDRH.js → ui-disclosure.entry-U3465YX7.js} +1 -1
  53. package/dist/{ui-editable.entry-D7LOQN2H.js → ui-editable.entry-6L3DIEER.js} +1 -1
  54. package/dist/{ui-floating-action-button.entry-XQZCTZQT.js → ui-floating-action-button.entry-HOWHDYGL.js} +1 -1
  55. package/dist/{ui-form-field.entry-A654LJZE.js → ui-form-field.entry-QCVAXSX7.js} +1 -1
  56. package/dist/{ui-icon-button.entry-MJ7F7ZIH.js → ui-icon-button.entry-FSK5NRAO.js} +1 -1
  57. package/dist/{ui-input.entry-B2XM7JQU.js → ui-input.entry-55UHQLHX.js} +1 -1
  58. package/dist/{ui-menu-item.entry-JULYSFVW.js → ui-menu-item.entry-OXGX4CVF.js} +1 -1
  59. package/dist/{ui-menu.entry-ORRWW7HD.js → ui-menu.entry-YBQ66B7X.js} +2 -2
  60. package/dist/{ui-popover.entry-W67V4UPA.js → ui-popover.entry-AG2T2URX.js} +2 -2
  61. package/dist/{ui-radio-group.entry-KCFOR27M.js → ui-radio-group.entry-E3NXQNYV.js} +1 -1
  62. package/dist/{ui-radio.entry-I2P4V5E3.js → ui-radio.entry-UWC5EALS.js} +1 -1
  63. package/dist/{ui-search-result-row.entry-GHODLSLR.js → ui-search-result-row.entry-CS5I2JJX.js} +1 -1
  64. package/dist/{ui-search-shell.entry-PDB5UN4B.js → ui-search-shell.entry-MTB5GDP3.js} +1 -1
  65. package/dist/{ui-select.entry-D3CZHCKB.js → ui-select.entry-BFFNMJNZ.js} +1 -1
  66. package/dist/{ui-switch.entry-WUDRL4H5.js → ui-switch.entry-7JXIFCZY.js} +1 -1
  67. package/dist/{ui-tabs.entry-MW64GKIJ.js → ui-tabs.entry-R4GNA3P2.js} +1 -1
  68. package/dist/{ui-textarea.entry-VHRBYY6G.js → ui-textarea.entry-HIWZP5GO.js} +1 -1
  69. package/dist/{ui-toast-region.entry-ET75RWYP.js → ui-toast-region.entry-B25TKUAZ.js} +2 -2
  70. package/dist/{ui-top-bar.entry-QIYA3LD3.js → ui-top-bar.entry-RHPW4WN3.js} +1 -1
  71. package/dist/{ui-tree-item.entry-BDB7VEUS.js → ui-tree-item.entry-EAAWU24M.js} +1 -1
  72. package/dist/{ui-tree.entry-GSC7BPRN.js → ui-tree.entry-PISIJRSP.js} +1 -1
  73. package/package.json +1 -1
  74. package/dist/components/p-Drw41pSY.js +0 -1
  75. package/dist/looma/p-56dac38a.entry.js +0 -1
  76. package/dist/looma/p-Drmwg-C1.js +0 -1
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-JXSHRMYW.js";
10
+ } from "./chunk-CSULYHMX.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}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-JXSHRMYW.js";
14
+ } from "./chunk-CSULYHMX.js";
15
15
 
16
16
  // dist/esm/ui-radio.entry.js
17
17
  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-JXSHRMYW.js";
5
+ } from "./chunk-CSULYHMX.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-JXSHRMYW.js";
4
+ } from "./chunk-CSULYHMX.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-JXSHRMYW.js";
10
+ } from "./chunk-CSULYHMX.js";
11
11
 
12
12
  // dist/esm/ui-select.entry.js
13
13
  var uiSelectCss = () => `:host{display:inline-flex;min-inline-size:0;color:var(--ui-text-primary)}::slotted(select){width:100%;appearance:none;min-block-size:var(--ui-control-min-block-size, 2.75rem);border:1px solid var(--ui-control-border, var(--ui-border-default));border-radius:var(--ui-radius-2);background-color:var(--ui-control-surface, 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-control-border-hover, var(--ui-border-strong))}::slotted(select:focus){border-color:var(--ui-control-focus, var(--ui-focus-ring));box-shadow:0 0 0 3px var(--ui-control-focus-halo, 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-control-surface-disabled, 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))}`;
@@ -10,7 +10,7 @@ import {
10
10
  getElement,
11
11
  h,
12
12
  registerInstance
13
- } from "./chunk-JXSHRMYW.js";
13
+ } from "./chunk-CSULYHMX.js";
14
14
 
15
15
  // dist/esm/ui-switch.entry.js
16
16
  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}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-JXSHRMYW.js";
14
+ } from "./chunk-CSULYHMX.js";
15
15
 
16
16
  // dist/esm/ui-tabs.entry.js
17
17
  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-JXSHRMYW.js";
10
+ } from "./chunk-CSULYHMX.js";
11
11
 
12
12
  // dist/esm/ui-textarea.entry.js
13
13
  var uiTextareaCss = () => `:host{display:inline-flex;min-inline-size:0;color:var(--ui-text-primary)}::slotted(textarea){width:100%;appearance:none;border:1px solid var(--ui-control-border, var(--ui-border-default));border-radius:var(--ui-radius-2);background:var(--ui-control-surface, 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-control-border-hover, var(--ui-border-strong))}::slotted(textarea:focus){border-color:var(--ui-control-focus, var(--ui-focus-ring));box-shadow:0 0 0 3px var(--ui-control-focus-halo, 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-control-surface-disabled, 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}`;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createViewportSurface
3
- } from "./chunk-M7FPK6GN.js";
3
+ } from "./chunk-D5WRORG6.js";
4
4
  import {
5
5
  dispatchDetail,
6
6
  eventToTrigger
@@ -10,7 +10,7 @@ import {
10
10
  getElement,
11
11
  h,
12
12
  registerInstance
13
- } from "./chunk-JXSHRMYW.js";
13
+ } from "./chunk-CSULYHMX.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}`;
@@ -3,7 +3,7 @@ import {
3
3
  getElement,
4
4
  h,
5
5
  registerInstance
6
- } from "./chunk-JXSHRMYW.js";
6
+ } from "./chunk-CSULYHMX.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}}`;
@@ -10,7 +10,7 @@ import {
10
10
  getElement,
11
11
  h,
12
12
  registerInstance
13
- } from "./chunk-JXSHRMYW.js";
13
+ } from "./chunk-CSULYHMX.js";
14
14
 
15
15
  // dist/esm/ui-tree-item.entry.js
16
16
  var uiTreeItemCss = () => `:host{--ui-tree-indent:16px;--ui-tree-row-min-height:32px;--ui-tree-drop-color:var(--ui-accent-solid);position:relative;display:block;min-inline-size:0;margin-inline-start:calc(var(--ui-tree-item-depth, 0) * var(--ui-tree-indent))}.row{position:relative;display:grid;grid-template-columns:20px auto minmax(0, 1fr) auto;align-items:center;min-block-size:var(--ui-tree-row-min-height);min-inline-size:0;font-size:var(--ui-tree-font-size, var(--ui-font-size-ui, 0.9375rem));border-radius:var(--ui-radius-md);color:var(--ui-text-secondary);transition:background-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease), opacity var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease), min-block-size var(--ui-motion-base) var(--ui-motion-ease)}.row:hover,:host([data-selected]) .row,.row:focus-within{color:var(--ui-text-primary);background:var(--ui-surface-muted)}:host([data-disabled]) .row{opacity:0.55}:host([data-dragging]) .row{opacity:0.42}:host(:focus){outline:none}:host(:focus-visible) .row{box-shadow:0 0 0 2px var(--ui-focus-ring)}:host([data-drop-position='inside']) .row{background:var(--ui-accent-subtle);box-shadow:inset 0 0 0 1px var(--ui-tree-drop-color)}.disclosure,.disclosure-spacer{grid-column:1;grid-row:1;inline-size:20px;block-size:28px}.disclosure{display:grid;place-items:center;padding:0;color:var(--ui-text-muted);background:transparent;border:0;border-radius:var(--ui-radius-sm);cursor:pointer}.disclosure:hover{color:var(--ui-text-primary);background:var(--ui-surface-elevated)}.disclosure-icon{display:block;inline-size:14px;block-size:14px;transform:rotate(-90deg);transition:transform var(--ui-motion-fast) var(--ui-motion-ease)}.disclosure-icon--expanded{transform:rotate(0deg)}.disclosure-icon :is(svg),.drag-handle :is(svg){display:block;inline-size:100%;block-size:100%}.leading{display:none}.leading:has(*){display:inline-grid;place-items:center;grid-column:2;grid-row:1;inline-size:16px;block-size:16px;margin-inline-start:var(--ui-space-1)}.label{grid-column:3;grid-row:1;min-inline-size:0;padding:var(--ui-space-1) var(--ui-space-2)}.actions{grid-column:4;grid-row:1;display:inline-flex;align-items:center;min-inline-size:0}.drag-handle{position:absolute;z-index:2;inset-block-start:50%;inset-inline-start:-22px;inline-size:20px;block-size:32px;display:grid;place-items:center;padding:7px 3px;color:var(--ui-text-muted);background:var(--ui-surface-elevated);border:1px solid transparent;border-radius:var(--ui-radius-sm);cursor:grab;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity var(--ui-motion-fast) var(--ui-motion-ease)}.row:hover .drag-handle,.drag-handle:focus-visible,:host([data-dragging]) .drag-handle{opacity:1;pointer-events:auto}.drag-handle:active{cursor:grabbing}.drop-indicator{position:absolute;z-index:3;inset-inline:1px;display:none;block-size:2px;border-radius:999px;background:var(--ui-tree-drop-color);pointer-events:none}.drop-indicator::before,.drop-indicator::after{content:'';position:absolute;inset-block-start:50%;inline-size:7px;block-size:7px;border:2px solid var(--ui-tree-drop-color);border-radius:999px;background:var(--ui-surface-elevated);transform:translateY(-50%)}.drop-indicator::before{inset-inline-start:-1px}.drop-indicator::after{inset-inline-end:-1px}:host([data-drop-position='before']) .row-drop-indicator{display:block;inset-block-start:-1px}:host([data-drop-position='after']) .subtree-drop-indicator{display:block;inset-block-end:-1px}.children[hidden]{display:none}:host-context(html[data-ui-input-modality='touch']){--ui-tree-row-min-height:44px}:host-context(html[data-ui-input-modality='touch']) .drag-handle{display:none}@media (prefers-reduced-motion: reduce){.row,.disclosure-icon,.drag-handle{transition:none}}`;
@@ -6,7 +6,7 @@ import {
6
6
  getElement,
7
7
  h,
8
8
  registerInstance
9
- } from "./chunk-JXSHRMYW.js";
9
+ } from "./chunk-CSULYHMX.js";
10
10
 
11
11
  // dist/esm/ui-tree.entry.js
12
12
  function classifyDropPosition(rect, clientY, acceptsChildren) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@threadlabs/looma",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "description": "Looma web components, responsive layout primitives, a complete editor, and supported Vue adapters.",
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- const t=16;let n=0;const o=new WeakMap;function a(t){try{return t.matches(":popover-open")}catch{return!t.hidden}}function i(t){if(t.setAttribute("popover","manual"),t.hidden=!1,"function"==typeof t.showPopover&&!a(t))try{t.showPopover()}catch{}}function e(t){if("function"==typeof t.hidePopover&&a(t))try{t.hidePopover()}catch{}t.hidden=!0}function r(t){return t.setAttribute("popover","manual"),t.dataset.uiPositioning="viewport",{show(){i(t)},hide(){e(t)},destroy(){e(t)}}}function l(t,n,o,a,i,e=t.getBoundingClientRect()){const r=c(t.ownerDocument.defaultView??window),l=o.startsWith("top"),u=o.endsWith("end"),h=r.bottom-n.bottom-i,p=n.top-r.top-i,f=(l?!(p<e.height+a&&h>p):h<e.height+a&&p>h)?n.top-e.height-a:n.bottom+a,d=u?n.right-e.width:n.left,m=s({left:d,top:f,width:e.width,height:e.height},r,i);t.style.left=`${Math.round(d+m.x)}px`,t.style.top=`${Math.round(f+m.y)}px`,t.style.right="auto",t.style.bottom="auto"}function u(t,a={}){const r=t.ownerDocument.defaultView??window,u=a.placement??"bottom-start",h=Math.max(0,a.gap??4),p=Math.max(0,a.viewportGap??8),f=function(t){const n=t.CSS;return"function"==typeof n?.supports&&n.supports("anchor-name: --ui-anchor-test")&&n.supports("position-anchor: --ui-anchor-test")&&n.supports("top: anchor(bottom)")}(r),d="--ui-anchor-"+ ++n;let m=a.anchor??null,g=null,y=!1,v=null,w=null;t.setAttribute("popover","manual"),t.dataset.uiPositioning=f?"anchor":"fallback",t.style.position="fixed",t.style.margin="0";const b=n=>{m&&function(t,n){const a=o.get(t);if(a)if(a.names.delete(n),a.names.size){const n=[a.original,...a.names].filter(Boolean);t.style.setProperty("anchor-name",n.join(", "))}else a.original?t.style.setProperty("anchor-name",a.original):t.style.removeProperty("anchor-name"),o.delete(t)}(m,d),m=n,m?(function(t,n){const a=o.get(t)??{original:t.style.getPropertyValue("anchor-name"),names:new Set};a.names.add(n),o.set(t,a);const i=[a.original,...a.names].filter(Boolean);t.style.setProperty("anchor-name",i.join(", "))}(m,d),t.style.setProperty("position-anchor",d)):t.style.removeProperty("position-anchor")},M=()=>{if(v=null,!y)return;if(g)return void l(t,{left:g.x,right:g.x,top:g.y,bottom:g.y},"bottom-start",h,p);if(!m)return;let n;if(f){(()=>{const n=u.startsWith("bottom"),o=u.endsWith("end");t.style.top=n?`calc(anchor(bottom) + ${h}px)`:"auto",t.style.bottom=n?"auto":`calc(anchor(top) + ${h}px)`,t.style.left=o?"auto":"anchor(left)",t.style.right=o?"anchor(right)":"auto",t.style.setProperty("position-try-fallbacks","flip-block, flip-inline")})();const o=c(r);n=t.getBoundingClientRect();const a=s(n,o,p);if(0===a.x&&0===a.y)return}l(t,m.getBoundingClientRect(),u,h,p,n)},x=()=>{y&&null===v&&(v=r.requestAnimationFrame(M))},A=()=>{if(!y||null===g&&null===m)return w?.abort(),void(w=null);if(w)return;w=new AbortController;const t=w.signal;r.addEventListener("resize",x,{passive:!0,signal:t}),r.addEventListener("scroll",x,{passive:!0,capture:!0,signal:t}),r.visualViewport?.addEventListener("resize",x,{passive:!0,signal:t}),r.visualViewport?.addEventListener("scroll",x,{passive:!0,signal:t})};return b(m),{setAnchor(t){g=null,b(t),A(),x()},show(){g=null,y=!0,A(),i(t),M()},showAtPoint(n){g=n,y=!0,A(),i(t),M()},hide(){y=!1,g=null,A(),null!==v&&r.cancelAnimationFrame(v),v=null,e(t)},refresh:x,destroy(){y=!1,w?.abort(),w=null,null!==v&&r.cancelAnimationFrame(v),v=null,e(t),b(null)}}}function c(t=window){const n=t.visualViewport,o=n?.offsetLeft??0,a=n?.offsetTop??0,i=n?.width??t.innerWidth,e=n?.height??t.innerHeight;return{left:o,top:a,right:o+i,bottom:a+e,width:i,height:e}}function s(t,n=c(),o=0){const a=Math.max(0,n.width-2*o),i=Math.max(0,n.height-2*o),e=t.width>a?n.left+o:Math.min(Math.max(t.left,n.left+o),n.right-o-t.width),r=t.height>i?n.top+o:Math.min(Math.max(t.top,n.top+o),n.bottom-o-t.height);return{x:e-t.left,y:r-t.top}}function h(t,n){const o=Math.max(n.left-t.x,0,t.x-n.right),a=Math.max(n.top-t.y,0,t.y-n.bottom);return Math.hypot(o,a)}function p(t,n={}){const o=t.ownerDocument.defaultView??window,a=n.pointerTarget??t,i=n.anchorSelector??"[data-ui-affordance]",e=n.nearRadius??16,r=Number.isFinite(e)?Math.max(0,e):16,l=new AbortController;let u=[],c=null,s=null,p=!1;const f=()=>{for(const{element:t}of u)t.hasAttribute("data-ui-proximity")&&t.removeAttribute("data-ui-proximity");t.hasAttribute("data-ui-interaction")&&t.removeAttribute("data-ui-interaction")},d=()=>{u=Array.from(t.querySelectorAll(i)).filter((t=>!t.hasAttribute("disabled")&&"true"!==t.getAttribute("aria-disabled"))).map((t=>({element:t,rect:t.getBoundingClientRect()}))),p=!1},m=()=>{if(c=null,p&&d(),!s)return void f();let n=!1;for(const t of u){const o=h(s,t.rect)<=r;o&&"near"!==t.element.getAttribute("data-ui-proximity")?t.element.setAttribute("data-ui-proximity","near"):!o&&t.element.hasAttribute("data-ui-proximity")&&t.element.removeAttribute("data-ui-proximity"),n||=o}n&&"engaged"!==t.getAttribute("data-ui-interaction")?t.setAttribute("data-ui-interaction","engaged"):!n&&t.hasAttribute("data-ui-interaction")&&t.removeAttribute("data-ui-interaction")},g=()=>{null===c&&(c=o.requestAnimationFrame(m))},y=()=>{p=!0,g()};return a.addEventListener("pointermove",(t=>{s="touch"===t.pointerType?null:{x:t.clientX,y:t.clientY},g()}),{passive:!0,signal:l.signal}),o.addEventListener("resize",y,{passive:!0,signal:l.signal}),o.addEventListener("scroll",y,{passive:!0,capture:!0,signal:l.signal}),o.visualViewport?.addEventListener("resize",y,{passive:!0,signal:l.signal}),o.visualViewport?.addEventListener("scroll",y,{passive:!0,signal:l.signal}),d(),{refresh:y,destroy(){l.abort(),null!==c&&o.cancelAnimationFrame(c),c=null,s=null,f(),u=[]}}}export{t as D,p as a,r as b,u as c}
@@ -1 +0,0 @@
1
- import{r as t,g as s,h as i,H as a}from"./p-8BGiMGQ0.js";import{d as r,e}from"./p-JwSoedEO.js";import{b as o}from"./p-Drmwg-C1.js";const n=class{constructor(s){t(this,s)}get host(){return s(this)}open=!0;internalOpen=!1;surface=null;contentObserver=null;pendingDismiss=null;syncFromProp(){this.syncContents()}syncSurface(){this.internalOpen?this.surface?.show():this.surface?.hide()}componentDidLoad(){this.surface=o(this.host),this.contentObserver=new MutationObserver(this.syncContents),this.contentObserver.observe(this.host,{childList:!0,subtree:!0}),this.syncContents(),this.syncSurface(),this.host.addEventListener("click",this.onClick)}disconnectedCallback(){this.host.removeEventListener("click",this.onClick),this.contentObserver?.disconnect(),this.contentObserver=null,this.surface?.destroy(),this.surface=null}getToasts(){return Array.from(this.host.querySelectorAll("[data-ui-toast]"))}syncContents=()=>{const t=this.open&&this.getToasts().length>0,s=this.internalOpen,i=this.pendingDismiss&&!this.host.contains(this.pendingDismiss.toast)?this.pendingDismiss:null;this.internalOpen=t,s&&!t&&i&&r(this.host,"close",{open:!1,reason:"action",trigger:i.trigger}),!i&&this.open||(this.pendingDismiss=null)};onClick=t=>{const s=t.target.closest?.("[data-ui-toast-dismiss]");if(!s)return;const i=s.closest?.("[data-ui-toast]");if(!i)return;const a=i.id??"",o=e(t);this.pendingDismiss={toast:i,trigger:o},r(this.host,"dismiss",{id:a,reason:"action",trigger:o})};render(){return i(a,{key:"9f9c2e14150c631c0f7cb427c693dcd52c20897d",role:"region","aria-label":"Notifications","aria-live":"polite","data-open":this.internalOpen?"":void 0},i("slot",{key:"9e1d9ebb6b587afab2c4302241cecb03a321cee1"}))}static get watchers(){return{open:[{syncFromProp:0}],internalOpen:[{syncSurface:0}]}}};n.style=":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}";export{n as ui_toast_region}
@@ -1 +0,0 @@
1
- const t=16;let n=0;const o=new WeakMap;function a(t){try{return t.matches(":popover-open")}catch{return!t.hidden}}function i(t){if(t.setAttribute("popover","manual"),t.hidden=!1,"function"==typeof t.showPopover&&!a(t))try{t.showPopover()}catch{}}function e(t){if("function"==typeof t.hidePopover&&a(t))try{t.hidePopover()}catch{}t.hidden=!0}function r(t){return t.setAttribute("popover","manual"),t.dataset.uiPositioning="viewport",{show(){i(t)},hide(){e(t)},destroy(){e(t)}}}function l(t,n,o,a,i,e=t.getBoundingClientRect()){const r=c(t.ownerDocument.defaultView??window),l=o.startsWith("top"),u=o.endsWith("end"),h=r.bottom-n.bottom-i,p=n.top-r.top-i,f=(l?!(p<e.height+a&&h>p):h<e.height+a&&p>h)?n.top-e.height-a:n.bottom+a,d=u?n.right-e.width:n.left,m=s({left:d,top:f,width:e.width,height:e.height},r,i);t.style.left=`${Math.round(d+m.x)}px`,t.style.top=`${Math.round(f+m.y)}px`,t.style.right="auto",t.style.bottom="auto"}function u(t,a={}){const r=t.ownerDocument.defaultView??window,u=a.placement??"bottom-start",h=Math.max(0,a.gap??4),p=Math.max(0,a.viewportGap??8),f=function(t){const n=t.CSS;return"function"==typeof n?.supports&&n.supports("anchor-name: --ui-anchor-test")&&n.supports("position-anchor: --ui-anchor-test")&&n.supports("top: anchor(bottom)")}(r),d="--ui-anchor-"+ ++n;let m=a.anchor??null,g=null,y=!1,v=null,w=null;t.setAttribute("popover","manual"),t.dataset.uiPositioning=f?"anchor":"fallback",t.style.position="fixed",t.style.margin="0";const b=n=>{m&&function(t,n){const a=o.get(t);if(a)if(a.names.delete(n),a.names.size){const n=[a.original,...a.names].filter(Boolean);t.style.setProperty("anchor-name",n.join(", "))}else a.original?t.style.setProperty("anchor-name",a.original):t.style.removeProperty("anchor-name"),o.delete(t)}(m,d),m=n,m?(function(t,n){const a=o.get(t)??{original:t.style.getPropertyValue("anchor-name"),names:new Set};a.names.add(n),o.set(t,a);const i=[a.original,...a.names].filter(Boolean);t.style.setProperty("anchor-name",i.join(", "))}(m,d),t.style.setProperty("position-anchor",d)):t.style.removeProperty("position-anchor")},M=()=>{if(v=null,!y)return;if(g)return void l(t,{left:g.x,right:g.x,top:g.y,bottom:g.y},"bottom-start",h,p);if(!m)return;let n;if(f){(()=>{const n=u.startsWith("bottom"),o=u.endsWith("end");t.style.top=n?`calc(anchor(bottom) + ${h}px)`:"auto",t.style.bottom=n?"auto":`calc(anchor(top) + ${h}px)`,t.style.left=o?"auto":"anchor(left)",t.style.right=o?"anchor(right)":"auto",t.style.setProperty("position-try-fallbacks","flip-block, flip-inline")})();const o=c(r);n=t.getBoundingClientRect();const a=s(n,o,p);if(0===a.x&&0===a.y)return}l(t,m.getBoundingClientRect(),u,h,p,n)},x=()=>{y&&null===v&&(v=r.requestAnimationFrame(M))},A=()=>{if(!y||null===g&&null===m)return w?.abort(),void(w=null);if(w)return;w=new AbortController;const t=w.signal;r.addEventListener("resize",x,{passive:!0,signal:t}),r.addEventListener("scroll",x,{passive:!0,capture:!0,signal:t}),r.visualViewport?.addEventListener("resize",x,{passive:!0,signal:t}),r.visualViewport?.addEventListener("scroll",x,{passive:!0,signal:t})};return b(m),{setAnchor(t){g=null,b(t),A(),x()},show(){g=null,y=!0,A(),i(t),M()},showAtPoint(n){g=n,y=!0,A(),i(t),M()},hide(){y=!1,g=null,A(),null!==v&&r.cancelAnimationFrame(v),v=null,e(t)},refresh:x,destroy(){y=!1,w?.abort(),w=null,null!==v&&r.cancelAnimationFrame(v),v=null,e(t),b(null)}}}function c(t=window){const n=t.visualViewport,o=n?.offsetLeft??0,a=n?.offsetTop??0,i=n?.width??t.innerWidth,e=n?.height??t.innerHeight;return{left:o,top:a,right:o+i,bottom:a+e,width:i,height:e}}function s(t,n=c(),o=0){const a=Math.max(0,n.width-2*o),i=Math.max(0,n.height-2*o),e=t.width>a?n.left+o:Math.min(Math.max(t.left,n.left+o),n.right-o-t.width),r=t.height>i?n.top+o:Math.min(Math.max(t.top,n.top+o),n.bottom-o-t.height);return{x:e-t.left,y:r-t.top}}function h(t,n){const o=Math.max(n.left-t.x,0,t.x-n.right),a=Math.max(n.top-t.y,0,t.y-n.bottom);return Math.hypot(o,a)}function p(t,n={}){const o=t.ownerDocument.defaultView??window,a=n.pointerTarget??t,i=n.anchorSelector??"[data-ui-affordance]",e=n.nearRadius??16,r=Number.isFinite(e)?Math.max(0,e):16,l=new AbortController;let u=[],c=null,s=null,p=!1;const f=()=>{for(const{element:t}of u)t.hasAttribute("data-ui-proximity")&&t.removeAttribute("data-ui-proximity");t.hasAttribute("data-ui-interaction")&&t.removeAttribute("data-ui-interaction")},d=()=>{u=Array.from(t.querySelectorAll(i)).filter((t=>!t.hasAttribute("disabled")&&"true"!==t.getAttribute("aria-disabled"))).map((t=>({element:t,rect:t.getBoundingClientRect()}))),p=!1},m=()=>{if(c=null,p&&d(),!s)return void f();let n=!1;for(const t of u){const o=h(s,t.rect)<=r;o&&"near"!==t.element.getAttribute("data-ui-proximity")?t.element.setAttribute("data-ui-proximity","near"):!o&&t.element.hasAttribute("data-ui-proximity")&&t.element.removeAttribute("data-ui-proximity"),n||=o}n&&"engaged"!==t.getAttribute("data-ui-interaction")?t.setAttribute("data-ui-interaction","engaged"):!n&&t.hasAttribute("data-ui-interaction")&&t.removeAttribute("data-ui-interaction")},g=()=>{null===c&&(c=o.requestAnimationFrame(m))},y=()=>{p=!0,g()};return a.addEventListener("pointermove",(t=>{s="touch"===t.pointerType?null:{x:t.clientX,y:t.clientY},g()}),{passive:!0,signal:l.signal}),o.addEventListener("resize",y,{passive:!0,signal:l.signal}),o.addEventListener("scroll",y,{passive:!0,capture:!0,signal:l.signal}),o.visualViewport?.addEventListener("resize",y,{passive:!0,signal:l.signal}),o.visualViewport?.addEventListener("scroll",y,{passive:!0,signal:l.signal}),d(),{refresh:y,destroy(){l.abort(),null!==c&&o.cancelAnimationFrame(c),c=null,s=null,f(),u=[]}}}export{t as D,u as a,r as b,p as c}