oasis-editor 0.0.128 → 0.0.130

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 (30) hide show
  1. package/dist/{OasisEditorApp-3vvH6KOz.js → OasisEditorApp-BQvsqccA.js} +492 -21
  2. package/dist/app/controllers/useEditorLayout.d.ts +2 -1
  3. package/dist/app/controllers/useEditorTableCornerResize.d.ts +56 -0
  4. package/dist/core/commands/publicCommandTypes.d.ts +10 -0
  5. package/dist/core/commands/table/tableColumnCommands.d.ts +6 -0
  6. package/dist/core/commands/table/tableRowCommands.d.ts +6 -0
  7. package/dist/core/pluginUiTypes.d.ts +8 -1
  8. package/dist/core/transactionMergeKeys.d.ts +3 -0
  9. package/dist/i18n/locales/en.d.ts +19 -0
  10. package/dist/i18n/locales/pt-BR.d.ts +19 -0
  11. package/dist/{index-Ceyv5JS5.js → index-CX5iCo8O.js} +590 -350
  12. package/dist/oasis-editor.css +1 -1
  13. package/dist/oasis-editor.js +1 -1
  14. package/dist/oasis-editor.umd.cjs +4 -4
  15. package/dist/plugins/internal/essentialsCapabilities.d.ts +20 -0
  16. package/dist/ui/OasisEditorEditor.d.ts +3 -1
  17. package/dist/ui/app/EditorDragLayers.d.ts +2 -0
  18. package/dist/ui/app/buildEditorViewProps.d.ts +4 -1
  19. package/dist/ui/app/createEditorDocumentRuntime.d.ts +1 -0
  20. package/dist/ui/app/createEditorInteractionRuntime.d.ts +1 -0
  21. package/dist/ui/app/useEditorInteractionWiring.d.ts +2 -0
  22. package/dist/ui/canvas/CanvasSelectionGeometry.d.ts +9 -0
  23. package/dist/ui/components/Toolbar/presets/builtinToolbarIds.d.ts +0 -1
  24. package/dist/ui/components/Toolbar/ribbon/RibbonTabs.d.ts +2 -1
  25. package/dist/ui/components/Toolbar/ribbon/ribbonModel.d.ts +10 -2
  26. package/dist/ui/components/Toolbar/schema/items.d.ts +1 -1
  27. package/dist/ui/editorUiTypes.d.ts +9 -0
  28. package/dist/ui/overlays/TableHandlesOverlay.d.ts +22 -0
  29. package/package.json +1 -1
  30. package/dist/ui/components/Toolbar/groups/TableGroup.d.ts +0 -7
@@ -1681,6 +1681,16 @@ const en = {
1681
1681
  "table.alignLeft": "Align Left",
1682
1682
  "table.alignCenter": "Align Center",
1683
1683
  "table.alignRight": "Align Right",
1684
+ "table.headerRow": "Header Row",
1685
+ "table.totalRow": "Total Row",
1686
+ "table.bandedRows": "Banded Rows",
1687
+ "table.firstColumn": "First Column",
1688
+ "table.lastColumn": "Last Column",
1689
+ "table.bandedColumns": "Banded Columns",
1690
+ "table.tableStyle": "Table Style",
1691
+ "table.autoFit": "AutoFit",
1692
+ "table.distributeRows": "Distribute Rows",
1693
+ "table.distributeColumns": "Distribute Columns",
1684
1694
  "table.cellWidth": "Cell Width",
1685
1695
  "table.cellBgColorPrompt": "Cell Background Color:",
1686
1696
  "table.cellWidthPrompt": "Cell Width (e.g. 50% or 200pt):",
@@ -1803,6 +1813,8 @@ const en = {
1803
1813
  "ribbon.tab.collaboration": "Collaboration",
1804
1814
  "ribbon.tab.protection": "Protection",
1805
1815
  "ribbon.tab.view": "View",
1816
+ "ribbon.tab.tableDesign": "Table Design",
1817
+ "ribbon.tab.tableLayout": "Table Layout",
1806
1818
  "ribbon.tab.plugins": "Plugins",
1807
1819
  "ribbon.tab.ai": "AI",
1808
1820
  // Ribbon groups
@@ -1819,6 +1831,13 @@ const en = {
1819
1831
  "ribbon.group.table": "Table",
1820
1832
  "ribbon.group.section": "Section",
1821
1833
  "ribbon.group.general": "General",
1834
+ "ribbon.group.tableStyleOptions": "Table Style Options",
1835
+ "ribbon.group.tableStyles": "Table Styles",
1836
+ "ribbon.group.borders": "Borders",
1837
+ "ribbon.group.rowsColumns": "Rows & Columns",
1838
+ "ribbon.group.merge": "Merge",
1839
+ "ribbon.group.cellSize": "Cell Size",
1840
+ "ribbon.group.alignment": "Alignment",
1822
1841
  // Export
1823
1842
  "toolbar.exportDocx": "Export DOCX",
1824
1843
  "toolbar.exportPdf": "Export PDF",
@@ -2209,6 +2228,16 @@ const ptBR = {
2209
2228
  "table.alignLeft": "Alinhar à Esquerda",
2210
2229
  "table.alignCenter": "Centralizar",
2211
2230
  "table.alignRight": "Alinhar à Direita",
2231
+ "table.headerRow": "Linha de Cabeçalho",
2232
+ "table.totalRow": "Linha de Totais",
2233
+ "table.bandedRows": "Linhas em Tiras",
2234
+ "table.firstColumn": "Primeira Coluna",
2235
+ "table.lastColumn": "Última Coluna",
2236
+ "table.bandedColumns": "Colunas em Tiras",
2237
+ "table.tableStyle": "Estilo de Tabela",
2238
+ "table.autoFit": "AutoAjuste",
2239
+ "table.distributeRows": "Distribuir Linhas",
2240
+ "table.distributeColumns": "Distribuir Colunas",
2212
2241
  "table.cellWidth": "Largura da Célula",
2213
2242
  "table.cellBgColorPrompt": "Cor de Fundo da Célula:",
2214
2243
  "table.cellWidthPrompt": "Largura da Célula (ex: 50% ou 200pt):",
@@ -2331,6 +2360,8 @@ const ptBR = {
2331
2360
  "ribbon.tab.collaboration": "Colaboração",
2332
2361
  "ribbon.tab.protection": "Proteção",
2333
2362
  "ribbon.tab.view": "Exibir",
2363
+ "ribbon.tab.tableDesign": "Design da Tabela",
2364
+ "ribbon.tab.tableLayout": "Layout da Tabela",
2334
2365
  "ribbon.tab.plugins": "Plugins",
2335
2366
  "ribbon.tab.ai": "IA",
2336
2367
  // Ribbon groups
@@ -2347,6 +2378,13 @@ const ptBR = {
2347
2378
  "ribbon.group.table": "Tabela",
2348
2379
  "ribbon.group.section": "Seção",
2349
2380
  "ribbon.group.general": "Geral",
2381
+ "ribbon.group.tableStyleOptions": "Opções de Estilo de Tabela",
2382
+ "ribbon.group.tableStyles": "Estilos de Tabela",
2383
+ "ribbon.group.borders": "Bordas",
2384
+ "ribbon.group.rowsColumns": "Linhas e Colunas",
2385
+ "ribbon.group.merge": "Mesclar",
2386
+ "ribbon.group.cellSize": "Tamanho da Célula",
2387
+ "ribbon.group.alignment": "Alinhamento",
2350
2388
  // Export
2351
2389
  "toolbar.exportDocx": "Exportar DOCX",
2352
2390
  "toolbar.exportPdf": "Exportar PDF",
@@ -2548,7 +2586,7 @@ function OasisBrandMark(props) {
2548
2586
  return _el$;
2549
2587
  })();
2550
2588
  }
2551
- var _tmpl$$10 = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$D = /* @__PURE__ */ template(`<div role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-progress-track><div>`), _tmpl$3$q = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2589
+ var _tmpl$$10 = /* @__PURE__ */ template(`<div class=oasis-editor-import-progress-label>`), _tmpl$2$C = /* @__PURE__ */ template(`<div role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-progress-track><div>`), _tmpl$3$q = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>Done`);
2552
2590
  function OasisEditorLoading(props) {
2553
2591
  const t = useI18n();
2554
2592
  const variant = () => props.variant ?? "overlay";
@@ -2558,7 +2596,7 @@ function OasisEditorLoading(props) {
2558
2596
  };
2559
2597
  const isDone = () => (pct() ?? 0) >= 100;
2560
2598
  return (() => {
2561
- var _el$ = _tmpl$2$D(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
2599
+ var _el$ = _tmpl$2$C(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
2562
2600
  insert(_el$2, createComponent(OasisBrandMark, {
2563
2601
  height: 40,
2564
2602
  "class": "oasis-editor-loading-mark"
@@ -2623,7 +2661,7 @@ function OasisEditorAppLazy(props = {}) {
2623
2661
  onCleanup(() => {
2624
2662
  cancelled = true;
2625
2663
  });
2626
- import("./OasisEditorApp-3vvH6KOz.js").then((m) => {
2664
+ import("./OasisEditorApp-BQvsqccA.js").then((m) => {
2627
2665
  cancelled = true;
2628
2666
  setProgress(1);
2629
2667
  setTimeout(() => setApp(() => m.OasisEditorApp), 180);
@@ -5210,9 +5248,9 @@ function mount(target, props = {}) {
5210
5248
  unmount: () => client.dispose()
5211
5249
  });
5212
5250
  }
5213
- var _tmpl$$$ = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none aria-hidden=true><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</text><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1`), _tmpl$2$C = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"aria-hidden=true><g fill=currentColor><path d="M3.375 4.875 L7.125 8.625 L3.375 12.375 L2.25 11.25 L4.875 8.625 L2.25 6 Z"></path><rect x=10.125 y=6 width=9 height=1.6875 rx=0.25></rect><rect x=5.625 y=10.875 width=13.5 height=1.6875 rx=0.25></rect><rect x=5.625 y=15.75 width=13.5 height=1.6875 rx=0.25>`), _tmpl$3$p = /* @__PURE__ */ template(`<i>`);
5251
+ var _tmpl$$$ = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none aria-hidden=true><text x=2 y=18 font-family="'Segoe UI', Arial, sans-serif"font-size=14 font-weight=700 fill=currentColor>ab</text><text x=15.5 y=11 font-family="'Segoe UI', Arial, sans-serif"font-size=10 font-weight=700 fill=#c00000>1`), _tmpl$2$B = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"aria-hidden=true><g fill=currentColor><path d="M3.375 4.875 L7.125 8.625 L3.375 12.375 L2.25 11.25 L4.875 8.625 L2.25 6 Z"></path><rect x=10.125 y=6 width=9 height=1.6875 rx=0.25></rect><rect x=5.625 y=10.875 width=13.5 height=1.6875 rx=0.25></rect><rect x=5.625 y=15.75 width=13.5 height=1.6875 rx=0.25>`), _tmpl$3$p = /* @__PURE__ */ template(`<i>`);
5214
5252
  const FootnoteIcon = () => _tmpl$$$();
5215
- const SpecialIndentFirstLineIcon = () => _tmpl$2$C();
5253
+ const SpecialIndentFirstLineIcon = () => _tmpl$2$B();
5216
5254
  const CUSTOM_ICONS = {
5217
5255
  footnote: FootnoteIcon,
5218
5256
  specialIndentFirstLine: SpecialIndentFirstLineIcon
@@ -5300,7 +5338,7 @@ function Text$1(props) {
5300
5338
  }
5301
5339
  }));
5302
5340
  }
5303
- var _tmpl$$Z = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$B = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$o = /* @__PURE__ */ template(`<div class=oasis-menubar-menu>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$d = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$6$8 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`);
5341
+ var _tmpl$$Z = /* @__PURE__ */ template(`<div class=oasis-menubar role=menubar>`), _tmpl$2$A = /* @__PURE__ */ template(`<div class=oasis-menubar-dropdown role=menu>`), _tmpl$3$o = /* @__PURE__ */ template(`<div class=oasis-menubar-menu>`), _tmpl$4$j = /* @__PURE__ */ template(`<div class=oasis-menubar-separator role=separator>`), _tmpl$5$d = /* @__PURE__ */ template(`<i class=oasis-menubar-submenu-icon data-lucide=chevron-right>`), _tmpl$6$8 = /* @__PURE__ */ template(`<div class=oasis-menubar-submenu role=menu>`);
5304
5342
  function Menubar(props) {
5305
5343
  const t = useI18n();
5306
5344
  const [activeMenu, setActiveMenu] = createSignal(null);
@@ -5409,7 +5447,7 @@ function Menubar(props) {
5409
5447
  return activeMenu() === topLevel.id;
5410
5448
  },
5411
5449
  get children() {
5412
- var _el$3 = _tmpl$2$B();
5450
+ var _el$3 = _tmpl$2$A();
5413
5451
  insert(_el$3, createComponent(For, {
5414
5452
  get each() {
5415
5453
  return topLevel.children;
@@ -5640,7 +5678,7 @@ function getCaretRectFromSnapshot(snapshot, position2, paragraphOffset) {
5640
5678
  );
5641
5679
  return rectFromBox(slot.left, slot.top, 1, slot.height || line.height);
5642
5680
  }
5643
- var _tmpl$$X = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$A = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$n = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$i = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$c = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
5681
+ var _tmpl$$X = /* @__PURE__ */ template(`<span class=oasis-outline-title>`), _tmpl$2$z = /* @__PURE__ */ template(`<div class=oasis-outline-list>`), _tmpl$3$n = /* @__PURE__ */ template(`<div class=oasis-outline-panel><div class=oasis-outline-header><button class=oasis-outline-toggle><i>`), _tmpl$4$i = /* @__PURE__ */ template(`<div class=oasis-outline-empty>`), _tmpl$5$c = /* @__PURE__ */ template(`<div class=oasis-outline-item>`);
5644
5682
  function OutlinePanel(props) {
5645
5683
  const t = useI18n();
5646
5684
  const [collapsed, setCollapsed] = createSignal(props.defaultCollapsed ?? false);
@@ -5728,7 +5766,7 @@ function OutlinePanel(props) {
5728
5766
  return !collapsed();
5729
5767
  },
5730
5768
  get children() {
5731
- var _el$6 = _tmpl$2$A();
5769
+ var _el$6 = _tmpl$2$z();
5732
5770
  insert(_el$6, createComponent(Show, {
5733
5771
  get when() {
5734
5772
  return items().length > 0;
@@ -5785,7 +5823,7 @@ function OutlinePanel(props) {
5785
5823
  })();
5786
5824
  }
5787
5825
  delegateEvents(["click"]);
5788
- var _tmpl$$W = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-overflow-manager style="display:flex;align-items:center;flex:1 1 0%;min-width:0;position:relative;margin-right:8px"><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-toolbar-more-measure"aria-hidden=true tabindex=-1 style=position:absolute;visibility:hidden;pointer-events:none;right:0><i data-lucide=ellipsis></i></button><div style="display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;overflow:hidden"></div><div style=flex-shrink:0;padding-left:8px;padding-right:16px;align-items:center><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"data-testid=editor-toolbar-overflow-dropdown><i data-lucide=ellipsis></i></button></div><div class="oasis-editor-toolbar-overflow-dropdown-menu oasis-editor-toolbar-overflow-menu"style="flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);max-width:calc(100vw - 16px);overflow-x:hidden;overflow-y:auto">`), _tmpl$2$z = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
5826
+ var _tmpl$$W = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-overflow-manager style="display:flex;align-items:center;flex:1 1 0%;min-width:0;position:relative;margin-right:8px"><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-toolbar-more-measure"aria-hidden=true tabindex=-1 style=position:absolute;visibility:hidden;pointer-events:none;right:0><i data-lucide=ellipsis></i></button><div style="display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;overflow:hidden"></div><div style=flex-shrink:0;padding-left:8px;padding-right:16px;align-items:center><button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"data-testid=editor-toolbar-overflow-dropdown><i data-lucide=ellipsis></i></button></div><div class="oasis-editor-toolbar-overflow-dropdown-menu oasis-editor-toolbar-overflow-menu"style="flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px;padding:8px;background:var(--oasis-paper);border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);max-width:calc(100vw - 16px);overflow-x:hidden;overflow-y:auto">`), _tmpl$2$y = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item-wrapper style=display:flex;align-items:center;flex-shrink:0>`);
5789
5827
  function ToolbarOverflowManager(props) {
5790
5828
  const t = useI18n();
5791
5829
  const [overflowCount, setOverflowCount] = createSignal(0);
@@ -5941,7 +5979,7 @@ function ToolbarOverflowManager(props) {
5941
5979
  return items();
5942
5980
  },
5943
5981
  children: (item) => (() => {
5944
- var _el$7 = _tmpl$2$z();
5982
+ var _el$7 = _tmpl$2$y();
5945
5983
  insert(_el$7, item);
5946
5984
  return _el$7;
5947
5985
  })()
@@ -6017,12 +6055,12 @@ function resolveLabel(item, api) {
6017
6055
  if (item.labelKey) return api.t(item.labelKey);
6018
6056
  return void 0;
6019
6057
  }
6020
- var _tmpl$$V = /* @__PURE__ */ template(`<span>`), _tmpl$2$y = /* @__PURE__ */ template(`<button type=button>`);
6058
+ var _tmpl$$V = /* @__PURE__ */ template(`<span>`), _tmpl$2$x = /* @__PURE__ */ template(`<button type=button>`);
6021
6059
  function Button$1(props) {
6022
6060
  const [local, others] = splitProps(props, ["icon", "label", "active", "tooltip", "wide", "ribbonSize", "aria-label", "class", "classList"]);
6023
6061
  const ariaLabel = () => local["aria-label"] || local.tooltip || local.label || "";
6024
6062
  return (() => {
6025
- var _el$ = _tmpl$2$y();
6063
+ var _el$ = _tmpl$2$x();
6026
6064
  spread(_el$, mergeProps({
6027
6065
  get ["class"]() {
6028
6066
  return `oasis-editor-tool-button ${local.class || ""}`;
@@ -6210,12 +6248,12 @@ function Popover(props) {
6210
6248
  }
6211
6249
  })];
6212
6250
  }
6213
- var _tmpl$$T = /* @__PURE__ */ template(`<div>`), _tmpl$2$x = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$m = /* @__PURE__ */ template(`<i>`), _tmpl$4$h = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$5$b = /* @__PURE__ */ template(`<i data-lucide=chevron-down class=oasis-editor-dropdown-chevron>`), _tmpl$6$7 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
6251
+ var _tmpl$$T = /* @__PURE__ */ template(`<div>`), _tmpl$2$w = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$3$m = /* @__PURE__ */ template(`<i>`), _tmpl$4$h = /* @__PURE__ */ template(`<span class=oasis-editor-tool-button-label>`), _tmpl$5$b = /* @__PURE__ */ template(`<i data-lucide=chevron-down class=oasis-editor-dropdown-chevron>`), _tmpl$6$7 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown"aria-haspopup=menu>`);
6214
6252
  function Menu(props) {
6215
6253
  const [open, setOpen] = createSignal(false);
6216
6254
  const ariaLabel = () => props.tooltip || props.label || "";
6217
6255
  return (() => {
6218
- var _el$ = _tmpl$2$x();
6256
+ var _el$ = _tmpl$2$w();
6219
6257
  insert(_el$, createComponent(Popover, {
6220
6258
  get open() {
6221
6259
  return open();
@@ -6406,7 +6444,7 @@ function SplitButton(props) {
6406
6444
  });
6407
6445
  }
6408
6446
  delegateEvents(["click"]);
6409
- var _tmpl$$P = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$w = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch></span><span>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-theme-grid>`), _tmpl$4$g = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-standard-grid>`), _tmpl$5$a = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$6$6 = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$7$2 = /* @__PURE__ */ template(`<span class=oasis-editor-color-split-icon><i></i><span class=oasis-editor-color-split-indicator>`), _tmpl$8$1 = /* @__PURE__ */ template(`<i data-lucide=slash>`), _tmpl$9 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$0 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
6447
+ var _tmpl$$P = /* @__PURE__ */ template(`<i data-lucide=type>`), _tmpl$2$v = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class=oasis-editor-color-menu-action-swatch></span><span>`), _tmpl$3$l = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-theme-grid>`), _tmpl$4$g = /* @__PURE__ */ template(`<div class=oasis-editor-color-menu-section><div class=oasis-editor-color-menu-heading></div><div class=oasis-editor-color-standard-grid>`), _tmpl$5$a = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action role=menuitem><span class="oasis-editor-color-menu-action-swatch oasis-editor-color-menu-more-swatch"></span><span>`), _tmpl$6$6 = /* @__PURE__ */ template(`<input type=color class=oasis-editor-color-custom-input>`), _tmpl$7$2 = /* @__PURE__ */ template(`<span class=oasis-editor-color-split-icon><i></i><span class=oasis-editor-color-split-indicator>`), _tmpl$8$1 = /* @__PURE__ */ template(`<i data-lucide=slash>`), _tmpl$9 = /* @__PURE__ */ template(`<div class=oasis-editor-color-theme-column>`), _tmpl$0 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-swatch>`);
6410
6448
  const normalizeColor = (value) => (value == null ? void 0 : value.trim().toLowerCase()) ?? "";
6411
6449
  function ColorPicker(props) {
6412
6450
  const [isOpen, setIsOpen] = createSignal(false);
@@ -6471,7 +6509,7 @@ function ColorPicker(props) {
6471
6509
  return clearLabel();
6472
6510
  },
6473
6511
  get children() {
6474
- var _el$ = _tmpl$2$w(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling;
6512
+ var _el$ = _tmpl$2$v(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling;
6475
6513
  _el$.$$click = () => applyColor(null);
6476
6514
  insert(_el$2, createComponent(Show, {
6477
6515
  get when() {
@@ -6594,7 +6632,7 @@ function ColorPicker(props) {
6594
6632
  });
6595
6633
  }
6596
6634
  delegateEvents(["click", "input"]);
6597
- var _tmpl$$O = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$v = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$k = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$f = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button><i>`), _tmpl$5$9 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
6635
+ var _tmpl$$O = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-status>`), _tmpl$2$u = /* @__PURE__ */ template(`<div class=oasis-editor-table-grid-picker-grid>`), _tmpl$3$k = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$f = /* @__PURE__ */ template(`<button type=button class=oasis-editor-tool-button><i>`), _tmpl$5$9 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-table-grid-picker-cell>`);
6598
6636
  function GridPicker(props) {
6599
6637
  const t = useI18n();
6600
6638
  const [isOpen, setIsOpen] = createSignal(false);
@@ -6707,7 +6745,7 @@ function GridPicker(props) {
6707
6745
  insert(_el$2, statusLabel);
6708
6746
  return _el$2;
6709
6747
  })(), (() => {
6710
- var _el$3 = _tmpl$2$v();
6748
+ var _el$3 = _tmpl$2$u();
6711
6749
  insert(_el$3, createComponent(For, {
6712
6750
  get each() {
6713
6751
  return rows();
@@ -6807,7 +6845,7 @@ const DEFAULT_PALETTE = {
6807
6845
  standardColors: STANDARD_COLORS,
6808
6846
  allowCustom: true
6809
6847
  };
6810
- var _tmpl$$N = /* @__PURE__ */ template(`<button type=button class=oasis-editor-style-gallery-card role=option><span>`), _tmpl$2$u = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery-grid>`), _tmpl$3$j = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery><div class=oasis-editor-style-gallery-ribbon><div class=oasis-editor-style-gallery-strip role=listbox></div><button type=button class=oasis-editor-style-gallery-expand aria-haspopup=listbox><i data-lucide=chevron-down>`), _tmpl$4$e = /* @__PURE__ */ template(`<option>`);
6848
+ var _tmpl$$N = /* @__PURE__ */ template(`<button type=button class=oasis-editor-style-gallery-card role=option><span>`), _tmpl$2$t = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery-grid>`), _tmpl$3$j = /* @__PURE__ */ template(`<div class=oasis-editor-style-gallery><div class=oasis-editor-style-gallery-ribbon><div class=oasis-editor-style-gallery-strip role=listbox></div><button type=button class=oasis-editor-style-gallery-expand aria-haspopup=listbox><i data-lucide=chevron-down>`), _tmpl$4$e = /* @__PURE__ */ template(`<option>`);
6811
6849
  function getQuickStyles(styles) {
6812
6850
  const applicable = styles.filter((style2) => style2.type !== "table" && (!style2.semiHidden || style2.unhideWhenUsed && style2.isUsed));
6813
6851
  const hasQuickStyles = applicable.some((style2) => style2.qFormat === true);
@@ -6967,7 +7005,7 @@ function StyleGallery(props) {
6967
7005
  return _el$4;
6968
7006
  })(),
6969
7007
  get children() {
6970
- var _el$3 = _tmpl$2$u();
7008
+ var _el$3 = _tmpl$2$t();
6971
7009
  _el$3.$$keydown = onPanelKeyDown;
6972
7010
  insert(_el$3, cards);
6973
7011
  return _el$3;
@@ -6975,7 +7013,7 @@ function StyleGallery(props) {
6975
7013
  });
6976
7014
  }
6977
7015
  delegateEvents(["click", "keydown"]);
6978
- var _tmpl$$M = /* @__PURE__ */ template(`<option value>`), _tmpl$2$t = /* @__PURE__ */ template(`<option>`), _tmpl$3$i = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
7016
+ var _tmpl$$M = /* @__PURE__ */ template(`<option value>`), _tmpl$2$s = /* @__PURE__ */ template(`<option>`), _tmpl$3$i = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-item style=align-items:center>`);
6979
7017
  function renderMenuContent(content, api) {
6980
7018
  if (content.kind === "custom") {
6981
7019
  return content.render(api);
@@ -7166,7 +7204,7 @@ function RenderSelect(props) {
7166
7204
  return props.item.options(props.api);
7167
7205
  },
7168
7206
  children: (option) => (() => {
7169
- var _el$2 = _tmpl$2$t();
7207
+ var _el$2 = _tmpl$2$s();
7170
7208
  insert(_el$2, () => option.label);
7171
7209
  createRenderEffect(() => _el$2.value = option.value);
7172
7210
  return _el$2;
@@ -7350,9 +7388,15 @@ const RIBBON_TABS = [
7350
7388
  "collaboration",
7351
7389
  "protection",
7352
7390
  "view",
7391
+ "tableDesign",
7392
+ "tableLayout",
7353
7393
  "plugins",
7354
7394
  "ai"
7355
7395
  ];
7396
+ const CONTEXTUAL_TABS = {
7397
+ tableDesign: "tableContext",
7398
+ tableLayout: "tableContext"
7399
+ };
7356
7400
  const TAB_LABEL_KEYS = {
7357
7401
  file: "ribbon.tab.file",
7358
7402
  home: "ribbon.tab.home",
@@ -7363,6 +7407,8 @@ const TAB_LABEL_KEYS = {
7363
7407
  collaboration: "ribbon.tab.collaboration",
7364
7408
  protection: "ribbon.tab.protection",
7365
7409
  view: "ribbon.tab.view",
7410
+ tableDesign: "ribbon.tab.tableDesign",
7411
+ tableLayout: "ribbon.tab.tableLayout",
7366
7412
  plugins: "ribbon.tab.plugins",
7367
7413
  ai: "ribbon.tab.ai"
7368
7414
  };
@@ -7379,10 +7425,26 @@ const GROUP_LABEL_KEYS = {
7379
7425
  document: "ribbon.group.document",
7380
7426
  table: "ribbon.group.table",
7381
7427
  section: "ribbon.group.section",
7382
- general: "ribbon.group.general"
7428
+ general: "ribbon.group.general",
7429
+ tableStyleOptions: "ribbon.group.tableStyleOptions",
7430
+ tableStyles: "ribbon.group.tableStyles",
7431
+ borders: "ribbon.group.borders",
7432
+ rowsColumns: "ribbon.group.rowsColumns",
7433
+ merge: "ribbon.group.merge",
7434
+ cellSize: "ribbon.group.cellSize",
7435
+ alignment: "ribbon.group.alignment"
7383
7436
  };
7384
- function buildRibbonTabDefinitions(t) {
7385
- return RIBBON_TABS.map((id) => ({ id, label: t(TAB_LABEL_KEYS[id]) }));
7437
+ function isRibbonTabVisible(id, api) {
7438
+ const gatingCommand = CONTEXTUAL_TABS[id];
7439
+ if (!gatingCommand) return true;
7440
+ return api ? api.commands.state(gatingCommand).isActive : false;
7441
+ }
7442
+ function buildRibbonTabDefinitions(t, api) {
7443
+ return RIBBON_TABS.filter((id) => isRibbonTabVisible(id, api)).map((id) => ({
7444
+ id,
7445
+ label: t(TAB_LABEL_KEYS[id]),
7446
+ contextual: CONTEXTUAL_TABS[id] !== void 0
7447
+ }));
7386
7448
  }
7387
7449
  const DEFAULT_RIBBON_TAB = "plugins";
7388
7450
  const DEFAULT_RIBBON_GROUP = "general";
@@ -7412,6 +7474,18 @@ const RIBBON_GROUP_ORDER = {
7412
7474
  references: {
7413
7475
  footnotes: 10
7414
7476
  },
7477
+ tableDesign: {
7478
+ tableStyleOptions: 10,
7479
+ tableStyles: 20,
7480
+ borders: 30
7481
+ },
7482
+ tableLayout: {
7483
+ table: 10,
7484
+ rowsColumns: 20,
7485
+ merge: 30,
7486
+ cellSize: 40,
7487
+ alignment: 50
7488
+ },
7415
7489
  plugins: {
7416
7490
  general: 10
7417
7491
  }
@@ -7476,6 +7550,18 @@ const RIBBON_GROUP_RESIZE_DEFAULTS = {
7476
7550
  references: {
7477
7551
  footnotes: { priority: 10, collapsedIcon: "footnote" }
7478
7552
  },
7553
+ tableDesign: {
7554
+ tableStyleOptions: { priority: 20, collapsedIcon: "list-checks" },
7555
+ tableStyles: { priority: 10, collapsedIcon: "table" },
7556
+ borders: { priority: 30, collapsedIcon: "frame" }
7557
+ },
7558
+ tableLayout: {
7559
+ table: { priority: 15, collapsedIcon: "table-properties" },
7560
+ rowsColumns: { priority: 20, collapsedIcon: "rows" },
7561
+ merge: { priority: 30, collapsedIcon: "combine" },
7562
+ cellSize: { priority: 40, collapsedIcon: "move-horizontal" },
7563
+ alignment: { priority: 50, collapsedIcon: "align-left" }
7564
+ },
7479
7565
  plugins: {
7480
7566
  general: { priority: 50, collapsedIcon: "plug" }
7481
7567
  }
@@ -7715,20 +7801,23 @@ function resolveResponsiveRibbonGroups(groups, availableWidth, measurements = {}
7715
7801
  allocatedWidth: allocatedWidths.get(group.id)
7716
7802
  }));
7717
7803
  }
7718
- var _tmpl$$L = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-tabs role=tablist>`), _tmpl$2$s = /* @__PURE__ */ template(`<button type=button class=oasis-editor-ribbon-tab role=tab>`);
7804
+ var _tmpl$$L = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-tabs role=tablist>`), _tmpl$2$r = /* @__PURE__ */ template(`<button type=button class=oasis-editor-ribbon-tab role=tab>`);
7719
7805
  function RibbonTabs(props) {
7720
- const tabs = buildRibbonTabDefinitions(useI18n());
7806
+ const tabs = createMemo(() => buildRibbonTabDefinitions(props.api.t, props.api));
7721
7807
  const moveTab = (current, delta) => {
7722
- const index = tabs.findIndex((tab) => tab.id === current);
7723
- const next = tabs[(index + delta + tabs.length) % tabs.length];
7808
+ const list = tabs();
7809
+ const index = list.findIndex((tab) => tab.id === current);
7810
+ const next = list[(index + delta + list.length) % list.length];
7724
7811
  if (next) props.setActiveTab(next.id);
7725
7812
  };
7726
7813
  return (() => {
7727
7814
  var _el$ = _tmpl$$L();
7728
7815
  insert(_el$, createComponent(For, {
7729
- each: tabs,
7816
+ get each() {
7817
+ return tabs();
7818
+ },
7730
7819
  children: (tab) => (() => {
7731
- var _el$2 = _tmpl$2$s();
7820
+ var _el$2 = _tmpl$2$r();
7732
7821
  _el$2.$$keydown = (event) => {
7733
7822
  if (event.key === "ArrowRight") {
7734
7823
  event.preventDefault();
@@ -7738,22 +7827,24 @@ function RibbonTabs(props) {
7738
7827
  moveTab(tab.id, -1);
7739
7828
  } else if (event.key === "Home") {
7740
7829
  event.preventDefault();
7741
- props.setActiveTab(tabs[0].id);
7830
+ props.setActiveTab(tabs()[0].id);
7742
7831
  } else if (event.key === "End") {
7743
7832
  event.preventDefault();
7744
- props.setActiveTab(tabs[tabs.length - 1].id);
7833
+ const list = tabs();
7834
+ props.setActiveTab(list[list.length - 1].id);
7745
7835
  }
7746
7836
  };
7747
7837
  _el$2.$$click = () => props.setActiveTab(tab.id);
7748
7838
  insert(_el$2, () => tab.label);
7749
7839
  createRenderEffect((_p$) => {
7750
- var _v$ = !!(props.activeTab() === tab.id), _v$2 = props.activeTab() === tab.id, _v$3 = `oasis-editor-ribbon-panel-${tab.id}`, _v$4 = `oasis-editor-ribbon-tab-${tab.id}`, _v$5 = `editor-ribbon-tab-${tab.id}`, _v$6 = props.activeTab() === tab.id ? 0 : -1;
7840
+ var _v$ = !!(props.activeTab() === tab.id), _v$2 = !!(tab.contextual === true), _v$3 = props.activeTab() === tab.id, _v$4 = `oasis-editor-ribbon-panel-${tab.id}`, _v$5 = `oasis-editor-ribbon-tab-${tab.id}`, _v$6 = `editor-ribbon-tab-${tab.id}`, _v$7 = props.activeTab() === tab.id ? 0 : -1;
7751
7841
  _v$ !== _p$.e && _el$2.classList.toggle("oasis-editor-ribbon-tab-active", _p$.e = _v$);
7752
- _v$2 !== _p$.t && setAttribute(_el$2, "aria-selected", _p$.t = _v$2);
7753
- _v$3 !== _p$.a && setAttribute(_el$2, "aria-controls", _p$.a = _v$3);
7754
- _v$4 !== _p$.o && setAttribute(_el$2, "id", _p$.o = _v$4);
7755
- _v$5 !== _p$.i && setAttribute(_el$2, "data-testid", _p$.i = _v$5);
7756
- _v$6 !== _p$.n && setAttribute(_el$2, "tabindex", _p$.n = _v$6);
7842
+ _v$2 !== _p$.t && _el$2.classList.toggle("oasis-editor-ribbon-tab-contextual", _p$.t = _v$2);
7843
+ _v$3 !== _p$.a && setAttribute(_el$2, "aria-selected", _p$.a = _v$3);
7844
+ _v$4 !== _p$.o && setAttribute(_el$2, "aria-controls", _p$.o = _v$4);
7845
+ _v$5 !== _p$.i && setAttribute(_el$2, "id", _p$.i = _v$5);
7846
+ _v$6 !== _p$.n && setAttribute(_el$2, "data-testid", _p$.n = _v$6);
7847
+ _v$7 !== _p$.s && setAttribute(_el$2, "tabindex", _p$.s = _v$7);
7757
7848
  return _p$;
7758
7849
  }, {
7759
7850
  e: void 0,
@@ -7761,7 +7852,8 @@ function RibbonTabs(props) {
7761
7852
  a: void 0,
7762
7853
  o: void 0,
7763
7854
  i: void 0,
7764
- n: void 0
7855
+ n: void 0,
7856
+ s: void 0
7765
7857
  });
7766
7858
  return _el$2;
7767
7859
  })()
@@ -7788,7 +7880,7 @@ function RibbonRow(props) {
7788
7880
  return _el$;
7789
7881
  })();
7790
7882
  }
7791
- var _tmpl$$J = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-large-items>`), _tmpl$2$r = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows><div class=oasis-editor-ribbon-normal-rows>`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-label>`), _tmpl$4$d = /* @__PURE__ */ template(`<section class=oasis-editor-ribbon-group>`), _tmpl$5$8 = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-collapsed-items>`), _tmpl$6$5 = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows>`);
7883
+ var _tmpl$$J = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-large-items>`), _tmpl$2$q = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows><div class=oasis-editor-ribbon-normal-rows>`), _tmpl$3$h = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-label>`), _tmpl$4$d = /* @__PURE__ */ template(`<section class=oasis-editor-ribbon-group>`), _tmpl$5$8 = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-collapsed-items>`), _tmpl$6$5 = /* @__PURE__ */ template(`<div class=oasis-editor-ribbon-group-rows>`);
7792
7884
  function groupItems(group) {
7793
7885
  return [...group.largeItems, ...group.rows[1], ...group.rows[2]];
7794
7886
  }
@@ -7847,7 +7939,7 @@ function RibbonGroup(props) {
7847
7939
  },
7848
7940
  get children() {
7849
7941
  return [(() => {
7850
- var _el$2 = _tmpl$2$r(), _el$4 = _el$2.firstChild;
7942
+ var _el$2 = _tmpl$2$q(), _el$4 = _el$2.firstChild;
7851
7943
  insert(_el$2, createComponent(Show, {
7852
7944
  get when() {
7853
7945
  return props.group.largeItems.length > 0;
@@ -7985,12 +8077,22 @@ function RibbonPanel(props) {
7985
8077
  return _el$;
7986
8078
  })();
7987
8079
  }
7988
- var _tmpl$$H = /* @__PURE__ */ template(`<section class=oasis-editor-toolbar>`), _tmpl$2$q = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-wrap-strip>`);
8080
+ var _tmpl$$H = /* @__PURE__ */ template(`<section class=oasis-editor-toolbar>`), _tmpl$2$p = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-wrap-strip>`);
7989
8081
  const shouldAllowNativeMouseDown = (target) => target instanceof Element && target.closest("select, input, textarea, label") !== null;
7990
8082
  function Toolbar(props) {
7991
8083
  const api = createToolbarApi(props.host, useI18n());
7992
8084
  const [version2, setVersion2] = createSignal(0);
7993
8085
  const [activeTab, setActiveTab] = createSignal("home");
8086
+ const CONTEXTUAL_TABLE_TABS = ["tableDesign", "tableLayout"];
8087
+ createEffect((prevInside) => {
8088
+ const inside = api.commands.state("tableContext").isActive;
8089
+ if (inside && prevInside === false) {
8090
+ setActiveTab("tableDesign");
8091
+ } else if (!inside && CONTEXTUAL_TABLE_TABS.includes(activeTab())) {
8092
+ setActiveTab("home");
8093
+ }
8094
+ return inside;
8095
+ });
7994
8096
  onMount(() => {
7995
8097
  const unsubscribe = props.registry.onChange(() => setVersion2((v) => v + 1));
7996
8098
  onCleanup(unsubscribe);
@@ -8026,7 +8128,8 @@ function Toolbar(props) {
8026
8128
  var _c$ = memo(() => view() === "ribbon");
8027
8129
  return () => _c$() ? [createComponent(RibbonTabs, {
8028
8130
  activeTab,
8029
- setActiveTab
8131
+ setActiveTab,
8132
+ api
8030
8133
  }), createComponent(RibbonPanel, {
8031
8134
  activeTab,
8032
8135
  items,
@@ -8036,7 +8139,7 @@ function Toolbar(props) {
8036
8139
  return renderItems();
8037
8140
  }
8038
8141
  }) : (() => {
8039
- var _el$2 = _tmpl$2$q();
8142
+ var _el$2 = _tmpl$2$p();
8040
8143
  insert(_el$2, renderItems);
8041
8144
  return _el$2;
8042
8145
  })();
@@ -22230,7 +22333,7 @@ function createCanvasPageRenderer(options) {
22230
22333
  }
22231
22334
  };
22232
22335
  }
22233
- var _tmpl$$F = /* @__PURE__ */ template(`<div class="oasis-editor-paper-stack oasis-editor-canvas-stack"style=position:relative>`), _tmpl$2$p = /* @__PURE__ */ template(`<div class=oasis-editor-canvas-page-slot style=position:relative>`), _tmpl$3$g = /* @__PURE__ */ template(`<div class=oasis-editor-paper data-renderer=canvas data-testid=editor-page style=position:relative;z-index:1><canvas>`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=oasis-editor-table-revision-hit style=position:absolute;pointer-events:auto;background:transparent>`);
22336
+ var _tmpl$$F = /* @__PURE__ */ template(`<div class="oasis-editor-paper-stack oasis-editor-canvas-stack"style=position:relative>`), _tmpl$2$o = /* @__PURE__ */ template(`<div class=oasis-editor-canvas-page-slot style=position:relative>`), _tmpl$3$g = /* @__PURE__ */ template(`<div class=oasis-editor-paper data-renderer=canvas data-testid=editor-page style=position:relative;z-index:1><canvas>`), _tmpl$4$c = /* @__PURE__ */ template(`<div class=oasis-editor-table-revision-hit style=position:absolute;pointer-events:auto;background:transparent>`);
22234
22337
  const surfaceLogger = createEditorLogger("canvas-surface");
22235
22338
  function checkBrowserFonts(families) {
22236
22339
  if (typeof document === "undefined" || !document.fonts) {
@@ -22302,7 +22405,7 @@ function CanvasEditorSurface(props) {
22302
22405
  // inserting an image that triggers re-pagination in a narrow viewport),
22303
22406
  // causing "Failed to execute 'insertBefore'" errors.
22304
22407
  (() => {
22305
- var _el$2 = _tmpl$2$p();
22408
+ var _el$2 = _tmpl$2$o();
22306
22409
  insert(_el$2, createComponent(Show, {
22307
22410
  when: index > 0,
22308
22411
  get children() {
@@ -22824,7 +22927,7 @@ function computeRulerTicks(pageWidth, contentLeft, unit) {
22824
22927
  pushSide(-1);
22825
22928
  return ticks;
22826
22929
  }
22827
- var _tmpl$$E = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler data-testid=editor-horizontal-ruler role=presentation><div class=oasis-editor-horizontal-ruler-track><div class=oasis-editor-horizontal-ruler-page><div class=oasis-editor-horizontal-ruler-margin style=left:0px></div><div class=oasis-editor-horizontal-ruler-margin></div><div class=oasis-editor-horizontal-ruler-content></div><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-first-line"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-hanging"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-left-box"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-right-indent">`), _tmpl$2$o = /* @__PURE__ */ template(`<div>`), _tmpl$3$f = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler-label>`);
22930
+ var _tmpl$$E = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler data-testid=editor-horizontal-ruler role=presentation><div class=oasis-editor-horizontal-ruler-track><div class=oasis-editor-horizontal-ruler-page><div class=oasis-editor-horizontal-ruler-margin style=left:0px></div><div class=oasis-editor-horizontal-ruler-margin></div><div class=oasis-editor-horizontal-ruler-content></div><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class=oasis-editor-horizontal-ruler-margin-handle></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-first-line"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-hanging"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-left-box"></button><button type=button class="oasis-editor-ruler-marker oasis-editor-ruler-marker-right-indent">`), _tmpl$2$n = /* @__PURE__ */ template(`<div>`), _tmpl$3$f = /* @__PURE__ */ template(`<div class=oasis-editor-horizontal-ruler-label>`);
22828
22931
  function getActivePageSettings(state) {
22829
22932
  var _a;
22830
22933
  const idx = getActiveSectionIndex(state);
@@ -23038,7 +23141,7 @@ function HorizontalRuler(props) {
23038
23141
  return ticks();
23039
23142
  },
23040
23143
  children: (tick) => [(() => {
23041
- var _el$11 = _tmpl$2$o();
23144
+ var _el$11 = _tmpl$2$n();
23042
23145
  createRenderEffect((_p$) => {
23043
23146
  var _v$27 = `oasis-editor-horizontal-ruler-tick oasis-editor-horizontal-ruler-tick-${tick.kind}`, _v$28 = `${sx(tick.x)}px`;
23044
23147
  _v$27 !== _p$.e && className(_el$11, _p$.e = _v$27);
@@ -23151,7 +23254,7 @@ function CaretOverlay(props) {
23151
23254
  return _el$;
23152
23255
  })();
23153
23256
  }
23154
- var _tmpl$$C = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-selection-overlay-root>`), _tmpl$2$n = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-selection-box data-testid=editor-selection-box>`);
23257
+ var _tmpl$$C = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-selection-overlay-root>`), _tmpl$2$m = /* @__PURE__ */ template(`<span aria-hidden=true class=oasis-editor-selection-box data-testid=editor-selection-box>`);
23155
23258
  function SelectionOverlay(props) {
23156
23259
  return (() => {
23157
23260
  var _el$ = _tmpl$$C();
@@ -23160,7 +23263,7 @@ function SelectionOverlay(props) {
23160
23263
  return props.boxes;
23161
23264
  },
23162
23265
  children: (box) => (() => {
23163
- var _el$2 = _tmpl$2$n();
23266
+ var _el$2 = _tmpl$2$m();
23164
23267
  createRenderEffect((_p$) => {
23165
23268
  var _v$ = `${box().left}px`, _v$2 = `${box().top}px`, _v$3 = `${box().width}px`, _v$4 = `${box().height}px`;
23166
23269
  _v$ !== _p$.e && setStyleProperty(_el$2, "left", _p$.e = _v$);
@@ -23213,7 +23316,7 @@ function RevisionOverlay(props) {
23213
23316
  return _el$;
23214
23317
  })();
23215
23318
  }
23216
- var _tmpl$$A = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-comment-overlay-root>`), _tmpl$2$m = /* @__PURE__ */ template(`<span class=oasis-editor-comment-highlight data-testid=editor-comment-highlight>`), _tmpl$3$e = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-date>`), _tmpl$4$b = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-resolved>✓`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=oasis-editor-comment-popup data-testid=editor-comment-popup><div class=oasis-editor-comment-popup-header><span class=oasis-editor-comment-popup-author></span></div><div class=oasis-editor-comment-popup-body>`);
23319
+ var _tmpl$$A = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-comment-overlay-root>`), _tmpl$2$l = /* @__PURE__ */ template(`<span class=oasis-editor-comment-highlight data-testid=editor-comment-highlight>`), _tmpl$3$e = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-date>`), _tmpl$4$b = /* @__PURE__ */ template(`<span class=oasis-editor-comment-popup-resolved>✓`), _tmpl$5$7 = /* @__PURE__ */ template(`<div class=oasis-editor-comment-popup data-testid=editor-comment-popup><div class=oasis-editor-comment-popup-header><span class=oasis-editor-comment-popup-author></span></div><div class=oasis-editor-comment-popup-body>`);
23217
23320
  function CommentHighlightOverlay(props) {
23218
23321
  const [activeCommentId, setActiveCommentId] = createSignal(null);
23219
23322
  const activeComment = createMemo(() => {
@@ -23246,7 +23349,7 @@ function CommentHighlightOverlay(props) {
23246
23349
  return props.boxes();
23247
23350
  },
23248
23351
  children: (box) => (() => {
23249
- var _el$2 = _tmpl$2$m();
23352
+ var _el$2 = _tmpl$2$l();
23250
23353
  _el$2.$$click = () => setActiveCommentId(box.commentId);
23251
23354
  _el$2.addEventListener("mouseenter", () => setActiveCommentId(box.commentId));
23252
23355
  createRenderEffect((_p$) => {
@@ -23564,7 +23667,7 @@ function FloatingTableToolbar(props) {
23564
23667
  });
23565
23668
  }
23566
23669
  delegateEvents(["mousedown"]);
23567
- var _tmpl$$y = /* @__PURE__ */ template(`<svg><rect height=2 rx=1 fill=#9aa0a6></svg>`, false, true, false), _tmpl$2$l = /* @__PURE__ */ template(`<svg><rect rx=1.5></svg>`, false, true, false), _tmpl$3$d = /* @__PURE__ */ template(`<svg><polygon points="29,4 37,12 29,20 21,12"fill=#1a73e8></svg>`, false, true, false), _tmpl$4$a = /* @__PURE__ */ template(`<svg><polygon points="20,8 26,14 20,20 14,14"fill=#1a73e8></svg>`, false, true, false), _tmpl$5$6 = /* @__PURE__ */ template(`<svg viewBox="0 0 40 32"fill=none aria-hidden=true>`), _tmpl$6$4 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-anchor data-testid=editor-layout-options-anchor><svg viewBox="0 0 24 24"fill=none aria-hidden=true><rect x=3 y=4 width=10 height=10 rx=1.5 fill=#1a73e8></rect><rect x=3 y=17 width=18 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=5 width=6 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=9 width=6 height=2 rx=1 fill=#9aa0a6>`), _tmpl$7$1 = /* @__PURE__ */ template(`<div class=oasis-editor-layout-options-popup data-testid=editor-layout-options-popup><div class=oasis-editor-layout-options-popup-header><span class=oasis-editor-layout-options-title></span><button type=button class=oasis-editor-layout-options-close>×</button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid><button type=button class=oasis-editor-layout-options-cell data-testid=editor-layout-options-inline><svg viewBox="0 0 40 32"fill=none aria-hidden=true><rect x=4 y=7 width=9 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=4 width=11 height=11 rx=1.5 fill=#1a73e8></rect><rect x=28 y=7 width=8 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=20 width=32 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=26 width=32 height=2 rx=1 fill=#9aa0a6></rect></svg></button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid></div><div class=oasis-editor-layout-options-radios><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position></label><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position>`), _tmpl$8 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-cell>`);
23670
+ var _tmpl$$y = /* @__PURE__ */ template(`<svg><rect height=2 rx=1 fill=#9aa0a6></svg>`, false, true, false), _tmpl$2$k = /* @__PURE__ */ template(`<svg><rect rx=1.5></svg>`, false, true, false), _tmpl$3$d = /* @__PURE__ */ template(`<svg><polygon points="29,4 37,12 29,20 21,12"fill=#1a73e8></svg>`, false, true, false), _tmpl$4$a = /* @__PURE__ */ template(`<svg><polygon points="20,8 26,14 20,20 14,14"fill=#1a73e8></svg>`, false, true, false), _tmpl$5$6 = /* @__PURE__ */ template(`<svg viewBox="0 0 40 32"fill=none aria-hidden=true>`), _tmpl$6$4 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-anchor data-testid=editor-layout-options-anchor><svg viewBox="0 0 24 24"fill=none aria-hidden=true><rect x=3 y=4 width=10 height=10 rx=1.5 fill=#1a73e8></rect><rect x=3 y=17 width=18 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=5 width=6 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=9 width=6 height=2 rx=1 fill=#9aa0a6>`), _tmpl$7$1 = /* @__PURE__ */ template(`<div class=oasis-editor-layout-options-popup data-testid=editor-layout-options-popup><div class=oasis-editor-layout-options-popup-header><span class=oasis-editor-layout-options-title></span><button type=button class=oasis-editor-layout-options-close>×</button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid><button type=button class=oasis-editor-layout-options-cell data-testid=editor-layout-options-inline><svg viewBox="0 0 40 32"fill=none aria-hidden=true><rect x=4 y=7 width=9 height=2 rx=1 fill=#9aa0a6></rect><rect x=15 y=4 width=11 height=11 rx=1.5 fill=#1a73e8></rect><rect x=28 y=7 width=8 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=20 width=32 height=2 rx=1 fill=#9aa0a6></rect><rect x=4 y=26 width=32 height=2 rx=1 fill=#9aa0a6></rect></svg></button></div><div class=oasis-editor-layout-options-group-label></div><div class=oasis-editor-layout-options-grid></div><div class=oasis-editor-layout-options-radios><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position></label><label class=oasis-editor-layout-options-radio><input type=radio name=oasis-layout-position>`), _tmpl$8 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-layout-options-cell>`);
23568
23671
  const WRAP_OPTIONS = [{
23569
23672
  preset: "square",
23570
23673
  labelKey: "layoutOptions.square"
@@ -23593,7 +23696,7 @@ function WrapIcon(props) {
23593
23696
  return _el$;
23594
23697
  })();
23595
23698
  const box = (x, y, w, h, fill = "#1a73e8") => (() => {
23596
- var _el$2 = _tmpl$2$l();
23699
+ var _el$2 = _tmpl$2$k();
23597
23700
  setAttribute(_el$2, "x", x);
23598
23701
  setAttribute(_el$2, "y", y);
23599
23702
  setAttribute(_el$2, "width", w);
@@ -38201,10 +38304,10 @@ function resolveResizedDimensions(geometry, deltaX, deltaY, preserveAspectRatio,
38201
38304
  nextHeight = clamp(nextWidth / aspectRatio, MIN_RESIZE_SIZE_PX);
38202
38305
  return { width: nextWidth, height: nextHeight };
38203
38306
  }
38204
- var _tmpl$$x = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-rotate-handle tabindex=-1 type=button>`), _tmpl$2$k = /* @__PURE__ */ template(`<div aria-hidden=true style=transform-origin:center>`), _tmpl$3$c = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-resize-handle tabindex=-1 type=button>`);
38307
+ var _tmpl$$x = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-rotate-handle tabindex=-1 type=button>`), _tmpl$2$j = /* @__PURE__ */ template(`<div aria-hidden=true style=transform-origin:center>`), _tmpl$3$c = /* @__PURE__ */ template(`<button aria-hidden=true class=oasis-editor-resize-handle tabindex=-1 type=button>`);
38205
38308
  function ResizeHandlesOverlay(props) {
38206
38309
  return (() => {
38207
- var _el$ = _tmpl$2$k();
38310
+ var _el$ = _tmpl$2$j();
38208
38311
  _el$.$$mousedown = (event) => {
38209
38312
  if (props.readOnly || !props.box() || !props.onBodyMouseDown) {
38210
38313
  return;
@@ -38276,6 +38379,38 @@ function ResizeHandlesOverlay(props) {
38276
38379
  })();
38277
38380
  }
38278
38381
  delegateEvents(["mousedown"]);
38382
+ var _tmpl$$w = /* @__PURE__ */ template(`<div aria-hidden=true class=oasis-editor-table-handles-overlay><button aria-hidden=true class=oasis-editor-table-move-handle tabindex=-1 type=button></button><button aria-hidden=true class=oasis-editor-table-resize-corner tabindex=-1 type=button>`);
38383
+ function TableHandlesOverlay(props) {
38384
+ return createComponent(Show, {
38385
+ get when() {
38386
+ return memo(() => !!!props.readOnly)() && props.box();
38387
+ },
38388
+ children: (box) => (() => {
38389
+ var _el$ = _tmpl$$w(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
38390
+ _el$2.$$mousedown = (event) => {
38391
+ props.onMoveStart(event);
38392
+ };
38393
+ _el$3.$$mousedown = (event) => {
38394
+ props.onResizeStart(event);
38395
+ };
38396
+ createRenderEffect((_p$) => {
38397
+ var _v$ = `${box().left}px`, _v$2 = `${box().top}px`, _v$3 = `${box().width}px`, _v$4 = `${box().height}px`;
38398
+ _v$ !== _p$.e && setStyleProperty(_el$, "left", _p$.e = _v$);
38399
+ _v$2 !== _p$.t && setStyleProperty(_el$, "top", _p$.t = _v$2);
38400
+ _v$3 !== _p$.a && setStyleProperty(_el$, "width", _p$.a = _v$3);
38401
+ _v$4 !== _p$.o && setStyleProperty(_el$, "height", _p$.o = _v$4);
38402
+ return _p$;
38403
+ }, {
38404
+ e: void 0,
38405
+ t: void 0,
38406
+ a: void 0,
38407
+ o: void 0
38408
+ });
38409
+ return _el$;
38410
+ })()
38411
+ });
38412
+ }
38413
+ delegateEvents(["mousedown"]);
38279
38414
  const ZOOM_MIN = 50;
38280
38415
  const ZOOM_MAX = 200;
38281
38416
  const ZOOM_STEP = 10;
@@ -38291,7 +38426,7 @@ function createEditorZoom(initial = ZOOM_DEFAULT) {
38291
38426
  const zoomFactor = createMemo(() => zoomPercent() / 100);
38292
38427
  return { zoomPercent, setZoomPercent, adjustZoom, zoomFactor };
38293
38428
  }
38294
- var _tmpl$$w = /* @__PURE__ */ template(`<div data-testid=editor-editor-shell><div class=oasis-editor-editor data-testid=editor-editor><div class=oasis-editor-editor-zoom-sizer><div class=oasis-editor-editor-scroll-content data-testid=editor-editor-scroll-content style="position:absolute;top:0px;transform-origin:top left"><textarea aria-label="Editor input"autocomplete=off autocapitalize=off class=oasis-editor-input data-testid=editor-input value style=pointer-events:none></textarea><input data-testid=editor-import-docx-input type=file style=display:none><input accept="image/png, image/jpeg, image/gif"data-testid=editor-insert-image-input type=file style=display:none></div></div></div><div class=oasis-editor-statusbar data-testid=editor-statusbar><div class="oasis-editor-statusbar-group oasis-editor-statusbar-start"><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-word-count></span><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-character-count></span><span class=oasis-editor-statusbar-item></span></div><div class="oasis-editor-statusbar-group oasis-editor-statusbar-end"><div class=oasis-editor-statusbar-zoom data-testid=editor-statusbar-zoom-control><button type=button class=oasis-editor-zoom-button>−</button><input class=oasis-editor-zoom-slider type=range><button type=button class=oasis-editor-zoom-button>+</button><span class="oasis-editor-statusbar-item oasis-editor-zoom-value"data-testid=editor-statusbar-zoom>%`), _tmpl$2$j = /* @__PURE__ */ template(`<div class=oasis-editor-import-overlay data-testid=editor-import-overlay role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-phase data-testid=editor-import-phase></div><div class=oasis-editor-import-progress-track><div class=oasis-editor-import-progress-bar data-testid=editor-import-progress-bar></div></div><div class=oasis-editor-import-progress-label>`), _tmpl$3$b = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>`), _tmpl$4$9 = /* @__PURE__ */ template(`<span class=oasis-editor-import-error-icon>`), _tmpl$5$5 = /* @__PURE__ */ template(`<span>`);
38429
+ var _tmpl$$v = /* @__PURE__ */ template(`<div data-testid=editor-editor-shell><div class=oasis-editor-editor data-testid=editor-editor><div class=oasis-editor-editor-zoom-sizer><div class=oasis-editor-editor-scroll-content data-testid=editor-editor-scroll-content style="position:absolute;top:0px;transform-origin:top left"><textarea aria-label="Editor input"autocomplete=off autocapitalize=off class=oasis-editor-input data-testid=editor-input value style=pointer-events:none></textarea><input data-testid=editor-import-docx-input type=file style=display:none><input accept="image/png, image/jpeg, image/gif"data-testid=editor-insert-image-input type=file style=display:none></div></div></div><div class=oasis-editor-statusbar data-testid=editor-statusbar><div class="oasis-editor-statusbar-group oasis-editor-statusbar-start"><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-word-count></span><span class=oasis-editor-statusbar-item data-testid=editor-statusbar-character-count></span><span class=oasis-editor-statusbar-item></span></div><div class="oasis-editor-statusbar-group oasis-editor-statusbar-end"><div class=oasis-editor-statusbar-zoom data-testid=editor-statusbar-zoom-control><button type=button class=oasis-editor-zoom-button>−</button><input class=oasis-editor-zoom-slider type=range><button type=button class=oasis-editor-zoom-button>+</button><span class="oasis-editor-statusbar-item oasis-editor-zoom-value"data-testid=editor-statusbar-zoom>%`), _tmpl$2$i = /* @__PURE__ */ template(`<div class=oasis-editor-import-overlay data-testid=editor-import-overlay role=status aria-live=polite><div class=oasis-editor-import-card><div class=oasis-editor-import-title></div><div class=oasis-editor-import-phase data-testid=editor-import-phase></div><div class=oasis-editor-import-progress-track><div class=oasis-editor-import-progress-bar data-testid=editor-import-progress-bar></div></div><div class=oasis-editor-import-progress-label>`), _tmpl$3$b = /* @__PURE__ */ template(`<span class=oasis-editor-import-done-icon>`), _tmpl$4$9 = /* @__PURE__ */ template(`<span class=oasis-editor-import-error-icon>`), _tmpl$5$5 = /* @__PURE__ */ template(`<span>`);
38295
38430
  function OasisEditorEditor(props) {
38296
38431
  const t = useI18n();
38297
38432
  const layout = () => props.layout;
@@ -38410,6 +38545,7 @@ function OasisEditorEditor(props) {
38410
38545
  };
38411
38546
  const selectedImage = createMemo(() => overlays().selectedImageBox());
38412
38547
  const selectedTextBox = createMemo(() => overlays().selectedTextBoxBox());
38548
+ const selectedTable = createMemo(() => overlays().selectedTableBox());
38413
38549
  const commentsById = createMemo(() => {
38414
38550
  var _a;
38415
38551
  return ((_a = props.state().document.comments) == null ? void 0 : _a.items) ?? {};
@@ -38419,7 +38555,7 @@ function OasisEditorEditor(props) {
38419
38555
  queueMicrotask(recomputeViewportPageIndex);
38420
38556
  });
38421
38557
  return (() => {
38422
- var _el$ = _tmpl$$w(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$2.nextSibling, _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$1.nextSibling, _el$11 = _el$9.nextSibling, _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$14.nextSibling, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild;
38558
+ var _el$ = _tmpl$$v(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.firstChild, _el$6 = _el$5.nextSibling, _el$7 = _el$6.nextSibling, _el$8 = _el$2.nextSibling, _el$9 = _el$8.firstChild, _el$0 = _el$9.firstChild, _el$1 = _el$0.nextSibling, _el$10 = _el$1.nextSibling, _el$11 = _el$9.nextSibling, _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$13.nextSibling, _el$15 = _el$14.nextSibling, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild;
38423
38559
  insert(_el$, createComponent(Show, {
38424
38560
  get when() {
38425
38561
  return memo(() => !!layout().showHorizontalRuler)() && overlays().toolbarHost;
@@ -38528,6 +38664,9 @@ function OasisEditorEditor(props) {
38528
38664
  get onTableDragHandleMouseDown() {
38529
38665
  return surfaceHandlers().onTableDragHandleMouseDown;
38530
38666
  },
38667
+ get onTableCornerResizeHandleMouseDown() {
38668
+ return surfaceHandlers().onTableCornerResizeHandleMouseDown;
38669
+ },
38531
38670
  get onRevisionMouseEnter() {
38532
38671
  return surfaceHandlers().onRevisionMouseEnter;
38533
38672
  },
@@ -38621,6 +38760,22 @@ function OasisEditorEditor(props) {
38621
38760
  surfaceHandlers().onTextBoxRotateHandleMouseDown(textBox.paragraphId, textBox.startOffset, event);
38622
38761
  }
38623
38762
  }), _el$5);
38763
+ insert(_el$4, createComponent(TableHandlesOverlay, {
38764
+ box: selectedTable,
38765
+ get readOnly() {
38766
+ return Boolean(layout().readOnly);
38767
+ },
38768
+ onMoveStart: (event) => {
38769
+ const table = selectedTable();
38770
+ if (!table) return;
38771
+ surfaceHandlers().onTableDragHandleMouseDown(table.tableId, event);
38772
+ },
38773
+ onResizeStart: (event) => {
38774
+ const table = selectedTable();
38775
+ if (!table) return;
38776
+ surfaceHandlers().onTableCornerResizeHandleMouseDown(table.tableId, event);
38777
+ }
38778
+ }), _el$5);
38624
38779
  insert(_el$4, createComponent(Show, {
38625
38780
  get when() {
38626
38781
  return memo(() => !!overlays().toolbarHost)() && overlays().showFloatingTableToolbar;
@@ -38703,7 +38858,7 @@ function OasisEditorEditor(props) {
38703
38858
  const isDone = progress().phase === "done";
38704
38859
  const isError = progress().phase === "error";
38705
38860
  return (() => {
38706
- var _el$18 = _tmpl$2$j(), _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling;
38861
+ var _el$18 = _tmpl$2$i(), _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$21 = _el$20.nextSibling, _el$22 = _el$21.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling;
38707
38862
  _el$18.classList.toggle("oasis-editor-import-overlay-done", !!isDone);
38708
38863
  _el$18.classList.toggle("oasis-editor-import-overlay-error", !!isError);
38709
38864
  setAttribute(_el$18, "aria-busy", !isDone && !isError);
@@ -39495,11 +39650,11 @@ function createCanvasLayoutSnapshotProvider() {
39495
39650
  }
39496
39651
  };
39497
39652
  }
39498
- var _tmpl$$v = /* @__PURE__ */ template(`<button>`);
39653
+ var _tmpl$$u = /* @__PURE__ */ template(`<button>`);
39499
39654
  function FloatingActionButton(props) {
39500
39655
  const [local, others] = splitProps(props, ["type", "icon", "label", "active", "class", "classList"]);
39501
39656
  return (() => {
39502
- var _el$ = _tmpl$$v();
39657
+ var _el$ = _tmpl$$u();
39503
39658
  spread(_el$, mergeProps({
39504
39659
  get type() {
39505
39660
  return local.type ?? "button";
@@ -39528,7 +39683,7 @@ function FloatingActionButton(props) {
39528
39683
  return _el$;
39529
39684
  })();
39530
39685
  }
39531
- var _tmpl$$u = /* @__PURE__ */ template(`<aside>`), _tmpl$2$i = /* @__PURE__ */ template(`<div>`);
39686
+ var _tmpl$$t = /* @__PURE__ */ template(`<aside>`), _tmpl$2$h = /* @__PURE__ */ template(`<div>`);
39532
39687
  function SidePanel(props) {
39533
39688
  const [local, others] = splitProps(props, ["mode", "width", "class", "classList", "children", "style"]);
39534
39689
  const width = () => {
@@ -39538,7 +39693,7 @@ function SidePanel(props) {
39538
39693
  return local.width ?? "360px";
39539
39694
  };
39540
39695
  return (() => {
39541
- var _el$ = _tmpl$$u();
39696
+ var _el$ = _tmpl$$t();
39542
39697
  spread(_el$, mergeProps({
39543
39698
  get ["class"]() {
39544
39699
  return `oasis-editor-plugin-side-panel ${local.class ?? ""}`;
@@ -39563,7 +39718,7 @@ function SidePanel(props) {
39563
39718
  function SidePanelHeader(props) {
39564
39719
  const [local, others] = splitProps(props, ["class", "children"]);
39565
39720
  return (() => {
39566
- var _el$2 = _tmpl$2$i();
39721
+ var _el$2 = _tmpl$2$h();
39567
39722
  spread(_el$2, mergeProps({
39568
39723
  get ["class"]() {
39569
39724
  return `oasis-editor-plugin-side-panel-header ${local.class ?? ""}`;
@@ -39576,7 +39731,7 @@ function SidePanelHeader(props) {
39576
39731
  function SidePanelBody(props) {
39577
39732
  const [local, others] = splitProps(props, ["class", "children"]);
39578
39733
  return (() => {
39579
- var _el$3 = _tmpl$2$i();
39734
+ var _el$3 = _tmpl$2$h();
39580
39735
  spread(_el$3, mergeProps({
39581
39736
  get ["class"]() {
39582
39737
  return `oasis-editor-plugin-side-panel-body ${local.class ?? ""}`;
@@ -39589,7 +39744,7 @@ function SidePanelBody(props) {
39589
39744
  function SidePanelFooter(props) {
39590
39745
  const [local, others] = splitProps(props, ["class", "children"]);
39591
39746
  return (() => {
39592
- var _el$4 = _tmpl$2$i();
39747
+ var _el$4 = _tmpl$2$h();
39593
39748
  spread(_el$4, mergeProps({
39594
39749
  get ["class"]() {
39595
39750
  return `oasis-editor-plugin-side-panel-footer ${local.class ?? ""}`;
@@ -39599,11 +39754,11 @@ function SidePanelFooter(props) {
39599
39754
  return _el$4;
39600
39755
  })();
39601
39756
  }
39602
- var _tmpl$$t = /* @__PURE__ */ template(`<button>`);
39757
+ var _tmpl$$s = /* @__PURE__ */ template(`<button>`);
39603
39758
  function IconButton(props) {
39604
39759
  const [local, others] = splitProps(props, ["type", "icon", "label", "active", "variant", "size", "class", "classList"]);
39605
39760
  return (() => {
39606
- var _el$ = _tmpl$$t();
39761
+ var _el$ = _tmpl$$s();
39607
39762
  spread(_el$, mergeProps({
39608
39763
  get type() {
39609
39764
  return local.type ?? "button";
@@ -39634,7 +39789,7 @@ function IconButton(props) {
39634
39789
  return _el$;
39635
39790
  })();
39636
39791
  }
39637
- var _tmpl$$s = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-floating-actions>`), _tmpl$2$h = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-ui-host><div class=oasis-editor-plugin-ui-main>`), _tmpl$3$a = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-overlay>`), _tmpl$4$8 = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-title>`);
39792
+ var _tmpl$$r = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-floating-actions>`), _tmpl$2$g = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-ui-host><div class=oasis-editor-plugin-ui-main>`), _tmpl$3$a = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-overlay>`), _tmpl$4$8 = /* @__PURE__ */ template(`<div class=oasis-editor-plugin-side-panel-title>`);
39638
39793
  const EMPTY_SNAPSHOT = {
39639
39794
  floatingActions: [],
39640
39795
  sidePanels: [],
@@ -39666,7 +39821,7 @@ function PluginUiHost(props) {
39666
39821
  return groupActionsByPlacement(actions());
39667
39822
  },
39668
39823
  children: (group) => (() => {
39669
- var _el$ = _tmpl$$s();
39824
+ var _el$ = _tmpl$$r();
39670
39825
  insert(_el$, createComponent(For, {
39671
39826
  get each() {
39672
39827
  return group.actions;
@@ -39695,7 +39850,7 @@ function PluginUiHost(props) {
39695
39850
  })()
39696
39851
  });
39697
39852
  return (() => {
39698
- var _el$2 = _tmpl$2$h(), _el$3 = _el$2.firstChild;
39853
+ var _el$2 = _tmpl$2$g(), _el$3 = _el$2.firstChild;
39699
39854
  insert(_el$3, resolvedChildren);
39700
39855
  insert(_el$2, createComponent(Show, {
39701
39856
  get when() {
@@ -39818,7 +39973,7 @@ function groupActionsByPlacement(actions) {
39818
39973
  actions: groupActions
39819
39974
  }));
39820
39975
  }
39821
- var _tmpl$$r = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage>`);
39976
+ var _tmpl$$q = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage>`);
39822
39977
  function DocumentShell(props) {
39823
39978
  let surfaceEl;
39824
39979
  let viewportEl;
@@ -39945,7 +40100,7 @@ function DocumentShell(props) {
39945
40100
  return props.runtimeEditor;
39946
40101
  },
39947
40102
  get children() {
39948
- var _el$ = _tmpl$$r(), _el$2 = _el$.firstChild;
40103
+ var _el$ = _tmpl$$q(), _el$2 = _el$.firstChild;
39949
40104
  insert(_el$, createComponent(Show, {
39950
40105
  get when() {
39951
40106
  return memo(() => !!props.showChrome)() && props.showOutline;
@@ -40010,10 +40165,10 @@ function DocumentShell(props) {
40010
40165
  }
40011
40166
  })];
40012
40167
  }
40013
- var _tmpl$$q = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$g = /* @__PURE__ */ template(`<div class=oasis-inline-shell style="border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);overflow:hidden;display:flex;flex-direction:column">`);
40168
+ var _tmpl$$p = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$f = /* @__PURE__ */ template(`<div class=oasis-inline-shell style="border:1px solid var(--oasis-toolbar-border);border-radius:var(--oasis-radius);overflow:hidden;display:flex;flex-direction:column">`);
40014
40169
  function InlineShell(props) {
40015
40170
  return (() => {
40016
- var _el$ = _tmpl$2$g();
40171
+ var _el$ = _tmpl$2$f();
40017
40172
  insert(_el$, createComponent(Show, {
40018
40173
  get when() {
40019
40174
  return memo(() => !!props.showChrome)() && props.showToolbar;
@@ -40040,7 +40195,7 @@ function InlineShell(props) {
40040
40195
  return props.runtimeEditor;
40041
40196
  },
40042
40197
  get children() {
40043
- var _el$2 = _tmpl$$q(), _el$3 = _el$2.firstChild;
40198
+ var _el$2 = _tmpl$$p(), _el$3 = _el$2.firstChild;
40044
40199
  insert(_el$3, createComponent(OasisEditorEditor, {
40045
40200
  state: () => props.state,
40046
40201
  get layout() {
@@ -40080,16 +40235,16 @@ function InlineShell(props) {
40080
40235
  return _el$;
40081
40236
  })();
40082
40237
  }
40083
- var _tmpl$$p = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$f = /* @__PURE__ */ template(`<div class=oasis-balloon-shell>`);
40238
+ var _tmpl$$o = /* @__PURE__ */ template(`<div class=oasis-editor-main-container><section class=oasis-editor-stage style=padding:0>`), _tmpl$2$e = /* @__PURE__ */ template(`<div class=oasis-balloon-shell>`);
40084
40239
  function BalloonShell(props) {
40085
40240
  return (() => {
40086
- var _el$ = _tmpl$2$f();
40241
+ var _el$ = _tmpl$2$e();
40087
40242
  insert(_el$, createComponent(PluginUiHost, {
40088
40243
  get editor() {
40089
40244
  return props.runtimeEditor;
40090
40245
  },
40091
40246
  get children() {
40092
- var _el$2 = _tmpl$$p(), _el$3 = _el$2.firstChild;
40247
+ var _el$2 = _tmpl$$o(), _el$3 = _el$2.firstChild;
40093
40248
  insert(_el$3, createComponent(OasisEditorEditor, {
40094
40249
  state: () => props.state,
40095
40250
  get layout() {
@@ -40129,7 +40284,7 @@ function BalloonShell(props) {
40129
40284
  return _el$;
40130
40285
  })();
40131
40286
  }
40132
- var _tmpl$$o = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-footer data-testid=editor-dialog-footer>`), _tmpl$2$e = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-overlay><div role=dialog aria-modal=true data-testid=editor-dialog><div class=oasis-editor-dialog-header><h3 class=oasis-editor-dialog-title></h3><button class=oasis-editor-dialog-close data-testid=editor-dialog-close><i data-lucide=x></i></button></div><div data-testid=editor-dialog-body>`);
40287
+ var _tmpl$$n = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-footer data-testid=editor-dialog-footer>`), _tmpl$2$d = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-overlay><div role=dialog aria-modal=true data-testid=editor-dialog><div class=oasis-editor-dialog-header><h3 class=oasis-editor-dialog-title></h3><button class=oasis-editor-dialog-close data-testid=editor-dialog-close><i data-lucide=x></i></button></div><div data-testid=editor-dialog-body>`);
40133
40288
  function Dialog(props) {
40134
40289
  const t = useI18n();
40135
40290
  let dialogRef;
@@ -40154,7 +40309,7 @@ function Dialog(props) {
40154
40309
  return props.isOpen;
40155
40310
  },
40156
40311
  get children() {
40157
- var _el$ = _tmpl$2$e(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
40312
+ var _el$ = _tmpl$2$d(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling, _el$6 = _el$3.nextSibling;
40158
40313
  _el$.$$click = () => {
40159
40314
  if (props.closeOnOverlayClick ?? true) {
40160
40315
  props.onClose();
@@ -40171,7 +40326,7 @@ function Dialog(props) {
40171
40326
  return props.footer;
40172
40327
  },
40173
40328
  get children() {
40174
- var _el$7 = _tmpl$$o();
40329
+ var _el$7 = _tmpl$$n();
40175
40330
  insert(_el$7, () => props.footer);
40176
40331
  return _el$7;
40177
40332
  }
@@ -40200,7 +40355,7 @@ function Dialog(props) {
40200
40355
  });
40201
40356
  }
40202
40357
  delegateEvents(["click"]);
40203
- var _tmpl$$n = /* @__PURE__ */ template(`<div><div class=oasis-editor-tabs-list role=tablist>`), _tmpl$2$d = /* @__PURE__ */ template(`<button type=button role=tab class=oasis-editor-tabs-tab>`), _tmpl$3$9 = /* @__PURE__ */ template(`<div role=tabpanel class=oasis-editor-tabs-panel>`);
40358
+ var _tmpl$$m = /* @__PURE__ */ template(`<div><div class=oasis-editor-tabs-list role=tablist>`), _tmpl$2$c = /* @__PURE__ */ template(`<button type=button role=tab class=oasis-editor-tabs-tab>`), _tmpl$3$9 = /* @__PURE__ */ template(`<div role=tabpanel class=oasis-editor-tabs-panel>`);
40204
40359
  function findEnabledItem(items, startIndex, direction) {
40205
40360
  if (!items.length) return void 0;
40206
40361
  for (let step = 0; step < items.length; step += 1) {
@@ -40251,7 +40406,7 @@ function Tabs(props) {
40251
40406
  selectItem(findEnabledItem(items(), currentIndex + direction, direction), true);
40252
40407
  };
40253
40408
  return (() => {
40254
- var _el$ = _tmpl$$n(), _el$2 = _el$.firstChild;
40409
+ var _el$ = _tmpl$$m(), _el$2 = _el$.firstChild;
40255
40410
  _el$2.$$keydown = handleKeyDown;
40256
40411
  insert(_el$2, createComponent(For, {
40257
40412
  get each() {
@@ -40261,7 +40416,7 @@ function Tabs(props) {
40261
40416
  const tabId = `${baseId}-${item.id}-tab`;
40262
40417
  const panelId = `${baseId}-${item.id}-panel`;
40263
40418
  return (() => {
40264
- var _el$3 = _tmpl$2$d();
40419
+ var _el$3 = _tmpl$2$c();
40265
40420
  _el$3.$$click = () => selectItem(item);
40266
40421
  use((element) => {
40267
40422
  tabRefs[index()] = element;
@@ -40328,12 +40483,12 @@ function Tabs(props) {
40328
40483
  })();
40329
40484
  }
40330
40485
  delegateEvents(["keydown", "click"]);
40331
- var _tmpl$$m = /* @__PURE__ */ template(`<button><span class=oasis-editor-ui-button-label>`);
40486
+ var _tmpl$$l = /* @__PURE__ */ template(`<button><span class=oasis-editor-ui-button-label>`);
40332
40487
  function Button(props) {
40333
40488
  const [local, others] = splitProps(props, ["type", "variant", "size", "icon", "iconPosition", "fullWidth", "class", "classList", "children"]);
40334
40489
  const iconPosition = () => local.iconPosition ?? "start";
40335
40490
  return (() => {
40336
- var _el$ = _tmpl$$m(), _el$2 = _el$.firstChild;
40491
+ var _el$ = _tmpl$$l(), _el$2 = _el$.firstChild;
40337
40492
  spread(_el$, mergeProps({
40338
40493
  get type() {
40339
40494
  return local.type ?? "button";
@@ -40413,11 +40568,11 @@ function StatusText(props) {
40413
40568
  }
40414
40569
  }, others));
40415
40570
  }
40416
- var _tmpl$$l = /* @__PURE__ */ template(`<div>`);
40571
+ var _tmpl$$k = /* @__PURE__ */ template(`<div>`);
40417
40572
  function ActionRow(props) {
40418
40573
  const [local, others] = splitProps(props, ["align", "wrap", "class", "classList", "children"]);
40419
40574
  return (() => {
40420
- var _el$ = _tmpl$$l();
40575
+ var _el$ = _tmpl$$k();
40421
40576
  spread(_el$, mergeProps({
40422
40577
  get ["class"]() {
40423
40578
  return `oasis-editor-ui-action-row ${local.class ?? ""}`;
@@ -40473,7 +40628,7 @@ function mergeStyles(...styles) {
40473
40628
  }
40474
40629
  return Object.assign({}, ...objectStyles);
40475
40630
  }
40476
- var _tmpl$$k = /* @__PURE__ */ template(`<span class=oasis-editor-ui-stack-divider-item aria-hidden=true>`);
40631
+ var _tmpl$$j = /* @__PURE__ */ template(`<span class=oasis-editor-ui-stack-divider-item aria-hidden=true>`);
40477
40632
  function childArray(value) {
40478
40633
  if (Array.isArray(value)) return value;
40479
40634
  if (value === null || value === void 0 || value === false) return [];
@@ -40513,7 +40668,7 @@ function Stack(props) {
40513
40668
  return memo(() => index() > 0)() && local.divider;
40514
40669
  },
40515
40670
  get children() {
40516
- var _el$ = _tmpl$$k();
40671
+ var _el$ = _tmpl$$j();
40517
40672
  insert(_el$, () => renderDivider(index()));
40518
40673
  return _el$;
40519
40674
  }
@@ -40592,14 +40747,14 @@ function Grid(props) {
40592
40747
  }
40593
40748
  }));
40594
40749
  }
40595
- var _tmpl$$j = /* @__PURE__ */ template(`<label>`), _tmpl$2$c = /* @__PURE__ */ template(`<div>`);
40750
+ var _tmpl$$i = /* @__PURE__ */ template(`<label>`), _tmpl$2$b = /* @__PURE__ */ template(`<div>`);
40596
40751
  function FormField(props) {
40597
40752
  const fallbackId = createUniqueId();
40598
40753
  const [local, others] = splitProps(props, ["label", "for", "description", "error", "labelClass", "class", "classList", "children"]);
40599
40754
  const descriptionId = () => local.for ?? `${fallbackId}-description`;
40600
40755
  const errorId = () => local.for ?? `${fallbackId}-error`;
40601
40756
  return (() => {
40602
- var _el$ = _tmpl$2$c();
40757
+ var _el$ = _tmpl$2$b();
40603
40758
  spread(_el$, mergeProps({
40604
40759
  get ["class"]() {
40605
40760
  return `oasis-editor-ui-field ${local.class ?? ""}`;
@@ -40613,7 +40768,7 @@ function FormField(props) {
40613
40768
  return local.label;
40614
40769
  },
40615
40770
  get children() {
40616
- var _el$2 = _tmpl$$j();
40771
+ var _el$2 = _tmpl$$i();
40617
40772
  insert(_el$2, () => local.label);
40618
40773
  createRenderEffect((_p$) => {
40619
40774
  var _v$ = `oasis-editor-ui-field-label ${local.labelClass ?? ""}`, _v$2 = local.for;
@@ -40664,7 +40819,7 @@ function FormField(props) {
40664
40819
  return _el$;
40665
40820
  })();
40666
40821
  }
40667
- var _tmpl$$i = /* @__PURE__ */ template(`<span>`), _tmpl$2$b = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$8 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$7 = /* @__PURE__ */ template(`<label><input>`);
40822
+ var _tmpl$$h = /* @__PURE__ */ template(`<span>`), _tmpl$2$a = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$8 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$7 = /* @__PURE__ */ template(`<label><input>`);
40668
40823
  function TextField(props) {
40669
40824
  const fallbackId = createUniqueId();
40670
40825
  const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "onChange", "class", "classList", "id"]);
@@ -40678,7 +40833,7 @@ function TextField(props) {
40678
40833
  return local.label;
40679
40834
  },
40680
40835
  get children() {
40681
- var _el$2 = _tmpl$$i();
40836
+ var _el$2 = _tmpl$$h();
40682
40837
  insert(_el$2, () => local.label);
40683
40838
  createRenderEffect(() => className(_el$2, `oasis-editor-ui-field-label ${local.labelClass ?? ""}`));
40684
40839
  return _el$2;
@@ -40707,7 +40862,7 @@ function TextField(props) {
40707
40862
  return local.description;
40708
40863
  },
40709
40864
  get children() {
40710
- var _el$4 = _tmpl$2$b();
40865
+ var _el$4 = _tmpl$2$a();
40711
40866
  insert(_el$4, () => local.description);
40712
40867
  createRenderEffect(() => setAttribute(_el$4, "id", descriptionId()));
40713
40868
  return _el$4;
@@ -40739,7 +40894,7 @@ function TextField(props) {
40739
40894
  })();
40740
40895
  }
40741
40896
  delegateEvents(["input"]);
40742
- var _tmpl$$h = /* @__PURE__ */ template(`<textarea>`);
40897
+ var _tmpl$$g = /* @__PURE__ */ template(`<textarea>`);
40743
40898
  function TextAreaField(props) {
40744
40899
  const fallbackId = createUniqueId();
40745
40900
  const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "onChange", "class", "id"]);
@@ -40765,7 +40920,7 @@ function TextAreaField(props) {
40765
40920
  return local.error;
40766
40921
  },
40767
40922
  get children() {
40768
- var _el$ = _tmpl$$h();
40923
+ var _el$ = _tmpl$$g();
40769
40924
  _el$.$$input = (event) => {
40770
40925
  var _a;
40771
40926
  return (_a = local.onChange) == null ? void 0 : _a.call(local, event.currentTarget.value);
@@ -40801,7 +40956,7 @@ function ColorField(props) {
40801
40956
  }
40802
40957
  }, others));
40803
40958
  }
40804
- var _tmpl$$g = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$2$a = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$3$7 = /* @__PURE__ */ template(`<label><input type=checkbox class=oasis-editor-ui-checkbox-input><span class=oasis-editor-ui-checkbox-copy><span class=oasis-editor-ui-field-label>`);
40959
+ var _tmpl$$f = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$2$9 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$3$7 = /* @__PURE__ */ template(`<label><input type=checkbox class=oasis-editor-ui-checkbox-input><span class=oasis-editor-ui-checkbox-copy><span class=oasis-editor-ui-field-label>`);
40805
40960
  function Checkbox(props) {
40806
40961
  const fallbackId = createUniqueId();
40807
40962
  const [local, others] = splitProps(props, ["label", "description", "error", "onChange", "class", "id"]);
@@ -40831,7 +40986,7 @@ function Checkbox(props) {
40831
40986
  return local.description;
40832
40987
  },
40833
40988
  get children() {
40834
- var _el$5 = _tmpl$$g();
40989
+ var _el$5 = _tmpl$$f();
40835
40990
  insert(_el$5, () => local.description);
40836
40991
  createRenderEffect(() => setAttribute(_el$5, "id", descriptionId()));
40837
40992
  return _el$5;
@@ -40842,7 +40997,7 @@ function Checkbox(props) {
40842
40997
  return local.error;
40843
40998
  },
40844
40999
  get children() {
40845
- var _el$6 = _tmpl$2$a();
41000
+ var _el$6 = _tmpl$2$9();
40846
41001
  insert(_el$6, () => local.error);
40847
41002
  createRenderEffect(() => setAttribute(_el$6, "id", errorId()));
40848
41003
  return _el$6;
@@ -40860,7 +41015,7 @@ function Checkbox(props) {
40860
41015
  return _el$;
40861
41016
  })();
40862
41017
  }
40863
- var _tmpl$$f = /* @__PURE__ */ template(`<span>`), _tmpl$2$9 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$6 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$6 = /* @__PURE__ */ template(`<label><select>`), _tmpl$5$4 = /* @__PURE__ */ template(`<option>`);
41018
+ var _tmpl$$e = /* @__PURE__ */ template(`<span>`), _tmpl$2$8 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$3$6 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-error>`), _tmpl$4$6 = /* @__PURE__ */ template(`<label><select>`), _tmpl$5$4 = /* @__PURE__ */ template(`<option>`);
40864
41019
  function SelectField(props) {
40865
41020
  const fallbackId = createUniqueId();
40866
41021
  const [local, others] = splitProps(props, ["label", "description", "error", "labelClass", "controlClass", "options", "onChange", "class", "classList", "id", "value"]);
@@ -40875,7 +41030,7 @@ function SelectField(props) {
40875
41030
  return local.label;
40876
41031
  },
40877
41032
  get children() {
40878
- var _el$2 = _tmpl$$f();
41033
+ var _el$2 = _tmpl$$e();
40879
41034
  insert(_el$2, () => local.label);
40880
41035
  createRenderEffect(() => className(_el$2, `oasis-editor-ui-field-label ${local.labelClass ?? ""}`));
40881
41036
  return _el$2;
@@ -40928,7 +41083,7 @@ function SelectField(props) {
40928
41083
  return local.description;
40929
41084
  },
40930
41085
  get children() {
40931
- var _el$4 = _tmpl$2$9();
41086
+ var _el$4 = _tmpl$2$8();
40932
41087
  insert(_el$4, () => local.description);
40933
41088
  createRenderEffect(() => setAttribute(_el$4, "id", descriptionId()));
40934
41089
  return _el$4;
@@ -40974,7 +41129,7 @@ function NumberField(props) {
40974
41129
  }
40975
41130
  }, others));
40976
41131
  }
40977
- var _tmpl$$e = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$2$8 = /* @__PURE__ */ template(`<label><input type=radio class=oasis-editor-ui-radio-input><span class=oasis-editor-ui-checkbox-copy><span class=oasis-editor-ui-field-label>`), _tmpl$3$5 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-label>`), _tmpl$4$5 = /* @__PURE__ */ template(`<div role=radiogroup>`);
41132
+ var _tmpl$$d = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-description>`), _tmpl$2$7 = /* @__PURE__ */ template(`<label><input type=radio class=oasis-editor-ui-radio-input><span class=oasis-editor-ui-checkbox-copy><span class=oasis-editor-ui-field-label>`), _tmpl$3$5 = /* @__PURE__ */ template(`<span class=oasis-editor-ui-field-label>`), _tmpl$4$5 = /* @__PURE__ */ template(`<div role=radiogroup>`);
40978
41133
  const RadioGroupCtx = createContext();
40979
41134
  function Radio(props) {
40980
41135
  const fallbackId = createUniqueId();
@@ -40985,7 +41140,7 @@ function Radio(props) {
40985
41140
  const checked = () => group ? group.value() === local.value : Boolean(local.checked);
40986
41141
  const disabled = () => Boolean(local.disabled) || (group ? group.disabled() : false);
40987
41142
  return (() => {
40988
- var _el$ = _tmpl$2$8(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
41143
+ var _el$ = _tmpl$2$7(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.firstChild;
40989
41144
  _el$2.addEventListener("change", (event) => {
40990
41145
  var _a;
40991
41146
  if (group) group.onSelect(local.value);
@@ -41017,7 +41172,7 @@ function Radio(props) {
41017
41172
  return local.description;
41018
41173
  },
41019
41174
  get children() {
41020
- var _el$5 = _tmpl$$e();
41175
+ var _el$5 = _tmpl$$d();
41021
41176
  insert(_el$5, () => local.description);
41022
41177
  createRenderEffect(() => setAttribute(_el$5, "id", descriptionId()));
41023
41178
  return _el$5;
@@ -41102,7 +41257,7 @@ function RadioGroup(props) {
41102
41257
  }
41103
41258
  });
41104
41259
  }
41105
- var _tmpl$$d = /* @__PURE__ */ template(`<div>`);
41260
+ var _tmpl$$c = /* @__PURE__ */ template(`<div>`);
41106
41261
  const ALIGN_MAP = {
41107
41262
  start: "flex-start",
41108
41263
  center: "center",
@@ -41112,7 +41267,7 @@ const ALIGN_MAP = {
41112
41267
  function FieldRow(props) {
41113
41268
  const [local, others] = splitProps(props, ["align", "class", "style", "children"]);
41114
41269
  return (() => {
41115
- var _el$ = _tmpl$$d();
41270
+ var _el$ = _tmpl$$c();
41116
41271
  spread(_el$, mergeProps({
41117
41272
  get ["class"]() {
41118
41273
  return `oasis-editor-ui-field-row ${local.class ?? ""}`;
@@ -41128,11 +41283,11 @@ function FieldRow(props) {
41128
41283
  return _el$;
41129
41284
  })();
41130
41285
  }
41131
- var _tmpl$$c = /* @__PURE__ */ template(`<legend>`), _tmpl$2$7 = /* @__PURE__ */ template(`<fieldset>`);
41286
+ var _tmpl$$b = /* @__PURE__ */ template(`<legend>`), _tmpl$2$6 = /* @__PURE__ */ template(`<fieldset>`);
41132
41287
  function FieldGroup(props) {
41133
41288
  const [local, others] = splitProps(props, ["legend", "legendClass", "class", "children"]);
41134
41289
  return (() => {
41135
- var _el$ = _tmpl$2$7();
41290
+ var _el$ = _tmpl$2$6();
41136
41291
  spread(_el$, mergeProps({
41137
41292
  get ["class"]() {
41138
41293
  return `oasis-editor-ui-field-group ${local.class ?? ""}`;
@@ -41143,7 +41298,7 @@ function FieldGroup(props) {
41143
41298
  return local.legend;
41144
41299
  },
41145
41300
  get children() {
41146
- var _el$2 = _tmpl$$c();
41301
+ var _el$2 = _tmpl$$b();
41147
41302
  insert(_el$2, () => local.legend);
41148
41303
  createRenderEffect(() => className(_el$2, `oasis-editor-ui-field-group-legend ${local.legendClass ?? ""}`));
41149
41304
  return _el$2;
@@ -41153,11 +41308,11 @@ function FieldGroup(props) {
41153
41308
  return _el$;
41154
41309
  })();
41155
41310
  }
41156
- var _tmpl$$b = /* @__PURE__ */ template(`<label><input type=checkbox class=oasis-editor-ui-toggle-chip-input><span class=oasis-editor-ui-toggle-chip-label>`);
41311
+ var _tmpl$$a = /* @__PURE__ */ template(`<label><input type=checkbox class=oasis-editor-ui-toggle-chip-input><span class=oasis-editor-ui-toggle-chip-label>`);
41157
41312
  function ToggleChip(props) {
41158
41313
  const [local, others] = splitProps(props, ["label", "labelStyle", "onChange", "class", "checked"]);
41159
41314
  return (() => {
41160
- var _el$ = _tmpl$$b(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
41315
+ var _el$ = _tmpl$$a(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
41161
41316
  _el$2.addEventListener("change", (event) => {
41162
41317
  var _a;
41163
41318
  return (_a = local.onChange) == null ? void 0 : _a.call(local, event.currentTarget.checked);
@@ -41182,11 +41337,11 @@ function ToggleChip(props) {
41182
41337
  return _el$;
41183
41338
  })();
41184
41339
  }
41185
- var _tmpl$$a = /* @__PURE__ */ template(`<div>`);
41340
+ var _tmpl$$9 = /* @__PURE__ */ template(`<div>`);
41186
41341
  function DialogFooter(props) {
41187
41342
  const [local, others] = splitProps(props, ["align", "class", "classList", "children"]);
41188
41343
  return (() => {
41189
- var _el$ = _tmpl$$a();
41344
+ var _el$ = _tmpl$$9();
41190
41345
  spread(_el$, mergeProps({
41191
41346
  get ["class"]() {
41192
41347
  return `oasis-editor-ui-dialog-footer ${local.class ?? ""}`;
@@ -41512,7 +41667,7 @@ const UNDERLINE_STYLE_OPTIONS = [
41512
41667
  }
41513
41668
  }
41514
41669
  ];
41515
- var _tmpl$$9 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action data-testid=editor-toolbar-underline-remove role=menuitem><span class=oasis-editor-color-menu-action-swatch><i data-lucide=slash></i></span><span>`), _tmpl$2$6 = /* @__PURE__ */ template(`<div class=oasis-editor-underline-menu-list>`), _tmpl$3$4 = /* @__PURE__ */ template(`<span class="oasis-editor-color-split-icon oasis-editor-underline-split-icon"><span class=oasis-editor-underline-split-glyph aria-hidden=true>U</span><span class=oasis-editor-underline-split-indicator>`), _tmpl$4$4 = /* @__PURE__ */ template(`<span class="oasis-editor-underline-menu-stroke oasis-editor-underline-menu-stroke-svg">`), _tmpl$5$3 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-underline-menu-item role=menuitemradio><span class=oasis-editor-underline-menu-preview></span><span class=oasis-editor-underline-menu-label>`), _tmpl$6$3 = /* @__PURE__ */ template(`<span class=oasis-editor-underline-menu-stroke>`);
41670
+ var _tmpl$$8 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-color-menu-action data-testid=editor-toolbar-underline-remove role=menuitem><span class=oasis-editor-color-menu-action-swatch><i data-lucide=slash></i></span><span>`), _tmpl$2$5 = /* @__PURE__ */ template(`<div class=oasis-editor-underline-menu-list>`), _tmpl$3$4 = /* @__PURE__ */ template(`<span class="oasis-editor-color-split-icon oasis-editor-underline-split-icon"><span class=oasis-editor-underline-split-glyph aria-hidden=true>U</span><span class=oasis-editor-underline-split-indicator>`), _tmpl$4$4 = /* @__PURE__ */ template(`<span class="oasis-editor-underline-menu-stroke oasis-editor-underline-menu-stroke-svg">`), _tmpl$5$3 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-underline-menu-item role=menuitemradio><span class=oasis-editor-underline-menu-preview></span><span class=oasis-editor-underline-menu-label>`), _tmpl$6$3 = /* @__PURE__ */ template(`<span class=oasis-editor-underline-menu-stroke>`);
41516
41671
  const mod$1 = /Mac/i.test(navigator.userAgent) ? "⌘" : "Ctrl";
41517
41672
  const TEST_ID = "editor-toolbar-underline";
41518
41673
  function UnderlineControl(props) {
@@ -41570,7 +41725,7 @@ function UnderlineControl(props) {
41570
41725
  },
41571
41726
  get children() {
41572
41727
  return [(() => {
41573
- var _el$ = _tmpl$$9(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
41728
+ var _el$ = _tmpl$$8(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
41574
41729
  _el$.$$click = () => {
41575
41730
  removeUnderline();
41576
41731
  setOpen(false);
@@ -41578,7 +41733,7 @@ function UnderlineControl(props) {
41578
41733
  insert(_el$3, () => t("toolbar.underlineRemove"));
41579
41734
  return _el$;
41580
41735
  })(), (() => {
41581
- var _el$4 = _tmpl$2$6();
41736
+ var _el$4 = _tmpl$2$5();
41582
41737
  insert(_el$4, createComponent(For, {
41583
41738
  each: UNDERLINE_STYLE_OPTIONS,
41584
41739
  children: (option) => {
@@ -41633,7 +41788,7 @@ function UnderlineControl(props) {
41633
41788
  });
41634
41789
  }
41635
41790
  delegateEvents(["click"]);
41636
- var _tmpl$$8 = /* @__PURE__ */ template(`<option value=decimal>`), _tmpl$2$5 = /* @__PURE__ */ template(`<option value=lowerLetter>`), _tmpl$3$3 = /* @__PURE__ */ template(`<option value=upperLetter>`), _tmpl$4$3 = /* @__PURE__ */ template(`<option value=lowerRoman>`), _tmpl$5$2 = /* @__PURE__ */ template(`<option value=upperRoman>`), _tmpl$6$2 = /* @__PURE__ */ template(`<option value=bullet>`), _tmpl$7 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-list-options><label class=oasis-editor-toolbar-field><span></span></label><label class=oasis-editor-toolbar-field><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-list-start-at min=1 step=1 placeholder=1>`);
41791
+ var _tmpl$$7 = /* @__PURE__ */ template(`<option value=decimal>`), _tmpl$2$4 = /* @__PURE__ */ template(`<option value=lowerLetter>`), _tmpl$3$3 = /* @__PURE__ */ template(`<option value=upperLetter>`), _tmpl$4$3 = /* @__PURE__ */ template(`<option value=lowerRoman>`), _tmpl$5$2 = /* @__PURE__ */ template(`<option value=upperRoman>`), _tmpl$6$2 = /* @__PURE__ */ template(`<option value=bullet>`), _tmpl$7 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-list-options><label class=oasis-editor-toolbar-field><span></span></label><label class=oasis-editor-toolbar-field><span></span><input type=number class=oasis-editor-tool-number data-testid=editor-toolbar-list-start-at min=1 step=1 placeholder=1>`);
41637
41792
  function ListOptionsControl(props) {
41638
41793
  const t = useI18n();
41639
41794
  const api = props.api;
@@ -41655,11 +41810,11 @@ function ListOptionsControl(props) {
41655
41810
  },
41656
41811
  get children() {
41657
41812
  return [(() => {
41658
- var _el$4 = _tmpl$$8();
41813
+ var _el$4 = _tmpl$$7();
41659
41814
  insert(_el$4, () => t("toolbar.formatDecimal"));
41660
41815
  return _el$4;
41661
41816
  })(), (() => {
41662
- var _el$5 = _tmpl$2$5();
41817
+ var _el$5 = _tmpl$2$4();
41663
41818
  insert(_el$5, () => t("toolbar.formatLowerLetter"));
41664
41819
  return _el$5;
41665
41820
  })(), (() => {
@@ -41688,7 +41843,7 @@ function ListOptionsControl(props) {
41688
41843
  }
41689
41844
  });
41690
41845
  }
41691
- var _tmpl$$7 = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-preview data-testid=editor-line-spacing-dialog-preview><br>`);
41846
+ var _tmpl$$6 = /* @__PURE__ */ template(`<div class=oasis-editor-dialog-preview data-testid=editor-line-spacing-dialog-preview><br>`);
41692
41847
  function LineSpacingDialog(props) {
41693
41848
  const t = useI18n();
41694
41849
  const parseNumber = (value) => {
@@ -41824,7 +41979,7 @@ function LineSpacingDialog(props) {
41824
41979
  return t("lineSpacing.preview");
41825
41980
  },
41826
41981
  get children() {
41827
- var _el$ = _tmpl$$7(), _el$2 = _el$.firstChild;
41982
+ var _el$ = _tmpl$$6(), _el$2 = _el$.firstChild;
41828
41983
  insert(_el$, () => t("lineSpacing.previewText"), _el$2);
41829
41984
  insert(_el$, () => t("lineSpacing.previewText"), null);
41830
41985
  createRenderEffect((_$p) => style(_el$, previewStyle2(), _$p));
@@ -41834,7 +41989,7 @@ function LineSpacingDialog(props) {
41834
41989
  }
41835
41990
  });
41836
41991
  }
41837
- var _tmpl$$6 = /* @__PURE__ */ template(`<div class=oasis-editor-line-spacing-menu-separator role=separator>`), _tmpl$2$4 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-line-spacing-item oasis-editor-line-spacing-item-more"role=menuitem data-testid=editor-toolbar-line-spacing-options><span class=oasis-editor-line-spacing-item-check aria-hidden=true></span><span class=oasis-editor-line-spacing-item-label>`), _tmpl$3$2 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$2 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-line-spacing-button"aria-haspopup=menu data-testid=editor-toolbar-line-spacing><span class=oasis-editor-line-spacing-icon aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><polyline points="4 7 7 4 10 7"></polyline><line x1=7 y1=4 x2=7 y2=20></line><polyline points="4 17 7 20 10 17"></polyline><line x1=13 y1=6 x2=21 y2=6></line><line x1=13 y1=12 x2=21 y2=12></line><line x1=13 y1=18 x2=21 y2=18>`), _tmpl$5$1 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2.5 stroke-linecap=round stroke-linejoin=round><polyline points="20 6 9 17 4 12">`), _tmpl$6$1 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-line-spacing-item role=menuitemradio><span class=oasis-editor-line-spacing-item-check aria-hidden=true></span><span class=oasis-editor-line-spacing-item-label>`);
41992
+ var _tmpl$$5 = /* @__PURE__ */ template(`<div class=oasis-editor-line-spacing-menu-separator role=separator>`), _tmpl$2$3 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-line-spacing-item oasis-editor-line-spacing-item-more"role=menuitem data-testid=editor-toolbar-line-spacing-options><span class=oasis-editor-line-spacing-item-check aria-hidden=true></span><span class=oasis-editor-line-spacing-item-label>`), _tmpl$3$2 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-dropdown>`), _tmpl$4$2 = /* @__PURE__ */ template(`<button type=button class="oasis-editor-tool-button oasis-editor-tool-button-dropdown oasis-editor-line-spacing-button"aria-haspopup=menu data-testid=editor-toolbar-line-spacing><span class=oasis-editor-line-spacing-icon aria-hidden=true><svg xmlns=http://www.w3.org/2000/svg width=18 height=18 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><polyline points="4 7 7 4 10 7"></polyline><line x1=7 y1=4 x2=7 y2=20></line><polyline points="4 17 7 20 10 17"></polyline><line x1=13 y1=6 x2=21 y2=6></line><line x1=13 y1=12 x2=21 y2=12></line><line x1=13 y1=18 x2=21 y2=18>`), _tmpl$5$1 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg width=14 height=14 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2.5 stroke-linecap=round stroke-linejoin=round><polyline points="20 6 9 17 4 12">`), _tmpl$6$1 = /* @__PURE__ */ template(`<button type=button class=oasis-editor-line-spacing-item role=menuitemradio><span class=oasis-editor-line-spacing-item-check aria-hidden=true></span><span class=oasis-editor-line-spacing-item-label>`);
41838
41993
  const PRESET_VALUES = [1, 1.15, 1.5, 2, 2.5, 3];
41839
41994
  function formatPreset(value) {
41840
41995
  return value.toFixed(value === Math.floor(value) ? 1 : 2);
@@ -41956,8 +42111,8 @@ function LineSpacingButton(props) {
41956
42111
  return _el$7;
41957
42112
  })();
41958
42113
  }
41959
- }), _tmpl$$6(), (() => {
41960
- var _el$3 = _tmpl$2$4(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
42114
+ }), _tmpl$$5(), (() => {
42115
+ var _el$3 = _tmpl$2$3(), _el$4 = _el$3.firstChild, _el$5 = _el$4.nextSibling;
41961
42116
  _el$3.$$click = openDialog;
41962
42117
  insert(_el$5, () => t("metric.lineSpacingOptions"));
41963
42118
  return _el$3;
@@ -41989,7 +42144,7 @@ function LineSpacingButton(props) {
41989
42144
  })();
41990
42145
  }
41991
42146
  delegateEvents(["click"]);
41992
- var _tmpl$$5 = /* @__PURE__ */ template(`<div class="oasis-editor-toolbar-panel-section oasis-editor-toolbar-panel-actions">`), _tmpl$2$3 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-panel-grid>`);
42147
+ var _tmpl$$4 = /* @__PURE__ */ template(`<div class="oasis-editor-toolbar-panel-section oasis-editor-toolbar-panel-actions">`), _tmpl$2$2 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-panel-grid>`);
41993
42148
  const numValue = (api, command) => {
41994
42149
  const value = api.commands.state(command).value;
41995
42150
  return value == null ? "" : String(value);
@@ -42008,7 +42163,7 @@ function MetricGroup(props) {
42008
42163
  keepMounted: true,
42009
42164
  get children() {
42010
42165
  return [(() => {
42011
- var _el$ = _tmpl$$5();
42166
+ var _el$ = _tmpl$$4();
42012
42167
  insert(_el$, createComponent(Button$1, {
42013
42168
  icon: "file-up",
42014
42169
  get active() {
@@ -42033,7 +42188,7 @@ function MetricGroup(props) {
42033
42188
  }), null);
42034
42189
  return _el$;
42035
42190
  })(), (() => {
42036
- var _el$2 = _tmpl$2$3();
42191
+ var _el$2 = _tmpl$2$2();
42037
42192
  insert(_el$2, createComponent(NumberField, {
42038
42193
  "class": "oasis-editor-tool-metric",
42039
42194
  labelClass: "oasis-editor-tool-metric-label",
@@ -42135,211 +42290,6 @@ function MetricGroup(props) {
42135
42290
  }
42136
42291
  });
42137
42292
  }
42138
- var _tmpl$$4 = /* @__PURE__ */ template(`<div class="oasis-editor-toolbar-panel-section oasis-editor-toolbar-panel-actions">`), _tmpl$2$2 = /* @__PURE__ */ template(`<div class=oasis-editor-toolbar-badge data-testid=editor-table-selection-label>`);
42139
- function TableGroup(props) {
42140
- const t = useI18n();
42141
- const api = props.api;
42142
- const disabled = (command) => !api.commands.state(command).isEnabled;
42143
- const selectionLabel = () => api.commands.state("tableContext").value;
42144
- return createComponent(Menu, {
42145
- icon: "table-properties",
42146
- testId: "editor-toolbar-table-dropdown",
42147
- get tooltip() {
42148
- return t("toolbar.table");
42149
- },
42150
- hideChevron: true,
42151
- panelClass: "oasis-editor-toolbar-panel oasis-editor-toolbar-table-panel",
42152
- keepMounted: true,
42153
- get children() {
42154
- return [(() => {
42155
- var _el$ = _tmpl$$4();
42156
- insert(_el$, createComponent(Button$1, {
42157
- icon: "combine",
42158
- "data-testid": "editor-toolbar-merge-table",
42159
- get disabled() {
42160
- return disabled("tableMerge");
42161
- },
42162
- onClick: () => api.commands.execute("tableMerge"),
42163
- get tooltip() {
42164
- return t("table.mergeTooltip");
42165
- }
42166
- }), null);
42167
- insert(_el$, createComponent(Button$1, {
42168
- icon: "split",
42169
- "data-testid": "editor-toolbar-split-table",
42170
- get disabled() {
42171
- return disabled("tableSplit");
42172
- },
42173
- onClick: () => api.commands.execute("tableSplit"),
42174
- get tooltip() {
42175
- return t("table.splitTooltip");
42176
- }
42177
- }), null);
42178
- return _el$;
42179
- })(), (() => {
42180
- var _el$2 = _tmpl$$4();
42181
- insert(_el$2, createComponent(Button$1, {
42182
- icon: "columns",
42183
- "data-testid": "editor-toolbar-insert-table-column-before",
42184
- get disabled() {
42185
- return disabled("tableInsertColumnBefore");
42186
- },
42187
- onClick: () => api.commands.execute("tableInsertColumnBefore"),
42188
- get tooltip() {
42189
- return t("table.insertColumnLeft");
42190
- }
42191
- }), null);
42192
- insert(_el$2, createComponent(Button$1, {
42193
- icon: "columns",
42194
- "data-testid": "editor-toolbar-insert-table-column-after",
42195
- get disabled() {
42196
- return disabled("tableInsertColumnAfter");
42197
- },
42198
- onClick: () => api.commands.execute("tableInsertColumnAfter"),
42199
- get tooltip() {
42200
- return t("table.insertColumnRight");
42201
- }
42202
- }), null);
42203
- insert(_el$2, createComponent(Button$1, {
42204
- icon: "trash-2",
42205
- "data-testid": "editor-toolbar-delete-table-column",
42206
- get disabled() {
42207
- return disabled("tableDeleteColumn");
42208
- },
42209
- onClick: () => api.commands.execute("tableDeleteColumn"),
42210
- get tooltip() {
42211
- return t("table.deleteColumn");
42212
- }
42213
- }), null);
42214
- return _el$2;
42215
- })(), (() => {
42216
- var _el$3 = _tmpl$$4();
42217
- insert(_el$3, createComponent(Button$1, {
42218
- icon: "rows",
42219
- "data-testid": "editor-toolbar-insert-table-row-before",
42220
- get disabled() {
42221
- return disabled("tableInsertRowBefore");
42222
- },
42223
- onClick: () => api.commands.execute("tableInsertRowBefore"),
42224
- get tooltip() {
42225
- return t("table.insertRowAbove");
42226
- }
42227
- }), null);
42228
- insert(_el$3, createComponent(Button$1, {
42229
- icon: "rows",
42230
- "data-testid": "editor-toolbar-insert-table-row-after",
42231
- get disabled() {
42232
- return disabled("tableInsertRowAfter");
42233
- },
42234
- onClick: () => api.commands.execute("tableInsertRowAfter"),
42235
- get tooltip() {
42236
- return t("table.insertRowBelow");
42237
- }
42238
- }), null);
42239
- insert(_el$3, createComponent(Button$1, {
42240
- icon: "trash-2",
42241
- "data-testid": "editor-toolbar-delete-table-row",
42242
- get disabled() {
42243
- return disabled("tableDeleteRow");
42244
- },
42245
- onClick: () => api.commands.execute("tableDeleteRow"),
42246
- get tooltip() {
42247
- return t("table.deleteRow");
42248
- }
42249
- }), null);
42250
- return _el$3;
42251
- })(), (() => {
42252
- var _el$4 = _tmpl$$4();
42253
- insert(_el$4, createComponent(Button$1, {
42254
- icon: "palette",
42255
- "data-testid": "editor-toolbar-table-shading",
42256
- onClick: () => {
42257
- const color = prompt(t("table.cellBgColorPrompt"), "#f1f5f9");
42258
- if (color !== null) api.commands.execute("tableCellShading", color);
42259
- },
42260
- get tooltip() {
42261
- return t("table.cellColor");
42262
- }
42263
- }), null);
42264
- insert(_el$4, createComponent(Button$1, {
42265
- icon: "frame",
42266
- "data-testid": "editor-toolbar-table-borders",
42267
- onClick: () => api.commands.execute("tableCellBorders"),
42268
- get tooltip() {
42269
- return t("table.applyBorders");
42270
- }
42271
- }), null);
42272
- insert(_el$4, createComponent(Button$1, {
42273
- icon: "square",
42274
- "data-testid": "editor-toolbar-table-no-borders",
42275
- onClick: () => api.commands.execute("tableCellNoBorders"),
42276
- get tooltip() {
42277
- return t("table.removeBorders");
42278
- }
42279
- }), null);
42280
- return _el$4;
42281
- })(), (() => {
42282
- var _el$5 = _tmpl$$4();
42283
- insert(_el$5, createComponent(Button$1, {
42284
- icon: "maximize",
42285
- "data-testid": "editor-toolbar-table-width-100",
42286
- onClick: () => api.commands.execute("tableWidth100"),
42287
- get tooltip() {
42288
- return t("table.width100Tooltip");
42289
- }
42290
- }));
42291
- return _el$5;
42292
- })(), (() => {
42293
- var _el$6 = _tmpl$$4();
42294
- insert(_el$6, createComponent(Button$1, {
42295
- icon: "align-left",
42296
- "data-testid": "editor-toolbar-table-align-left",
42297
- onClick: () => api.commands.execute("tableAlignLeft"),
42298
- get tooltip() {
42299
- return t("table.alignLeft");
42300
- }
42301
- }), null);
42302
- insert(_el$6, createComponent(Button$1, {
42303
- icon: "align-center",
42304
- "data-testid": "editor-toolbar-table-align-center",
42305
- onClick: () => api.commands.execute("tableAlignCenter"),
42306
- get tooltip() {
42307
- return t("table.alignCenter");
42308
- }
42309
- }), null);
42310
- insert(_el$6, createComponent(Button$1, {
42311
- icon: "align-right",
42312
- "data-testid": "editor-toolbar-table-align-right",
42313
- onClick: () => api.commands.execute("tableAlignRight"),
42314
- get tooltip() {
42315
- return t("table.alignRight");
42316
- }
42317
- }), null);
42318
- insert(_el$6, createComponent(Button$1, {
42319
- icon: "move-horizontal",
42320
- "data-testid": "editor-toolbar-table-cell-width",
42321
- onClick: () => {
42322
- const width = prompt(t("table.cellWidthPrompt"));
42323
- if (width) api.commands.execute("tableSetCellWidth", width);
42324
- },
42325
- get tooltip() {
42326
- return t("table.cellWidth");
42327
- }
42328
- }), null);
42329
- return _el$6;
42330
- })(), createComponent(Show, {
42331
- get when() {
42332
- return selectionLabel();
42333
- },
42334
- children: (label) => (() => {
42335
- var _el$7 = _tmpl$2$2();
42336
- insert(_el$7, label);
42337
- return _el$7;
42338
- })()
42339
- })];
42340
- }
42341
- });
42342
- }
42343
42293
  var _tmpl$$3 = /* @__PURE__ */ template(`<div class="oasis-editor-toolbar-panel-section oasis-editor-toolbar-panel-actions">`);
42344
42294
  function SectionGroup(props) {
42345
42295
  const t = useI18n();
@@ -43253,6 +43203,7 @@ function ShapeGallery(props) {
43253
43203
  delegateEvents(["click"]);
43254
43204
  const mod = /Mac/i.test(navigator.userAgent) ? "⌘" : "Ctrl";
43255
43205
  const documentStyles = (api) => api.commands.state("documentStyles").value ?? [];
43206
+ const tableStyleOptions = (api) => documentStyles(api).filter((s) => s.type === "table").map((s) => ({ value: s.id, label: s.name }));
43256
43207
  const fontFamilyOptions = (api) => {
43257
43208
  const values = /* @__PURE__ */ new Set([
43258
43209
  "Arial",
@@ -43324,6 +43275,112 @@ const LIST_BUTTONS = [
43324
43275
  tooltipKey: "toolbar.numberedList"
43325
43276
  }
43326
43277
  ];
43278
+ const TABLE_LAYOUT_BUTTONS = [
43279
+ {
43280
+ id: "editor-toolbar-tbl-insert-row-above",
43281
+ command: "tableInsertRowBefore",
43282
+ icon: "rows",
43283
+ tooltipKey: "table.insertRowAbove"
43284
+ },
43285
+ {
43286
+ id: "editor-toolbar-tbl-insert-row-below",
43287
+ command: "tableInsertRowAfter",
43288
+ icon: "rows",
43289
+ tooltipKey: "table.insertRowBelow"
43290
+ },
43291
+ {
43292
+ id: "editor-toolbar-tbl-delete-row",
43293
+ command: "tableDeleteRow",
43294
+ icon: "trash-2",
43295
+ tooltipKey: "table.deleteRow"
43296
+ },
43297
+ {
43298
+ id: "editor-toolbar-tbl-insert-col-left",
43299
+ command: "tableInsertColumnBefore",
43300
+ icon: "columns",
43301
+ tooltipKey: "table.insertColumnLeft"
43302
+ },
43303
+ {
43304
+ id: "editor-toolbar-tbl-insert-col-right",
43305
+ command: "tableInsertColumnAfter",
43306
+ icon: "columns",
43307
+ tooltipKey: "table.insertColumnRight"
43308
+ },
43309
+ {
43310
+ id: "editor-toolbar-tbl-delete-col",
43311
+ command: "tableDeleteColumn",
43312
+ icon: "trash-2",
43313
+ tooltipKey: "table.deleteColumn"
43314
+ },
43315
+ {
43316
+ id: "editor-toolbar-tbl-merge",
43317
+ command: "tableMerge",
43318
+ icon: "combine",
43319
+ tooltipKey: "table.mergeTooltip"
43320
+ },
43321
+ {
43322
+ id: "editor-toolbar-tbl-split",
43323
+ command: "tableSplit",
43324
+ icon: "split",
43325
+ tooltipKey: "table.splitTooltip"
43326
+ },
43327
+ {
43328
+ id: "editor-toolbar-tbl-width-100",
43329
+ command: "tableWidth100",
43330
+ icon: "maximize",
43331
+ tooltipKey: "table.width100Tooltip"
43332
+ },
43333
+ {
43334
+ id: "editor-toolbar-tbl-align-left",
43335
+ command: "tableAlignLeft",
43336
+ icon: "align-left",
43337
+ tooltipKey: "table.alignLeft"
43338
+ },
43339
+ {
43340
+ id: "editor-toolbar-tbl-align-center",
43341
+ command: "tableAlignCenter",
43342
+ icon: "align-center",
43343
+ tooltipKey: "table.alignCenter"
43344
+ },
43345
+ {
43346
+ id: "editor-toolbar-tbl-align-right",
43347
+ command: "tableAlignRight",
43348
+ icon: "align-right",
43349
+ tooltipKey: "table.alignRight"
43350
+ }
43351
+ ];
43352
+ const TABLE_DESIGN_TOGGLES = [
43353
+ {
43354
+ id: "editor-toolbar-tbl-header-row",
43355
+ command: "tableToggleHeaderRow",
43356
+ labelKey: "table.headerRow"
43357
+ },
43358
+ {
43359
+ id: "editor-toolbar-tbl-total-row",
43360
+ command: "tableToggleTotalRow",
43361
+ labelKey: "table.totalRow"
43362
+ },
43363
+ {
43364
+ id: "editor-toolbar-tbl-banded-rows",
43365
+ command: "tableToggleBandedRows",
43366
+ labelKey: "table.bandedRows"
43367
+ },
43368
+ {
43369
+ id: "editor-toolbar-tbl-first-col",
43370
+ command: "tableToggleFirstColumn",
43371
+ labelKey: "table.firstColumn"
43372
+ },
43373
+ {
43374
+ id: "editor-toolbar-tbl-last-col",
43375
+ command: "tableToggleLastColumn",
43376
+ labelKey: "table.lastColumn"
43377
+ },
43378
+ {
43379
+ id: "editor-toolbar-tbl-banded-cols",
43380
+ command: "tableToggleBandedColumns",
43381
+ labelKey: "table.bandedColumns"
43382
+ }
43383
+ ];
43327
43384
  const RIBBON_PLACEMENTS = {
43328
43385
  "editor-toolbar-file-dropdown": { tab: "file", group: "document", row: 1 },
43329
43386
  "sep-file": { tab: "file", group: "document", row: 1 },
@@ -43391,8 +43448,123 @@ const RIBBON_PLACEMENTS = {
43391
43448
  "sep-paragraph": { tab: "home", group: "paragraph", row: 2 },
43392
43449
  "editor-toolbar-metrics": { tab: "layout", group: "paragraph", row: 1 },
43393
43450
  "sep-metrics": { tab: "layout", group: "paragraph", row: 2 },
43394
- "editor-toolbar-table": { tab: "layout", group: "table", row: 1 },
43395
- "sep-table": { tab: "layout", group: "table", row: 2 },
43451
+ "editor-toolbar-tbl-insert-row-above": {
43452
+ tab: "tableLayout",
43453
+ group: "rowsColumns",
43454
+ row: 1
43455
+ },
43456
+ "editor-toolbar-tbl-insert-row-below": {
43457
+ tab: "tableLayout",
43458
+ group: "rowsColumns",
43459
+ row: 1
43460
+ },
43461
+ "editor-toolbar-tbl-delete-row": {
43462
+ tab: "tableLayout",
43463
+ group: "rowsColumns",
43464
+ row: 1
43465
+ },
43466
+ "editor-toolbar-tbl-insert-col-left": {
43467
+ tab: "tableLayout",
43468
+ group: "rowsColumns",
43469
+ row: 2
43470
+ },
43471
+ "editor-toolbar-tbl-insert-col-right": {
43472
+ tab: "tableLayout",
43473
+ group: "rowsColumns",
43474
+ row: 2
43475
+ },
43476
+ "editor-toolbar-tbl-delete-col": {
43477
+ tab: "tableLayout",
43478
+ group: "rowsColumns",
43479
+ row: 2
43480
+ },
43481
+ "editor-toolbar-tbl-merge": { tab: "tableLayout", group: "merge", row: 1 },
43482
+ "editor-toolbar-tbl-split": { tab: "tableLayout", group: "merge", row: 2 },
43483
+ "editor-toolbar-tbl-width-100": {
43484
+ tab: "tableLayout",
43485
+ group: "cellSize",
43486
+ row: 1
43487
+ },
43488
+ "editor-toolbar-tbl-align-left": {
43489
+ tab: "tableLayout",
43490
+ group: "alignment",
43491
+ row: 1
43492
+ },
43493
+ "editor-toolbar-tbl-align-center": {
43494
+ tab: "tableLayout",
43495
+ group: "alignment",
43496
+ row: 1
43497
+ },
43498
+ "editor-toolbar-tbl-align-right": {
43499
+ tab: "tableLayout",
43500
+ group: "alignment",
43501
+ row: 1
43502
+ },
43503
+ "editor-toolbar-tbl-header-row": {
43504
+ tab: "tableDesign",
43505
+ group: "tableStyleOptions",
43506
+ row: 1
43507
+ },
43508
+ "editor-toolbar-tbl-total-row": {
43509
+ tab: "tableDesign",
43510
+ group: "tableStyleOptions",
43511
+ row: 1
43512
+ },
43513
+ "editor-toolbar-tbl-banded-rows": {
43514
+ tab: "tableDesign",
43515
+ group: "tableStyleOptions",
43516
+ row: 1
43517
+ },
43518
+ "editor-toolbar-tbl-first-col": {
43519
+ tab: "tableDesign",
43520
+ group: "tableStyleOptions",
43521
+ row: 2
43522
+ },
43523
+ "editor-toolbar-tbl-last-col": {
43524
+ tab: "tableDesign",
43525
+ group: "tableStyleOptions",
43526
+ row: 2
43527
+ },
43528
+ "editor-toolbar-tbl-banded-cols": {
43529
+ tab: "tableDesign",
43530
+ group: "tableStyleOptions",
43531
+ row: 2
43532
+ },
43533
+ "editor-toolbar-tbl-shading": {
43534
+ tab: "tableDesign",
43535
+ group: "borders",
43536
+ row: 1
43537
+ },
43538
+ "editor-toolbar-tbl-borders": {
43539
+ tab: "tableDesign",
43540
+ group: "borders",
43541
+ row: 2
43542
+ },
43543
+ "editor-toolbar-tbl-no-borders": {
43544
+ tab: "tableDesign",
43545
+ group: "borders",
43546
+ row: 2
43547
+ },
43548
+ "editor-toolbar-tbl-style": {
43549
+ tab: "tableDesign",
43550
+ group: "tableStyles",
43551
+ row: 1
43552
+ },
43553
+ "editor-toolbar-tbl-distribute-rows": {
43554
+ tab: "tableLayout",
43555
+ group: "cellSize",
43556
+ row: 1
43557
+ },
43558
+ "editor-toolbar-tbl-distribute-cols": {
43559
+ tab: "tableLayout",
43560
+ group: "cellSize",
43561
+ row: 1
43562
+ },
43563
+ "editor-toolbar-tbl-autofit": {
43564
+ tab: "tableLayout",
43565
+ group: "cellSize",
43566
+ row: 2
43567
+ },
43396
43568
  "editor-toolbar-margins": { tab: "layout", group: "section", row: 1 },
43397
43569
  "editor-toolbar-section": { tab: "layout", group: "section", row: 1 }
43398
43570
  };
@@ -43832,16 +44004,85 @@ function createDefaultToolbarPreset(t) {
43832
44004
  render: (api) => MetricGroup({ api })
43833
44005
  });
43834
44006
  items.push({ type: "separator", id: "sep-metrics" });
44007
+ for (const spec of TABLE_LAYOUT_BUTTONS) {
44008
+ items.push({
44009
+ type: "button",
44010
+ id: spec.id,
44011
+ testId: spec.id,
44012
+ iconName: spec.icon,
44013
+ command: spec.command,
44014
+ tooltipKey: spec.tooltipKey
44015
+ });
44016
+ }
44017
+ for (const spec of TABLE_DESIGN_TOGGLES) {
44018
+ items.push({
44019
+ type: "toggle",
44020
+ id: spec.id,
44021
+ testId: spec.id,
44022
+ command: spec.command,
44023
+ labelKey: spec.labelKey,
44024
+ tooltipKey: spec.labelKey
44025
+ });
44026
+ }
43835
44027
  items.push({
43836
- type: "custom",
43837
- id: "editor-toolbar-table",
43838
- isVisible: (api) => api.commands.state("tableContext").isActive,
43839
- render: (api) => TableGroup({ api })
44028
+ type: "colorPicker",
44029
+ id: "editor-toolbar-tbl-shading",
44030
+ testId: "editor-toolbar-tbl-shading",
44031
+ kind: "shading",
44032
+ command: "tableCellShading",
44033
+ defaultValue: "#f1f5f9",
44034
+ tooltipKey: "table.cellColor"
44035
+ });
44036
+ items.push({
44037
+ type: "button",
44038
+ id: "editor-toolbar-tbl-borders",
44039
+ testId: "editor-toolbar-tbl-borders",
44040
+ iconName: "frame",
44041
+ command: "tableCellBorders",
44042
+ tooltipKey: "table.applyBorders"
43840
44043
  });
43841
44044
  items.push({
43842
- type: "separator",
43843
- id: "sep-table",
43844
- isVisible: (api) => api.commands.state("tableContext").isActive
44045
+ type: "button",
44046
+ id: "editor-toolbar-tbl-no-borders",
44047
+ testId: "editor-toolbar-tbl-no-borders",
44048
+ iconName: "square",
44049
+ command: "tableCellNoBorders",
44050
+ tooltipKey: "table.removeBorders"
44051
+ });
44052
+ items.push({
44053
+ type: "select",
44054
+ id: "editor-toolbar-tbl-style",
44055
+ testId: "editor-toolbar-tbl-style",
44056
+ tooltipKey: "table.tableStyle",
44057
+ placeholder: t("table.tableStyle"),
44058
+ width: "wide",
44059
+ command: "setTableStyle",
44060
+ options: tableStyleOptions
44061
+ });
44062
+ items.push({
44063
+ type: "button",
44064
+ id: "editor-toolbar-tbl-distribute-rows",
44065
+ testId: "editor-toolbar-tbl-distribute-rows",
44066
+ iconName: "rows",
44067
+ command: "tableDistributeRows",
44068
+ tooltipKey: "table.distributeRows"
44069
+ });
44070
+ items.push({
44071
+ type: "button",
44072
+ id: "editor-toolbar-tbl-distribute-cols",
44073
+ testId: "editor-toolbar-tbl-distribute-cols",
44074
+ iconName: "columns",
44075
+ command: "tableDistributeColumns",
44076
+ tooltipKey: "table.distributeColumns"
44077
+ });
44078
+ items.push({
44079
+ type: "toggle",
44080
+ id: "editor-toolbar-tbl-autofit",
44081
+ testId: "editor-toolbar-tbl-autofit",
44082
+ iconName: "move-horizontal",
44083
+ command: "tableToggleAutoFit",
44084
+ labelKey: "table.autoFit",
44085
+ tooltipKey: "table.autoFit"
43845
44086
  });
43846
44087
  items.push({
43847
44088
  type: "custom",
@@ -43895,7 +44136,6 @@ const OASIS_TOOLBAR_ITEMS = {
43895
44136
  specialIndent: "editor-toolbar-special-indent",
43896
44137
  lineSpacing: "editor-toolbar-line-spacing-control",
43897
44138
  metrics: "editor-toolbar-metrics",
43898
- table: "editor-toolbar-table",
43899
44139
  margins: "editor-toolbar-margins",
43900
44140
  section: "editor-toolbar-section"
43901
44141
  };
@@ -44008,8 +44248,8 @@ export {
44008
44248
  Show as ac,
44009
44249
  createRenderEffect as ad,
44010
44250
  style as ae,
44011
- setAttribute as af,
44012
- setStyleProperty as ag,
44251
+ setStyleProperty as af,
44252
+ setAttribute as ag,
44013
44253
  memo as ah,
44014
44254
  template as ai,
44015
44255
  Button as aj,