@threadlabs/looma 0.1.6 → 0.1.8

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 (54) hide show
  1. package/dist/{chunk-3PASQ7DE.js → chunk-UMFO4QNN.js} +26 -26
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/looma.cjs.js +1 -1
  4. package/dist/cjs/ui-dialog.cjs.entry.js +3 -1
  5. package/dist/collection/components/ui-dialog/ui-dialog.js +22 -1
  6. package/dist/components/ui-dialog.js +1 -1
  7. package/dist/esm/loader.js +1 -1
  8. package/dist/esm/looma.js +1 -1
  9. package/dist/esm/ui-dialog.entry.js +3 -1
  10. package/dist/index.cjs +4 -2
  11. package/dist/index.js +2 -2
  12. package/dist/looma/looma.esm.js +1 -1
  13. package/dist/looma/p-5df568d8.entry.js +1 -0
  14. package/dist/types/components/ui-dialog/ui-dialog.d.ts +2 -0
  15. package/dist/types/components.d.ts +9 -0
  16. package/dist/{ui-avatar-group.entry-DBVLQ4KB.js → ui-avatar-group.entry-S6DFXYB7.js} +1 -1
  17. package/dist/{ui-avatar.entry-2WTBM2EC.js → ui-avatar.entry-MDRGXLWQ.js} +1 -1
  18. package/dist/{ui-badge.entry-XKIGBK5V.js → ui-badge.entry-RLL4YKPD.js} +1 -1
  19. package/dist/{ui-button.entry-PWT56MPD.js → ui-button.entry-IYMYLBFY.js} +1 -1
  20. package/dist/{ui-checkbox.entry-QT5S7EEL.js → ui-checkbox.entry-K5FGWDG2.js} +1 -1
  21. package/dist/{ui-context-menu.entry-NGWR3LOZ.js → ui-context-menu.entry-KWXXJ3ZV.js} +1 -1
  22. package/dist/{ui-dialog.entry-PEDDIALQ.js → ui-dialog.entry-RKHLQLQM.js} +4 -2
  23. package/dist/{ui-disclosure.entry-UKO7MAZM.js → ui-disclosure.entry-FRZKGEJP.js} +1 -1
  24. package/dist/{ui-floating-action-button.entry-SSGHRMCO.js → ui-floating-action-button.entry-BH4FDSTL.js} +1 -1
  25. package/dist/{ui-form-field.entry-6TZCWPYL.js → ui-form-field.entry-3CR2KSUH.js} +1 -1
  26. package/dist/{ui-icon-button.entry-WMCYMK2H.js → ui-icon-button.entry-LB54U25M.js} +1 -1
  27. package/dist/{ui-input.entry-AZ5BGQNA.js → ui-input.entry-5PQR37HS.js} +1 -1
  28. package/dist/{ui-menu-item.entry-L4NJDBKF.js → ui-menu-item.entry-2T3QWHLK.js} +1 -1
  29. package/dist/{ui-menu.entry-DGUYAE3Q.js → ui-menu.entry-Q5Z5YO5P.js} +1 -1
  30. package/dist/{ui-popover.entry-A54EKVZG.js → ui-popover.entry-4P2NWWAY.js} +1 -1
  31. package/dist/{ui-radio-group.entry-6YP4LY4N.js → ui-radio-group.entry-QKPRNV26.js} +1 -1
  32. package/dist/{ui-radio.entry-CGYNK7PN.js → ui-radio.entry-O4DOMFNU.js} +1 -1
  33. package/dist/{ui-search-result-row.entry-DGKSI2QM.js → ui-search-result-row.entry-BR5O3UCH.js} +1 -1
  34. package/dist/{ui-search-shell.entry-3F5ASGTW.js → ui-search-shell.entry-2ZBP7SA3.js} +1 -1
  35. package/dist/{ui-select.entry-SXSZPVXA.js → ui-select.entry-L75HQY72.js} +1 -1
  36. package/dist/{ui-switch.entry-AD4EVUWM.js → ui-switch.entry-L5QWD3BT.js} +1 -1
  37. package/dist/{ui-tabs.entry-WLKO5G5N.js → ui-tabs.entry-KWRD6Y7J.js} +1 -1
  38. package/dist/{ui-textarea.entry-IHPC7Q4R.js → ui-textarea.entry-JC3HPEBS.js} +1 -1
  39. package/dist/{ui-toast-region.entry-GCW2LJAC.js → ui-toast-region.entry-C6KK4OM4.js} +1 -1
  40. package/dist/{ui-tooltip.entry-EU2G6BH5.js → ui-tooltip.entry-G5EOCWP4.js} +1 -1
  41. package/dist/{ui-top-bar.entry-NMAFXVET.js → ui-top-bar.entry-YLKVAQFH.js} +1 -1
  42. package/editor/{chunk-KQQTYVRW.js → chunk-OK5NARJI.js} +30 -13
  43. package/editor/index.js +1 -1
  44. package/editor/ui.js +1 -1
  45. package/editor.css +111 -4
  46. package/layout/index.cjs +140 -1
  47. package/layout/index.css +48 -3
  48. package/layout/index.d.cts +6 -1
  49. package/layout/index.d.ts +6 -1
  50. package/layout/index.js +140 -1
  51. package/layout.css +48 -3
  52. package/package.json +1 -1
  53. package/vue/editor/index.js +91 -12
  54. package/dist/looma/p-a7be33fd.entry.js +0 -1
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.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}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-3PASQ7DE.js";
14
+ } from "./chunk-UMFO4QNN.js";
15
15
 
16
16
  // dist/esm/ui-context-menu.entry.js
17
17
  var uiContextMenuCss = () => `:host{display:contents}.menu{position:fixed;z-index:var(--ui-z-overlay, 1000);min-width:12rem}.menu[data-open]{display:block}.menu:not([data-open]){display:none !important}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-3PASQ7DE.js";
14
+ } from "./chunk-UMFO4QNN.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}}`;
@@ -26,6 +26,8 @@ var UIDialog = class {
26
26
  defaultOpen = false;
27
27
  modal = true;
28
28
  dismissible = true;
29
+ /** Accessible name forwarded to the native dialog surface. */
30
+ label;
29
31
  internalOpen = false;
30
32
  overlayId = `ui-dialog-${Math.random().toString(36).slice(2, 11)}`;
31
33
  dialogRef;
@@ -87,7 +89,7 @@ var UIDialog = class {
87
89
  }
88
90
  };
89
91
  render() {
90
- return h(Host, { key: "2a2fcdfa1e3fac5eb3c0e3d6748cebdf388c216d", "data-open": this.internalOpen ? "" : void 0, onKeyDown: this.onKeydown }, h("dialog", { key: "c3eef2bb3bec77fa518269fce38c19c2ededda49", ref: (el) => this.dialogRef = el, open: this.internalOpen }, h("slot", { key: "9ae5c30d57096184ec287fd9dd134ff566b9fd39" })));
92
+ return h(Host, { key: "75371b61143c8e5d0e53dbcac93d6f8bb89bd80c", "data-open": this.internalOpen ? "" : void 0, onKeyDown: this.onKeydown }, h("dialog", { key: "180104f45ac99661e3ee3c0cc305f9407930cbc1", ref: (el) => this.dialogRef = el, open: this.internalOpen, "aria-label": this.label }, h("slot", { key: "973bf4b444c66ab15391020f5885fbccec96c78c" })));
91
93
  }
92
94
  static get watchers() {
93
95
  return {
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-3PASQ7DE.js";
14
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
5
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
9
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
5
+ } from "./chunk-UMFO4QNN.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)}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)}: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-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
5
+ } from "./chunk-UMFO4QNN.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}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.js";
11
11
 
12
12
  // dist/esm/ui-menu.entry.js
13
13
  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)}::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}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-3PASQ7DE.js";
14
+ } from "./chunk-UMFO4QNN.js";
15
15
 
16
16
  // dist/esm/ui-popover.entry.js
17
17
  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}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
5
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
4
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
9
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.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-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.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}`;
@@ -7,7 +7,7 @@ import {
7
7
  getElement,
8
8
  h,
9
9
  registerInstance
10
- } from "./chunk-3PASQ7DE.js";
10
+ } from "./chunk-UMFO4QNN.js";
11
11
 
12
12
  // dist/esm/ui-toast-region.entry.js
13
13
  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>*{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}`;
@@ -11,7 +11,7 @@ import {
11
11
  getElement,
12
12
  h,
13
13
  registerInstance
14
- } from "./chunk-3PASQ7DE.js";
14
+ } from "./chunk-UMFO4QNN.js";
15
15
 
16
16
  // dist/esm/ui-tooltip.entry.js
17
17
  var uiTooltipCss = () => `:host{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)}:host([hidden]){display:none !important}`;
@@ -3,7 +3,7 @@ import {
3
3
  getElement,
4
4
  h,
5
5
  registerInstance
6
- } from "./chunk-3PASQ7DE.js";
6
+ } from "./chunk-UMFO4QNN.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}}`;
@@ -38,10 +38,14 @@ if (typeof HTMLElement !== "undefined") {
38
38
  this.render();
39
39
  this.addEventListener("click", this.onClick);
40
40
  window.addEventListener("resize", this.scheduleViewportPosition);
41
+ window.visualViewport?.addEventListener("resize", this.scheduleViewportPosition);
42
+ window.visualViewport?.addEventListener("scroll", this.scheduleViewportPosition);
41
43
  }
42
44
  disconnectedCallback() {
43
45
  this.removeEventListener("click", this.onClick);
44
46
  window.removeEventListener("resize", this.scheduleViewportPosition);
47
+ window.visualViewport?.removeEventListener("resize", this.scheduleViewportPosition);
48
+ window.visualViewport?.removeEventListener("scroll", this.scheduleViewportPosition);
45
49
  if (this.positionFrame !== null) {
46
50
  cancelAnimationFrame(this.positionFrame);
47
51
  this.positionFrame = null;
@@ -65,10 +69,13 @@ if (typeof HTMLElement !== "undefined") {
65
69
  menu.style.translate = "";
66
70
  const rect = menu.getBoundingClientRect();
67
71
  const gutter = 12;
68
- const viewportWidth = window.visualViewport?.width ?? window.innerWidth;
69
- const viewportHeight = window.visualViewport?.height ?? window.innerHeight;
70
- const offsetX = rect.right > viewportWidth - gutter ? viewportWidth - gutter - rect.right : Math.max(0, gutter - rect.left);
71
- const offsetY = rect.bottom > viewportHeight - gutter ? viewportHeight - gutter - rect.bottom : Math.max(0, gutter - rect.top);
72
+ const visualViewport = window.visualViewport;
73
+ const viewportLeft = visualViewport?.offsetLeft ?? 0;
74
+ const viewportTop = visualViewport?.offsetTop ?? 0;
75
+ const viewportRight = viewportLeft + (visualViewport?.width ?? window.innerWidth);
76
+ const viewportBottom = viewportTop + (visualViewport?.height ?? window.innerHeight);
77
+ const offsetX = rect.right > viewportRight - gutter ? viewportRight - gutter - rect.right : Math.max(0, viewportLeft + gutter - rect.left);
78
+ const offsetY = rect.bottom > viewportBottom - gutter ? viewportBottom - gutter - rect.bottom : Math.max(0, viewportTop + gutter - rect.top);
72
79
  if (offsetX !== 0 || offsetY !== 0) {
73
80
  menu.style.translate = `${offsetX}px ${offsetY}px`;
74
81
  }
@@ -673,6 +680,8 @@ if (typeof HTMLElement !== "undefined") {
673
680
  this.addEventListener("mouseover", this.onMouseOver);
674
681
  window.addEventListener("resize", this.onViewportChange);
675
682
  window.addEventListener("scroll", this.onViewportChange, true);
683
+ window.visualViewport?.addEventListener("resize", this.onViewportChange);
684
+ window.visualViewport?.addEventListener("scroll", this.onViewportChange);
676
685
  this.render();
677
686
  }
678
687
  disconnectedCallback() {
@@ -681,6 +690,8 @@ if (typeof HTMLElement !== "undefined") {
681
690
  this.removeEventListener("mouseover", this.onMouseOver);
682
691
  window.removeEventListener("resize", this.onViewportChange);
683
692
  window.removeEventListener("scroll", this.onViewportChange, true);
693
+ window.visualViewport?.removeEventListener("resize", this.onViewportChange);
694
+ window.visualViewport?.removeEventListener("scroll", this.onViewportChange);
684
695
  }
685
696
  onMouseDown = (event) => {
686
697
  event.preventDefault();
@@ -726,18 +737,24 @@ if (typeof HTMLElement !== "undefined") {
726
737
  this.style.display = "none";
727
738
  return;
728
739
  }
729
- const viewportWidth = window.innerWidth;
730
- const viewportHeight = window.innerHeight;
740
+ const visualViewport = window.visualViewport;
741
+ const viewportWidth = visualViewport?.width ?? window.innerWidth;
742
+ const viewportHeight = visualViewport?.height ?? window.innerHeight;
731
743
  this.style.display = "block";
732
744
  this.style.position = "fixed";
733
745
  this.style.zIndex = "500";
734
- if (viewportWidth < MOBILE_BREAKPOINT) {
735
- this.style.left = "0";
736
- this.style.right = "0";
737
- this.style.bottom = "0";
738
- this.style.top = "";
739
- this.style.width = "100%";
740
- this.style.maxHeight = "60dvh";
746
+ if (window.innerWidth < MOBILE_BREAKPOINT) {
747
+ const toolbarReserve = 56;
748
+ const menuHeight = Math.min(
749
+ MENU_HEIGHT_ESTIMATE,
750
+ Math.max(0, viewportHeight - toolbarReserve)
751
+ );
752
+ this.style.left = `${visualViewport?.offsetLeft ?? 0}px`;
753
+ this.style.right = "";
754
+ this.style.bottom = "";
755
+ this.style.top = `${(visualViewport?.offsetTop ?? 0) + viewportHeight - menuHeight - toolbarReserve}px`;
756
+ this.style.width = `${viewportWidth}px`;
757
+ this.style.maxHeight = `${menuHeight}px`;
741
758
  return;
742
759
  }
743
760
  let top;
package/editor/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./chunk-KQQTYVRW.js";
1
+ import "./chunk-OK5NARJI.js";
2
2
  import {
3
3
  LoomaSlashCommand,
4
4
  LoomaTable,
package/editor/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./chunk-KQQTYVRW.js";
1
+ import "./chunk-OK5NARJI.js";
2
2
  import {
3
3
  TABLE_CELL_BACKGROUND_OPTIONS,
4
4
  TABLE_CELL_BACKGROUND_PRESETS
package/editor.css CHANGED
@@ -221,6 +221,111 @@
221
221
  position: fixed;
222
222
  }
223
223
 
224
+ .looma-editor__mobile-toolbar-shell {
225
+ position: fixed;
226
+ z-index: var(--ui-editor-mobile-toolbar-z-index, var(--ui-editor-popover-z-index, 300));
227
+ display: flex;
228
+ align-items: stretch;
229
+ min-height: var(--ui-editor-toolbar-mobile-min-height, 56px);
230
+ padding:
231
+ var(--ui-editor-mobile-toolbar-padding-block, 4px)
232
+ max(var(--ui-editor-mobile-toolbar-padding-inline, 8px), env(safe-area-inset-left));
233
+ overflow-x: auto;
234
+ overflow-y: hidden;
235
+ overscroll-behavior-inline: contain;
236
+ -webkit-overflow-scrolling: touch;
237
+ scroll-snap-type: x mandatory;
238
+ scrollbar-width: none;
239
+ background: var(--ui-editor-toolbar-bg, var(--ui-surface, #fff));
240
+ border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
241
+ box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
242
+ }
243
+
244
+ .looma-editor__mobile-toolbar-shell::-webkit-scrollbar {
245
+ display: none;
246
+ }
247
+
248
+ .looma-editor__mobile-toolbar-shell > *,
249
+ .looma-editor__mobile-toolbar-shell button,
250
+ .looma-editor__mobile-toolbar-shell ui-icon-button {
251
+ flex: 0 0 auto;
252
+ scroll-snap-align: start;
253
+ }
254
+
255
+ .looma-editor__mobile-toolbar-shell ui-editor-toolbar[floating] {
256
+ width: 100%;
257
+ max-width: none;
258
+ min-height: 100%;
259
+ padding: 0;
260
+ overflow-x: auto;
261
+ overflow-y: hidden;
262
+ overscroll-behavior-inline: contain;
263
+ -webkit-overflow-scrolling: touch;
264
+ scroll-snap-type: x mandatory;
265
+ scrollbar-width: none;
266
+ background: transparent;
267
+ border: 0;
268
+ border-radius: 0;
269
+ box-shadow: none;
270
+ backdrop-filter: none;
271
+ }
272
+
273
+ .looma-editor__mobile-toolbar-shell ui-editor-toolbar[floating]::-webkit-scrollbar {
274
+ display: none;
275
+ }
276
+
277
+ .looma-editor__mobile-toolbar-shell .looma-editor__toolbar-button {
278
+ --ui-icon-button-size-sm: var(--ui-editor-toolbar-mobile-button-size, 44px);
279
+ }
280
+
281
+ .looma-editor__mobile-toolbar-back {
282
+ min-width: 44px;
283
+ min-height: 44px;
284
+ padding: 0 var(--ui-space-3, 12px);
285
+ border: 0;
286
+ border-radius: var(--ui-radius-md, 6px);
287
+ background: transparent;
288
+ color: var(--ui-text-secondary, #4b5563);
289
+ cursor: pointer;
290
+ font: inherit;
291
+ white-space: nowrap;
292
+ }
293
+
294
+ .looma-editor__mobile-toolbar-back:is(:hover, :focus-visible) {
295
+ background: var(--ui-surface-hover, #f3f4f6);
296
+ color: var(--ui-text-primary, #111827);
297
+ }
298
+
299
+ .looma-editor__mobile-toolbar-shell .ui-editor-table-toolbar {
300
+ min-width: max-content;
301
+ min-height: 100%;
302
+ padding: 0;
303
+ background: transparent;
304
+ border: 0;
305
+ border-radius: 0;
306
+ box-shadow: none;
307
+ backdrop-filter: none;
308
+ }
309
+
310
+ .looma-editor__mobile-toolbar-shell .ui-editor-table-toolbar button {
311
+ min-height: 44px;
312
+ background: transparent;
313
+ }
314
+
315
+ .looma-editor__mobile-toolbar-shell .ui-editor-table-toolbar button[data-active="true"],
316
+ .looma-editor__mobile-toolbar-shell .ui-editor-table-toolbar button[data-selected="true"] {
317
+ background: var(--ui-accent-soft, var(--ui-accent-subtle, #e8f0fb));
318
+ }
319
+
320
+ .looma-editor__mobile-toolbar-shell .ui-editor-table-toolbar__menu {
321
+ top: auto;
322
+ right: 0;
323
+ bottom: calc(100% + var(--ui-space-2, 8px));
324
+ max-height: min(50dvh, 22rem);
325
+ overflow-y: auto;
326
+ overscroll-behavior: contain;
327
+ }
328
+
224
329
  .looma-editor__table-overlay-shell {
225
330
  z-index: var(--ui-editor-overlay-z-index, 299);
226
331
  overflow: visible;
@@ -912,8 +1017,10 @@ ui-editor-toolbar[floating] {
912
1017
 
913
1018
  .ProseMirror .tableWrapper {
914
1019
  max-width: 100%;
915
- overflow-x: hidden;
1020
+ overflow-x: auto;
916
1021
  overflow-y: visible;
1022
+ overscroll-behavior-inline: contain;
1023
+ -webkit-overflow-scrolling: touch;
917
1024
  }
918
1025
 
919
1026
  /* ProseMirror table (for when Looma editor content is rendered) */
@@ -925,9 +1032,9 @@ ui-editor-toolbar[floating] {
925
1032
  .ProseMirror table {
926
1033
  border-collapse: collapse;
927
1034
  margin: 0;
928
- width: 100% !important;
1035
+ width: max-content !important;
929
1036
  min-width: 100%;
930
- max-width: 100% !important;
1037
+ max-width: none !important;
931
1038
  table-layout: fixed;
932
1039
  }
933
1040
 
@@ -941,7 +1048,7 @@ ui-editor-toolbar[floating] {
941
1048
  border: 1px solid var(--ui-border, #e5e7eb);
942
1049
  padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
943
1050
  vertical-align: top;
944
- min-width: 80px;
1051
+ min-width: var(--ui-editor-table-cell-min-width, 112px);
945
1052
  text-align: left;
946
1053
  overflow-wrap: anywhere;
947
1054
  }