@beyondwork/docx-react-component 1.0.134 → 1.0.135

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 (83) hide show
  1. package/dist/api/public-types.cjs +20 -2
  2. package/dist/api/public-types.d.cts +1 -1
  3. package/dist/api/public-types.d.ts +1 -1
  4. package/dist/api/public-types.js +2 -2
  5. package/dist/api/v3.cjs +20 -2
  6. package/dist/api/v3.d.cts +2 -2
  7. package/dist/api/v3.d.ts +2 -2
  8. package/dist/api/v3.js +4 -4
  9. package/dist/{chunk-REFHJ2FN.js → chunk-2BNXARVO.js} +3 -3
  10. package/dist/{chunk-INLRCC4N.js → chunk-4CIHTMCH.js} +2 -2
  11. package/dist/{chunk-IJD6D7HU.js → chunk-5CCYF333.js} +2 -2
  12. package/dist/{chunk-MQ5GAJ54.js → chunk-BJXSMPHD.js} +1 -1
  13. package/dist/{chunk-ESEEWELA.js → chunk-EPFVMUKF.js} +3 -3
  14. package/dist/{chunk-XBQFDBXE.js → chunk-EZFF6GKF.js} +9 -2
  15. package/dist/{chunk-3YR47WTD.js → chunk-FGJTOFZY.js} +21 -9
  16. package/dist/{chunk-EBSI6VQX.js → chunk-GIFXKIM5.js} +181 -44
  17. package/dist/{chunk-74R5B2EZ.js → chunk-H4HI6RUE.js} +1 -1
  18. package/dist/{chunk-7Y6JCIK3.js → chunk-HWMPNLEF.js} +1 -1
  19. package/dist/{chunk-VA24T4EB.js → chunk-NEMOQ4QR.js} +1 -1
  20. package/dist/{chunk-O4EDZR44.js → chunk-P7XDEVS6.js} +12 -1
  21. package/dist/{chunk-QTRJLKR2.js → chunk-TSNK4ECL.js} +1 -1
  22. package/dist/{chunk-WDDFU2N2.js → chunk-UR2LW63N.js} +1 -1
  23. package/dist/core/commands/formatting-commands.d.cts +1 -1
  24. package/dist/core/commands/formatting-commands.d.ts +1 -1
  25. package/dist/core/commands/image-commands.cjs +9 -2
  26. package/dist/core/commands/image-commands.d.cts +1 -1
  27. package/dist/core/commands/image-commands.d.ts +1 -1
  28. package/dist/core/commands/image-commands.js +4 -4
  29. package/dist/core/commands/section-layout-commands.d.cts +1 -1
  30. package/dist/core/commands/section-layout-commands.d.ts +1 -1
  31. package/dist/core/commands/style-commands.d.cts +1 -1
  32. package/dist/core/commands/style-commands.d.ts +1 -1
  33. package/dist/core/commands/table-structure-commands.cjs +9 -2
  34. package/dist/core/commands/table-structure-commands.d.cts +1 -1
  35. package/dist/core/commands/table-structure-commands.d.ts +1 -1
  36. package/dist/core/commands/table-structure-commands.js +3 -3
  37. package/dist/core/commands/text-commands.cjs +9 -2
  38. package/dist/core/commands/text-commands.d.cts +1 -1
  39. package/dist/core/commands/text-commands.d.ts +1 -1
  40. package/dist/core/commands/text-commands.js +4 -4
  41. package/dist/core/selection/mapping.d.cts +1 -1
  42. package/dist/core/selection/mapping.d.ts +1 -1
  43. package/dist/core/state/editor-state.d.cts +1 -1
  44. package/dist/core/state/editor-state.d.ts +1 -1
  45. package/dist/index.cjs +212 -44
  46. package/dist/index.d.cts +4 -4
  47. package/dist/index.d.ts +4 -4
  48. package/dist/index.js +15 -14
  49. package/dist/io/docx-session.d.cts +3 -3
  50. package/dist/io/docx-session.d.ts +3 -3
  51. package/dist/{loader-CK3lZy4h.d.cts → loader-BQ7AB-0v.d.cts} +2 -2
  52. package/dist/{loader-CQXplstv.d.ts → loader-Cy6OYBfn.d.ts} +2 -2
  53. package/dist/{public-types-BR1SYK2F.d.cts → public-types-D31xKNGc.d.cts} +6 -0
  54. package/dist/{public-types-DXNZVKrS.d.ts → public-types-DqYt8GdP.d.ts} +6 -0
  55. package/dist/public-types.cjs +20 -2
  56. package/dist/public-types.d.cts +1 -1
  57. package/dist/public-types.d.ts +1 -1
  58. package/dist/public-types.js +2 -2
  59. package/dist/runtime/collab.d.cts +2 -2
  60. package/dist/runtime/collab.d.ts +2 -2
  61. package/dist/runtime/document-runtime.cjs +192 -37
  62. package/dist/runtime/document-runtime.d.cts +1 -1
  63. package/dist/runtime/document-runtime.d.ts +1 -1
  64. package/dist/runtime/document-runtime.js +10 -10
  65. package/dist/{session-CSbwkgII.d.cts → session-DA-F2fCw.d.cts} +2 -2
  66. package/dist/{session-C9UjrhJF.d.ts → session-DqL8H0oZ.d.ts} +2 -2
  67. package/dist/session.d.cts +4 -4
  68. package/dist/session.d.ts +4 -4
  69. package/dist/tailwind.cjs +27 -8
  70. package/dist/tailwind.d.cts +1 -1
  71. package/dist/tailwind.d.ts +1 -1
  72. package/dist/tailwind.js +5 -5
  73. package/dist/{types-CZtAueri.d.cts → types-B2y94n5t.d.cts} +1 -1
  74. package/dist/{types-RzkCXDNV.d.ts → types-SllbCtGs.d.ts} +1 -1
  75. package/dist/ui-tailwind/editor-surface/search-plugin.cjs +11 -0
  76. package/dist/ui-tailwind/editor-surface/search-plugin.d.cts +2 -2
  77. package/dist/ui-tailwind/editor-surface/search-plugin.d.ts +2 -2
  78. package/dist/ui-tailwind/editor-surface/search-plugin.js +3 -3
  79. package/dist/ui-tailwind.cjs +27 -8
  80. package/dist/ui-tailwind.d.cts +2 -2
  81. package/dist/ui-tailwind.d.ts +2 -2
  82. package/dist/ui-tailwind.js +5 -5
  83. package/package.json +1 -1
@@ -11011,10 +11011,16 @@ var FormattingContextImpl = class {
11011
11011
  // surface-projection calls `resolveParagraphCascade` on the same
11012
11012
  // paragraph via `resolveParagraph` + numbering resolve + marker-rPr;
11013
11013
  // each of those re-walked the style catalog before.
11014
- paragraphCascadeCache = /* @__PURE__ */ new WeakMap();
11014
+ //
11015
+ // Defaults to a per-context instance, but the runtime can supply a
11016
+ // persistent `WeakMap` via `FormattingContextOptions.paragraphCascadeCache`
11017
+ // so unchanged paragraphs don't re-cascade on every keystroke. See the
11018
+ // contract on the option for invalidation semantics.
11019
+ paragraphCascadeCache;
11015
11020
  constructor(doc, opts) {
11016
11021
  this.doc = doc;
11017
11022
  this.opts = opts;
11023
+ this.paragraphCascadeCache = opts.paragraphCascadeCache ?? /* @__PURE__ */ new WeakMap();
11018
11024
  const canonicalTheme = doc.subParts?.canonicalTheme;
11019
11025
  this.theme = opts.themeResolver ?? (canonicalTheme ? new ThemeColorResolver(canonicalTheme) : void 0);
11020
11026
  this.numbering = opts.numberingPrefixResolver ?? createNumberingPrefixResolver(doc.numbering);
@@ -11580,7 +11586,8 @@ function createEditorSurfaceSnapshot(document2, _selection, activeStory = { kind
11580
11586
  const formattingContext = createFormattingContext(document2, {
11581
11587
  ...options.revisionMarkupMode ? { revisionMarkupMode: options.revisionMarkupMode } : {},
11582
11588
  ...options.getEffectiveMarkupMode ? { getEffectiveMarkupMode: options.getEffectiveMarkupMode } : {},
11583
- ...options.authorColorPalette ? { authorColorPalette: options.authorColorPalette } : {}
11589
+ ...options.authorColorPalette ? { authorColorPalette: options.authorColorPalette } : {},
11590
+ ...options.paragraphCascadeCache ? { paragraphCascadeCache: options.paragraphCascadeCache } : {}
11584
11591
  });
11585
11592
  const editableTargetsByBlockPath = options.editableTargetsByBlockPath ?? indexEditableTargetsByBlockPath(document2);
11586
11593
  const layoutIdentitiesByBlockPath = options.layoutIdentitiesByBlockPath;
@@ -41526,6 +41533,8 @@ function buildSearchPattern(query, options = {}) {
41526
41533
  function findSearchMatches(text, query, options = {}) {
41527
41534
  const pattern = buildSearchPattern(query, options);
41528
41535
  if (!pattern) return [];
41536
+ const limit = normalizeSearchLimit(options.limit);
41537
+ if (limit === 0) return [];
41529
41538
  const results = [];
41530
41539
  let match;
41531
41540
  pattern.lastIndex = 0;
@@ -41536,12 +41545,21 @@ function findSearchMatches(text, query, options = {}) {
41536
41545
  text: match[0],
41537
41546
  index: results.length
41538
41547
  });
41548
+ if (results.length >= limit) {
41549
+ break;
41550
+ }
41539
41551
  if (match[0].length === 0) {
41540
41552
  pattern.lastIndex += 1;
41541
41553
  }
41542
41554
  }
41543
41555
  return results;
41544
41556
  }
41557
+ function normalizeSearchLimit(limit) {
41558
+ if (limit === void 0 || !Number.isFinite(limit)) {
41559
+ return Number.POSITIVE_INFINITY;
41560
+ }
41561
+ return Math.max(0, Math.floor(limit));
41562
+ }
41545
41563
  function createSearchExcerpt(text, from, to, radius = 24) {
41546
41564
  const safeFrom = Math.max(0, Math.min(from, text.length));
41547
41565
  const safeTo = Math.max(safeFrom, Math.min(to, text.length));
@@ -56210,6 +56228,36 @@ function createDocumentRuntime(options) {
56210
56228
  let viewportBlockRanges = null;
56211
56229
  let viewportRangesKey = serializeViewportRanges(viewportBlockRanges);
56212
56230
  let viewportBlocksPerPageEstimate = null;
56231
+ let fullSurfaceWarmupScheduled = false;
56232
+ let fullSurfaceWarmupCompleted = false;
56233
+ function scheduleFullSurfaceWarmupAfterCull() {
56234
+ if (fullSurfaceWarmupScheduled || fullSurfaceWarmupCompleted) return;
56235
+ fullSurfaceWarmupScheduled = true;
56236
+ perfCounters.increment("surface.fullSurfaceWarmup.scheduled");
56237
+ runOnIdle(() => {
56238
+ fullSurfaceWarmupScheduled = false;
56239
+ if (cachedFullSurface) {
56240
+ perfCounters.increment("surface.fullSurfaceWarmup.alreadyCached");
56241
+ fullSurfaceWarmupCompleted = true;
56242
+ return;
56243
+ }
56244
+ const t0 = performance.now();
56245
+ try {
56246
+ getCachedFullSurface(state.document, activeStory);
56247
+ fullSurfaceWarmupCompleted = true;
56248
+ perfCounters.increment("surface.fullSurfaceWarmup.committed");
56249
+ } catch (error) {
56250
+ perfCounters.increment("surface.fullSurfaceWarmup.failed");
56251
+ fullSurfaceWarmupCompleted = false;
56252
+ void error;
56253
+ } finally {
56254
+ perfCounters.increment(
56255
+ "surface.fullSurfaceWarmup.us",
56256
+ Math.round((performance.now() - t0) * 1e3)
56257
+ );
56258
+ }
56259
+ });
56260
+ }
56213
56261
  const getRuntimeForLayoutFacet = () => {
56214
56262
  if (!runtimeRef) {
56215
56263
  throw new Error("Document runtime viewport methods are not initialized");
@@ -56402,6 +56450,15 @@ function createDocumentRuntime(options) {
56402
56450
  let cachedSurface;
56403
56451
  let cachedFullSurface;
56404
56452
  const editableTargetBlockCache = createEditableTargetBlockCache();
56453
+ let paragraphCascadeCache = /* @__PURE__ */ new WeakMap();
56454
+ let paragraphCascadeCacheStylesRef = null;
56455
+ function ensureParagraphCascadeCacheForStyles(nextStyles) {
56456
+ if (paragraphCascadeCacheStylesRef !== nextStyles) {
56457
+ paragraphCascadeCache = /* @__PURE__ */ new WeakMap();
56458
+ paragraphCascadeCacheStylesRef = nextStyles;
56459
+ }
56460
+ return paragraphCascadeCache;
56461
+ }
56405
56462
  let cachedEditableTargetMap = null;
56406
56463
  function getEditableTargetsByBlockPath(document2) {
56407
56464
  if (cachedEditableTargetMap !== null && cachedEditableTargetMap.document === document2) {
@@ -56455,6 +56512,7 @@ function createDocumentRuntime(options) {
56455
56512
  const snapshot = createEditorSurfaceSnapshot(document2, state.selection, nextActiveStory, {
56456
56513
  viewportBlockRanges: null,
56457
56514
  editableTargetsByBlockPath: getEditableTargetsByBlockPath(document2),
56515
+ paragraphCascadeCache: ensureParagraphCascadeCacheForStyles(document2.styles),
56458
56516
  ...effectiveMarkupModeProvider ? { getEffectiveMarkupMode: effectiveMarkupModeProvider } : {}
56459
56517
  });
56460
56518
  recordPerfSample("snapshot.surface");
@@ -56495,6 +56553,7 @@ function createDocumentRuntime(options) {
56495
56553
  activeStoryKey,
56496
56554
  surfaceViewportRanges
56497
56555
  ),
56556
+ paragraphCascadeCache: ensureParagraphCascadeCacheForStyles(document2.styles),
56498
56557
  ...effectiveMarkupModeProvider ? { getEffectiveMarkupMode: effectiveMarkupModeProvider } : {}
56499
56558
  });
56500
56559
  recordPerfSample("snapshot.surface");
@@ -56706,7 +56765,17 @@ function createDocumentRuntime(options) {
56706
56765
  }
56707
56766
  }
56708
56767
  function tryPatchNestedLocalTextSurface(previousSurface, editFrom, editTo, insertedText) {
56709
- const shiftBudget = estimateLocalTextPatchShiftBudget(previousSurface.blocks, 0);
56768
+ const containerIndex = previousSurface.blocks.findIndex(
56769
+ (block) => editFrom >= block.from && editTo <= block.to
56770
+ );
56771
+ if (containerIndex < 0) {
56772
+ perfCounters.increment("surface.localText.patchMiss");
56773
+ return null;
56774
+ }
56775
+ const shiftBudget = estimateLocalTextPatchShiftBudget(
56776
+ previousSurface.blocks,
56777
+ containerIndex + 1
56778
+ );
56710
56779
  perfCounters.increment("surface.localText.shiftedBlocks", shiftBudget.shiftedBlocks);
56711
56780
  perfCounters.increment("surface.localText.shiftedNodes", shiftBudget.shiftedNodes);
56712
56781
  if (!shiftBudget.withinBudget) {
@@ -56786,19 +56855,9 @@ function createDocumentRuntime(options) {
56786
56855
  for (let index = startIndex; index < blocks.length; index += 1) {
56787
56856
  const shiftedBlockNodes = countSurfaceShiftNodesUpTo(
56788
56857
  blocks[index],
56789
- Math.min(
56790
- policy.maxShiftedNodesPerBlock,
56791
- policy.maxShiftedSurfaceNodes - shiftedNodes
56792
- ) + 1
56858
+ policy.maxShiftedSurfaceNodes - shiftedNodes + 1
56793
56859
  );
56794
56860
  shiftedNodes += shiftedBlockNodes;
56795
- if (shiftedBlockNodes > policy.maxShiftedNodesPerBlock) {
56796
- return {
56797
- shiftedBlocks,
56798
- shiftedNodes,
56799
- withinBudget: false
56800
- };
56801
- }
56802
56861
  if (shiftedNodes > policy.maxShiftedSurfaceNodes) {
56803
56862
  return {
56804
56863
  shiftedBlocks,
@@ -57470,6 +57529,9 @@ function createDocumentRuntime(options) {
57470
57529
  viewportBlockRangesOverride: firstSurfaceViewportBlockRanges
57471
57530
  }) : getCachedSurface(state.document, activeStory)
57472
57531
  );
57532
+ if (firstSurfaceViewportBlockRanges) {
57533
+ scheduleFullSurfaceWarmupAfterCull();
57534
+ }
57473
57535
  const snapshot = {
57474
57536
  documentId: state.documentId,
57475
57537
  sessionId: state.sessionId,
@@ -57583,6 +57645,9 @@ function createDocumentRuntime(options) {
57583
57645
  activeStoryKey,
57584
57646
  viewportBlockRanges
57585
57647
  ),
57648
+ paragraphCascadeCache: ensureParagraphCascadeCacheForStyles(
57649
+ state.document.styles
57650
+ ),
57586
57651
  ...effectiveMarkupModeProvider ? { getEffectiveMarkupMode: effectiveMarkupModeProvider } : {}
57587
57652
  }
57588
57653
  );
@@ -60855,10 +60920,11 @@ function createDocumentRuntime(options) {
60855
60920
  document: state.document,
60856
60921
  editableTarget,
60857
60922
  selection,
60923
+ storyTarget: activeStory,
60858
60924
  targetResolution,
60859
60925
  timestamp
60860
60926
  });
60861
- if (selectedListItemDelete && activeStory.kind === "main" && context.documentMode !== "suggesting") {
60927
+ if (selectedListItemDelete && context.documentMode !== "suggesting") {
60862
60928
  const replacementCommand = {
60863
60929
  type: "document.replace",
60864
60930
  document: selectedListItemDelete.document,
@@ -61123,6 +61189,9 @@ function createDocumentRuntime(options) {
61123
61189
  });
61124
61190
  }
61125
61191
  function scheduleIdleContextAnalytics(callback) {
61192
+ runOnIdle(callback);
61193
+ }
61194
+ function runOnIdle(callback) {
61126
61195
  const requestIdle = globalThis.requestIdleCallback;
61127
61196
  if (typeof requestIdle === "function") {
61128
61197
  requestIdle(callback, { timeout: 250 });
@@ -63763,7 +63832,7 @@ function isTopLevelMainStoryBlockPath(blockPath) {
63763
63832
  return typeof blockPath === "string" && /^main\/block\[\d+\]$/u.test(blockPath);
63764
63833
  }
63765
63834
  function createSelectedListItemDeleteReplacement(input) {
63766
- const { command, document: document2, editableTarget, selection, targetResolution, timestamp } = input;
63835
+ const { command, document: document2, editableTarget, selection, storyTarget, targetResolution, timestamp } = input;
63767
63836
  if (command.type !== "text.delete-backward" && command.type !== "text.delete-forward") {
63768
63837
  return null;
63769
63838
  }
@@ -63775,20 +63844,19 @@ function createSelectedListItemDeleteReplacement(input) {
63775
63844
  if (selectionFrom !== targetResolution.range.from || selectionTo !== targetResolution.range.to) {
63776
63845
  return null;
63777
63846
  }
63778
- const root = document2.content;
63779
- const replacement = removeNumberedParagraphAtMainStoryPath(root.children, editableTarget.blockPath);
63847
+ const storyBlocks = getStoryBlocks(document2, storyTarget);
63848
+ const replacement = removeNumberedParagraphAtStoryPath(storyBlocks, editableTarget.blockPath, storyTarget);
63780
63849
  if (!replacement) {
63781
63850
  return null;
63782
63851
  }
63783
- const nextDocument = {
63852
+ const nextDocument = replaceStoryBlocks({
63784
63853
  ...document2,
63785
- updatedAt: timestamp,
63786
- content: {
63787
- ...root,
63788
- children: replacement.blocks
63789
- }
63790
- };
63791
- const nextStorySize = parseTextStory(nextDocument.content).size;
63854
+ updatedAt: timestamp
63855
+ }, storyTarget, replacement.blocks);
63856
+ const nextStorySize = parseTextStory({
63857
+ type: "doc",
63858
+ children: [...getStoryBlocks(nextDocument, storyTarget)]
63859
+ }).size;
63792
63860
  const nextAnchor = Math.min(selectionFrom, nextStorySize);
63793
63861
  return {
63794
63862
  document: nextDocument,
@@ -63805,8 +63873,8 @@ function createSelectedListItemDeleteReplacement(input) {
63805
63873
  }
63806
63874
  };
63807
63875
  }
63808
- function removeNumberedParagraphAtMainStoryPath(blocks, blockPath) {
63809
- const tokens = parseMainStoryBlockPathTokens(blockPath);
63876
+ function removeNumberedParagraphAtStoryPath(blocks, blockPath, storyTarget) {
63877
+ const tokens = parseStoryBlockPathTokens(blockPath, storyTarget);
63810
63878
  if (!tokens) return null;
63811
63879
  return removeNumberedParagraphFromBlocks(blocks, tokens);
63812
63880
  }
@@ -63852,6 +63920,52 @@ function removeNumberedParagraphFromBlocks(blocks, tokens) {
63852
63920
  ]
63853
63921
  };
63854
63922
  }
63923
+ if (block.type === "paragraph" && next?.kind === "inline") {
63924
+ const updatedParagraph = removeNumberedParagraphFromTextBoxInline(block, rest);
63925
+ if (!updatedParagraph) return null;
63926
+ return {
63927
+ blocks: [
63928
+ ...blocks.slice(0, token.index),
63929
+ updatedParagraph,
63930
+ ...blocks.slice(token.index + 1)
63931
+ ]
63932
+ };
63933
+ }
63934
+ return null;
63935
+ }
63936
+ function removeNumberedParagraphFromTextBoxInline(paragraph, tokens) {
63937
+ const [inlineToken, textBoxToken, ...childTokens] = tokens;
63938
+ if (inlineToken?.kind !== "inline" || textBoxToken?.kind !== "txbx" || childTokens[0]?.kind !== "block") {
63939
+ return null;
63940
+ }
63941
+ const inline = paragraph.children[inlineToken.index];
63942
+ if (!inline) return null;
63943
+ const updatedInline = removeNumberedParagraphFromInlineTextBox(inline, childTokens);
63944
+ if (!updatedInline) return null;
63945
+ return {
63946
+ ...paragraph,
63947
+ children: [
63948
+ ...paragraph.children.slice(0, inlineToken.index),
63949
+ updatedInline,
63950
+ ...paragraph.children.slice(inlineToken.index + 1)
63951
+ ]
63952
+ };
63953
+ }
63954
+ function removeNumberedParagraphFromInlineTextBox(inline, tokens) {
63955
+ if (inline.type === "shape" && inline.txbxBlocks) {
63956
+ const updatedBlocks = removeNumberedParagraphFromBlocks(inline.txbxBlocks, tokens);
63957
+ return updatedBlocks ? { ...inline, txbxBlocks: updatedBlocks.blocks } : null;
63958
+ }
63959
+ if (inline.type === "drawing_frame" && inline.content.type === "shape" && inline.content.txbxBlocks) {
63960
+ const updatedBlocks = removeNumberedParagraphFromBlocks(inline.content.txbxBlocks, tokens);
63961
+ return updatedBlocks ? {
63962
+ ...inline,
63963
+ content: {
63964
+ ...inline.content,
63965
+ txbxBlocks: updatedBlocks.blocks
63966
+ }
63967
+ } : null;
63968
+ }
63855
63969
  return null;
63856
63970
  }
63857
63971
  function removeNumberedParagraphFromTable(table, tokens) {
@@ -63892,15 +64006,29 @@ function createSelectedListItemDeleteReplayCommand(input) {
63892
64006
  target: editableTarget,
63893
64007
  activeStoryKey: canonicalEditableTargetStoryKey(storyTarget)
63894
64008
  });
64009
+ const resolvedEditableTarget = targetResolution.kind === "accepted" ? editableTarget : storyTarget.kind !== "main" && blockPathBelongsToStoryTarget(editableTarget.blockPath, storyTarget) ? resolveEditableCommandTarget({
64010
+ document: document2,
64011
+ target: editableTarget,
64012
+ activeStoryKey: canonicalEditableTargetStoryKey(storyTarget),
64013
+ commandFamilies: ["text-leaf"]
64014
+ }) : null;
64015
+ const selectedRange = {
64016
+ from: Math.min(selection.anchor, selection.head),
64017
+ to: Math.max(selection.anchor, selection.head)
64018
+ };
63895
64019
  const replacement = createSelectedListItemDeleteReplacement({
63896
64020
  command,
63897
64021
  document: document2,
63898
- editableTarget,
64022
+ editableTarget: resolvedEditableTarget && resolvedEditableTarget.kind === "accepted" ? resolvedEditableTarget.target : editableTarget,
63899
64023
  selection,
63900
- targetResolution,
64024
+ storyTarget,
64025
+ targetResolution: resolvedEditableTarget && resolvedEditableTarget.kind === "accepted" ? {
64026
+ kind: "accepted",
64027
+ range: selectedRange
64028
+ } : targetResolution,
63901
64029
  timestamp
63902
64030
  });
63903
- if (!replacement || storyTarget.kind !== "main") {
64031
+ if (!replacement) {
63904
64032
  return null;
63905
64033
  }
63906
64034
  return {
@@ -63912,22 +64040,49 @@ function createSelectedListItemDeleteReplayCommand(input) {
63912
64040
  origin: command.origin
63913
64041
  };
63914
64042
  }
63915
- function parseMainStoryBlockPathTokens(blockPath) {
63916
- const parts = blockPath?.split("/") ?? [];
63917
- if (parts[0] !== "main" || parts.length < 2) {
64043
+ function parseStoryBlockPathTokens(blockPath, storyTarget) {
64044
+ if (!blockPath) {
64045
+ return null;
64046
+ }
64047
+ const firstTokenMatch = /\/(?:block|row|cell)\[\d+\]/u.exec(blockPath);
64048
+ if (!firstTokenMatch?.index) {
63918
64049
  return null;
63919
64050
  }
64051
+ const storyPrefix = blockPath.slice(0, firstTokenMatch.index);
64052
+ if (!blockPathBelongsToStoryTarget(storyPrefix, storyTarget)) {
64053
+ return null;
64054
+ }
64055
+ const parts = blockPath.slice(firstTokenMatch.index + 1).split("/");
63920
64056
  const tokens = [];
63921
- for (const part of parts.slice(1)) {
63922
- const match = /^(block|row|cell)\[(\d+)\]$/u.exec(part);
64057
+ for (const part of parts) {
64058
+ if (part === "txbx") {
64059
+ tokens.push({ kind: "txbx" });
64060
+ continue;
64061
+ }
64062
+ const match = /^(block|row|cell|inline)\[(\d+)\]$/u.exec(part);
63923
64063
  if (!match) return null;
64064
+ const kind = match[1];
63924
64065
  tokens.push({
63925
- kind: match[1],
64066
+ kind,
63926
64067
  index: Number.parseInt(match[2], 10)
63927
64068
  });
63928
64069
  }
63929
64070
  return tokens;
63930
64071
  }
64072
+ function blockPathBelongsToStoryTarget(storyPrefix, storyTarget) {
64073
+ switch (storyTarget.kind) {
64074
+ case "main":
64075
+ return storyPrefix === "main" || storyPrefix.startsWith("main/");
64076
+ case "header":
64077
+ return storyPrefix.startsWith("header:");
64078
+ case "footer":
64079
+ return storyPrefix.startsWith("footer:");
64080
+ case "footnote":
64081
+ return storyPrefix === `footnote:${storyTarget.noteId}` || storyPrefix.startsWith(`footnote:${storyTarget.noteId}/`);
64082
+ case "endnote":
64083
+ return storyPrefix === `endnote:${storyTarget.noteId}` || storyPrefix.startsWith(`endnote:${storyTarget.noteId}/`);
64084
+ }
64085
+ }
63931
64086
  function toInternalSelectionSnapshot2(selection) {
63932
64087
  return {
63933
64088
  anchor: selection.anchor,
@@ -1,4 +1,4 @@
1
- export { gH as ActiveStoryTextCommand, gI as CommandAppliedMeta, gJ as CreateDocumentRuntimeOptions, gK as DocumentRuntime, gL as DocumentRuntimeEvent, gM as RemoteCommandEnvelope, gN as Unsubscribe, gO as __buildTocInlineNodes, gP as __collectFontLoaderInputUncached, gQ as __fontFamiliesEqual, gR as createDocumentRuntime, gS as getThemeColorResolver } from '../public-types-BR1SYK2F.cjs';
1
+ export { gH as ActiveStoryTextCommand, gI as CommandAppliedMeta, gJ as CreateDocumentRuntimeOptions, gK as DocumentRuntime, gL as DocumentRuntimeEvent, gM as RemoteCommandEnvelope, gN as Unsubscribe, gO as __buildTocInlineNodes, gP as __collectFontLoaderInputUncached, gQ as __fontFamiliesEqual, gR as createDocumentRuntime, gS as getThemeColorResolver } from '../public-types-D31xKNGc.cjs';
2
2
  import '../canonical-document-CfZIc-fC.cjs';
3
3
  import 'react';
4
4
  import 'yjs';
@@ -1,4 +1,4 @@
1
- export { gH as ActiveStoryTextCommand, gI as CommandAppliedMeta, gJ as CreateDocumentRuntimeOptions, gK as DocumentRuntime, gL as DocumentRuntimeEvent, gM as RemoteCommandEnvelope, gN as Unsubscribe, gO as __buildTocInlineNodes, gP as __collectFontLoaderInputUncached, gQ as __fontFamiliesEqual, gR as createDocumentRuntime, gS as getThemeColorResolver } from '../public-types-DXNZVKrS.js';
1
+ export { gH as ActiveStoryTextCommand, gI as CommandAppliedMeta, gJ as CreateDocumentRuntimeOptions, gK as DocumentRuntime, gL as DocumentRuntimeEvent, gM as RemoteCommandEnvelope, gN as Unsubscribe, gO as __buildTocInlineNodes, gP as __collectFontLoaderInputUncached, gQ as __fontFamiliesEqual, gR as createDocumentRuntime, gS as getThemeColorResolver } from '../public-types-DqYt8GdP.js';
2
2
  import '../canonical-document-CfZIc-fC.js';
3
3
  import 'react';
4
4
  import 'yjs';
@@ -4,22 +4,22 @@ import {
4
4
  __fontFamiliesEqual,
5
5
  createDocumentRuntime,
6
6
  getThemeColorResolver
7
- } from "../chunk-EBSI6VQX.js";
7
+ } from "../chunk-GIFXKIM5.js";
8
8
  import "../chunk-6EXNNAO6.js";
9
9
  import "../chunk-M6XR534O.js";
10
10
  import "../chunk-RP76USJE.js";
11
- import "../chunk-REFHJ2FN.js";
11
+ import "../chunk-2BNXARVO.js";
12
12
  import "../chunk-Y4XZCMCS.js";
13
- import "../chunk-INLRCC4N.js";
14
- import "../chunk-MQ5GAJ54.js";
15
- import "../chunk-WDDFU2N2.js";
16
- import "../chunk-QTRJLKR2.js";
17
- import "../chunk-74R5B2EZ.js";
18
- import "../chunk-IJD6D7HU.js";
19
- import "../chunk-O4EDZR44.js";
13
+ import "../chunk-4CIHTMCH.js";
14
+ import "../chunk-BJXSMPHD.js";
15
+ import "../chunk-UR2LW63N.js";
16
+ import "../chunk-TSNK4ECL.js";
17
+ import "../chunk-H4HI6RUE.js";
18
+ import "../chunk-5CCYF333.js";
19
+ import "../chunk-P7XDEVS6.js";
20
20
  import "../chunk-OVLZQ6FZ.js";
21
21
  import "../chunk-QIO6V46H.js";
22
- import "../chunk-XBQFDBXE.js";
22
+ import "../chunk-EZFF6GKF.js";
23
23
  import "../chunk-SYQWQ6FE.js";
24
24
  import "../chunk-OYGMRRR7.js";
25
25
  import "../chunk-PZIEOEJZ.js";
@@ -1,6 +1,6 @@
1
1
  import { C as CanonicalDocument } from './canonical-document-CfZIc-fC.cjs';
2
- import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-BR1SYK2F.cjs';
3
- import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-CZtAueri.cjs';
2
+ import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-D31xKNGc.cjs';
3
+ import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-B2y94n5t.cjs';
4
4
 
5
5
  /**
6
6
  * `DocxSession` — the Layer-01 package/session public entry class.
@@ -1,6 +1,6 @@
1
1
  import { C as CanonicalDocument } from './canonical-document-CfZIc-fC.js';
2
- import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-DXNZVKrS.js';
3
- import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-RzkCXDNV.js';
2
+ import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-DqYt8GdP.js';
3
+ import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-SllbCtGs.js';
4
4
 
5
5
  /**
6
6
  * `DocxSession` — the Layer-01 package/session public entry class.
@@ -1,7 +1,7 @@
1
- export { D as DocxSession, S as SessionNotOpenError, a as SessionNotWiredError } from './session-CSbwkgII.cjs';
2
- export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-CK3lZy4h.cjs';
3
- export { E as EmbeddedDocumentManifest, a as ExportOptions, O as OpenOptions, b as OpenResult, P as PreservationSnapshot, R as ReopenBarrier, V as ValidateOptions, c as ValidationFinding, d as ValidationReport, i as isReopenBarrier } from './types-CZtAueri.cjs';
4
- export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-BR1SYK2F.cjs';
1
+ export { D as DocxSession, S as SessionNotOpenError, a as SessionNotWiredError } from './session-DA-F2fCw.cjs';
2
+ export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-BQ7AB-0v.cjs';
3
+ export { E as EmbeddedDocumentManifest, a as ExportOptions, O as OpenOptions, b as OpenResult, P as PreservationSnapshot, R as ReopenBarrier, V as ValidateOptions, c as ValidationFinding, d as ValidationReport, i as isReopenBarrier } from './types-B2y94n5t.cjs';
4
+ export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-D31xKNGc.cjs';
5
5
  import './canonical-document-CfZIc-fC.cjs';
6
6
  import 'react';
7
7
  import 'yjs';
package/dist/session.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { D as DocxSession, S as SessionNotOpenError, a as SessionNotWiredError } from './session-C9UjrhJF.js';
2
- export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-CQXplstv.js';
3
- export { E as EmbeddedDocumentManifest, a as ExportOptions, O as OpenOptions, b as OpenResult, P as PreservationSnapshot, R as ReopenBarrier, V as ValidateOptions, c as ValidationFinding, d as ValidationReport, i as isReopenBarrier } from './types-RzkCXDNV.js';
4
- export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-DXNZVKrS.js';
1
+ export { D as DocxSession, S as SessionNotOpenError, a as SessionNotWiredError } from './session-DqL8H0oZ.js';
2
+ export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-Cy6OYBfn.js';
3
+ export { E as EmbeddedDocumentManifest, a as ExportOptions, O as OpenOptions, b as OpenResult, P as PreservationSnapshot, R as ReopenBarrier, V as ValidateOptions, c as ValidationFinding, d as ValidationReport, i as isReopenBarrier } from './types-SllbCtGs.js';
4
+ export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-DqYt8GdP.js';
5
5
  import './canonical-document-CfZIc-fC.js';
6
6
  import 'react';
7
7
  import 'yjs';
package/dist/tailwind.cjs CHANGED
@@ -12339,10 +12339,16 @@ var FormattingContextImpl = class {
12339
12339
  // surface-projection calls `resolveParagraphCascade` on the same
12340
12340
  // paragraph via `resolveParagraph` + numbering resolve + marker-rPr;
12341
12341
  // each of those re-walked the style catalog before.
12342
- paragraphCascadeCache = /* @__PURE__ */ new WeakMap();
12342
+ //
12343
+ // Defaults to a per-context instance, but the runtime can supply a
12344
+ // persistent `WeakMap` via `FormattingContextOptions.paragraphCascadeCache`
12345
+ // so unchanged paragraphs don't re-cascade on every keystroke. See the
12346
+ // contract on the option for invalidation semantics.
12347
+ paragraphCascadeCache;
12343
12348
  constructor(doc, opts) {
12344
12349
  this.doc = doc;
12345
12350
  this.opts = opts;
12351
+ this.paragraphCascadeCache = opts.paragraphCascadeCache ?? /* @__PURE__ */ new WeakMap();
12346
12352
  const canonicalTheme = doc.subParts?.canonicalTheme;
12347
12353
  this.theme = opts.themeResolver ?? (canonicalTheme ? new ThemeColorResolver(canonicalTheme) : void 0);
12348
12354
  this.numbering = opts.numberingPrefixResolver ?? createNumberingPrefixResolver(doc.numbering);
@@ -12827,7 +12833,8 @@ function createEditorSurfaceSnapshot(document2, _selection, activeStory = { kind
12827
12833
  const formattingContext = createFormattingContext(document2, {
12828
12834
  ...options.revisionMarkupMode ? { revisionMarkupMode: options.revisionMarkupMode } : {},
12829
12835
  ...options.getEffectiveMarkupMode ? { getEffectiveMarkupMode: options.getEffectiveMarkupMode } : {},
12830
- ...options.authorColorPalette ? { authorColorPalette: options.authorColorPalette } : {}
12836
+ ...options.authorColorPalette ? { authorColorPalette: options.authorColorPalette } : {},
12837
+ ...options.paragraphCascadeCache ? { paragraphCascadeCache: options.paragraphCascadeCache } : {}
12831
12838
  });
12832
12839
  const editableTargetsByBlockPath = options.editableTargetsByBlockPath ?? indexEditableTargetsByBlockPath(document2);
12833
12840
  const layoutIdentitiesByBlockPath = options.layoutIdentitiesByBlockPath;
@@ -29722,6 +29729,10 @@ function TwTableGripLayer({
29722
29729
  tableGeometry,
29723
29730
  plan.columnsTwips
29724
29731
  );
29732
+ const columnWidthCapability = tableContext.operations.setColumnWidth;
29733
+ const rowHeightCapability = tableContext.operations.setRowHeight;
29734
+ const columnResizeDisabled = !!disabled || !onSetColumnWidth || columnWidthCapability?.enabled === false;
29735
+ const rowResizeDisabled = !!disabled || !onSetRowHeight || rowHeightCapability?.enabled === false;
29725
29736
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [
29726
29737
  plan.columnResizeHandles.map((handle) => {
29727
29738
  const rect2 = resolveColumnEdgeRect(
@@ -29736,7 +29747,8 @@ function TwTableGripLayer({
29736
29747
  colIndex: handle.columnIndex,
29737
29748
  originalTwips: plan.columnsTwips[handle.columnIndex] ?? 720,
29738
29749
  pxPerTwip,
29739
- disabled: !!disabled || !onSetColumnWidth,
29750
+ disabled: columnResizeDisabled,
29751
+ disabledReason: columnWidthCapability?.reason,
29740
29752
  onCommit: onSetColumnWidth
29741
29753
  },
29742
29754
  `col-${blockId}-${handle.columnIndex}`
@@ -29757,7 +29769,8 @@ function TwTableGripLayer({
29757
29769
  rowIndex,
29758
29770
  originalTwips,
29759
29771
  pxPerTwip,
29760
- disabled: !!disabled || !onSetRowHeight,
29772
+ disabled: rowResizeDisabled,
29773
+ disabledReason: rowHeightCapability?.reason,
29761
29774
  onCommit: onSetRowHeight
29762
29775
  },
29763
29776
  `row-${blockId}-${rowIndex}`
@@ -29847,6 +29860,7 @@ function ColResizeGrip({
29847
29860
  originalTwips,
29848
29861
  pxPerTwip,
29849
29862
  disabled,
29863
+ disabledReason,
29850
29864
  onCommit
29851
29865
  }) {
29852
29866
  const dragRef = (0, import_react30.useRef)(null);
@@ -29905,11 +29919,13 @@ function ColResizeGrip({
29905
29919
  role: "separator",
29906
29920
  "aria-orientation": "vertical",
29907
29921
  "aria-label": `Resize column ${colIndex + 1}`,
29922
+ "aria-disabled": disabled ? "true" : void 0,
29908
29923
  "data-testid": `col-resize-grip-${colIndex}`,
29909
29924
  "data-active": isActive ? "true" : "false",
29925
+ title: disabled ? disabledReason : void 0,
29910
29926
  className: [
29911
- "wre-table-grip-col pointer-events-auto absolute",
29912
- disabled ? "opacity-0 cursor-default" : ""
29927
+ "wre-table-grip-col absolute",
29928
+ disabled ? "pointer-events-none opacity-0 cursor-default" : "pointer-events-auto"
29913
29929
  ].filter(Boolean).join(" "),
29914
29930
  style: {
29915
29931
  left: `calc(${pos.left} - ${GRIP_HIT_PX / 2}px)`,
@@ -29927,6 +29943,7 @@ function RowResizeGrip({
29927
29943
  originalTwips,
29928
29944
  pxPerTwip,
29929
29945
  disabled,
29946
+ disabledReason,
29930
29947
  onCommit
29931
29948
  }) {
29932
29949
  const dragRef = (0, import_react30.useRef)(null);
@@ -29986,11 +30003,13 @@ function RowResizeGrip({
29986
30003
  role: "separator",
29987
30004
  "aria-orientation": "horizontal",
29988
30005
  "aria-label": `Resize row ${rowIndex + 1}`,
30006
+ "aria-disabled": disabled ? "true" : void 0,
29989
30007
  "data-testid": `row-resize-grip-${rowIndex}`,
29990
30008
  "data-active": isActive ? "true" : "false",
30009
+ title: disabled ? disabledReason : void 0,
29991
30010
  className: [
29992
- "wre-table-grip-row pointer-events-auto absolute",
29993
- disabled ? "opacity-0 cursor-default" : ""
30011
+ "wre-table-grip-row absolute",
30012
+ disabled ? "pointer-events-none opacity-0 cursor-default" : "pointer-events-auto"
29994
30013
  ].filter(Boolean).join(" "),
29995
30014
  style: {
29996
30015
  left: pos.left,
@@ -1,5 +1,5 @@
1
1
  export { BreakpointMap, CollabAudienceChip, CollabAudienceChipProps, CollabNegotiationActionBar, CollabNegotiationActionBarProps, CollabPresenceStrip, CollabPresenceStripProps, CollabRoleChip, CollabRoleChipProps, CollabSendToSupplierButton, CollabSendToSupplierButtonProps, CollabSendToSupplierModal, CollabSendToSupplierModalProps, CollabSendToSupplierSubmitArgs, CollabTamperBanner, CollabTamperBannerProps, CommandPaletteGroup, CommandPaletteItem, CommentDecorationModel, CommentMarkdownRenderer, CommentMarkdownRendererProps, EditorKeyboardCallbacks, EditorKeyboardContext, MarkupDisplay, RailCardAvatar, RailCardCounter, RailCardProgress, RailCardTone, ReviewRailTab, RevisionDecorationModel, ShellHeaderIconAction, ShellHeaderMode, ShellHeaderModeOption, ShellHeaderPrimaryAction, TwAlertBanner, TwChromeOverlay, TwChromeOverlayProps, TwCommandPalette, TwCommandPaletteMount, TwCommandPaletteMountProps, TwCommandPaletteProps, TwCommentSidebar, TwCommentSidebarProps, TwEditorSurface, TwEditorSurfaceProps, TwHealthPanel, TwInlineToken, TwOpaqueBlock, TwParagraphBlock, TwPasteDropToast, TwPasteDropToastProps, TwRailCard, TwRailCardProps, TwReviewRail, TwReviewRailFooter, TwReviewRailFooterProps, TwReviewRailProps, TwReviewWorkspace, TwReviewWorkspaceProps, TwRevisionSidebar, TwScopeRailLayer, TwScopeRailLayerProps, TwSegmentView, TwSelectionToolbar, TwShellHeader, TwShellHeaderProps, TwStatusBar, TwToolbar, TwToolbarIconButton, TwToolbarProps, TwWorkflowTab, TwWorkflowTabProps, createCommentDecorationModel, createEditorKeyboardHandler, createRevisionDecorationModel, createSelectionSnapshot, getCommentHighlightClass, getCommentRangeState, getRevisionHighlightClass, getRevisionRangeState, isCommandPaletteOpenShortcut, renderTwCaret, resolveBreakpoint, selectionTouchesRange, shouldHideInCleanMode, useContainerBreakpoint } from './ui-tailwind.cjs';
2
- export { f6 as SessionCapabilities, eQ as WorkspaceMode, eR as ZoomLevel, fp as deriveCapabilities } from './public-types-BR1SYK2F.cjs';
2
+ export { f6 as SessionCapabilities, eQ as WorkspaceMode, eR as ZoomLevel, fp as deriveCapabilities } from './public-types-D31xKNGc.cjs';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import 'yjs';
@@ -1,5 +1,5 @@
1
1
  export { BreakpointMap, CollabAudienceChip, CollabAudienceChipProps, CollabNegotiationActionBar, CollabNegotiationActionBarProps, CollabPresenceStrip, CollabPresenceStripProps, CollabRoleChip, CollabRoleChipProps, CollabSendToSupplierButton, CollabSendToSupplierButtonProps, CollabSendToSupplierModal, CollabSendToSupplierModalProps, CollabSendToSupplierSubmitArgs, CollabTamperBanner, CollabTamperBannerProps, CommandPaletteGroup, CommandPaletteItem, CommentDecorationModel, CommentMarkdownRenderer, CommentMarkdownRendererProps, EditorKeyboardCallbacks, EditorKeyboardContext, MarkupDisplay, RailCardAvatar, RailCardCounter, RailCardProgress, RailCardTone, ReviewRailTab, RevisionDecorationModel, ShellHeaderIconAction, ShellHeaderMode, ShellHeaderModeOption, ShellHeaderPrimaryAction, TwAlertBanner, TwChromeOverlay, TwChromeOverlayProps, TwCommandPalette, TwCommandPaletteMount, TwCommandPaletteMountProps, TwCommandPaletteProps, TwCommentSidebar, TwCommentSidebarProps, TwEditorSurface, TwEditorSurfaceProps, TwHealthPanel, TwInlineToken, TwOpaqueBlock, TwParagraphBlock, TwPasteDropToast, TwPasteDropToastProps, TwRailCard, TwRailCardProps, TwReviewRail, TwReviewRailFooter, TwReviewRailFooterProps, TwReviewRailProps, TwReviewWorkspace, TwReviewWorkspaceProps, TwRevisionSidebar, TwScopeRailLayer, TwScopeRailLayerProps, TwSegmentView, TwSelectionToolbar, TwShellHeader, TwShellHeaderProps, TwStatusBar, TwToolbar, TwToolbarIconButton, TwToolbarProps, TwWorkflowTab, TwWorkflowTabProps, createCommentDecorationModel, createEditorKeyboardHandler, createRevisionDecorationModel, createSelectionSnapshot, getCommentHighlightClass, getCommentRangeState, getRevisionHighlightClass, getRevisionRangeState, isCommandPaletteOpenShortcut, renderTwCaret, resolveBreakpoint, selectionTouchesRange, shouldHideInCleanMode, useContainerBreakpoint } from './ui-tailwind.js';
2
- export { f6 as SessionCapabilities, eQ as WorkspaceMode, eR as ZoomLevel, fp as deriveCapabilities } from './public-types-DXNZVKrS.js';
2
+ export { f6 as SessionCapabilities, eQ as WorkspaceMode, eR as ZoomLevel, fp as deriveCapabilities } from './public-types-DqYt8GdP.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import 'yjs';
package/dist/tailwind.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  TwShellHeader,
10
10
  createEditorKeyboardHandler,
11
11
  renderTwCaret
12
- } from "./chunk-7Y6JCIK3.js";
12
+ } from "./chunk-HWMPNLEF.js";
13
13
  import {
14
14
  CollabAudienceChip,
15
15
  CollabNegotiationActionBar,
@@ -47,15 +47,15 @@ import {
47
47
  selectionTouchesRange,
48
48
  shouldHideInCleanMode,
49
49
  useContainerBreakpoint
50
- } from "./chunk-3YR47WTD.js";
51
- import "./chunk-74R5B2EZ.js";
50
+ } from "./chunk-FGJTOFZY.js";
51
+ import "./chunk-H4HI6RUE.js";
52
52
  import "./chunk-NJFKPDNG.js";
53
53
  import {
54
54
  deriveCapabilities
55
- } from "./chunk-O4EDZR44.js";
55
+ } from "./chunk-P7XDEVS6.js";
56
56
  import "./chunk-OVLZQ6FZ.js";
57
57
  import "./chunk-QIO6V46H.js";
58
- import "./chunk-XBQFDBXE.js";
58
+ import "./chunk-EZFF6GKF.js";
59
59
  import "./chunk-OYGMRRR7.js";
60
60
  import "./chunk-5KTJKTNE.js";
61
61
  import "./chunk-UFVDIR2C.js";