@superdoc-dev/mcp 0.12.0-next.40 → 0.12.0-next.41

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 (2) hide show
  1. package/dist/index.js +572 -311
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -50479,7 +50479,7 @@ var init_remark_gfm_BUJjZJLy_es = __esm(() => {
50479
50479
  emptyOptions2 = {};
50480
50480
  });
50481
50481
 
50482
- // ../../packages/superdoc/dist/chunks/SuperConverter-DVjSc-AY.es.js
50482
+ // ../../packages/superdoc/dist/chunks/SuperConverter-Du0apG1R.es.js
50483
50483
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
50484
50484
  const fieldValue = extension$1.config[field];
50485
50485
  if (typeof fieldValue === "function")
@@ -84635,6 +84635,17 @@ function translateDrawingMLTextbox(params) {
84635
84635
  if (!drawingContent || !shapeTextbox)
84636
84636
  return null;
84637
84637
  const drawing = carbonCopy(drawingContent);
84638
+ const { width: pxWidth, height: pxHeight, marginOffset } = node2.attrs ?? {};
84639
+ if (pxWidth != null || pxHeight != null) {
84640
+ const emuCx = pxWidth != null ? String(pixelsToEmu(pxWidth)) : null;
84641
+ const emuCy = pxHeight != null ? String(pixelsToEmu(pxHeight)) : null;
84642
+ patchNodeAttributes(drawing, "wp:extent", emuCx, emuCy);
84643
+ patchShapeGeometryExt(drawing, emuCx, emuCy);
84644
+ }
84645
+ if (marginOffset?.horizontal != null)
84646
+ patchPositionOffset(drawing, "wp:positionH", String(pixelsToEmu(marginOffset.horizontal)));
84647
+ if (marginOffset?.top != null)
84648
+ patchPositionOffset(drawing, "wp:positionV", String(pixelsToEmu(marginOffset.top)));
84638
84649
  const liveParagraphs = translateChildNodes({
84639
84650
  ...params,
84640
84651
  node: shapeTextbox
@@ -84666,6 +84677,67 @@ function findTextboxContentNode(node2) {
84666
84677
  }
84667
84678
  return null;
84668
84679
  }
84680
+ function patchPositionOffset(node2, posNodeName, emuValue) {
84681
+ if (!node2 || typeof node2 !== "object")
84682
+ return false;
84683
+ if (node2.name === posNodeName && Array.isArray(node2.elements)) {
84684
+ const offsetEl = node2.elements.find((el) => el.name === "wp:posOffset");
84685
+ if (offsetEl && Array.isArray(offsetEl.elements) && offsetEl.elements.length > 0) {
84686
+ offsetEl.elements[0].text = emuValue;
84687
+ return true;
84688
+ }
84689
+ return false;
84690
+ }
84691
+ if (!Array.isArray(node2.elements))
84692
+ return false;
84693
+ for (const child of node2.elements)
84694
+ if (patchPositionOffset(child, posNodeName, emuValue))
84695
+ return true;
84696
+ return false;
84697
+ }
84698
+ function patchShapeGeometryExt(root2, cx, cy) {
84699
+ const PATH = [
84700
+ "wp:anchor",
84701
+ "a:graphic",
84702
+ "a:graphicData",
84703
+ "wps:wsp",
84704
+ "wps:spPr",
84705
+ "a:xfrm",
84706
+ "a:ext"
84707
+ ];
84708
+ let node2 = root2;
84709
+ for (const name of PATH) {
84710
+ if (!node2 || !Array.isArray(node2.elements))
84711
+ return false;
84712
+ node2 = node2.elements.find((el) => el.name === name) ?? null;
84713
+ if (!node2)
84714
+ return false;
84715
+ }
84716
+ if (!node2.attributes)
84717
+ node2.attributes = {};
84718
+ if (cx != null)
84719
+ node2.attributes.cx = cx;
84720
+ if (cy != null)
84721
+ node2.attributes.cy = cy;
84722
+ return true;
84723
+ }
84724
+ function patchNodeAttributes(node2, targetName, cx, cy) {
84725
+ if (!node2 || typeof node2 !== "object")
84726
+ return false;
84727
+ if (node2.name === targetName && node2.attributes) {
84728
+ if (cx != null)
84729
+ node2.attributes.cx = cx;
84730
+ if (cy != null)
84731
+ node2.attributes.cy = cy;
84732
+ return true;
84733
+ }
84734
+ if (!Array.isArray(node2.elements))
84735
+ return false;
84736
+ for (const child of node2.elements)
84737
+ if (patchNodeAttributes(child, targetName, cx, cy))
84738
+ return true;
84739
+ return false;
84740
+ }
84669
84741
  function translateShapeContainer(params) {
84670
84742
  const { node: node2 } = params;
84671
84743
  if (node2?.attrs?.drawingContent) {
@@ -84724,6 +84796,10 @@ function buildShapeStyle(attrs) {
84724
84796
  style["mso-position-vertical"] = attrs.anchorData.alignV;
84725
84797
  if (attrs.anchorData?.vRelativeFrom)
84726
84798
  style["mso-position-vertical-relative"] = attrs.anchorData.vRelativeFrom;
84799
+ if (attrs.width != null)
84800
+ style["width"] = `${convertToPt$2(attrs.width)}pt`;
84801
+ if (attrs.height != null)
84802
+ style["height"] = `${convertToPt$2(attrs.height)}pt`;
84727
84803
  const entries = Object.entries(style);
84728
84804
  if (entries.length === 0)
84729
84805
  return;
@@ -118480,7 +118556,7 @@ Docs: https://docs.superdoc.dev/getting-started/fonts`);
118480
118556
  state.kern = kernNode.attributes["w:val"];
118481
118557
  }
118482
118558
  }, SuperConverter;
118483
- var init_SuperConverter_DVjSc_AY_es = __esm(() => {
118559
+ var init_SuperConverter_Du0apG1R_es = __esm(() => {
118484
118560
  init_rolldown_runtime_Bg48TavK_es();
118485
118561
  init_jszip_C49i9kUs_es();
118486
118562
  init_xml_js_CqGKpaft_es();
@@ -147489,7 +147565,7 @@ var init_SuperConverter_DVjSc_AY_es = __esm(() => {
147489
147565
  };
147490
147566
  });
147491
147567
 
147492
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-DYtdH4mX.es.js
147568
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-BNcguDpP.es.js
147493
147569
  function parseSizeUnit(val = "0") {
147494
147570
  const length = val.toString() || "0";
147495
147571
  const value = Number.parseFloat(length);
@@ -158232,9 +158308,9 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, MARK_KEYS, STEP_OP_CATALOG_UNFROZEN, PU
158232
158308
  }
158233
158309
  };
158234
158310
  };
158235
- var init_create_headless_toolbar_DYtdH4mX_es = __esm(() => {
158311
+ var init_create_headless_toolbar_BNcguDpP_es = __esm(() => {
158236
158312
  init_rolldown_runtime_Bg48TavK_es();
158237
- init_SuperConverter_DVjSc_AY_es();
158313
+ init_SuperConverter_Du0apG1R_es();
158238
158314
  init_jszip_C49i9kUs_es();
158239
158315
  init_uuid_B2wVPhPi_es();
158240
158316
  init_constants_D9qj59G2_es();
@@ -161812,6 +161888,157 @@ var __plugin_vue_export_helper_default = (sfc, props) => {
161812
161888
  };
161813
161889
  var init__plugin_vue_export_helper_HmhZBO0u_es = () => {};
161814
161890
 
161891
+ // ../../packages/superdoc/dist/chunks/ui-BMYSpkne.es.js
161892
+ function buildAnnotationSelector() {
161893
+ return `.${DOM_CLASS_NAMES.ANNOTATION}[${DATA_ATTRS.PM_START}]`;
161894
+ }
161895
+ function findRenderedCommentElements(host, commentId, storyKey) {
161896
+ if (!host || !commentId)
161897
+ return [];
161898
+ return Array.from(host.querySelectorAll("[data-comment-ids]")).filter((el) => {
161899
+ const raw = el.dataset.commentIds;
161900
+ if (!raw)
161901
+ return false;
161902
+ if (!raw.split(",").some((token) => token.trim() === commentId))
161903
+ return false;
161904
+ if (!storyKey)
161905
+ return true;
161906
+ const elStoryKey = el.dataset.storyKey;
161907
+ if (elStoryKey)
161908
+ return elStoryKey === storyKey;
161909
+ return storyKey === BODY_STORY_KEY;
161910
+ });
161911
+ }
161912
+ function findRenderedTrackedChangeElementsStrict(host, entityId, escapeAttrValue, storyKey) {
161913
+ if (!host || !entityId)
161914
+ return [];
161915
+ const baseSelector = `[data-track-change-id="${escapeAttrValue(entityId)}"]`;
161916
+ if (!storyKey)
161917
+ return Array.from(host.querySelectorAll(baseSelector));
161918
+ const storySelector = `${baseSelector}[data-story-key="${escapeAttrValue(storyKey)}"]`;
161919
+ return Array.from(host.querySelectorAll(storySelector));
161920
+ }
161921
+ function findRenderedContentControlElements(host, entityId, escapeAttrValue, _storyKey) {
161922
+ if (!host || !entityId)
161923
+ return [];
161924
+ const id = escapeAttrValue(entityId);
161925
+ const selector = `.${DOM_CLASS_NAMES.INLINE_SDT_WRAPPER}[data-sdt-id="${id}"][data-sdt-type="structuredContent"],.${DOM_CLASS_NAMES.BLOCK_SDT}[data-sdt-id="${id}"][data-sdt-type="structuredContent"]`;
161926
+ return Array.from(host.querySelectorAll(selector));
161927
+ }
161928
+ function elementsToRangeRects(elements) {
161929
+ const result = [];
161930
+ for (const element of elements) {
161931
+ const rect = element.getBoundingClientRect();
161932
+ if (![
161933
+ rect.top,
161934
+ rect.left,
161935
+ rect.right,
161936
+ rect.bottom,
161937
+ rect.width,
161938
+ rect.height
161939
+ ].every(Number.isFinite))
161940
+ continue;
161941
+ const pageEl = element.closest(".superdoc-page");
161942
+ const pageIndexAttr = Number(pageEl?.dataset?.pageIndex ?? 0);
161943
+ result.push({
161944
+ pageIndex: Number.isFinite(pageIndexAttr) ? pageIndexAttr : 0,
161945
+ left: rect.left,
161946
+ top: rect.top,
161947
+ right: rect.right,
161948
+ bottom: rect.bottom,
161949
+ width: rect.width,
161950
+ height: rect.height
161951
+ });
161952
+ }
161953
+ return result;
161954
+ }
161955
+ var DOM_CLASS_NAMES, STRUCTURED_CONTENT_CHROME_LABEL_CLASS_NAMES, DATA_ATTRS, DATASET_KEYS, encodeLayoutStoryDataset = (story) => story.kind === "body" ? "body" : story.id ? `${story.kind}:${story.id}` : story.kind, decodeLayoutStoryDataset = (raw) => {
161956
+ if (!raw)
161957
+ return { kind: "unknown" };
161958
+ if (raw === "body")
161959
+ return { kind: "body" };
161960
+ const idx = raw.indexOf(":");
161961
+ const kind = idx === -1 ? raw : raw.slice(0, idx);
161962
+ const id = idx === -1 ? undefined : raw.slice(idx + 1);
161963
+ switch (kind) {
161964
+ case "body":
161965
+ case "header":
161966
+ case "footer":
161967
+ case "footnote":
161968
+ case "endnote":
161969
+ return id ? {
161970
+ kind,
161971
+ id
161972
+ } : { kind };
161973
+ default:
161974
+ return { kind: "unknown" };
161975
+ }
161976
+ }, DRAGGABLE_SELECTOR;
161977
+ var init_ui_BMYSpkne_es = __esm(() => {
161978
+ init_SuperConverter_Du0apG1R_es();
161979
+ DOM_CLASS_NAMES = {
161980
+ PAGE: "superdoc-page",
161981
+ FRAGMENT: "superdoc-fragment",
161982
+ LINE: "superdoc-line",
161983
+ INLINE_SDT_WRAPPER: "superdoc-structured-content-inline",
161984
+ INLINE_SDT_LABEL: "superdoc-structured-content-inline__label",
161985
+ BLOCK_SDT: "superdoc-structured-content-block",
161986
+ BLOCK_SDT_LABEL: "superdoc-structured-content__label",
161987
+ TABLE_FRAGMENT: "superdoc-table-fragment",
161988
+ DOCUMENT_SECTION: "superdoc-document-section",
161989
+ SDT_GROUP_HOVER: "sdt-group-hover",
161990
+ TOC_ENTRY: "superdoc-toc-entry",
161991
+ TOC_GROUP_HOVER: "toc-group-hover",
161992
+ IMAGE_FRAGMENT: "superdoc-image-fragment",
161993
+ INLINE_IMAGE: "superdoc-inline-image",
161994
+ LIST_MARKER: "superdoc-list-marker",
161995
+ INLINE_IMAGE_CLIP_WRAPPER: "superdoc-inline-image-clip-wrapper",
161996
+ ANNOTATION: "annotation",
161997
+ ANNOTATION_CONTENT: "annotation-content",
161998
+ ANNOTATION_CARET_ANCHOR: "annotation-caret-anchor"
161999
+ };
162000
+ STRUCTURED_CONTENT_CHROME_LABEL_CLASS_NAMES = [DOM_CLASS_NAMES.INLINE_SDT_LABEL, DOM_CLASS_NAMES.BLOCK_SDT_LABEL];
162001
+ DATA_ATTRS = {
162002
+ PM_START: "data-pm-start",
162003
+ PM_END: "data-pm-end",
162004
+ LAYOUT_EPOCH: "data-layout-epoch",
162005
+ TABLE_BOUNDARIES: "data-table-boundaries",
162006
+ SDT_ID: "data-sdt-id",
162007
+ SDT_TYPE: "data-sdt-type",
162008
+ FIELD_ID: "data-field-id",
162009
+ FIELD_TYPE: "data-field-type",
162010
+ DRAGGABLE: "data-draggable",
162011
+ DISPLAY_LABEL: "data-display-label",
162012
+ VARIANT: "data-variant",
162013
+ TYPE: "data-type",
162014
+ LAYOUT_BOUNDARY_SCHEMA: "data-layout-boundary-schema",
162015
+ LAYOUT_FRAGMENT_ID: "data-layout-fragment-id",
162016
+ LAYOUT_STORY: "data-layout-story",
162017
+ LAYOUT_BLOCK_REF: "data-layout-block-ref"
162018
+ };
162019
+ DATASET_KEYS = {
162020
+ PM_START: "pmStart",
162021
+ PM_END: "pmEnd",
162022
+ LAYOUT_EPOCH: "layoutEpoch",
162023
+ TABLE_BOUNDARIES: "tableBoundaries",
162024
+ SDT_ID: "sdtId",
162025
+ SDT_TYPE: "sdtType",
162026
+ FIELD_ID: "fieldId",
162027
+ FIELD_TYPE: "fieldType",
162028
+ DRAGGABLE: "draggable",
162029
+ DISPLAY_LABEL: "displayLabel",
162030
+ VARIANT: "variant",
162031
+ TYPE: "type",
162032
+ LAYOUT_BOUNDARY_SCHEMA: "layoutBoundarySchema",
162033
+ LAYOUT_FRAGMENT_ID: "layoutFragmentId",
162034
+ LAYOUT_STORY: "layoutStory",
162035
+ LAYOUT_BLOCK_REF: "layoutBlockRef"
162036
+ };
162037
+ `${DOM_CLASS_NAMES.BLOCK_SDT}${DATA_ATTRS.SDT_ID}`;
162038
+ DRAGGABLE_SELECTOR = `[${DATA_ATTRS.DRAGGABLE}="true"]`;
162039
+ DATA_ATTRS.LAYOUT_EPOCH;
162040
+ });
162041
+
161815
162042
  // ../../packages/superdoc/dist/chunks/eventemitter3-UwU_CLPU.es.js
161816
162043
  var import_eventemitter3;
161817
162044
  var init_eventemitter3_UwU_CLPU_es = __esm(() => {
@@ -213849,7 +214076,7 @@ var init_remark_gfm_DCND_V_3_es = __esm(() => {
213849
214076
  init_remark_gfm_BUJjZJLy_es();
213850
214077
  });
213851
214078
 
213852
- // ../../packages/superdoc/dist/chunks/src-DX3B_Otx.es.js
214079
+ // ../../packages/superdoc/dist/chunks/src-bGJhSgx_.es.js
213853
214080
  function deleteProps(obj, propOrProps) {
213854
214081
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
213855
214082
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -223299,9 +223526,6 @@ function replaceCommand(wrap4, moveForward) {
223299
223526
  return true;
223300
223527
  };
223301
223528
  }
223302
- function buildAnnotationSelector() {
223303
- return `.${DOM_CLASS_NAMES.ANNOTATION}[${DATA_ATTRS.PM_START}]`;
223304
- }
223305
223529
  function isPresenting(editor) {
223306
223530
  const presentationCtx = editor?.presentationEditor;
223307
223531
  if (!presentationCtx)
@@ -261591,7 +261815,7 @@ function getMeasurementContext() {
261591
261815
  function getRunFontString(run2) {
261592
261816
  if (run2.kind === "tab" || run2.kind === "lineBreak" || run2.kind === "break" || run2.kind === "fieldAnnotation" || run2.kind === "math" || "src" in run2)
261593
261817
  return "normal normal 16px Arial";
261594
- return `${run2.italic ? "italic" : "normal"} ${run2.bold ? "bold" : "normal"} ${run2.fontSize ?? 16}px ${run2.fontFamily ?? "Arial"}`;
261818
+ return `${run2.italic ? "italic" : "normal"} ${run2.bold ? "bold" : "normal"} ${run2.fontSize ?? 16}px ${DEFAULT_FONT_MEASURE_CONTEXT.resolvePhysical(run2.fontFamily ?? "Arial", faceOf$1(run2))}`;
261595
261819
  }
261596
261820
  function measureCharacterX(block, line, charOffset, availableWidthOverride, alignmentOverride) {
261597
261821
  const ctx$1 = getMeasurementContext();
@@ -261731,97 +261955,43 @@ function charOffsetToPm(block, line, charOffset, fallbackPmStart) {
261731
261955
  return lastPm;
261732
261956
  }
261733
261957
  function findCharacterAtX(block, line, x, pmStart, availableWidthOverride, alignmentOverride) {
261734
- const ctx$1 = getMeasurementContext();
261735
- const availableWidth = availableWidthOverride ?? line.maxWidth ?? line.width;
261736
- const justify = getJustifyAdjustment({
261737
- block,
261738
- line,
261739
- availableWidthOverride: availableWidth,
261740
- alignmentOverride
261741
- });
261742
- const alignment$1 = alignmentOverride ?? (block.kind === "paragraph" ? block.attrs?.alignment : undefined);
261743
- const renderedLineWidth = alignment$1 === "justify" ? line.width + Math.max(0, availableWidth - line.width) : line.width;
261744
- const hasExplicitPositioning = line.segments?.some((seg) => seg.x !== undefined);
261745
- const alignmentOffset = !hasExplicitPositioning && alignment$1 === "center" ? Math.max(0, (availableWidth - renderedLineWidth) / 2) : !hasExplicitPositioning && alignment$1 === "right" ? Math.max(0, availableWidth - renderedLineWidth) : 0;
261746
- if (!ctx$1) {
261747
- const runs$1 = sliceRunsForLine(block, line);
261748
- const charsInLine = Math.max(1, runs$1.reduce((sum, run2) => {
261749
- if (isTabRun$1(run2))
261750
- return sum + TAB_CHAR_LENGTH;
261751
- if ("src" in run2 || run2.kind === "lineBreak" || run2.kind === "break" || run2.kind === "fieldAnnotation" || run2.kind === "math")
261752
- return sum;
261753
- return sum + (run2.text ?? "").length;
261754
- }, 0));
261755
- const ratio = Math.max(0, Math.min(1, (x - alignmentOffset) / renderedLineWidth));
261756
- const charOffset = Math.round(ratio * charsInLine);
261757
- return {
261758
- charOffset,
261759
- pmPosition: charOffsetToPm(block, line, charOffset, pmStart)
261760
- };
261761
- }
261762
- const runs2 = sliceRunsForLine(block, line);
261763
- const safeX = Math.max(0, Math.min(renderedLineWidth, x - alignmentOffset));
261764
- let currentX = 0;
261765
- let currentCharOffset = 0;
261766
- let spaceTally = 0;
261767
- for (const run2 of runs2) {
261958
+ const maxOffset = lineCharLength(block, line);
261959
+ const xAtOffset = (offset$1) => measureCharacterX(block, line, offset$1, availableWidthOverride, alignmentOverride);
261960
+ const charOffset = nearestOffsetToX(x, maxOffset, xAtOffset);
261961
+ return {
261962
+ charOffset,
261963
+ pmPosition: charOffsetToPm(block, line, charOffset, pmStart)
261964
+ };
261965
+ }
261966
+ function lineCharLength(block, line) {
261967
+ let length$1 = 0;
261968
+ for (const run2 of sliceRunsForLine(block, line)) {
261768
261969
  if (isTabRun$1(run2)) {
261769
- const tabWidth = run2.width ?? 0;
261770
- const startX = currentX;
261771
- const endX = currentX + tabWidth;
261772
- if (safeX <= endX) {
261773
- const offsetInRun = safeX < startX + tabWidth / 2 ? 0 : TAB_CHAR_LENGTH;
261774
- const charOffset = currentCharOffset + offsetInRun;
261775
- return {
261776
- charOffset,
261777
- pmPosition: charOffsetToPm(block, line, charOffset, pmStart)
261778
- };
261779
- }
261780
- currentX = endX;
261781
- currentCharOffset += TAB_CHAR_LENGTH;
261970
+ length$1 += TAB_CHAR_LENGTH;
261782
261971
  continue;
261783
261972
  }
261784
- const text5 = "src" in run2 || run2.kind === "lineBreak" || run2.kind === "break" || run2.kind === "fieldAnnotation" || run2.kind === "math" ? "" : run2.text ?? "";
261785
- const runLength = text5.length;
261786
- const displayText = applyTextTransform$3(text5, isTabRun$1(run2) || "src" in run2 || run2.kind === "lineBreak" || run2.kind === "break" || run2.kind === "fieldAnnotation" || run2.kind === "math" ? undefined : run2.textTransform);
261787
- if (runLength === 0)
261973
+ if ("src" in run2 || run2.kind === "lineBreak" || run2.kind === "break" || run2.kind === "fieldAnnotation" || run2.kind === "math")
261788
261974
  continue;
261789
- ctx$1.font = getRunFontString(run2);
261790
- for (let i3 = 0;i3 <= runLength; i3++) {
261791
- const textUpToChar = displayText.slice(0, i3);
261792
- const measured$1 = ctx$1.measureText(textUpToChar);
261793
- const spacesInPortion = justify.extraPerSpace > 0 ? countSpaces(text5.slice(0, i3)) : 0;
261794
- const charX = currentX + measured$1.width + computeLetterSpacingWidth(run2, i3, runLength) + justify.extraPerSpace * (spaceTally + spacesInPortion);
261795
- if (charX >= safeX) {
261796
- if (i3 === 0) {
261797
- const pmPosition$1 = charOffsetToPm(block, line, currentCharOffset, pmStart);
261798
- return {
261799
- charOffset: currentCharOffset,
261800
- pmPosition: pmPosition$1
261801
- };
261802
- }
261803
- const prevText = displayText.slice(0, i3 - 1);
261804
- const prevMeasured = ctx$1.measureText(prevText);
261805
- const prevX = currentX + prevMeasured.width + computeLetterSpacingWidth(run2, i3 - 1, runLength);
261806
- const charOffset = Math.abs(safeX - prevX) < Math.abs(safeX - charX) ? currentCharOffset + i3 - 1 : currentCharOffset + i3;
261807
- return {
261808
- charOffset,
261809
- pmPosition: charOffsetToPm(block, line, charOffset, pmStart)
261810
- };
261811
- }
261812
- }
261813
- const measured = ctx$1.measureText(displayText);
261814
- const runLetterSpacing = computeLetterSpacingWidth(run2, runLength, runLength);
261815
- const spacesInRun = justify.extraPerSpace > 0 ? countSpaces(text5) : 0;
261816
- currentX += measured.width + runLetterSpacing + justify.extraPerSpace * spacesInRun;
261817
- spaceTally += spacesInRun;
261818
- currentCharOffset += runLength;
261975
+ length$1 += (run2.text ?? "").length;
261819
261976
  }
261820
- const pmPosition = charOffsetToPm(block, line, currentCharOffset, pmStart);
261821
- return {
261822
- charOffset: currentCharOffset,
261823
- pmPosition
261824
- };
261977
+ return length$1;
261978
+ }
261979
+ function nearestOffsetToX(x, maxOffset, xAtOffset) {
261980
+ if (maxOffset <= 0 || x <= xAtOffset(0))
261981
+ return 0;
261982
+ if (x >= xAtOffset(maxOffset))
261983
+ return maxOffset;
261984
+ let lo = 0;
261985
+ let hi = maxOffset;
261986
+ while (lo < hi) {
261987
+ const mid = lo + hi + 1 >> 1;
261988
+ if (xAtOffset(mid) <= x)
261989
+ lo = mid;
261990
+ else
261991
+ hi = mid - 1;
261992
+ }
261993
+ const upper = Math.min(lo + 1, maxOffset);
261994
+ return x - xAtOffset(lo) < xAtOffset(upper) - x ? lo : upper;
261825
261995
  }
261826
261996
  function getWordLayoutConfig(block) {
261827
261997
  if (!block || block.kind !== "paragraph")
@@ -263010,6 +263180,13 @@ function computeHeaderFooterContentHash(blocks2) {
263010
263180
  if ("pageNumberFieldFormat" in run2 && run2.pageNumberFieldFormat)
263011
263181
  parts.push(`pnf:${JSON.stringify(run2.pageNumberFieldFormat)}`);
263012
263182
  }
263183
+ if (block.kind === "drawing") {
263184
+ const drawing = block;
263185
+ if ("geometry" in drawing && drawing.geometry)
263186
+ parts.push(`g:${drawing.geometry.width ?? 0}x${drawing.geometry.height ?? 0}`);
263187
+ if (drawing.anchor)
263188
+ parts.push(`a:${drawing.anchor.offsetH ?? 0},${drawing.anchor.offsetV ?? 0}`);
263189
+ }
263013
263190
  }
263014
263191
  return parts.join("|");
263015
263192
  }
@@ -267471,66 +267648,6 @@ function createHiddenHost(doc$12, widthPx) {
267471
267648
  host
267472
267649
  };
267473
267650
  }
267474
- function findRenderedCommentElements(host, commentId, storyKey) {
267475
- if (!host || !commentId)
267476
- return [];
267477
- return Array.from(host.querySelectorAll("[data-comment-ids]")).filter((el) => {
267478
- const raw = el.dataset.commentIds;
267479
- if (!raw)
267480
- return false;
267481
- if (!raw.split(",").some((token$1) => token$1.trim() === commentId))
267482
- return false;
267483
- if (!storyKey)
267484
- return true;
267485
- const elStoryKey = el.dataset.storyKey;
267486
- if (elStoryKey)
267487
- return elStoryKey === storyKey;
267488
- return storyKey === BODY_STORY_KEY;
267489
- });
267490
- }
267491
- function findRenderedTrackedChangeElementsStrict(host, entityId, escapeAttrValue$1, storyKey) {
267492
- if (!host || !entityId)
267493
- return [];
267494
- const baseSelector = `[data-track-change-id="${escapeAttrValue$1(entityId)}"]`;
267495
- if (!storyKey)
267496
- return Array.from(host.querySelectorAll(baseSelector));
267497
- const storySelector = `${baseSelector}[data-story-key="${escapeAttrValue$1(storyKey)}"]`;
267498
- return Array.from(host.querySelectorAll(storySelector));
267499
- }
267500
- function findRenderedContentControlElements(host, entityId, escapeAttrValue$1, _storyKey) {
267501
- if (!host || !entityId)
267502
- return [];
267503
- const id2 = escapeAttrValue$1(entityId);
267504
- const selector = `.${DOM_CLASS_NAMES.INLINE_SDT_WRAPPER}[data-sdt-id="${id2}"][data-sdt-type="structuredContent"],.${DOM_CLASS_NAMES.BLOCK_SDT}[data-sdt-id="${id2}"][data-sdt-type="structuredContent"]`;
267505
- return Array.from(host.querySelectorAll(selector));
267506
- }
267507
- function elementsToRangeRects(elements) {
267508
- const result = [];
267509
- for (const element3 of elements) {
267510
- const rect = element3.getBoundingClientRect();
267511
- if (![
267512
- rect.top,
267513
- rect.left,
267514
- rect.right,
267515
- rect.bottom,
267516
- rect.width,
267517
- rect.height
267518
- ].every(Number.isFinite))
267519
- continue;
267520
- const pageEl = element3.closest(".superdoc-page");
267521
- const pageIndexAttr = Number(pageEl?.dataset?.pageIndex ?? 0);
267522
- result.push({
267523
- pageIndex: Number.isFinite(pageIndexAttr) ? pageIndexAttr : 0,
267524
- left: rect.left,
267525
- top: rect.top,
267526
- right: rect.right,
267527
- bottom: rect.bottom,
267528
- width: rect.width,
267529
- height: rect.height
267530
- });
267531
- }
267532
- return result;
267533
- }
267534
267651
  function getFallbackCursorColor(clientId, fallbackColors) {
267535
267652
  return fallbackColors[clientId % fallbackColors.length];
267536
267653
  }
@@ -267649,6 +267766,13 @@ function renderRemoteCursors(options) {
267649
267766
  options.remoteCursorElements.delete(clientId);
267650
267767
  }
267651
267768
  });
267769
+ options.remoteCursorOverlay?.querySelectorAll(".presentation-editor__remote-selection[data-client-id]")?.forEach((selectionEl) => {
267770
+ const clientIdAttr = selectionEl.getAttribute("data-client-id");
267771
+ if (clientIdAttr === null)
267772
+ return;
267773
+ if (!visibleClientIds.has(Number(clientIdAttr)))
267774
+ selectionEl.remove();
267775
+ });
267652
267776
  }
267653
267777
  function renderRemoteCaret(options) {
267654
267778
  const caretLayout = options.computeCaretLayoutRect(options.cursor.head);
@@ -273541,7 +273665,7 @@ async function measureDrawingBlock(block, constraints) {
273541
273665
  const rotatedBounds = calculateRotatedBounds(geometry);
273542
273666
  const naturalWidth = Math.max(1, rotatedBounds.width);
273543
273667
  const naturalHeight = Math.max(1, rotatedBounds.height);
273544
- const isFloating = block.wrap?.type === "None";
273668
+ const isFloating = block.wrap?.type === "None" || block.anchor?.isAnchored === true;
273545
273669
  const maxWidth = fullWidthMax ?? (constraints.maxWidth > 0 && !isFloating ? constraints.maxWidth : naturalWidth);
273546
273670
  const maxHeight = block.anchor?.isAnchored && (typeof block.anchor?.offsetV === "number" && block.anchor.offsetV < 0 || typeof block.margin?.top === "number" && block.margin.top < 0) || !constraints.maxHeight || constraints.maxHeight <= 0 ? Infinity : constraints.maxHeight;
273547
273671
  const widthScale = maxWidth / naturalWidth;
@@ -288036,7 +288160,7 @@ var Node$13 = class Node$14 {
288036
288160
  if (!target || !target.classList)
288037
288161
  return;
288038
288162
  target.classList.add(STYLE_ISOLATION_CLASS);
288039
- }, _hoisted_1$23, _hoisted_2$18, _hoisted_3$14, _hoisted_4$10, _hoisted_5$9, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
288163
+ }, _hoisted_1$24, _hoisted_2$18, _hoisted_3$14, _hoisted_4$10, _hoisted_5$9, Mentions_default, popoverPluginKey, PopoverPlugin, Popover = class {
288040
288164
  constructor(view, editor) {
288041
288165
  this.editor = editor;
288042
288166
  this.view = view;
@@ -289102,28 +289226,7 @@ var Node$13 = class Node$14 {
289102
289226
  if (!allowedRanges?.length)
289103
289227
  return false;
289104
289228
  return allowedRanges.some((allowed) => range.from >= allowed.from && range.to <= allowed.to);
289105
- }, PermissionRanges, Protection, DOM_CLASS_NAMES, STRUCTURED_CONTENT_CHROME_LABEL_CLASS_NAMES, DATA_ATTRS, DATASET_KEYS, encodeLayoutStoryDataset = (story) => story.kind === "body" ? "body" : story.id ? `${story.kind}:${story.id}` : story.kind, decodeLayoutStoryDataset = (raw) => {
289106
- if (!raw)
289107
- return { kind: "unknown" };
289108
- if (raw === "body")
289109
- return { kind: "body" };
289110
- const idx = raw.indexOf(":");
289111
- const kind = idx === -1 ? raw : raw.slice(0, idx);
289112
- const id2 = idx === -1 ? undefined : raw.slice(idx + 1);
289113
- switch (kind) {
289114
- case "body":
289115
- case "header":
289116
- case "footer":
289117
- case "footnote":
289118
- case "endnote":
289119
- return id2 ? {
289120
- kind,
289121
- id: id2
289122
- } : { kind };
289123
- default:
289124
- return { kind: "unknown" };
289125
- }
289126
- }, DRAGGABLE_SELECTOR, VerticalNavigationPluginKey, createDefaultState = () => ({
289229
+ }, PermissionRanges, Protection, VerticalNavigationPluginKey, createDefaultState = () => ({
289127
289230
  goalX: null,
289128
289231
  goalClientX: null
289129
289232
  }), VerticalNavigation, STRONG_RTL_CHAR_RE$1, STRONG_LTR_CHAR_RE, isStrongRtl = (char) => STRONG_RTL_CHAR_RE$1.test(char), isStrongLtr = (char) => STRONG_LTR_CHAR_RE.test(char), hasMixedDirectionBoundary = (leftChar, rightChar) => isStrongRtl(leftChar) && isStrongLtr(rightChar) || isStrongLtr(leftChar) && isStrongRtl(rightChar), resolveCaretPoint = (doc$12, range) => {
@@ -289787,7 +289890,7 @@ var Node$13 = class Node$14 {
289787
289890
  </linearGradient>
289788
289891
  </defs>
289789
289892
  <path fill="url(#gradient)" d="M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"/>
289790
- </svg>`, _hoisted_1$22, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$8, AIWriter_default, isHighContrastMode, bold_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"/></svg>', italic_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"/></svg>', underline_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"/></svg>', list_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"/></svg>', list_circle_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path fill-rule="evenodd" d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 48 A48 48 0 1 0 64 144 A48 48 0 1 0 64 48 Z M64 68 A28 28 0 1 1 64 124 A28 28 0 1 1 64 68 Z M64 208 A48 48 0 1 0 64 304 A48 48 0 1 0 64 208 Z M64 228 A28 28 0 1 1 64 284 A28 28 0 1 1 64 228 Z M64 368 A48 48 0 1 0 64 464 A48 48 0 1 0 64 368 Z M64 388 A28 28 0 1 1 64 444 A28 28 0 1 1 64 388 Z"/></svg>
289893
+ </svg>`, _hoisted_1$23, _hoisted_2$17, _hoisted_3$13, _hoisted_4$9, _hoisted_5$8, AIWriter_default, isHighContrastMode, bold_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z"/></svg>', italic_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z"/></svg>', underline_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z"/></svg>', list_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"/></svg>', list_circle_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path fill-rule="evenodd" d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM64 48 A48 48 0 1 0 64 144 A48 48 0 1 0 64 48 Z M64 68 A28 28 0 1 1 64 124 A28 28 0 1 1 64 68 Z M64 208 A48 48 0 1 0 64 304 A48 48 0 1 0 64 208 Z M64 228 A28 28 0 1 1 64 284 A28 28 0 1 1 64 228 Z M64 368 A48 48 0 1 0 64 464 A48 48 0 1 0 64 368 Z M64 388 A28 28 0 1 1 64 444 A28 28 0 1 1 64 388 Z"/></svg>
289791
289894
  `, list_square_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc. (bullet shapes modified)--><path d="M192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 48 L112 48 L112 144 L16 144 Z M16 208 L112 208 L112 304 L16 304 Z M16 368 L112 368 L112 464 L16 464 Z"/></svg>
289792
289895
  `, list_ol_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"/></svg>', list_decimal_solid_default = `<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
289793
289896
  <g clip-path="url(#clip0_0_1)">
@@ -289854,8 +289957,8 @@ var Node$13 = class Node$14 {
289854
289957
  `, image_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6l96 0 32 0 208 0c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"/></svg>', link_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>', align_left_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"/></svg>', align_center_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z"/></svg>', align_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"/></svg>', align_justify_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z"/></svg>', indent_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"/></svg>', outdent_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM.2 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.2 268.6z"/></svg>', paint_roller_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64zM160 352c0-17.7 14.3-32 32-32l0-16c0-44.2 35.8-80 80-80l144 0c17.7 0 32-14.3 32-32l0-32 0-90.5c37.3 13.2 64 48.7 64 90.5l0 32c0 53-43 96-96 96l-144 0c-8.8 0-16 7.2-16 16l0 16c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-128z"/></svg>', text_slash_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L355.7 253.5 400.2 96 503 96 497 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C577.6 61.3 554.7 32 523.5 32L376.1 32l-.3 0L204.5 32c-22 0-41.2 15-46.6 36.4l-6.3 25.2L38.8 5.1zm168 131.7c.1-.3 .2-.7 .3-1L217 96l116.7 0L301.3 210.8l-94.5-74.1zM243.3 416L192 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 17.6-62.1L272.9 311 243.3 416z"/></svg>', rotate_left_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M48.5 224L40 224c-13.3 0-24-10.7-24-24L16 72c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2L98.6 96.6c87.6-86.5 228.7-86.2 315.8 1c87.5 87.5 87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3c-62.2-62.2-162.7-62.5-225.3-1L185 183c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8L48.5 224z"/></svg>', rotate_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M463.5 224l8.5 0c13.3 0 24-10.7 24-24l0-128c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2L413.4 96.6c-87.6-86.5-228.7-86.2-315.8 1c-87.5 87.5-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3c62.2-62.2 162.7-62.5 225.3-1L327 183c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l119.5 0z"/></svg>', calendar_check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z"/></svg>', calendar_xmark_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM305 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z"/></svg>', list_check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"/></svg>', user_edit_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l293.1 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7l40.3-40.3c-32.1-31-75.7-50.1-123.9-50.1l-91.4 0zm435.5-68.3c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM375.9 417c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L576.1 358.7l-71-71L375.9 417z"/></svg>', eye_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"/></svg>', file_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z"/></svg>', font_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z"/></svg>', file_half_dashed_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 0C28.7 0 0 28.7 0 64L0 320l384 0 0-160-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM0 416l64 0 0-64L0 352l0 64zm288 32l-80 0 0 64 80 0 0-64zm-112 0l-80 0 0 64 80 0 0-64zM64 448L0 448c0 35.3 28.7 64 64 64l0-64zm256 0l0 64c35.3 0 64-28.7 64-64l-64 0zm64-32l0-64-64 0 0 64 64 0z"/></svg>', comment_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z"/></svg>', circle_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"/></svg>', check_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>', xmark_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"/></svg>', up_right_from_square_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"/></svg>', ellipsis_vertical_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"/></svg>', caret_up_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M182.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l256 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"/></svg>', caret_down_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"/></svg>', ruler_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M177.9 494.1c-18.7 18.7-49.1 18.7-67.9 0L17.9 401.9c-18.7-18.7-18.7-49.1 0-67.9l50.7-50.7 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 41.4-41.4 48 48c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-48-48 50.7-50.7c18.7-18.7 49.1-18.7 67.9 0l92.1 92.1c18.7 18.7 18.7 49.1 0 67.9L177.9 494.1z"/></svg>', paintbrush_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M339.3 367.1c27.3-3.9 51.9-19.4 67.2-42.9L568.2 74.1c12.6-19.5 9.4-45.3-7.6-61.2S517.7-4.4 499.1 9.6L262.4 187.2c-24 18-38.2 46.1-38.4 76.1L339.3 367.1zm-19.6 25.4l-116-104.4C143.9 290.3 96 339.6 96 400c0 3.9 .2 7.8 .6 11.6C98.4 429.1 86.4 448 68.8 448L64 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112c0-2.5-.1-5-.2-7.5z"/></svg>', highlighter_icon_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z"/></svg>
289855
289958
  `, magic_wand_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.7-53.3L160 80l-53.3-26.7L80 0 53.3 53.3 0 80l53.3 26.7L80 160zm352 128l-26.7 53.3L352 368l53.3 26.7L432 448l26.7-53.3L512 368l-53.3-26.7L432 288zm70.6-193.8L417.8 9.4C411.5 3.1 403.3 0 395.2 0c-8.2 0-16.4 3.1-22.6 9.4L9.4 372.5c-12.5 12.5-12.5 32.8 0 45.3l84.9 84.9c6.3 6.3 14.4 9.4 22.6 9.4 8.2 0 16.4-3.1 22.6-9.4l363.1-363.2c12.5-12.5 12.5-32.8 0-45.2zM359.5 203.5l-50.9-50.9 86.6-86.6 50.9 50.9-86.6 86.6z"/></svg>', table_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M64 256l0-96 160 0 0 96L64 256zm0 64l160 0 0 96L64 416l0-96zm224 96l0-96 160 0 0 96-160 0zM448 256l-160 0 0-96 160 0 0 96zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"/></svg>', table_columns_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 160 0 0-256L64 160zm384 0l-160 0 0 256 160 0 0-256z"/></svg>', arrows_left_right_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"/></svg>', arrows_to_dot_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9s16.6-19.8 29.6-19.8l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9s-16.6 19.8-29.6 19.8l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9s19.8 16.6 19.8 29.6l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>', plus_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z"/></svg>', trash_can_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z"/></svg>', wrench_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M352 320c88.4 0 160-71.6 160-160c0-15.3-2.2-30.1-6.2-44.2c-3.1-10.8-16.4-13.2-24.3-5.3l-76.8 76.8c-3 3-7.1 4.7-11.3 4.7L336 192c-8.8 0-16-7.2-16-16l0-57.4c0-4.2 1.7-8.3 4.7-11.3l76.8-76.8c7.9-7.9 5.4-21.2-5.3-24.3C382.1 2.2 367.3 0 352 0C263.6 0 192 71.6 192 160c0 19.1 3.4 37.5 9.5 54.5L19.9 396.1C7.2 408.8 0 426.1 0 444.1C0 481.6 30.4 512 67.9 512c18 0 35.3-7.2 48-19.9L297.5 310.5c17 6.2 35.4 9.5 54.5 9.5zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"/></svg>', border_none_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M32 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm96-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM320 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-320a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM224 480a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-448a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0 256a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 416a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm0-384a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM416 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM32 288a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm192 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM416 192a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM32 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm192 64a32 32 0 1 1 0-64 32 32 0 1 1 0 64z"/></svg>', up_down_default = `<svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" viewBox="3 4 18 16"><path stroke="#000000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 10V5m0 0L4 7m2-2 2 2m-2 7v5m0 0 2-2m-2 2-2-2m8-10h8m0 5h-8m0 5h8"></path></svg>
289856
289959
  `, magnifying_glass_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/></svg>
289857
- `, scissors_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M278.1 256L444.5 89.6c4.7-4.7 4.7-12.3 0-17-32.8-32.8-86-32.8-118.8 0L210.2 188.1l-24.9-24.9c4.3-10.9 6.7-22.8 6.7-35.3 0-53-43-96-96-96S0 75 0 128s43 96 96 96c4.5 0 9-.3 13.4-.9L142.3 256l-32.9 32.9c-4.4-.6-8.8-.9-13.4-.9-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-12.5-2.4-24.3-6.7-35.3l24.9-24.9L325.7 439.4c32.8 32.8 86 32.8 118.8 0 4.7-4.7 4.7-12.3 0-17L278.1 256zM96 160c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm0 256c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"/></svg>', copy_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 448v40c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V120c0-13.3 10.7-24 24-24h72v296c0 30.9 25.1 56 56 56h168zm0-344V0H152c-13.3 0-24 10.7-24 24v368c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V128H344c-13.2 0-24-10.8-24-24zm121-31L375 7A24 24 0 0 0 358.1 0H352v96h96v-6.1a24 24 0 0 0 -7-17z"/></svg>', paste_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 184c0-30.9 25.1-56 56-56h136V56c0-13.3-10.7-24-24-24h-80.6C204.3 12.9 183.6 0 160 0s-44.3 12.9-55.4 32H24C10.7 32 0 42.7 0 56v336c0 13.3 10.7 24 24 24h104V184zm32-144c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm184 248h104v200c0 13.3-10.7 24-24 24H184c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.1V256h-96v-96h6.1a24 24 0 0 1 17 7l65.9 65.9a24 24 0 0 1 7 17z"/></svg>', toolbarIcons, _hoisted_1$21, AlignmentButtons_default, _hoisted_1$20, StyleButtonsList_default, bulletStyleButtons, numberedStyleButtons, _hoisted_1$19, _hoisted_2$16, _hoisted_3$12, _hoisted_4$8, _hoisted_5$7, _hoisted_6$5, DocumentMode_default, _hoisted_1$18, _hoisted_2$15, LinkedStyle_default, _hoisted_1$17, _hoisted_2$14, _hoisted_3$11, _hoisted_4$7, _hoisted_5$6, _hoisted_6$4, _hoisted_7$3, _hoisted_8$1, _hoisted_9$1, _hoisted_10$1, _hoisted_11$1, _hoisted_12$1, _hoisted_13$1, _hoisted_14$1, LinkInput_default, _hoisted_1$16, _hoisted_2$13, _hoisted_3$10, ROW_SIZE$1 = 7, IconGridRow_default, droplet_slash_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"/></svg>
289858
- `, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, IconGrid_default, closeDropdown$1 = (dropdown) => {
289960
+ `, scissors_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M278.1 256L444.5 89.6c4.7-4.7 4.7-12.3 0-17-32.8-32.8-86-32.8-118.8 0L210.2 188.1l-24.9-24.9c4.3-10.9 6.7-22.8 6.7-35.3 0-53-43-96-96-96S0 75 0 128s43 96 96 96c4.5 0 9-.3 13.4-.9L142.3 256l-32.9 32.9c-4.4-.6-8.8-.9-13.4-.9-53 0-96 43-96 96s43 96 96 96 96-43 96-96c0-12.5-2.4-24.3-6.7-35.3l24.9-24.9L325.7 439.4c32.8 32.8 86 32.8 118.8 0 4.7-4.7 4.7-12.3 0-17L278.1 256zM96 160c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm0 256c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"/></svg>', copy_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 448v40c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V120c0-13.3 10.7-24 24-24h72v296c0 30.9 25.1 56 56 56h168zm0-344V0H152c-13.3 0-24 10.7-24 24v368c0 13.3 10.7 24 24 24h272c13.3 0 24-10.7 24-24V128H344c-13.2 0-24-10.8-24-24zm121-31L375 7A24 24 0 0 0 358.1 0H352v96h96v-6.1a24 24 0 0 0 -7-17z"/></svg>', paste_solid_default = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M128 184c0-30.9 25.1-56 56-56h136V56c0-13.3-10.7-24-24-24h-80.6C204.3 12.9 183.6 0 160 0s-44.3 12.9-55.4 32H24C10.7 32 0 42.7 0 56v336c0 13.3 10.7 24 24 24h104V184zm32-144c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm184 248h104v200c0 13.3-10.7 24-24 24H184c-13.3 0-24-10.7-24-24V184c0-13.3 10.7-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.1V256h-96v-96h6.1a24 24 0 0 1 17 7l65.9 65.9a24 24 0 0 1 7 17z"/></svg>', toolbarIcons, _hoisted_1$22, AlignmentButtons_default, _hoisted_1$21, StyleButtonsList_default, bulletStyleButtons, numberedStyleButtons, _hoisted_1$20, _hoisted_2$16, _hoisted_3$12, _hoisted_4$8, _hoisted_5$7, _hoisted_6$5, DocumentMode_default, _hoisted_1$19, _hoisted_2$15, LinkedStyle_default, _hoisted_1$18, _hoisted_2$14, _hoisted_3$11, _hoisted_4$7, _hoisted_5$6, _hoisted_6$4, _hoisted_7$3, _hoisted_8$1, _hoisted_9$1, _hoisted_10$1, _hoisted_11$1, _hoisted_12$1, _hoisted_13$1, _hoisted_14$1, LinkInput_default, _hoisted_1$17, _hoisted_2$13, _hoisted_3$10, ROW_SIZE$1 = 7, IconGridRow_default, droplet_slash_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M320 512c53.2 0 101.4-21.6 136.1-56.6l-298.3-235C140 257.1 128 292.3 128 320c0 106 86 192 192 192zM505.2 370.7c4.4-16.2 6.8-33.1 6.8-50.7c0-91.2-130.2-262.3-166.6-308.3C339.4 4.2 330.5 0 320.9 0l-1.8 0c-9.6 0-18.5 4.2-24.5 11.7C277.8 33 240.7 81.3 205.8 136L38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L505.2 370.7zM224 336c0 44.2 35.8 80 80 80c8.8 0 16 7.2 16 16s-7.2 16-16 16c-61.9 0-112-50.1-112-112c0-8.8 7.2-16 16-16s16 7.2 16 16z"/></svg>
289961
+ `, _hoisted_1$16, _hoisted_2$12, _hoisted_3$9, IconGrid_default, closeDropdown$1 = (dropdown) => {
289859
289962
  dropdown.expand.value = false;
289860
289963
  }, makeColorOption = (color2, label = null) => {
289861
289964
  return {
@@ -289886,8 +289989,8 @@ var Node$13 = class Node$14 {
289886
289989
  })]);
289887
289990
  }, icons, getAvailableColorOptions = () => {
289888
289991
  return icons.flat().map((item) => item.value);
289889
- }, _hoisted_1$14, _hoisted_2$11, ROW_SIZE = 5, TableGrid_default, _hoisted_1$13, _hoisted_2$10, _hoisted_3$8, _hoisted_4$6, _hoisted_5$5, TableActions_default, check_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
289890
- `, _hoisted_1$12, _hoisted_2$9, _hoisted_3$7, SearchInput_default, TOOLBAR_FONTS, TOOLBAR_FONT_SIZES, RESPONSIVE_BREAKPOINTS, HEADLESS_ITEM_MAP, TABLE_ACTION_COMMAND_MAP, TABLE_ACTION_COMMAND_IDS, HEADLESS_TOOLBAR_COMMANDS, NON_HEADLESS_EXECUTE_ITEM_NAMES, HEADLESS_EXECUTE_ITEMS, closeDropdown = (dropdown) => {
289992
+ }, _hoisted_1$15, _hoisted_2$11, ROW_SIZE = 5, TableGrid_default, _hoisted_1$14, _hoisted_2$10, _hoisted_3$8, _hoisted_4$6, _hoisted_5$5, TableActions_default, check_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"/></svg>
289993
+ `, _hoisted_1$13, _hoisted_2$9, _hoisted_3$7, SearchInput_default, TOOLBAR_FONTS, TOOLBAR_FONT_SIZES, RESPONSIVE_BREAKPOINTS, HEADLESS_ITEM_MAP, TABLE_ACTION_COMMAND_MAP, TABLE_ACTION_COMMAND_IDS, HEADLESS_TOOLBAR_COMMANDS, NON_HEADLESS_EXECUTE_ITEM_NAMES, HEADLESS_EXECUTE_ITEMS, closeDropdown = (dropdown) => {
289891
289994
  dropdown.expand.value = false;
289892
289995
  }, makeDefaultItems = ({ superToolbar, toolbarIcons: toolbarIcons$1, toolbarTexts: toolbarTexts$1, toolbarFonts, hideButtons, availableWidth, role, isDev = false } = {}) => {
289893
289996
  const bold = useToolbarItem({
@@ -290951,7 +291054,7 @@ var Node$13 = class Node$14 {
290951
291054
  defaultItems: visibleItems,
290952
291055
  overflowItems: overflowItems.filter((item) => item.type !== "separator")
290953
291056
  };
290954
- }, _hoisted_1$11, _hoisted_2$8, ToolbarButtonIcon_default, _hoisted_1$10, _hoisted_2$7, _hoisted_3$6, _hoisted_4$5, _hoisted_5$4, _hoisted_6$3, _hoisted_7$2, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, _hoisted_13, _hoisted_14, ToolbarButton_default, _hoisted_1$9, ToolbarSeparator_default, _hoisted_1$8, _hoisted_2$6, _hoisted_3$5, OverflowMenu_default, _hoisted_1$7, _hoisted_2$5, _hoisted_3$4, _hoisted_4$4, TRIGGER_FOCUS_SELECTOR = 'button, [href], input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])', ToolbarDropdown_default, normalize4 = (value) => String(value ?? "").trim().toLowerCase(), findPrefixMatchIndex = (query, labels) => {
291057
+ }, _hoisted_1$12, _hoisted_2$8, ToolbarButtonIcon_default, _hoisted_1$11, _hoisted_2$7, _hoisted_3$6, _hoisted_4$5, _hoisted_5$4, _hoisted_6$3, _hoisted_7$2, _hoisted_8, _hoisted_9, _hoisted_10, _hoisted_11, _hoisted_12, _hoisted_13, _hoisted_14, ToolbarButton_default, _hoisted_1$10, ToolbarSeparator_default, _hoisted_1$9, _hoisted_2$6, _hoisted_3$5, OverflowMenu_default, _hoisted_1$8, _hoisted_2$5, _hoisted_3$4, _hoisted_4$4, TRIGGER_FOCUS_SELECTOR = 'button, [href], input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])', ToolbarDropdown_default, normalize4 = (value) => String(value ?? "").trim().toLowerCase(), findPrefixMatchIndex = (query, labels) => {
290955
291058
  const q$1 = normalize4(query);
290956
291059
  if (!q$1)
290957
291060
  return -1;
@@ -290983,7 +291086,7 @@ var Node$13 = class Node$14 {
290983
291086
  return result;
290984
291087
  }, normalizeCustomFontFamily = (value) => {
290985
291088
  return stripWrappingQuotes((String(value ?? "").split(",")[0] ?? "").replace(/[\u0000-\u001f\u007f]/g, "")).replace(/\s+/g, " ").trim();
290986
- }, _hoisted_1$6, _hoisted_2$4, _hoisted_3$3, _hoisted_4$3, _hoisted_5$3, _hoisted_6$2, _hoisted_7$1, FontFamilyCombobox_default, SdTooltip_default, _hoisted_1$5, _hoisted_2$3, _hoisted_3$2, _hoisted_4$2, _hoisted_5$2, _hoisted_6$1, TOOLBAR_TOOLTIP_AUTO_HIDE_MS = 3000, ButtonGroup_default, DEFAULT_UI_FONT_FAMILY = "Arial, Helvetica, sans-serif", Toolbar_default, toolbarTexts, getParagraphFontFamilyFromProperties = (paragraphProps, convertedXml = {}) => {
291089
+ }, _hoisted_1$7, _hoisted_2$4, _hoisted_3$3, _hoisted_4$3, _hoisted_5$3, _hoisted_6$2, _hoisted_7$1, FontFamilyCombobox_default, SdTooltip_default, _hoisted_1$6, _hoisted_2$3, _hoisted_3$2, _hoisted_4$2, _hoisted_5$2, _hoisted_6$1, TOOLBAR_TOOLTIP_AUTO_HIDE_MS = 3000, ButtonGroup_default, DEFAULT_UI_FONT_FAMILY = "Arial, Helvetica, sans-serif", Toolbar_default, toolbarTexts, getParagraphFontFamilyFromProperties = (paragraphProps, convertedXml = {}) => {
290987
291090
  const fontFamilyProps = paragraphProps?.runProperties?.fontFamily;
290988
291091
  if (!fontFamilyProps)
290989
291092
  return null;
@@ -301279,7 +301382,7 @@ menclose::after {
301279
301382
  container.style.width = `${Math.max(0, data.contentWidth)}px`;
301280
301383
  else
301281
301384
  container.style.width = `calc(100% - ${marginLeft + marginRight}px)`;
301282
- container.style.pointerEvents = "none";
301385
+ container.style.pointerEvents = "auto";
301283
301386
  container.style.height = `${effectiveHeight}px`;
301284
301387
  container.style.top = `${Math.max(0, effectiveOffset)}px`;
301285
301388
  container.style.zIndex = "1";
@@ -303327,7 +303430,9 @@ menclose::after {
303327
303430
  vector.geometry.rotation ?? 0,
303328
303431
  vector.geometry.flipH ? 1 : 0,
303329
303432
  vector.geometry.flipV ? 1 : 0,
303330
- drawingTextVersion(vector)
303433
+ drawingTextVersion(vector),
303434
+ block.anchor?.offsetH ?? "",
303435
+ block.anchor?.offsetV ?? ""
303331
303436
  ].join("|");
303332
303437
  }
303333
303438
  if (block.drawingKind === "shapeGroup") {
@@ -303647,7 +303752,10 @@ menclose::after {
303647
303752
  return run2.text?.length ?? 0;
303648
303753
  }, isVisualOnlyRun = (run2) => {
303649
303754
  return getRunDataAttrs(run2)?.[FOOTNOTE_MARKER_DATA_ATTR$1] === "true";
303650
- }, SPACE_CHARS$1, isTabRun$1 = (run2) => run2?.kind === "tab", isWordChar$3 = (char) => {
303755
+ }, SPACE_CHARS$1, isTabRun$1 = (run2) => run2?.kind === "tab", faceOf$1 = (run2) => ({
303756
+ weight: run2.bold ? "700" : "400",
303757
+ style: run2.italic ? "italic" : "normal"
303758
+ }), isWordChar$3 = (char) => {
303651
303759
  if (!char)
303652
303760
  return false;
303653
303761
  const code6 = char.charCodeAt(0);
@@ -307180,6 +307288,7 @@ menclose::after {
307180
307288
  #pendingMarginClick = null;
307181
307289
  #pendingTocLinkNav = null;
307182
307290
  #lastSelectedImageBlockId = null;
307291
+ #lastSelectedTextboxBlockId = null;
307183
307292
  #suppressFocusInFromDraggable = false;
307184
307293
  #pendingStructuredContentLabelGesture = null;
307185
307294
  #debugLastPointer = null;
@@ -307889,6 +307998,37 @@ menclose::after {
307889
307998
  this.#callbacks.updateSelectionDebugHud?.();
307890
307999
  if (!suppressFocusForDrag)
307891
308000
  event.preventDefault();
308001
+ const textboxBorderSelection = this.#resolveTextboxBorderSelection({
308002
+ event,
308003
+ editor,
308004
+ doc: doc$12,
308005
+ hitPos: hit?.pos ?? null,
308006
+ rawHitPos: rawHit?.pos ?? null,
308007
+ pageIndex: normalizedPoint.pageIndex
308008
+ });
308009
+ if (textboxBorderSelection) {
308010
+ const { editor: selectionEditor, fragmentEl, shapeContainerPos, blockId } = textboxBorderSelection;
308011
+ try {
308012
+ const tr = selectionEditor.state.tr.setSelection(NodeSelection.create(doc$12, shapeContainerPos));
308013
+ selectionEditor.view?.dispatch(tr);
308014
+ if (this.#lastSelectedImageBlockId) {
308015
+ this.#callbacks.emit?.("imageDeselected", { blockId: this.#lastSelectedImageBlockId });
308016
+ this.#lastSelectedImageBlockId = null;
308017
+ }
308018
+ if (this.#lastSelectedTextboxBlockId && this.#lastSelectedTextboxBlockId !== blockId)
308019
+ this.#callbacks.emit?.("textboxDeselected", { blockId: this.#lastSelectedTextboxBlockId });
308020
+ this.#callbacks.emit?.("textboxSelected", {
308021
+ element: fragmentEl,
308022
+ blockId
308023
+ });
308024
+ this.#lastSelectedTextboxBlockId = blockId;
308025
+ } catch (error48) {
308026
+ if (process$1.env.NODE_ENV === "development")
308027
+ console.warn("[EditorInputManager] Failed to create NodeSelection for textbox container:", error48);
308028
+ }
308029
+ this.#callbacks.focusEditorAfterImageSelection?.();
308030
+ return;
308031
+ }
307892
308032
  if (!rawHit) {
307893
308033
  this.#focusEditor();
307894
308034
  return;
@@ -307920,6 +308060,10 @@ menclose::after {
307920
308060
  this.#callbacks.emit?.("imageDeselected", { blockId: this.#lastSelectedImageBlockId });
307921
308061
  this.#lastSelectedImageBlockId = null;
307922
308062
  }
308063
+ if (this.#lastSelectedTextboxBlockId) {
308064
+ this.#callbacks.emit?.("textboxDeselected", { blockId: this.#lastSelectedTextboxBlockId });
308065
+ this.#lastSelectedTextboxBlockId = null;
308066
+ }
307923
308067
  if (event.shiftKey && editor.state.selection.$anchor) {
307924
308068
  this.#handleShiftClick(event, hit.pos);
307925
308069
  return;
@@ -308569,6 +308713,10 @@ menclose::after {
308569
308713
  const newSelectionId = `inline-${clampedImgPos}`;
308570
308714
  if (this.#lastSelectedImageBlockId && this.#lastSelectedImageBlockId !== newSelectionId)
308571
308715
  this.#callbacks.emit?.("imageDeselected", { blockId: this.#lastSelectedImageBlockId });
308716
+ if (this.#lastSelectedTextboxBlockId && this.#lastSelectedTextboxBlockId !== newSelectionId) {
308717
+ this.#callbacks.emit?.("textboxDeselected", { blockId: this.#lastSelectedTextboxBlockId });
308718
+ this.#lastSelectedTextboxBlockId = null;
308719
+ }
308572
308720
  const editor = this.#deps?.getEditor();
308573
308721
  try {
308574
308722
  const tr = editor.state.tr.setSelection(NodeSelection.create(doc$12, clampedImgPos));
@@ -308601,6 +308749,10 @@ menclose::after {
308601
308749
  editor.view?.dispatch(tr);
308602
308750
  if (this.#lastSelectedImageBlockId && this.#lastSelectedImageBlockId !== fragmentHit.fragment.blockId)
308603
308751
  this.#callbacks.emit?.("imageDeselected", { blockId: this.#lastSelectedImageBlockId });
308752
+ if (this.#lastSelectedTextboxBlockId) {
308753
+ this.#callbacks.emit?.("textboxDeselected", { blockId: this.#lastSelectedTextboxBlockId });
308754
+ this.#lastSelectedTextboxBlockId = null;
308755
+ }
308604
308756
  if (fragmentHit.fragment.kind === "image") {
308605
308757
  const targetElement = fragmentHit.fragment.pmStart != null ? this.#callbacks.resolveImageFragmentElementByPmStart?.(fragmentHit.fragment.pmStart) ?? null : null;
308606
308758
  if (targetElement) {
@@ -308619,6 +308771,90 @@ menclose::after {
308619
308771
  this.#callbacks.focusEditorAfterImageSelection?.();
308620
308772
  return true;
308621
308773
  }
308774
+ #resolveTextboxBorderSelection({ event, editor, doc: doc$12, hitPos, rawHitPos, pageIndex }) {
308775
+ if (!doc$12)
308776
+ return null;
308777
+ const fragmentEl = this.#resolveTextboxFragmentElement(event.target, event.clientX, event.clientY, pageIndex);
308778
+ if (!fragmentEl)
308779
+ return null;
308780
+ const BORDER_HIT_MARGIN = 6;
308781
+ const rect = fragmentEl.getBoundingClientRect();
308782
+ if (!(event.clientX - rect.left <= BORDER_HIT_MARGIN || rect.right - event.clientX <= BORDER_HIT_MARGIN || event.clientY - rect.top <= BORDER_HIT_MARGIN || rect.bottom - event.clientY <= BORDER_HIT_MARGIN))
308783
+ return null;
308784
+ const shapeContainerPos = this.#resolveShapeContainerPos(doc$12, fragmentEl, [hitPos, rawHitPos]);
308785
+ if (shapeContainerPos == null)
308786
+ return null;
308787
+ return {
308788
+ editor,
308789
+ fragmentEl,
308790
+ shapeContainerPos,
308791
+ blockId: fragmentEl.dataset.blockId ?? null
308792
+ };
308793
+ }
308794
+ #resolveTextboxFragmentElement(target, clientX, clientY, pageIndex) {
308795
+ const candidates = [];
308796
+ const seen = /* @__PURE__ */ new Set;
308797
+ const addCandidate = (element3) => {
308798
+ if (!element3 || seen.has(element3))
308799
+ return;
308800
+ seen.add(element3);
308801
+ candidates.push(element3);
308802
+ };
308803
+ const resolveCandidate = (element3) => {
308804
+ if (!(element3 instanceof HTMLElement))
308805
+ return null;
308806
+ const pageLevelFragment = element3.closest(".superdoc-drawing-fragment");
308807
+ if (pageLevelFragment)
308808
+ return pageLevelFragment;
308809
+ const tableDrawing = element3.closest(".superdoc-table-drawing");
308810
+ if (tableDrawing?.parentElement instanceof HTMLElement && tableDrawing.parentElement.dataset.blockId)
308811
+ return tableDrawing.parentElement;
308812
+ return element3.closest("[data-block-id]") ?? null;
308813
+ };
308814
+ addCandidate(resolveCandidate(target));
308815
+ const ownerDocument = target instanceof Element ? target.ownerDocument : document;
308816
+ if (typeof ownerDocument.elementsFromPoint === "function")
308817
+ for (const element3 of ownerDocument.elementsFromPoint(clientX, clientY))
308818
+ addCandidate(resolveCandidate(element3));
308819
+ if (Number.isFinite(pageIndex)) {
308820
+ const pageCandidates = this.#deps?.getViewportHost()?.querySelector(`[data-page-index="${pageIndex}"]`)?.querySelectorAll("[data-block-id]");
308821
+ if (pageCandidates)
308822
+ for (const candidate of Array.from(pageCandidates)) {
308823
+ const rect = candidate.getBoundingClientRect();
308824
+ if (clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom)
308825
+ addCandidate(candidate);
308826
+ }
308827
+ }
308828
+ for (const candidate of candidates)
308829
+ if (candidate.classList.contains("superdoc-textbox-shape") || candidate.querySelector(".superdoc-textbox-shape") != null)
308830
+ return candidate;
308831
+ return null;
308832
+ }
308833
+ #resolveShapeContainerPos(doc$12, fragmentEl, candidatePositions) {
308834
+ const fragmentPmStart = fragmentEl.querySelector("[data-pm-start]")?.dataset.pmStart;
308835
+ const positions = [...candidatePositions];
308836
+ if (fragmentPmStart != null)
308837
+ positions.push(Number(fragmentPmStart));
308838
+ for (const pos of positions) {
308839
+ if (!Number.isFinite(pos))
308840
+ continue;
308841
+ const resolvedPos = this.#findAncestorShapeContainerPos(doc$12, Number(pos));
308842
+ if (resolvedPos != null)
308843
+ return resolvedPos;
308844
+ }
308845
+ return null;
308846
+ }
308847
+ #findAncestorShapeContainerPos(doc$12, pos) {
308848
+ try {
308849
+ const $pos = doc$12.resolve(pos);
308850
+ for (let depth = $pos.depth;depth >= 0; depth -= 1)
308851
+ if ($pos.node(depth).type.name === "shapeContainer")
308852
+ return $pos.before(depth);
308853
+ } catch {
308854
+ return null;
308855
+ }
308856
+ return null;
308857
+ }
308622
308858
  #handleShiftClick(event, headPos) {
308623
308859
  const editor = this.#deps?.getActiveEditor() ?? this.#deps?.getEditor();
308624
308860
  if (!editor)
@@ -312690,19 +312926,20 @@ menclose::after {
312690
312926
  return;
312691
312927
  console.log(...args$1);
312692
312928
  }, HEADER_FOOTER_INIT_BUDGET_MS = 200, MAX_ZOOM_WARNING_THRESHOLD = 10, MAX_SELECTION_RECTS_PER_USER = 100, SEMANTIC_RESIZE_DEBOUNCE_MS = 120, MIN_SEMANTIC_CONTENT_WIDTH_PX = 1, GLOBAL_PERFORMANCE, PresentationEditor, ICONS, TEXTS, tableActionsOptions, TRACKED_MARK_NAMES;
312693
- var init_src_DX3B_Otx_es = __esm(() => {
312929
+ var init_src_bGJhSgx__es = __esm(() => {
312694
312930
  init_rolldown_runtime_Bg48TavK_es();
312695
- init_SuperConverter_DVjSc_AY_es();
312931
+ init_SuperConverter_Du0apG1R_es();
312696
312932
  init_jszip_C49i9kUs_es();
312697
312933
  init_xml_js_CqGKpaft_es();
312698
312934
  init_uuid_B2wVPhPi_es();
312699
- init_create_headless_toolbar_DYtdH4mX_es();
312935
+ init_create_headless_toolbar_BNcguDpP_es();
312700
312936
  init_constants_D9qj59G2_es();
312701
312937
  init_unified_BDuVPlMu_es();
312702
312938
  init_remark_gfm_BUJjZJLy_es();
312703
312939
  init_remark_stringify_BZvKOjUX_es();
312704
312940
  init_DocxZipper_BzS208BW_es();
312705
312941
  init__plugin_vue_export_helper_HmhZBO0u_es();
312942
+ init_ui_BMYSpkne_es();
312706
312943
  init_eventemitter3_UwU_CLPU_es();
312707
312944
  init_errors_C_DoKMoN_es();
312708
312945
  init_blank_docx_CDDHd6CH_es();
@@ -336885,7 +337122,7 @@ function print() { __p += __j.call(arguments, '') }
336885
337122
  } });
336886
337123
  tippy.setDefaultProps({ render });
336887
337124
  tippy_esm_default = tippy;
336888
- _hoisted_1$23 = ["onClick", "onMouseenter"];
337125
+ _hoisted_1$24 = ["onClick", "onMouseenter"];
336889
337126
  _hoisted_2$18 = { key: 0 };
336890
337127
  _hoisted_3$14 = { key: 0 };
336891
337128
  _hoisted_4$10 = { key: 1 };
@@ -336955,7 +337192,7 @@ function print() { __p += __j.call(arguments, '') }
336955
337192
  onMouseleave: _cache[0] || (_cache[0] = ($event) => activeUserIndex.value = null),
336956
337193
  key: user.email,
336957
337194
  class: exports_vue.normalizeClass(["user-row", { "sd-selected": activeUserIndex.value === index2 }])
336958
- }, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$18, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$14, exports_vue.toDisplayString(user.name), 1)) : exports_vue.createCommentVNode("", true), user.name && user.email ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$10, " (" + exports_vue.toDisplayString(user.email) + ")", 1)) : exports_vue.createCommentVNode("", true)])) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$9, [exports_vue.createElementVNode("span", null, exports_vue.toDisplayString(user.email), 1)]))], 42, _hoisted_1$23);
337195
+ }, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$18, [user.name ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_3$14, exports_vue.toDisplayString(user.name), 1)) : exports_vue.createCommentVNode("", true), user.name && user.email ? (exports_vue.openBlock(), exports_vue.createElementBlock("span", _hoisted_4$10, " (" + exports_vue.toDisplayString(user.email) + ")", 1)) : exports_vue.createCommentVNode("", true)])) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$9, [exports_vue.createElementVNode("span", null, exports_vue.toDisplayString(user.email), 1)]))], 42, _hoisted_1$24);
336959
337196
  }), 128))], 544);
336960
337197
  };
336961
337198
  }
@@ -337876,66 +338113,6 @@ function print() { __p += __j.call(arguments, '') }
337876
338113
  };
337877
338114
  }
337878
338115
  });
337879
- DOM_CLASS_NAMES = {
337880
- PAGE: "superdoc-page",
337881
- FRAGMENT: "superdoc-fragment",
337882
- LINE: "superdoc-line",
337883
- INLINE_SDT_WRAPPER: "superdoc-structured-content-inline",
337884
- INLINE_SDT_LABEL: "superdoc-structured-content-inline__label",
337885
- BLOCK_SDT: "superdoc-structured-content-block",
337886
- BLOCK_SDT_LABEL: "superdoc-structured-content__label",
337887
- TABLE_FRAGMENT: "superdoc-table-fragment",
337888
- DOCUMENT_SECTION: "superdoc-document-section",
337889
- SDT_GROUP_HOVER: "sdt-group-hover",
337890
- TOC_ENTRY: "superdoc-toc-entry",
337891
- TOC_GROUP_HOVER: "toc-group-hover",
337892
- IMAGE_FRAGMENT: "superdoc-image-fragment",
337893
- INLINE_IMAGE: "superdoc-inline-image",
337894
- LIST_MARKER: "superdoc-list-marker",
337895
- INLINE_IMAGE_CLIP_WRAPPER: "superdoc-inline-image-clip-wrapper",
337896
- ANNOTATION: "annotation",
337897
- ANNOTATION_CONTENT: "annotation-content",
337898
- ANNOTATION_CARET_ANCHOR: "annotation-caret-anchor"
337899
- };
337900
- STRUCTURED_CONTENT_CHROME_LABEL_CLASS_NAMES = [DOM_CLASS_NAMES.INLINE_SDT_LABEL, DOM_CLASS_NAMES.BLOCK_SDT_LABEL];
337901
- DATA_ATTRS = {
337902
- PM_START: "data-pm-start",
337903
- PM_END: "data-pm-end",
337904
- LAYOUT_EPOCH: "data-layout-epoch",
337905
- TABLE_BOUNDARIES: "data-table-boundaries",
337906
- SDT_ID: "data-sdt-id",
337907
- SDT_TYPE: "data-sdt-type",
337908
- FIELD_ID: "data-field-id",
337909
- FIELD_TYPE: "data-field-type",
337910
- DRAGGABLE: "data-draggable",
337911
- DISPLAY_LABEL: "data-display-label",
337912
- VARIANT: "data-variant",
337913
- TYPE: "data-type",
337914
- LAYOUT_BOUNDARY_SCHEMA: "data-layout-boundary-schema",
337915
- LAYOUT_FRAGMENT_ID: "data-layout-fragment-id",
337916
- LAYOUT_STORY: "data-layout-story",
337917
- LAYOUT_BLOCK_REF: "data-layout-block-ref"
337918
- };
337919
- DATASET_KEYS = {
337920
- PM_START: "pmStart",
337921
- PM_END: "pmEnd",
337922
- LAYOUT_EPOCH: "layoutEpoch",
337923
- TABLE_BOUNDARIES: "tableBoundaries",
337924
- SDT_ID: "sdtId",
337925
- SDT_TYPE: "sdtType",
337926
- FIELD_ID: "fieldId",
337927
- FIELD_TYPE: "fieldType",
337928
- DRAGGABLE: "draggable",
337929
- DISPLAY_LABEL: "displayLabel",
337930
- VARIANT: "variant",
337931
- TYPE: "type",
337932
- LAYOUT_BOUNDARY_SCHEMA: "layoutBoundarySchema",
337933
- LAYOUT_FRAGMENT_ID: "layoutFragmentId",
337934
- LAYOUT_STORY: "layoutStory",
337935
- LAYOUT_BLOCK_REF: "layoutBlockRef"
337936
- };
337937
- `${DOM_CLASS_NAMES.BLOCK_SDT}${DATA_ATTRS.SDT_ID}`;
337938
- DRAGGABLE_SELECTOR = `[${DATA_ATTRS.DRAGGABLE}="true"]`;
337939
338116
  VerticalNavigationPluginKey = new PluginKey("verticalNavigation");
337940
338117
  VerticalNavigation = Extension.create({
337941
338118
  name: "verticalNavigation",
@@ -338246,7 +338423,7 @@ function print() { __p += __j.call(arguments, '') }
338246
338423
  })
338247
338424
  }
338248
338425
  ] };
338249
- _hoisted_1$22 = { class: "ai-user-input-field" };
338426
+ _hoisted_1$23 = { class: "ai-user-input-field" };
338250
338427
  _hoisted_2$17 = ["innerHTML"];
338251
338428
  _hoisted_3$13 = ["placeholder"];
338252
338429
  _hoisted_4$9 = { class: "ai-loader" };
@@ -338477,7 +338654,7 @@ function print() { __p += __j.call(arguments, '') }
338477
338654
  ref_key: "aiWriterRef",
338478
338655
  ref: aiWriterRef,
338479
338656
  onMousedown: _cache[1] || (_cache[1] = exports_vue.withModifiers(() => {}, ["stop"]))
338480
- }, [exports_vue.createElementVNode("div", _hoisted_1$22, [exports_vue.createElementVNode("span", {
338657
+ }, [exports_vue.createElementVNode("div", _hoisted_1$23, [exports_vue.createElementVNode("span", {
338481
338658
  class: "ai-textarea-icon",
338482
338659
  innerHTML: exports_vue.unref(edit_regular_default)
338483
338660
  }, null, 8, _hoisted_2$17), exports_vue.withDirectives(exports_vue.createElementVNode("textarea", {
@@ -338579,7 +338756,7 @@ function print() { __p += __j.call(arguments, '') }
338579
338756
  formattingMarks: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true"><text x="12" y="18" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="20" font-weight="700" fill="currentColor">¶</text></svg>
338580
338757
  `
338581
338758
  };
338582
- _hoisted_1$21 = [
338759
+ _hoisted_1$22 = [
338583
338760
  "onClick",
338584
338761
  "innerHTML",
338585
338762
  "aria-label",
@@ -338671,12 +338848,12 @@ function print() { __p += __j.call(arguments, '') }
338671
338848
  ref_key: "alignmentButtonsRefs",
338672
338849
  ref: alignmentButtonsRefs,
338673
338850
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
338674
- }, null, 40, _hoisted_1$21);
338851
+ }, null, 40, _hoisted_1$22);
338675
338852
  }), 64))], 2);
338676
338853
  };
338677
338854
  }
338678
338855
  }, [["__scopeId", "data-v-ceb338e0"]]);
338679
- _hoisted_1$20 = [
338856
+ _hoisted_1$21 = [
338680
338857
  "onClick",
338681
338858
  "innerHTML",
338682
338859
  "aria-label",
@@ -338765,7 +338942,7 @@ function print() { __p += __j.call(arguments, '') }
338765
338942
  ref_key: "buttonRefs",
338766
338943
  ref: buttonRefs,
338767
338944
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
338768
- }, null, 46, _hoisted_1$20);
338945
+ }, null, 46, _hoisted_1$21);
338769
338946
  }), 128))], 2);
338770
338947
  };
338771
338948
  }
@@ -338829,7 +339006,7 @@ function print() { __p += __j.call(arguments, '') }
338829
339006
  ariaLabel: "a) b) c)"
338830
339007
  }
338831
339008
  ];
338832
- _hoisted_1$19 = ["onClick", "onKeydown"];
339009
+ _hoisted_1$20 = ["onClick", "onKeydown"];
338833
339010
  _hoisted_2$16 = { class: "document-mode-column icon-column" };
338834
339011
  _hoisted_3$12 = ["innerHTML"];
338835
339012
  _hoisted_4$8 = { class: "document-mode-column text-column" };
@@ -338898,12 +339075,12 @@ function print() { __p += __j.call(arguments, '') }
338898
339075
  }, [exports_vue.createElementVNode("div", _hoisted_2$16, [exports_vue.createElementVNode("div", {
338899
339076
  class: "icon-column__icon",
338900
339077
  innerHTML: option.icon
338901
- }, null, 8, _hoisted_3$12)]), exports_vue.createElementVNode("div", _hoisted_4$8, [exports_vue.createElementVNode("div", _hoisted_5$7, exports_vue.toDisplayString(option.label), 1), exports_vue.createElementVNode("div", _hoisted_6$5, exports_vue.toDisplayString(option.description), 1)])], 42, _hoisted_1$19);
339078
+ }, null, 8, _hoisted_3$12)]), exports_vue.createElementVNode("div", _hoisted_4$8, [exports_vue.createElementVNode("div", _hoisted_5$7, exports_vue.toDisplayString(option.label), 1), exports_vue.createElementVNode("div", _hoisted_6$5, exports_vue.toDisplayString(option.description), 1)])], 42, _hoisted_1$20);
338902
339079
  }), 256))], 2);
338903
339080
  };
338904
339081
  }
338905
339082
  }, [["__scopeId", "data-v-abd514d9"]]);
338906
- _hoisted_1$18 = {
339083
+ _hoisted_1$19 = {
338907
339084
  key: 0,
338908
339085
  class: "linked-style-buttons",
338909
339086
  "data-editor-ui-surface": ""
@@ -338965,7 +339142,7 @@ function print() { __p += __j.call(arguments, '') }
338965
339142
  styleRefs.value[0].focus();
338966
339143
  });
338967
339144
  return (_ctx, _cache) => {
338968
- return props.editor ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$18, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(exports_vue.unref(getQuickFormatList)(__props.editor), (style2, index2) => {
339145
+ return props.editor ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$19, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(exports_vue.unref(getQuickFormatList)(__props.editor), (style2, index2) => {
338969
339146
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
338970
339147
  class: exports_vue.normalizeClass(["style-item", { selected: __props.selectedOption === style2.id }]),
338971
339148
  onClick: ($event) => select2(style2),
@@ -338983,7 +339160,7 @@ function print() { __p += __j.call(arguments, '') }
338983
339160
  };
338984
339161
  }
338985
339162
  }, [["__scopeId", "data-v-80e74746"]]);
338986
- _hoisted_1$17 = {
339163
+ _hoisted_1$18 = {
338987
339164
  key: 0,
338988
339165
  class: "link-title"
338989
339166
  };
@@ -339186,7 +339363,7 @@ function print() { __p += __j.call(arguments, '') }
339186
339363
  props.goToAnchor(url$1);
339187
339364
  };
339188
339365
  return (_ctx, _cache) => {
339189
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", { class: exports_vue.normalizeClass(["link-input-ctn", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]) }, [isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$17, "Page anchor")) : isViewingMode.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$14, "Link details")) : isEditing.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$11, "Edit link")) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$7, "Add link")), __props.showInput && !isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$6, [
339366
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", { class: exports_vue.normalizeClass(["link-input-ctn", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]) }, [isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$18, "Page anchor")) : isViewingMode.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_2$14, "Link details")) : isEditing.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$11, "Edit link")) : (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_4$7, "Add link")), __props.showInput && !isAnchor.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_5$6, [
339190
339367
  exports_vue.createElementVNode("div", _hoisted_6$4, [_cache[5] || (_cache[5] = exports_vue.createElementVNode("div", { class: "input-icon text-input-icon" }, "T", -1)), exports_vue.withDirectives(exports_vue.createElementVNode("input", {
339191
339368
  type: "text",
339192
339369
  name: "text",
@@ -339233,7 +339410,7 @@ function print() { __p += __j.call(arguments, '') }
339233
339410
  };
339234
339411
  }
339235
339412
  }, [["__scopeId", "data-v-c490d677"]]);
339236
- _hoisted_1$16 = [
339413
+ _hoisted_1$17 = [
339237
339414
  "aria-label",
339238
339415
  "onClick",
339239
339416
  "onKeydown"
@@ -339365,13 +339542,13 @@ function print() { __p += __j.call(arguments, '') }
339365
339542
  class: "sd-option__check",
339366
339543
  innerHTML: exports_vue.unref(toolbarIcons).colorOptionCheck,
339367
339544
  style: exports_vue.normalizeStyle(getCheckStyle(option.value, optionIndex))
339368
- }, null, 12, _hoisted_3$10)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$16);
339545
+ }, null, 12, _hoisted_3$10)) : exports_vue.createCommentVNode("", true)], 40, _hoisted_1$17);
339369
339546
  }), 128))]);
339370
339547
  }), 128);
339371
339548
  };
339372
339549
  }
339373
339550
  }, [["__scopeId", "data-v-30cad300"]]);
339374
- _hoisted_1$15 = { class: "options-grid-wrap" };
339551
+ _hoisted_1$16 = { class: "options-grid-wrap" };
339375
339552
  _hoisted_2$12 = ["innerHTML"];
339376
339553
  _hoisted_3$9 = { class: "option-grid-ctn" };
339377
339554
  IconGrid_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
@@ -339401,7 +339578,7 @@ function print() { __p += __j.call(arguments, '') }
339401
339578
  emit("select", option);
339402
339579
  };
339403
339580
  return (_ctx, _cache) => {
339404
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$15, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
339581
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$16, [__props.hasNoneIcon ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
339405
339582
  key: 0,
339406
339583
  class: "none-option",
339407
339584
  role: "menuitem",
@@ -339496,7 +339673,7 @@ function print() { __p += __j.call(arguments, '') }
339496
339673
  makeColorOption("#A91DFF", "neon purple")
339497
339674
  ]
339498
339675
  ];
339499
- _hoisted_1$14 = [
339676
+ _hoisted_1$15 = [
339500
339677
  "data-cols",
339501
339678
  "data-rows",
339502
339679
  "onKeydown",
@@ -339613,7 +339790,7 @@ function print() { __p += __j.call(arguments, '') }
339613
339790
  cols: n,
339614
339791
  rows: i3
339615
339792
  }), ["stop", "prevent"])
339616
- }, null, 40, _hoisted_1$14);
339793
+ }, null, 40, _hoisted_1$15);
339617
339794
  }), 64))], 64);
339618
339795
  }), 64))], 32), exports_vue.createElementVNode("div", {
339619
339796
  class: "toolbar-table-grid-value",
@@ -339622,7 +339799,7 @@ function print() { __p += __j.call(arguments, '') }
339622
339799
  };
339623
339800
  }
339624
339801
  }, [["__scopeId", "data-v-168b91ce"]]);
339625
- _hoisted_1$13 = { class: "toolbar-table-actions" };
339802
+ _hoisted_1$14 = { class: "toolbar-table-actions" };
339626
339803
  _hoisted_2$10 = [
339627
339804
  "onClick",
339628
339805
  "data-item",
@@ -339641,7 +339818,7 @@ function print() { __p += __j.call(arguments, '') }
339641
339818
  emit("select", { command: item.command });
339642
339819
  };
339643
339820
  return (_ctx, _cache) => {
339644
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$13, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.options, (option) => {
339821
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$14, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(__props.options, (option) => {
339645
339822
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
339646
339823
  class: exports_vue.normalizeClass(["toolbar-table-actions__item", { "toolbar-table-actions__item--border": option.bottomBorder }]),
339647
339824
  onClick: ($event) => handleClick$1(option),
@@ -339656,7 +339833,7 @@ function print() { __p += __j.call(arguments, '') }
339656
339833
  };
339657
339834
  }
339658
339835
  }, [["__scopeId", "data-v-652015c8"]]);
339659
- _hoisted_1$12 = { class: "search-input-ctn" };
339836
+ _hoisted_1$13 = { class: "search-input-ctn" };
339660
339837
  _hoisted_2$9 = { class: "sd-row" };
339661
339838
  _hoisted_3$7 = ["onKeydown"];
339662
339839
  SearchInput_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
@@ -339670,7 +339847,7 @@ function print() { __p += __j.call(arguments, '') }
339670
339847
  emit("submit", { value: searchValue.value });
339671
339848
  };
339672
339849
  return (_ctx, _cache) => {
339673
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$12, [exports_vue.createElementVNode("div", _hoisted_2$9, [exports_vue.withDirectives(exports_vue.createElementVNode("input", {
339850
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$13, [exports_vue.createElementVNode("div", _hoisted_2$9, [exports_vue.withDirectives(exports_vue.createElementVNode("input", {
339674
339851
  ref: __props.searchRef,
339675
339852
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => searchValue.value = $event),
339676
339853
  class: "search-input",
@@ -339814,7 +339991,7 @@ function print() { __p += __j.call(arguments, '') }
339814
339991
  HEADLESS_TOOLBAR_COMMANDS = [...new Set([...Object.values(HEADLESS_ITEM_MAP), ...TABLE_ACTION_COMMAND_IDS])];
339815
339992
  NON_HEADLESS_EXECUTE_ITEM_NAMES = new Set(["link"]);
339816
339993
  HEADLESS_EXECUTE_ITEMS = new Set(Object.keys(HEADLESS_ITEM_MAP).filter((itemName) => !NON_HEADLESS_EXECUTE_ITEM_NAMES.has(itemName)));
339817
- _hoisted_1$11 = { class: "sd-toolbar-icon" };
339994
+ _hoisted_1$12 = { class: "sd-toolbar-icon" };
339818
339995
  _hoisted_2$8 = ["innerHTML"];
339819
339996
  ToolbarButtonIcon_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
339820
339997
  __name: "ToolbarButtonIcon",
@@ -339844,7 +340021,7 @@ function print() { __p += __j.call(arguments, '') }
339844
340021
  return ["color", "highlight"].includes(props.name);
339845
340022
  });
339846
340023
  return (_ctx, _cache) => {
339847
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$11, [exports_vue.createElementVNode("div", {
340024
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$12, [exports_vue.createElementVNode("div", {
339848
340025
  class: exports_vue.normalizeClass(["sd-toolbar-icon__icon", [`sd-toolbar-icon__icon--${props.name}`]]),
339849
340026
  innerHTML: __props.icon
339850
340027
  }, null, 10, _hoisted_2$8), hasColorBar.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", {
@@ -339855,7 +340032,7 @@ function print() { __p += __j.call(arguments, '') }
339855
340032
  };
339856
340033
  }
339857
340034
  }, [["__scopeId", "data-v-521c3d93"]]);
339858
- _hoisted_1$10 = ["role", "aria-label"];
340035
+ _hoisted_1$11 = ["role", "aria-label"];
339859
340036
  _hoisted_2$7 = ["data-item"];
339860
340037
  _hoisted_3$6 = ["data-item"];
339861
340038
  _hoisted_4$5 = {
@@ -340106,11 +340283,11 @@ function print() { __p += __j.call(arguments, '') }
340106
340283
  }, null, 12, _hoisted_13)) : exports_vue.createCommentVNode("", true)
340107
340284
  ], 64)),
340108
340285
  exports_vue.createElementVNode("div", _hoisted_14, exports_vue.toDisplayString(`${exports_vue.unref(attributes).ariaLabel} ${exports_vue.unref(active) ? "selected" : "unset"}`), 1)
340109
- ], 10, _hoisted_2$7)], 46, _hoisted_1$10);
340286
+ ], 10, _hoisted_2$7)], 46, _hoisted_1$11);
340110
340287
  };
340111
340288
  }
340112
340289
  }, [["__scopeId", "data-v-2caa0057"]]);
340113
- _hoisted_1$9 = {
340290
+ _hoisted_1$10 = {
340114
340291
  class: "toolbar-separator",
340115
340292
  role: "separator",
340116
340293
  "aria-label": "Toolbar separator"
@@ -340130,14 +340307,14 @@ function print() { __p += __j.call(arguments, '') }
340130
340307
  return "var(--sd-ui-border, #dbdbdb)";
340131
340308
  };
340132
340309
  return (_ctx, _cache) => {
340133
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$9, [exports_vue.createElementVNode("div", {
340310
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$10, [exports_vue.createElementVNode("div", {
340134
340311
  class: "separator-inner",
340135
340312
  style: exports_vue.normalizeStyle({ backgroundColor: getSeparatorColor() })
340136
340313
  }, null, 4)]);
340137
340314
  };
340138
340315
  }
340139
340316
  }, [["__scopeId", "data-v-d027f7fc"]]);
340140
- _hoisted_1$8 = { class: "overflow-menu" };
340317
+ _hoisted_1$9 = { class: "overflow-menu" };
340141
340318
  _hoisted_2$6 = { class: "overflow-menu-trigger" };
340142
340319
  _hoisted_3$5 = {
340143
340320
  key: 0,
@@ -340191,7 +340368,7 @@ function print() { __p += __j.call(arguments, '') }
340191
340368
  document.removeEventListener("keydown", handleKeyDown$1, true);
340192
340369
  });
340193
340370
  return (_ctx, _cache) => {
340194
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", _hoisted_2$6, [exports_vue.createVNode(ToolbarButton_default, {
340371
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$9, [exports_vue.createElementVNode("div", _hoisted_2$6, [exports_vue.createVNode(ToolbarButton_default, {
340195
340372
  "toolbar-item": overflowToolbarItem.value,
340196
340373
  onButtonClick: toggleOverflowMenu
340197
340374
  }, null, 8, ["toolbar-item"])]), isOverflowMenuOpened.value ? (exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_3$5, [exports_vue.createVNode(ButtonGroup_default, {
@@ -340204,7 +340381,7 @@ function print() { __p += __j.call(arguments, '') }
340204
340381
  };
340205
340382
  }
340206
340383
  }, [["__scopeId", "data-v-35b48dff"]]);
340207
- _hoisted_1$7 = { class: "toolbar-dropdown" };
340384
+ _hoisted_1$8 = { class: "toolbar-dropdown" };
340208
340385
  _hoisted_2$5 = ["onClick"];
340209
340386
  _hoisted_3$4 = {
340210
340387
  key: 0,
@@ -340558,7 +340735,7 @@ function print() { __p += __j.call(arguments, '') }
340558
340735
  window.removeEventListener("scroll", updateMenuPosition, true);
340559
340736
  });
340560
340737
  return (_ctx, _cache) => {
340561
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$7, [exports_vue.createElementVNode("div", {
340738
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", _hoisted_1$8, [exports_vue.createElementVNode("div", {
340562
340739
  ref_key: "triggerRef",
340563
340740
  ref: triggerRef,
340564
340741
  class: "toolbar-dropdown-trigger",
@@ -340600,7 +340777,7 @@ function print() { __p += __j.call(arguments, '') }
340600
340777
  };
340601
340778
  }
340602
340779
  }, [["__scopeId", "data-v-69732782"]]);
340603
- _hoisted_1$6 = [
340780
+ _hoisted_1$7 = [
340604
340781
  "value",
340605
340782
  "disabled",
340606
340783
  "aria-label",
@@ -341028,7 +341205,7 @@ function print() { __p += __j.call(arguments, '') }
341028
341205
  onKeydown,
341029
341206
  onCompositionstart: _cache[0] || (_cache[0] = ($event) => isComposing.value = true),
341030
341207
  onCompositionend: onCompositionEnd
341031
- }, null, 44, _hoisted_1$6)], 32),
341208
+ }, null, 44, _hoisted_1$7)], 32),
341032
341209
  exports_vue.createElementVNode("button", {
341033
341210
  type: "button",
341034
341211
  class: "sd-font-combobox__caret sd-toolbar-split-field__caret",
@@ -341284,7 +341461,7 @@ function print() { __p += __j.call(arguments, '') }
341284
341461
  };
341285
341462
  }
341286
341463
  }), [["__scopeId", "data-v-f0925f67"]]);
341287
- _hoisted_1$5 = ["data-toolbar-position"];
341464
+ _hoisted_1$6 = ["data-toolbar-position"];
341288
341465
  _hoisted_2$3 = [
341289
341466
  "onKeydown",
341290
341467
  "tabindex",
@@ -341845,7 +342022,7 @@ function print() { __p += __j.call(arguments, '') }
341845
342022
  "overflow-items"
341846
342023
  ])) : exports_vue.createCommentVNode("", true)
341847
342024
  ], 42, _hoisted_2$3);
341848
- }), 128))], 44, _hoisted_1$5);
342025
+ }), 128))], 44, _hoisted_1$6);
341849
342026
  };
341850
342027
  }
341851
342028
  }, [["__scopeId", "data-v-181bd035"]]);
@@ -346889,6 +347066,13 @@ function print() { __p += __j.call(arguments, '') }
346889
347066
  .${DOM_CLASS_NAMES.INLINE_IMAGE_CLIP_WRAPPER}.superdoc-image-selected {
346890
347067
  outline-offset: 2px;
346891
347068
  }
347069
+
347070
+ .superdoc-textbox-selected {
347071
+ outline: 2px solid #4a90e2;
347072
+ outline-offset: 2px;
347073
+ border-radius: 2px;
347074
+ box-shadow: 0 0 0 1px rgba(74, 144, 226, 0.35);
347075
+ }
346892
347076
  `;
346893
347077
  init_dist();
346894
347078
  globalValidationStats = new ValidationStatsCollector;
@@ -351262,13 +351446,15 @@ function print() { __p += __j.call(arguments, '') }
351262
351446
  });
351263
351447
  },
351264
351448
  onSurfaceTransaction: ({ sourceEditor, surface, headerId, sectionType, transaction, duration: duration3 }) => {
351265
- if ((transaction && typeof transaction === "object" ? transaction : null)?.docChanged && headerId) {
351266
- this.#invalidateTrackedChangesForStory({
351267
- kind: "story",
351268
- storyType: "headerFooterPart",
351269
- refId: headerId
351270
- });
351271
- this.#headerFooterSession?.invalidateLayoutForRefs([headerId]);
351449
+ if ((transaction && typeof transaction === "object" ? transaction : null)?.docChanged) {
351450
+ if (headerId) {
351451
+ this.#invalidateTrackedChangesForStory({
351452
+ kind: "story",
351453
+ storyType: "headerFooterPart",
351454
+ refId: headerId
351455
+ });
351456
+ this.#headerFooterSession?.invalidateLayoutForRefs([headerId]);
351457
+ }
351272
351458
  this.#flowBlockCache.setHasExternalChanges?.(true);
351273
351459
  this.#pendingDocChange = true;
351274
351460
  this.#selectionSync.onLayoutStart();
@@ -354935,11 +355121,11 @@ function print() { __p += __j.call(arguments, '') }
354935
355121
  ]);
354936
355122
  });
354937
355123
 
354938
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-RmuwqQZI.es.js
355124
+ // ../../packages/superdoc/dist/chunks/create-super-doc-ui-NCPalg_h.es.js
354939
355125
  var DEFAULT_TEXT_ALIGN_OPTIONS, DEFAULT_LINE_HEIGHT_OPTIONS, DEFAULT_ZOOM_OPTIONS, DEFAULT_DOCUMENT_MODE_OPTIONS, DEFAULT_FONT_SIZE_OPTIONS, headlessToolbarConstants, MOD_ALIASES, ALT_ALIASES, CTRL_ALIASES, SHIFT_ALIASES, BUILTIN_CONTEXT_MENU_GROUPS, BUILTIN_GROUP_ORDER, RESERVED_PROXY_PROPERTY_NAMES, ALL_TOOLBAR_COMMAND_IDS, EMPTY_ACTIVE_IDS, FONT_SIZE_OPTIONS;
354940
- var init_create_super_doc_ui_RmuwqQZI_es = __esm(() => {
354941
- init_SuperConverter_DVjSc_AY_es();
354942
- init_create_headless_toolbar_DYtdH4mX_es();
355126
+ var init_create_super_doc_ui_NCPalg_h_es = __esm(() => {
355127
+ init_SuperConverter_Du0apG1R_es();
355128
+ init_create_headless_toolbar_BNcguDpP_es();
354943
355129
  DEFAULT_TEXT_ALIGN_OPTIONS = [
354944
355130
  {
354945
355131
  label: "Left",
@@ -355217,9 +355403,6 @@ var init_create_super_doc_ui_RmuwqQZI_es = __esm(() => {
355217
355403
  }));
355218
355404
  });
355219
355405
 
355220
- // ../../packages/superdoc/dist/chunks/ui-CGB3qmy3.es.js
355221
- var init_ui_CGB3qmy3_es = () => {};
355222
-
355223
355406
  // ../../packages/superdoc/dist/chunks/zipper-BxRAi0-5.es.js
355224
355407
  var import_jszip_min3;
355225
355408
  var init_zipper_BxRAi0_5_es = __esm(() => {
@@ -355230,16 +355413,16 @@ var init_zipper_BxRAi0_5_es = __esm(() => {
355230
355413
 
355231
355414
  // ../../packages/superdoc/dist/super-editor.es.js
355232
355415
  var init_super_editor_es = __esm(() => {
355233
- init_src_DX3B_Otx_es();
355234
- init_SuperConverter_DVjSc_AY_es();
355416
+ init_src_bGJhSgx__es();
355417
+ init_SuperConverter_Du0apG1R_es();
355235
355418
  init_jszip_C49i9kUs_es();
355236
355419
  init_xml_js_CqGKpaft_es();
355237
- init_create_headless_toolbar_DYtdH4mX_es();
355420
+ init_create_headless_toolbar_BNcguDpP_es();
355238
355421
  init_constants_D9qj59G2_es();
355239
355422
  init_unified_BDuVPlMu_es();
355240
355423
  init_DocxZipper_BzS208BW_es();
355241
- init_create_super_doc_ui_RmuwqQZI_es();
355242
- init_ui_CGB3qmy3_es();
355424
+ init_ui_BMYSpkne_es();
355425
+ init_create_super_doc_ui_NCPalg_h_es();
355243
355426
  init_eventemitter3_UwU_CLPU_es();
355244
355427
  init_errors_C_DoKMoN_es();
355245
355428
  init_zipper_BxRAi0_5_es();
@@ -365614,7 +365797,10 @@ var init_schemas4 = __esm(() => {
365614
365797
  },
365615
365798
  caseSensitive: { type: "boolean", description: "Case-sensitive matching. Default: false." },
365616
365799
  wholeWord: { type: "boolean", description: "Require word-boundary matches. Default: false." },
365617
- includeDeletedText: { type: "boolean", description: "When true, includes text from pending tracked deletions. Default: false." }
365800
+ includeDeletedText: {
365801
+ type: "boolean",
365802
+ description: "When true, includes text from pending tracked deletions. Default: false."
365803
+ }
365618
365804
  }, ["type", "pattern"]);
365619
365805
  planTextSelectorSchema = objectSchema({
365620
365806
  type: { const: "text", description: "Must be 'text' for text pattern search." },
@@ -460070,6 +460256,19 @@ function translateDrawingMLTextbox2(params3) {
460070
460256
  return null;
460071
460257
  }
460072
460258
  const drawing = carbonCopy2(drawingContent);
460259
+ const { width: pxWidth, height: pxHeight, marginOffset } = node4.attrs ?? {};
460260
+ if (pxWidth != null || pxHeight != null) {
460261
+ const emuCx = pxWidth != null ? String(pixelsToEmu2(pxWidth)) : null;
460262
+ const emuCy = pxHeight != null ? String(pixelsToEmu2(pxHeight)) : null;
460263
+ patchNodeAttributes2(drawing, "wp:extent", emuCx, emuCy);
460264
+ patchShapeGeometryExt2(drawing, emuCx, emuCy);
460265
+ }
460266
+ if (marginOffset?.horizontal != null) {
460267
+ patchPositionOffset2(drawing, "wp:positionH", String(pixelsToEmu2(marginOffset.horizontal)));
460268
+ }
460269
+ if (marginOffset?.top != null) {
460270
+ patchPositionOffset2(drawing, "wp:positionV", String(pixelsToEmu2(marginOffset.top)));
460271
+ }
460073
460272
  const liveParagraphs = translateChildNodes2({
460074
460273
  ...params3,
460075
460274
  node: shapeTextbox
@@ -460105,9 +460304,65 @@ function findTextboxContentNode2(node4) {
460105
460304
  }
460106
460305
  return null;
460107
460306
  }
460307
+ function patchPositionOffset2(node4, posNodeName, emuValue) {
460308
+ if (!node4 || typeof node4 !== "object")
460309
+ return false;
460310
+ if (node4.name === posNodeName && Array.isArray(node4.elements)) {
460311
+ const offsetEl = node4.elements.find((el) => el.name === "wp:posOffset");
460312
+ if (offsetEl && Array.isArray(offsetEl.elements) && offsetEl.elements.length > 0) {
460313
+ offsetEl.elements[0].text = emuValue;
460314
+ return true;
460315
+ }
460316
+ return false;
460317
+ }
460318
+ if (!Array.isArray(node4.elements))
460319
+ return false;
460320
+ for (const child of node4.elements) {
460321
+ if (patchPositionOffset2(child, posNodeName, emuValue))
460322
+ return true;
460323
+ }
460324
+ return false;
460325
+ }
460326
+ function patchShapeGeometryExt2(root4, cx, cy) {
460327
+ const PATH = ["wp:anchor", "a:graphic", "a:graphicData", "wps:wsp", "wps:spPr", "a:xfrm", "a:ext"];
460328
+ let node4 = root4;
460329
+ for (const name of PATH) {
460330
+ if (!node4 || !Array.isArray(node4.elements))
460331
+ return false;
460332
+ node4 = node4.elements.find((el) => el.name === name) ?? null;
460333
+ if (!node4)
460334
+ return false;
460335
+ }
460336
+ if (!node4.attributes)
460337
+ node4.attributes = {};
460338
+ if (cx != null)
460339
+ node4.attributes.cx = cx;
460340
+ if (cy != null)
460341
+ node4.attributes.cy = cy;
460342
+ return true;
460343
+ }
460344
+ function patchNodeAttributes2(node4, targetName, cx, cy) {
460345
+ if (!node4 || typeof node4 !== "object")
460346
+ return false;
460347
+ if (node4.name === targetName && node4.attributes) {
460348
+ if (cx != null)
460349
+ node4.attributes.cx = cx;
460350
+ if (cy != null)
460351
+ node4.attributes.cy = cy;
460352
+ return true;
460353
+ }
460354
+ if (!Array.isArray(node4.elements))
460355
+ return false;
460356
+ for (const child of node4.elements) {
460357
+ if (patchNodeAttributes2(child, targetName, cx, cy))
460358
+ return true;
460359
+ }
460360
+ return false;
460361
+ }
460108
460362
  var init_translate_drawingml_textbox = __esm(() => {
460109
460363
  init_translateChildNodes();
460110
460364
  init_exporter();
460365
+ init_helpers();
460111
460366
  });
460112
460367
 
460113
460368
  // ../../packages/super-editor/src/editors/v1/core/super-converter/v3/handlers/w/pict/helpers/translate-shape-container.js
@@ -460185,6 +460440,12 @@ function buildShapeStyle2(attrs) {
460185
460440
  if (attrs.anchorData?.vRelativeFrom) {
460186
460441
  style2["mso-position-vertical-relative"] = attrs.anchorData.vRelativeFrom;
460187
460442
  }
460443
+ if (attrs.width != null) {
460444
+ style2["width"] = `${convertToPt2(attrs.width)}pt`;
460445
+ }
460446
+ if (attrs.height != null) {
460447
+ style2["height"] = `${convertToPt2(attrs.height)}pt`;
460448
+ }
460188
460449
  const entries = Object.entries(style2);
460189
460450
  if (entries.length === 0)
460190
460451
  return;