@beyondwork/docx-react-component 1.0.125 → 1.0.127

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 (59) hide show
  1. package/dist/api/public-types.d.cts +1 -1
  2. package/dist/api/public-types.d.ts +1 -1
  3. package/dist/api/v3.cjs +84 -25
  4. package/dist/api/v3.d.cts +2 -2
  5. package/dist/api/v3.d.ts +2 -2
  6. package/dist/api/v3.js +2 -2
  7. package/dist/{chunk-JN444Z5S.js → chunk-46KNRA4C.js} +34 -24
  8. package/dist/{chunk-4G3OS2H6.js → chunk-LZVBNDGU.js} +3 -0
  9. package/dist/{chunk-QT3LX4FA.js → chunk-PUMZWE2D.js} +311 -39
  10. package/dist/{chunk-OHTK7F3F.js → chunk-XRACP43Q.js} +51 -2
  11. package/dist/core/commands/formatting-commands.d.cts +1 -1
  12. package/dist/core/commands/formatting-commands.d.ts +1 -1
  13. package/dist/core/commands/image-commands.d.cts +1 -1
  14. package/dist/core/commands/image-commands.d.ts +1 -1
  15. package/dist/core/commands/section-layout-commands.d.cts +1 -1
  16. package/dist/core/commands/section-layout-commands.d.ts +1 -1
  17. package/dist/core/commands/style-commands.d.cts +1 -1
  18. package/dist/core/commands/style-commands.d.ts +1 -1
  19. package/dist/core/commands/table-structure-commands.d.cts +1 -1
  20. package/dist/core/commands/table-structure-commands.d.ts +1 -1
  21. package/dist/core/commands/text-commands.cjs +3 -0
  22. package/dist/core/commands/text-commands.d.cts +2 -1
  23. package/dist/core/commands/text-commands.d.ts +2 -1
  24. package/dist/core/commands/text-commands.js +1 -1
  25. package/dist/core/selection/mapping.d.cts +1 -1
  26. package/dist/core/selection/mapping.d.ts +1 -1
  27. package/dist/core/state/editor-state.d.cts +1 -1
  28. package/dist/core/state/editor-state.d.ts +1 -1
  29. package/dist/index.cjs +424 -72
  30. package/dist/index.d.cts +4 -4
  31. package/dist/index.d.ts +4 -4
  32. package/dist/index.js +27 -8
  33. package/dist/io/docx-session.d.cts +3 -3
  34. package/dist/io/docx-session.d.ts +3 -3
  35. package/dist/{loader-B1MxvbeV.d.ts → loader-CFICtb9m.d.ts} +2 -2
  36. package/dist/{loader-CJXsswcd.d.cts → loader-DveZOVuC.d.cts} +2 -2
  37. package/dist/{public-types-BEGhv2YR.d.ts → public-types-Cgl3efbO.d.ts} +51 -6
  38. package/dist/{public-types-DrhlQ5Zy.d.cts → public-types-beSYFJRR.d.cts} +51 -6
  39. package/dist/public-types.d.cts +1 -1
  40. package/dist/public-types.d.ts +1 -1
  41. package/dist/runtime/collab.d.cts +2 -2
  42. package/dist/runtime/collab.d.ts +2 -2
  43. package/dist/runtime/document-runtime.cjs +315 -38
  44. package/dist/runtime/document-runtime.d.cts +1 -1
  45. package/dist/runtime/document-runtime.d.ts +1 -1
  46. package/dist/runtime/document-runtime.js +3 -3
  47. package/dist/{session-Bp3zqnkS.d.cts → session-B7u82EJF.d.cts} +2 -2
  48. package/dist/{session-xMOU_NtL.d.ts → session-BWMJ9jm4.d.ts} +2 -2
  49. package/dist/session.d.cts +4 -4
  50. package/dist/session.d.ts +4 -4
  51. package/dist/tailwind.d.cts +1 -1
  52. package/dist/tailwind.d.ts +1 -1
  53. package/dist/{types-DDPxEygX.d.cts → types-BQjdVZsh.d.cts} +1 -1
  54. package/dist/{types-BFT8536T.d.ts → types-DvvmS5A7.d.ts} +1 -1
  55. package/dist/ui-tailwind/editor-surface/search-plugin.d.cts +2 -2
  56. package/dist/ui-tailwind/editor-surface/search-plugin.d.ts +2 -2
  57. package/dist/ui-tailwind.d.cts +2 -2
  58. package/dist/ui-tailwind.d.ts +2 -2
  59. package/package.json +1 -1
@@ -15796,6 +15796,9 @@ function splitParagraph(document2, selection, context) {
15796
15796
  if (scope?.kind !== "top-level") {
15797
15797
  return result;
15798
15798
  }
15799
+ if (context.preserveNumberingOnSplit && scope.paragraph.numbering) {
15800
+ return result;
15801
+ }
15799
15802
  const originalStyleId = scope.paragraph.styleId;
15800
15803
  const nextStyleId = originalStyleId !== void 0 ? resolveNextStyle(originalStyleId, document2.styles) : void 0;
15801
15804
  if (nextStyleId !== void 0) {
@@ -18918,22 +18921,43 @@ function rangesOverlap2(leftFrom, leftTo, rightFrom, rightTo) {
18918
18921
  }
18919
18922
 
18920
18923
  // src/core/commands/list-commands.ts
18921
- function toggleNumberedList(document2, paragraphIndexes, context) {
18922
- return toggleListKind(document2, paragraphIndexes, "numbered", context);
18924
+ function toggleNumberedList(document2, paragraphIndexes, context, options = {}) {
18925
+ return toggleListKind(document2, paragraphIndexes, "numbered", context, options);
18923
18926
  }
18924
- function toggleBulletedList(document2, paragraphIndexes, context) {
18925
- return toggleListKind(document2, paragraphIndexes, "bulleted", context);
18927
+ function toggleBulletedList(document2, paragraphIndexes, context, options = {}) {
18928
+ return toggleListKind(document2, paragraphIndexes, "bulleted", context, options);
18926
18929
  }
18927
- function indentListItems(document2, paragraphIndexes, context) {
18928
- return adjustListLevels(document2, paragraphIndexes, 1, context);
18930
+ function indentListItems(document2, paragraphIndexes, context, options = {}) {
18931
+ return adjustListLevels(document2, paragraphIndexes, 1, context, options);
18929
18932
  }
18930
- function outdentListItems(document2, paragraphIndexes, context) {
18931
- return adjustListLevels(document2, paragraphIndexes, -1, context);
18933
+ function outdentListItems(document2, paragraphIndexes, context, options = {}) {
18934
+ return adjustListLevels(document2, paragraphIndexes, -1, context, options);
18932
18935
  }
18933
- function restartNumbering(document2, paragraphIndex, context, startAt = 1) {
18936
+ function restartNumbering(document2, paragraphIndex, context, startAt = 1, options = {}) {
18934
18937
  const working = cloneEnvelope(document2, context.timestamp);
18935
18938
  const paragraphs = captureEditableParagraphs(working);
18936
- const target = paragraphs[paragraphIndex];
18939
+ const resolved = resolveListCommandParagraphIndexes(
18940
+ working,
18941
+ paragraphs,
18942
+ [paragraphIndex],
18943
+ context,
18944
+ normalizeListCommandTargets(options)
18945
+ );
18946
+ if (resolved.blockedReason) {
18947
+ return {
18948
+ document: working,
18949
+ affectedParagraphIndexes: [],
18950
+ blockedReason: resolved.blockedReason
18951
+ };
18952
+ }
18953
+ const resolvedParagraphIndex = resolved.paragraphIndexes[0];
18954
+ if (resolvedParagraphIndex === void 0) {
18955
+ return {
18956
+ document: working,
18957
+ affectedParagraphIndexes: []
18958
+ };
18959
+ }
18960
+ const target = paragraphs[resolvedParagraphIndex];
18937
18961
  if (!target?.numbering) {
18938
18962
  return {
18939
18963
  document: working,
@@ -18958,7 +18982,7 @@ function restartNumbering(document2, paragraphIndex, context, startAt = 1) {
18958
18982
  })
18959
18983
  };
18960
18984
  const affectedParagraphIndexes = [];
18961
- for (let index = paragraphIndex; index < paragraphs.length; index += 1) {
18985
+ for (let index = resolvedParagraphIndex; index < paragraphs.length; index += 1) {
18962
18986
  const paragraph = paragraphs[index];
18963
18987
  if (!paragraph?.numbering) {
18964
18988
  break;
@@ -18979,10 +19003,31 @@ function restartNumbering(document2, paragraphIndex, context, startAt = 1) {
18979
19003
  createdNumberingInstanceId: numberingInstanceId
18980
19004
  };
18981
19005
  }
18982
- function continueNumbering(document2, paragraphIndex, context) {
19006
+ function continueNumbering(document2, paragraphIndex, context, options = {}) {
18983
19007
  const working = cloneEnvelope(document2, context.timestamp);
18984
19008
  const paragraphs = captureEditableParagraphs(working);
18985
- const target = paragraphs[paragraphIndex];
19009
+ const resolved = resolveListCommandParagraphIndexes(
19010
+ working,
19011
+ paragraphs,
19012
+ [paragraphIndex],
19013
+ context,
19014
+ normalizeListCommandTargets(options)
19015
+ );
19016
+ if (resolved.blockedReason) {
19017
+ return {
19018
+ document: working,
19019
+ affectedParagraphIndexes: [],
19020
+ blockedReason: resolved.blockedReason
19021
+ };
19022
+ }
19023
+ const resolvedParagraphIndex = resolved.paragraphIndexes[0];
19024
+ if (resolvedParagraphIndex === void 0) {
19025
+ return {
19026
+ document: working,
19027
+ affectedParagraphIndexes: []
19028
+ };
19029
+ }
19030
+ const target = paragraphs[resolvedParagraphIndex];
18986
19031
  if (!target?.numbering) {
18987
19032
  return {
18988
19033
  document: working,
@@ -19001,7 +19046,7 @@ function continueNumbering(document2, paragraphIndex, context) {
19001
19046
  const compatibleInstanceId = findPreviousCompatibleInstance(
19002
19047
  paragraphs,
19003
19048
  catalog,
19004
- paragraphIndex,
19049
+ resolvedParagraphIndex,
19005
19050
  currentKind
19006
19051
  );
19007
19052
  if (!compatibleInstanceId || compatibleInstanceId === currentInstanceId) {
@@ -19011,7 +19056,7 @@ function continueNumbering(document2, paragraphIndex, context) {
19011
19056
  };
19012
19057
  }
19013
19058
  const affectedParagraphIndexes = [];
19014
- for (let index = paragraphIndex; index < paragraphs.length; index += 1) {
19059
+ for (let index = resolvedParagraphIndex; index < paragraphs.length; index += 1) {
19015
19060
  const paragraph = paragraphs[index];
19016
19061
  if (!paragraph?.numbering) {
19017
19062
  break;
@@ -19032,10 +19077,24 @@ function continueNumbering(document2, paragraphIndex, context) {
19032
19077
  createdNumberingInstanceId: compatibleInstanceId
19033
19078
  };
19034
19079
  }
19035
- function toggleListKind(document2, paragraphIndexes, kind, context) {
19080
+ function toggleListKind(document2, paragraphIndexes, kind, context, options) {
19036
19081
  const working = cloneEnvelope(document2, context.timestamp);
19037
19082
  const paragraphs = captureEditableParagraphs(working);
19038
- const normalizedIndexes = normalizeParagraphIndexes(paragraphs, paragraphIndexes);
19083
+ const resolved = resolveListCommandParagraphIndexes(
19084
+ working,
19085
+ paragraphs,
19086
+ paragraphIndexes,
19087
+ context,
19088
+ normalizeListCommandTargets(options)
19089
+ );
19090
+ if (resolved.blockedReason) {
19091
+ return {
19092
+ document: working,
19093
+ affectedParagraphIndexes: [],
19094
+ blockedReason: resolved.blockedReason
19095
+ };
19096
+ }
19097
+ const normalizedIndexes = resolved.paragraphIndexes;
19039
19098
  if (normalizedIndexes.length === 0) {
19040
19099
  return {
19041
19100
  document: working,
@@ -19072,10 +19131,24 @@ function toggleListKind(document2, paragraphIndexes, kind, context) {
19072
19131
  createdNumberingInstanceId: numberingInstanceId
19073
19132
  };
19074
19133
  }
19075
- function adjustListLevels(document2, paragraphIndexes, delta, context) {
19134
+ function adjustListLevels(document2, paragraphIndexes, delta, context, options) {
19076
19135
  const working = cloneEnvelope(document2, context.timestamp);
19077
19136
  const paragraphs = captureEditableParagraphs(working);
19078
- const affectedParagraphIndexes = normalizeParagraphIndexes(paragraphs, paragraphIndexes).filter(
19137
+ const resolved = resolveListCommandParagraphIndexes(
19138
+ working,
19139
+ paragraphs,
19140
+ paragraphIndexes,
19141
+ context,
19142
+ normalizeListCommandTargets(options)
19143
+ );
19144
+ if (resolved.blockedReason) {
19145
+ return {
19146
+ document: working,
19147
+ affectedParagraphIndexes: [],
19148
+ blockedReason: resolved.blockedReason
19149
+ };
19150
+ }
19151
+ const affectedParagraphIndexes = resolved.paragraphIndexes.filter(
19079
19152
  (index) => Boolean(paragraphs[index]?.numbering)
19080
19153
  );
19081
19154
  for (const index of affectedParagraphIndexes) {
@@ -19093,6 +19166,121 @@ function adjustListLevels(document2, paragraphIndexes, delta, context) {
19093
19166
  affectedParagraphIndexes
19094
19167
  };
19095
19168
  }
19169
+ function normalizeListCommandTargets(options) {
19170
+ if (options.editableTargets !== void 0) return options.editableTargets;
19171
+ return options.editableTarget ? [options.editableTarget] : [];
19172
+ }
19173
+ function resolveListCommandParagraphIndexes(document2, paragraphs, paragraphIndexes, context, editableTargets) {
19174
+ if (editableTargets.length === 0) {
19175
+ return { paragraphIndexes: normalizeParagraphIndexes(paragraphs, paragraphIndexes) };
19176
+ }
19177
+ const currentTargets = collectEditableTargetRefs(document2, context.editableTargetCache);
19178
+ const paragraphIndexByTargetKey = /* @__PURE__ */ new Map();
19179
+ let paragraphIndex = 0;
19180
+ for (const target of currentTargets) {
19181
+ if (!isParagraphTextTarget(target)) continue;
19182
+ if (!paragraphIndexByTargetKey.has(target.targetKey)) {
19183
+ paragraphIndexByTargetKey.set(target.targetKey, paragraphIndex);
19184
+ paragraphIndex += 1;
19185
+ }
19186
+ }
19187
+ const resolvedIndexes = [];
19188
+ for (const target of editableTargets) {
19189
+ const blockedReason = validateListCommandTarget(target, currentTargets, context);
19190
+ if (blockedReason) return { paragraphIndexes: [], blockedReason };
19191
+ const current = findCurrentListCommandTarget(target, currentTargets);
19192
+ if (!current) {
19193
+ return {
19194
+ paragraphIndexes: [],
19195
+ blockedReason: {
19196
+ code: "list_target_not_found",
19197
+ message: "List editable target no longer resolves in the current canonical document."
19198
+ }
19199
+ };
19200
+ }
19201
+ if (!sameResolvedListCommandTarget(target, current)) {
19202
+ return {
19203
+ paragraphIndexes: [],
19204
+ blockedReason: {
19205
+ code: "list_target_stale",
19206
+ message: "List editable target is stale for the current canonical document."
19207
+ }
19208
+ };
19209
+ }
19210
+ const currentIndex = paragraphIndexByTargetKey.get(current.targetKey);
19211
+ if (currentIndex === void 0) {
19212
+ return {
19213
+ paragraphIndexes: [],
19214
+ blockedReason: {
19215
+ code: "list_target_position_unavailable",
19216
+ message: "List editable target resolved but could not be mapped to a current paragraph."
19217
+ }
19218
+ };
19219
+ }
19220
+ resolvedIndexes.push(currentIndex);
19221
+ }
19222
+ return { paragraphIndexes: normalizeParagraphIndexes(paragraphs, resolvedIndexes) };
19223
+ }
19224
+ function validateListCommandTarget(target, currentTargets, context) {
19225
+ const shapeIssues = validateEditableTargetRef(target);
19226
+ if (shapeIssues.length > 0) {
19227
+ return {
19228
+ code: "list_target_malformed",
19229
+ message: `List editable target is malformed: ${shapeIssues[0]?.path ?? "$"}.`
19230
+ };
19231
+ }
19232
+ if (context.activeStoryKey !== void 0 && target.storyKey !== context.activeStoryKey) {
19233
+ return {
19234
+ code: "list_target_wrong_story",
19235
+ message: "List editable target does not belong to the active story."
19236
+ };
19237
+ }
19238
+ if (target.commandFamily !== "text-leaf" || target.listAddress === void 0) {
19239
+ return {
19240
+ code: "list_target_required",
19241
+ message: "List commands require a validated list item editable target."
19242
+ };
19243
+ }
19244
+ if (target.editability !== "editable" || target.posture.blockers.length > 0) {
19245
+ return {
19246
+ code: "list_target_non_editable",
19247
+ message: target.posture.blockers.length > 0 ? `List editable target is not editable: ${target.posture.blockers.join(", ")}.` : "List editable target is not editable."
19248
+ };
19249
+ }
19250
+ if (!findCurrentListCommandTarget(target, currentTargets)) {
19251
+ return {
19252
+ code: "list_target_not_found",
19253
+ message: "List editable target no longer resolves in the current canonical document."
19254
+ };
19255
+ }
19256
+ return void 0;
19257
+ }
19258
+ function findCurrentListCommandTarget(target, currentTargets) {
19259
+ return currentTargets.find(
19260
+ (candidate) => isParagraphTextTarget(candidate) && candidate.listAddress !== void 0 && (candidate.targetKey === target.targetKey || candidate.listAddress.addressKey === target.listAddress?.addressKey)
19261
+ );
19262
+ }
19263
+ function sameResolvedListCommandTarget(left, right) {
19264
+ return left.kind === right.kind && left.storyKey === right.storyKey && left.blockPath === right.blockPath && left.leafPath === right.leafPath && left.commandFamily === right.commandFamily && left.editability === right.editability && left.staleCheck.paragraphTextHash === right.staleCheck.paragraphTextHash && left.staleCheck.paragraphTextLength === right.staleCheck.paragraphTextLength && left.staleCheck.inlineCount === right.staleCheck.inlineCount && left.staleCheck.blockType === right.staleCheck.blockType && left.listAddress?.addressKey === right.listAddress?.addressKey && left.listAddress?.resolver?.staleHash === right.listAddress?.resolver?.staleHash && jsonStable(left.sourceRef) === jsonStable(right.sourceRef);
19265
+ }
19266
+ function isParagraphTextTarget(target) {
19267
+ return target.commandFamily === "text-leaf" && target.staleCheck.blockType === "paragraph" && target.leafPath.endsWith("/inline");
19268
+ }
19269
+ function jsonStable(value) {
19270
+ return JSON.stringify(sortJson(value));
19271
+ }
19272
+ function sortJson(value) {
19273
+ if (Array.isArray(value)) return value.map(sortJson);
19274
+ if (value && typeof value === "object") {
19275
+ const record = value;
19276
+ const sorted = {};
19277
+ for (const key of Object.keys(record).sort()) {
19278
+ sorted[key] = sortJson(record[key]);
19279
+ }
19280
+ return sorted;
19281
+ }
19282
+ return value;
19283
+ }
19096
19284
  function ensureDefaultInstance(catalog, kind) {
19097
19285
  const existing = Object.values(catalog.instances).find(
19098
19286
  (instance) => getListKind(catalog, instance.numberingInstanceId) === kind
@@ -20139,6 +20327,13 @@ function withCommandTextTarget(context, command) {
20139
20327
  textTarget: command.textTarget
20140
20328
  };
20141
20329
  }
20330
+ function listCommandContext(context) {
20331
+ return {
20332
+ timestamp: context.timestamp,
20333
+ ...context.activeStoryKey !== void 0 ? { activeStoryKey: context.activeStoryKey } : {},
20334
+ ...context.editableTargetCache !== void 0 ? { editableTargetCache: context.editableTargetCache } : {}
20335
+ };
20336
+ }
20142
20337
  function executeEditorCommand(state, command, context) {
20143
20338
  switch (command.type) {
20144
20339
  case "selection.set":
@@ -20780,7 +20975,17 @@ function executeEditorCommand(state, command, context) {
20780
20975
  });
20781
20976
  }
20782
20977
  case "list.toggle": {
20783
- const result = command.kind === "bulleted" ? toggleBulletedList(state.document, command.paragraphIndexes, { timestamp: context.timestamp }) : toggleNumberedList(state.document, command.paragraphIndexes, { timestamp: context.timestamp });
20978
+ const result = command.kind === "bulleted" ? toggleBulletedList(
20979
+ state.document,
20980
+ command.paragraphIndexes ?? [],
20981
+ listCommandContext(context),
20982
+ { editableTargets: command.editableTargets }
20983
+ ) : toggleNumberedList(
20984
+ state.document,
20985
+ command.paragraphIndexes ?? [],
20986
+ listCommandContext(context),
20987
+ { editableTargets: command.editableTargets }
20988
+ );
20784
20989
  return buildDocumentReplaceTransaction(state, context, {
20785
20990
  changed: result.affectedParagraphIndexes.length > 0,
20786
20991
  document: result.document,
@@ -20788,7 +20993,12 @@ function executeEditorCommand(state, command, context) {
20788
20993
  });
20789
20994
  }
20790
20995
  case "list.indent": {
20791
- const result = indentListItems(state.document, command.paragraphIndexes, { timestamp: context.timestamp });
20996
+ const result = indentListItems(
20997
+ state.document,
20998
+ command.paragraphIndexes ?? [],
20999
+ listCommandContext(context),
21000
+ { editableTargets: command.editableTargets }
21001
+ );
20792
21002
  return buildDocumentReplaceTransaction(state, context, {
20793
21003
  changed: result.affectedParagraphIndexes.length > 0,
20794
21004
  document: result.document,
@@ -20796,7 +21006,12 @@ function executeEditorCommand(state, command, context) {
20796
21006
  });
20797
21007
  }
20798
21008
  case "list.outdent": {
20799
- const result = outdentListItems(state.document, command.paragraphIndexes, { timestamp: context.timestamp });
21009
+ const result = outdentListItems(
21010
+ state.document,
21011
+ command.paragraphIndexes ?? [],
21012
+ listCommandContext(context),
21013
+ { editableTargets: command.editableTargets }
21014
+ );
20800
21015
  return buildDocumentReplaceTransaction(state, context, {
20801
21016
  changed: result.affectedParagraphIndexes.length > 0,
20802
21017
  document: result.document,
@@ -20806,9 +21021,10 @@ function executeEditorCommand(state, command, context) {
20806
21021
  case "list.restart-numbering": {
20807
21022
  const result = restartNumbering(
20808
21023
  state.document,
20809
- command.paragraphIndex,
20810
- { timestamp: context.timestamp },
20811
- command.startAt
21024
+ command.paragraphIndex ?? -1,
21025
+ listCommandContext(context),
21026
+ command.startAt,
21027
+ { editableTarget: command.editableTarget }
20812
21028
  );
20813
21029
  return buildDocumentReplaceTransaction(state, context, {
20814
21030
  changed: result.affectedParagraphIndexes.length > 0,
@@ -20819,8 +21035,9 @@ function executeEditorCommand(state, command, context) {
20819
21035
  case "list.continue-numbering": {
20820
21036
  const result = continueNumbering(
20821
21037
  state.document,
20822
- command.paragraphIndex,
20823
- { timestamp: context.timestamp }
21038
+ command.paragraphIndex ?? -1,
21039
+ listCommandContext(context),
21040
+ { editableTarget: command.editableTarget }
20824
21041
  );
20825
21042
  return buildDocumentReplaceTransaction(state, context, {
20826
21043
  changed: result.affectedParagraphIndexes.length > 0,
@@ -38066,7 +38283,52 @@ function compileReplacement(inputs) {
38066
38283
 
38067
38284
  // src/runtime/scopes/replacement/apply.ts
38068
38285
  function documentHash2(doc) {
38069
- return JSON.stringify(doc.content);
38286
+ let hash = 2166136261;
38287
+ const mix = (value) => {
38288
+ for (let i = 0; i < value.length; i += 1) {
38289
+ hash ^= value.charCodeAt(i);
38290
+ hash = Math.imul(hash, 16777619);
38291
+ }
38292
+ };
38293
+ const visit = (value) => {
38294
+ if (value === null) {
38295
+ mix("null");
38296
+ return;
38297
+ }
38298
+ switch (typeof value) {
38299
+ case "string":
38300
+ case "number":
38301
+ case "boolean":
38302
+ case "bigint":
38303
+ mix(`${typeof value}:${String(value)}`);
38304
+ return;
38305
+ case "undefined":
38306
+ mix("undefined");
38307
+ return;
38308
+ case "object":
38309
+ if (Array.isArray(value)) {
38310
+ mix(`[${value.length}`);
38311
+ for (const item of value) visit(item);
38312
+ mix("]");
38313
+ return;
38314
+ }
38315
+ {
38316
+ const record = value;
38317
+ const keys = Object.keys(record).sort();
38318
+ mix(`{${keys.length}`);
38319
+ for (const key of keys) {
38320
+ mix(key);
38321
+ visit(record[key]);
38322
+ }
38323
+ mix("}");
38324
+ }
38325
+ return;
38326
+ default:
38327
+ mix(typeof value);
38328
+ }
38329
+ };
38330
+ visit(doc.content);
38331
+ return (hash >>> 0).toString(36).padStart(7, "0");
38070
38332
  }
38071
38333
  function compileScopeById(document2, overlay, scopeId) {
38072
38334
  const paragraphIndexByBlockIndex = buildParagraphIndexMap(document2);
@@ -52577,7 +52839,8 @@ function rejectCommand(code, message) {
52577
52839
  };
52578
52840
  }
52579
52841
  function sameResolvedTarget2(left, right) {
52580
- return left.kind === right.kind && left.storyKey === right.storyKey && left.blockPath === right.blockPath && left.leafPath === right.leafPath && left.commandFamily === right.commandFamily && left.editability === right.editability && sameTextTargetStaleCheck(left, right) && left.staleCheck.inlineCount === right.staleCheck.inlineCount && left.staleCheck.targetHash === right.staleCheck.targetHash && left.staleCheck.targetTextLength === right.staleCheck.targetTextLength && left.staleCheck.childCount === right.staleCheck.childCount && left.staleCheck.blockType === right.staleCheck.blockType && left.staleCheck.wordParaId === right.staleCheck.wordParaId && left.staleCheck.wordTextId === right.staleCheck.wordTextId && jsonStable(left.staleCheck.sourceRef) === jsonStable(right.staleCheck.sourceRef) && jsonStable(left.sourceRef) === jsonStable(right.sourceRef) && jsonStable(left.table) === jsonStable(right.table) && jsonStable(left.editableOwner) === jsonStable(right.editableOwner);
52842
+ const textTargetLengthDrift = hasTextTargetLengthDrift(left, right);
52843
+ return left.kind === right.kind && left.storyKey === right.storyKey && left.blockPath === right.blockPath && left.leafPath === right.leafPath && left.commandFamily === right.commandFamily && left.editability === right.editability && sameTextTargetStaleCheck(left, right) && left.staleCheck.inlineCount === right.staleCheck.inlineCount && left.staleCheck.targetHash === right.staleCheck.targetHash && left.staleCheck.targetTextLength === right.staleCheck.targetTextLength && left.staleCheck.childCount === right.staleCheck.childCount && left.staleCheck.blockType === right.staleCheck.blockType && left.staleCheck.wordParaId === right.staleCheck.wordParaId && left.staleCheck.wordTextId === right.staleCheck.wordTextId && (textTargetLengthDrift || jsonStable2(left.staleCheck.sourceRef) === jsonStable2(right.staleCheck.sourceRef)) && (textTargetLengthDrift || jsonStable2(left.sourceRef) === jsonStable2(right.sourceRef)) && jsonStable2(left.table) === jsonStable2(right.table) && jsonStable2(left.editableOwner) === jsonStable2(right.editableOwner);
52581
52844
  }
52582
52845
  function sameTextTargetStaleCheck(left, right) {
52583
52846
  if (left.staleCheck.paragraphTextHash === right.staleCheck.paragraphTextHash && left.staleCheck.paragraphTextLength === right.staleCheck.paragraphTextLength) {
@@ -52585,6 +52848,9 @@ function sameTextTargetStaleCheck(left, right) {
52585
52848
  }
52586
52849
  return left.commandFamily === "text-leaf" && left.staleCheck.paragraphTextLength !== void 0 && right.staleCheck.paragraphTextLength !== void 0 && left.staleCheck.paragraphTextLength !== right.staleCheck.paragraphTextLength;
52587
52850
  }
52851
+ function hasTextTargetLengthDrift(left, right) {
52852
+ return left.commandFamily === "text-leaf" && left.staleCheck.paragraphTextLength !== void 0 && right.staleCheck.paragraphTextLength !== void 0 && left.staleCheck.paragraphTextLength !== right.staleCheck.paragraphTextLength;
52853
+ }
52588
52854
  function locateTargetRange(document2, surface, target) {
52589
52855
  if (target.kind === "hyperlink-text") {
52590
52856
  return locateHyperlinkDisplayRange(document2, surface, target);
@@ -52876,7 +53142,7 @@ function resolveBlockPathInSurfaceBlocks2(blocks, tokens, tokenIndex, hasVertica
52876
53142
  hasVerticalMergeContinuation || cell.verticalMerge === "continue"
52877
53143
  );
52878
53144
  }
52879
- function jsonStable(value) {
53145
+ function jsonStable2(value) {
52880
53146
  return value === void 0 ? "" : JSON.stringify(value);
52881
53147
  }
52882
53148
 
@@ -53013,20 +53279,20 @@ function tableAnchorCell(table) {
53013
53279
  };
53014
53280
  }
53015
53281
  function sameResolvedTableStructureTarget(left, right) {
53016
- return left.kind === right.kind && left.storyKey === right.storyKey && left.blockPath === right.blockPath && left.leafPath === right.leafPath && left.commandFamily === right.commandFamily && left.editability === right.editability && left.staleCheck.targetHash === right.staleCheck.targetHash && left.staleCheck.childCount === right.staleCheck.childCount && left.staleCheck.blockType === right.staleCheck.blockType && jsonStable2(left.staleCheck.sourceRef) === jsonStable2(right.staleCheck.sourceRef) && jsonStable2(left.sourceRef) === jsonStable2(right.sourceRef) && jsonStable2(left.table) === jsonStable2(right.table);
53282
+ return left.kind === right.kind && left.storyKey === right.storyKey && left.blockPath === right.blockPath && left.leafPath === right.leafPath && left.commandFamily === right.commandFamily && left.editability === right.editability && left.staleCheck.targetHash === right.staleCheck.targetHash && left.staleCheck.childCount === right.staleCheck.childCount && left.staleCheck.blockType === right.staleCheck.blockType && jsonStable3(left.staleCheck.sourceRef) === jsonStable3(right.staleCheck.sourceRef) && jsonStable3(left.sourceRef) === jsonStable3(right.sourceRef) && jsonStable3(left.table) === jsonStable3(right.table);
53017
53283
  }
53018
- function jsonStable2(value) {
53019
- return JSON.stringify(sortJson(value));
53284
+ function jsonStable3(value) {
53285
+ return JSON.stringify(sortJson2(value));
53020
53286
  }
53021
- function sortJson(value) {
53287
+ function sortJson2(value) {
53022
53288
  if (Array.isArray(value)) {
53023
- return value.map(sortJson);
53289
+ return value.map(sortJson2);
53024
53290
  }
53025
53291
  if (value && typeof value === "object") {
53026
53292
  const record = value;
53027
53293
  const sorted = {};
53028
53294
  for (const key of Object.keys(record).sort()) {
53029
- sorted[key] = sortJson(record[key]);
53295
+ sorted[key] = sortJson2(record[key]);
53030
53296
  }
53031
53297
  return sorted;
53032
53298
  }
@@ -55108,6 +55374,8 @@ function createDocumentRuntime(options) {
55108
55374
  documentMode: workflowCoordinator.getEffectiveDocumentMode(commandSelection),
55109
55375
  defaultAuthorId: defaultAuthorId ?? void 0,
55110
55376
  renderSnapshot: cachedRenderSnapshot,
55377
+ activeStoryKey: canonicalEditableTargetStoryKey(activeStory),
55378
+ editableTargetCache: editableTargetBlockCache,
55111
55379
  ...resolvedFragmentTextTarget ? { textTarget: resolvedFragmentTextTarget } : {}
55112
55380
  };
55113
55381
  const preSelection = commandSelection;
@@ -57701,14 +57969,18 @@ function createDocumentRuntime(options) {
57701
57969
  blockedReasons: [blockedReason]
57702
57970
  });
57703
57971
  }
57704
- const textTarget = targetResolution?.kind === "accepted" ? targetResolution.textTarget : legacyTextTarget;
57972
+ const listBoundaryDeleteUsesStoryText = targetResolution?.kind === "accepted" && editableTarget?.listAddress?.operationScope === "list-text" && isTopLevelMainStoryBlockPath(editableTarget.blockPath) && selection.isCollapsed && (commandForDispatch.type === "text.delete-backward" && selection.anchor === targetResolution.range.from || commandForDispatch.type === "text.delete-forward" && selection.anchor === targetResolution.range.to);
57973
+ const textTarget = targetResolution?.kind === "accepted" && !listBoundaryDeleteUsesStoryText ? targetResolution.textTarget : legacyTextTarget;
57705
57974
  const context = {
57706
57975
  timestamp,
57707
57976
  documentMode: textOptions.documentModeOverride ?? workflowCoordinator.getEffectiveDocumentMode(selection),
57708
57977
  defaultAuthorId: defaultAuthorId ?? void 0,
57709
57978
  renderSnapshot: cachedRenderSnapshot,
57979
+ activeStoryKey: canonicalEditableTargetStoryKey(activeStory),
57980
+ editableTargetCache: editableTargetBlockCache,
57710
57981
  activeStorySize: cachedRenderSnapshot.surface?.storySize,
57711
57982
  textTarget,
57983
+ preserveNumberingOnSplit: commandForDispatch.type === "paragraph.split" && targetResolution?.kind === "accepted" && editableTarget?.listAddress?.operationScope === "list-text",
57712
57984
  rejectTargetlessTableStructureInsert: true
57713
57985
  };
57714
57986
  const baseState = selection === state.selection ? state : {
@@ -58007,7 +58279,9 @@ function createDocumentRuntime(options) {
58007
58279
  timestamp: clock(),
58008
58280
  documentMode: workflowCoordinator.getEffectiveDocumentMode(state.selection),
58009
58281
  defaultAuthorId: defaultAuthorId ?? void 0,
58010
- renderSnapshot: cachedRenderSnapshot
58282
+ renderSnapshot: cachedRenderSnapshot,
58283
+ activeStoryKey: canonicalEditableTargetStoryKey(activeStory),
58284
+ editableTargetCache: editableTargetBlockCache
58011
58285
  };
58012
58286
  try {
58013
58287
  const transaction = executeEditorCommand(
@@ -60564,6 +60838,9 @@ function stripStoryTarget(selection) {
60564
60838
  const { storyTarget: _storyTarget, ...rest } = selection;
60565
60839
  return rest;
60566
60840
  }
60841
+ function isTopLevelMainStoryBlockPath(blockPath) {
60842
+ return typeof blockPath === "string" && /^main\/block\[\d+\]$/u.test(blockPath);
60843
+ }
60567
60844
  function toInternalSelectionSnapshot2(selection) {
60568
60845
  return {
60569
60846
  anchor: selection.anchor,
@@ -1,4 +1,4 @@
1
- export { gz as ActiveStoryTextCommand, gA as CommandAppliedMeta, gB as CreateDocumentRuntimeOptions, gC as DocumentRuntime, gD as DocumentRuntimeEvent, gE as RemoteCommandEnvelope, gF as Unsubscribe, gG as __buildTocInlineNodes, gH as __collectFontLoaderInputUncached, gI as __fontFamiliesEqual, gJ as createDocumentRuntime, gK as getThemeColorResolver } from '../public-types-DrhlQ5Zy.cjs';
1
+ export { gz as ActiveStoryTextCommand, gA as CommandAppliedMeta, gB as CreateDocumentRuntimeOptions, gC as DocumentRuntime, gD as DocumentRuntimeEvent, gE as RemoteCommandEnvelope, gF as Unsubscribe, gG as __buildTocInlineNodes, gH as __collectFontLoaderInputUncached, gI as __fontFamiliesEqual, gJ as createDocumentRuntime, gK as getThemeColorResolver } from '../public-types-beSYFJRR.cjs';
2
2
  import '../canonical-document-CXCFCbAz.cjs';
3
3
  import 'react';
4
4
  import 'yjs';
@@ -1,4 +1,4 @@
1
- export { gz as ActiveStoryTextCommand, gA as CommandAppliedMeta, gB as CreateDocumentRuntimeOptions, gC as DocumentRuntime, gD as DocumentRuntimeEvent, gE as RemoteCommandEnvelope, gF as Unsubscribe, gG as __buildTocInlineNodes, gH as __collectFontLoaderInputUncached, gI as __fontFamiliesEqual, gJ as createDocumentRuntime, gK as getThemeColorResolver } from '../public-types-BEGhv2YR.js';
1
+ export { gz as ActiveStoryTextCommand, gA as CommandAppliedMeta, gB as CreateDocumentRuntimeOptions, gC as DocumentRuntime, gD as DocumentRuntimeEvent, gE as RemoteCommandEnvelope, gF as Unsubscribe, gG as __buildTocInlineNodes, gH as __collectFontLoaderInputUncached, gI as __fontFamiliesEqual, gJ as createDocumentRuntime, gK as getThemeColorResolver } from '../public-types-Cgl3efbO.js';
2
2
  import '../canonical-document-CXCFCbAz.js';
3
3
  import 'react';
4
4
  import 'yjs';
@@ -4,18 +4,18 @@ import {
4
4
  __fontFamiliesEqual,
5
5
  createDocumentRuntime,
6
6
  getThemeColorResolver
7
- } from "../chunk-QT3LX4FA.js";
7
+ } from "../chunk-PUMZWE2D.js";
8
8
  import "../chunk-6EXNNAO6.js";
9
9
  import "../chunk-M6XR534O.js";
10
10
  import "../chunk-YD2JE54B.js";
11
- import "../chunk-4G3OS2H6.js";
11
+ import "../chunk-LZVBNDGU.js";
12
12
  import "../chunk-Y4XZCMCS.js";
13
13
  import "../chunk-6F5QW44A.js";
14
14
  import "../chunk-KV435YXO.js";
15
15
  import "../chunk-ZDOAUP3V.js";
16
16
  import "../chunk-BYSRJ4FE.js";
17
17
  import "../chunk-MWSBGJQO.js";
18
- import "../chunk-OHTK7F3F.js";
18
+ import "../chunk-XRACP43Q.js";
19
19
  import "../chunk-YHZHPXDB.js";
20
20
  import "../chunk-KFCQYZXR.js";
21
21
  import "../chunk-QIO6V46H.js";
@@ -1,6 +1,6 @@
1
1
  import { C as CanonicalDocument } from './canonical-document-CXCFCbAz.cjs';
2
- import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-DrhlQ5Zy.cjs';
3
- import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-DDPxEygX.cjs';
2
+ import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-beSYFJRR.cjs';
3
+ import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-BQjdVZsh.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-CXCFCbAz.js';
2
- import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-BEGhv2YR.js';
3
- import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-BFT8536T.js';
2
+ import { a as EditorSessionState, c as ExportResult, P as PersistedEditorSnapshot } from './public-types-Cgl3efbO.js';
3
+ import { O as OpenOptions, b as OpenResult, a as ExportOptions, R as ReopenBarrier, V as ValidateOptions, d as ValidationReport } from './types-DvvmS5A7.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-Bp3zqnkS.cjs';
2
- export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-CJXsswcd.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-DDPxEygX.cjs';
4
- export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-DrhlQ5Zy.cjs';
1
+ export { D as DocxSession, S as SessionNotOpenError, a as SessionNotWiredError } from './session-B7u82EJF.cjs';
2
+ export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-DveZOVuC.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-BQjdVZsh.cjs';
4
+ export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-beSYFJRR.cjs';
5
5
  import './canonical-document-CXCFCbAz.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-xMOU_NtL.js';
2
- export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-B1MxvbeV.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-BFT8536T.js';
4
- export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-BEGhv2YR.js';
1
+ export { D as DocxSession, S as SessionNotOpenError, a as SessionNotWiredError } from './session-BWMJ9jm4.js';
2
+ export { L as LoadedDocxEditorSession, l as loadDocxSessionAsync } from './loader-CFICtb9m.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-DvvmS5A7.js';
4
+ export { E as EditorHostAdapter, a as EditorSessionState, b as ExportDocxOptions, c as ExportResult, L as LoadStage, P as PersistedEditorSnapshot } from './public-types-Cgl3efbO.js';
5
5
  import './canonical-document-CXCFCbAz.js';
6
6
  import 'react';
7
7
  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.cjs';
2
- export { e_ as SessionCapabilities, eI as WorkspaceMode, eJ as ZoomLevel, fh as deriveCapabilities } from './public-types-DrhlQ5Zy.cjs';
2
+ export { e_ as SessionCapabilities, eI as WorkspaceMode, eJ as ZoomLevel, fh as deriveCapabilities } from './public-types-beSYFJRR.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 { e_ as SessionCapabilities, eI as WorkspaceMode, eJ as ZoomLevel, fh as deriveCapabilities } from './public-types-BEGhv2YR.js';
2
+ export { e_ as SessionCapabilities, eI as WorkspaceMode, eJ as ZoomLevel, fh as deriveCapabilities } from './public-types-Cgl3efbO.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import 'yjs';