@superdoc-dev/mcp 0.3.0-next.61 → 0.3.0-next.63

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 +1319 -397
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -51837,7 +51837,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
51837
51837
  emptyOptions2 = {};
51838
51838
  });
51839
51839
 
51840
- // ../../packages/superdoc/dist/chunks/SuperConverter-ing-1fvK.es.js
51840
+ // ../../packages/superdoc/dist/chunks/SuperConverter-D1o6_yKI.es.js
51841
51841
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
51842
51842
  const fieldValue = extension$1.config[field];
51843
51843
  if (typeof fieldValue === "function")
@@ -71405,7 +71405,7 @@ function updateNumberingProperties(newNumberingProperties, paragraphNode, pos, e
71405
71405
  ...paragraphNode.attrs.paragraphProperties || {},
71406
71406
  numberingProperties: newNumberingProperties ? { ...newNumberingProperties } : null
71407
71407
  };
71408
- if (paragraphNode.attrs.paragraphProperties?.styleId === "ListParagraph")
71408
+ if (!newNumberingProperties && paragraphNode.attrs.paragraphProperties?.styleId === "ListParagraph")
71409
71409
  newProperties.styleId = null;
71410
71410
  if (newProperties.indent)
71411
71411
  delete newProperties.indent;
@@ -71450,7 +71450,7 @@ function refreshAbstractIdentity(abstractDef) {
71450
71450
  }
71451
71451
  function generateNewListDefinition(numbering, options) {
71452
71452
  let { listType } = options;
71453
- const { numId, level, start, text: text$2, fmt, markerFontFamily, bulletStyle, bulletStyleLevel } = options;
71453
+ const { numId, level, start, text: text$2, fmt, markerFontFamily, bulletStyle, bulletStyleLevel, orderedStyle, orderedStyleLevel } = options;
71454
71454
  if (typeof listType !== "string")
71455
71455
  listType = listType.name;
71456
71456
  const definition$1 = listType === "orderedList" ? baseOrderedListDef : baseBulletList;
@@ -71479,6 +71479,61 @@ function generateNewListDefinition(numbering, options) {
71479
71479
  }
71480
71480
  }
71481
71481
  }
71482
+ if (orderedStyle && listType === "orderedList") {
71483
+ const styleConfig = ORDERED_LIST_STYLES[orderedStyle];
71484
+ if (styleConfig) {
71485
+ const targetLevel = Math.max(0, Number.isFinite(orderedStyleLevel) ? orderedStyleLevel : 0);
71486
+ const targetLevelStr = String(targetLevel);
71487
+ const lvl = newAbstractDef.elements.find((el) => el.name === "w:lvl" && el.attributes["w:ilvl"] === targetLevelStr);
71488
+ if (lvl) {
71489
+ const numFmt = lvl.elements.find((el) => el.name === "w:numFmt");
71490
+ if (numFmt)
71491
+ numFmt.attributes["w:val"] = styleConfig.fmt;
71492
+ const lvlText = lvl.elements.find((el) => el.name === "w:lvlText");
71493
+ if (lvlText)
71494
+ lvlText.attributes["w:val"] = `%${targetLevel + 1}${styleConfig.text.replace(/^%\d+/, "")}`;
71495
+ const defaultLvlJc = DEFAULT_LVL_JC_BY_FMT[styleConfig.fmt];
71496
+ if (defaultLvlJc) {
71497
+ const lvlJc = lvl.elements.find((el) => el.name === "w:lvlJc");
71498
+ if (lvlJc)
71499
+ lvlJc.attributes["w:val"] = defaultLvlJc;
71500
+ else
71501
+ lvl.elements.push({
71502
+ type: "element",
71503
+ name: "w:lvlJc",
71504
+ attributes: { "w:val": defaultLvlJc }
71505
+ });
71506
+ }
71507
+ const defaultHanging = DEFAULT_HANGING_BY_FMT[styleConfig.fmt];
71508
+ if (defaultHanging != null) {
71509
+ let pPr = lvl.elements.find((el) => el.name === "w:pPr");
71510
+ if (!pPr) {
71511
+ pPr = {
71512
+ type: "element",
71513
+ name: "w:pPr",
71514
+ elements: []
71515
+ };
71516
+ lvl.elements.push(pPr);
71517
+ }
71518
+ if (!pPr.elements)
71519
+ pPr.elements = [];
71520
+ let ind = pPr.elements.find((el) => el.name === "w:ind");
71521
+ if (!ind) {
71522
+ ind = {
71523
+ type: "element",
71524
+ name: "w:ind",
71525
+ attributes: { "w:hanging": String(defaultHanging) }
71526
+ };
71527
+ pPr.elements.push(ind);
71528
+ } else
71529
+ ind.attributes = {
71530
+ ...ind.attributes || {},
71531
+ "w:hanging": String(defaultHanging)
71532
+ };
71533
+ }
71534
+ }
71535
+ }
71536
+ }
71482
71537
  if (level != null && start != null && text$2 != null && fmt != null) {
71483
71538
  if (numbering.definitions[numId]) {
71484
71539
  const abstractId = numbering.definitions[numId]?.elements[0]?.attributes["w:val"];
@@ -71701,6 +71756,126 @@ function setLvlRestartOnAbstract(numbering, abstractNumId, ilvl, restartAfterLev
71701
71756
  });
71702
71757
  return true;
71703
71758
  }
71759
+ function setLvlStyleOnAbstract(numbering, abstractNumId, ilvl, options) {
71760
+ const abstract = numbering.abstracts[abstractNumId];
71761
+ if (!abstract?.elements)
71762
+ return false;
71763
+ const ilvlStr = String(ilvl);
71764
+ const lvlEl = abstract.elements.find((el) => el.name === "w:lvl" && el.attributes?.["w:ilvl"] === ilvlStr);
71765
+ if (!lvlEl)
71766
+ return false;
71767
+ if (!lvlEl.elements)
71768
+ lvlEl.elements = [];
71769
+ const setOrAddChild = (name, value) => {
71770
+ const existing = lvlEl.elements.find((el) => el.name === name);
71771
+ if (existing) {
71772
+ if (existing.attributes?.["w:val"] === value)
71773
+ return false;
71774
+ existing.attributes = {
71775
+ ...existing.attributes || {},
71776
+ "w:val": value
71777
+ };
71778
+ return true;
71779
+ }
71780
+ lvlEl.elements.push({
71781
+ type: "element",
71782
+ name,
71783
+ attributes: { "w:val": value }
71784
+ });
71785
+ return true;
71786
+ };
71787
+ const stripMarkerFont = () => {
71788
+ const rPr = lvlEl.elements.find((el) => el.name === "w:rPr");
71789
+ if (!rPr?.elements?.some((el) => el.name === "w:rFonts"))
71790
+ return false;
71791
+ rPr.elements = rPr.elements.filter((el) => el.name !== "w:rFonts");
71792
+ return true;
71793
+ };
71794
+ let numFmtValue = null;
71795
+ let lvlTextValue = null;
71796
+ let lvlJcValue = null;
71797
+ let hangingValue = null;
71798
+ if (options.bulletStyle) {
71799
+ const char = BULLET_STYLE_CHARS[options.bulletStyle];
71800
+ if (!char)
71801
+ return false;
71802
+ numFmtValue = "bullet";
71803
+ lvlTextValue = char;
71804
+ } else if (options.orderedStyle) {
71805
+ const config$40 = ORDERED_LIST_STYLES[options.orderedStyle];
71806
+ if (!config$40)
71807
+ return false;
71808
+ numFmtValue = config$40.fmt;
71809
+ lvlTextValue = `%${ilvl + 1}${config$40.text.replace(/^%\d+/, "")}`;
71810
+ lvlJcValue = DEFAULT_LVL_JC_BY_FMT[config$40.fmt] ?? null;
71811
+ hangingValue = DEFAULT_HANGING_BY_FMT[config$40.fmt] ?? null;
71812
+ } else
71813
+ return false;
71814
+ const setHangingOnLevel = (hanging) => {
71815
+ let pPr = lvlEl.elements.find((el) => el.name === "w:pPr");
71816
+ if (!pPr) {
71817
+ pPr = {
71818
+ type: "element",
71819
+ name: "w:pPr",
71820
+ elements: []
71821
+ };
71822
+ lvlEl.elements.push(pPr);
71823
+ }
71824
+ if (!pPr.elements)
71825
+ pPr.elements = [];
71826
+ let ind = pPr.elements.find((el) => el.name === "w:ind");
71827
+ if (!ind) {
71828
+ ind = {
71829
+ type: "element",
71830
+ name: "w:ind",
71831
+ attributes: { "w:hanging": String(hanging) }
71832
+ };
71833
+ pPr.elements.push(ind);
71834
+ return true;
71835
+ }
71836
+ if (ind.attributes?.["w:hanging"] === String(hanging))
71837
+ return false;
71838
+ ind.attributes = {
71839
+ ...ind.attributes || {},
71840
+ "w:hanging": String(hanging)
71841
+ };
71842
+ return true;
71843
+ };
71844
+ let changed = false;
71845
+ if (setOrAddChild("w:numFmt", numFmtValue))
71846
+ changed = true;
71847
+ if (setOrAddChild("w:lvlText", lvlTextValue))
71848
+ changed = true;
71849
+ if (lvlJcValue != null && setOrAddChild("w:lvlJc", lvlJcValue))
71850
+ changed = true;
71851
+ if (hangingValue != null && setHangingOnLevel(hangingValue))
71852
+ changed = true;
71853
+ if (stripMarkerFont())
71854
+ changed = true;
71855
+ return changed;
71856
+ }
71857
+ function cloneListDefinitionWithLevelStyle(numbering, sourceNumId, ilvl, options) {
71858
+ const sourceAbstractIdRaw = numbering.definitions[sourceNumId]?.elements?.find((el) => el.name === "w:abstractNumId")?.attributes?.["w:val"];
71859
+ const sourceAbstractId = sourceAbstractIdRaw != null ? Number(sourceAbstractIdRaw) : NaN;
71860
+ const sourceAbstract = Number.isFinite(sourceAbstractId) ? numbering.abstracts[sourceAbstractId] : undefined;
71861
+ if (!sourceAbstract)
71862
+ return null;
71863
+ const newAbstractId = getNextId(numbering.abstracts);
71864
+ const newAbstractDef = JSON.parse(JSON.stringify(sourceAbstract));
71865
+ newAbstractDef.attributes = {
71866
+ ...newAbstractDef.attributes || {},
71867
+ "w:abstractNumId": String(newAbstractId)
71868
+ };
71869
+ refreshAbstractIdentity(newAbstractDef);
71870
+ numbering.abstracts[newAbstractId] = newAbstractDef;
71871
+ setLvlStyleOnAbstract(numbering, newAbstractId, ilvl, options);
71872
+ const newNumId = getNextId(numbering.definitions);
71873
+ numbering.definitions[newNumId] = buildNumDef(newNumId, newAbstractId);
71874
+ return {
71875
+ newNumId,
71876
+ newAbstractId
71877
+ };
71878
+ }
71704
71879
  function getConverter$8(editor) {
71705
71880
  return editor.converter;
71706
71881
  }
@@ -71787,6 +71962,26 @@ function mutateNumbering(editor, source, transform2, options) {
71787
71962
  }
71788
71963
  });
71789
71964
  }
71965
+ function mutateNumberingBatch(editor, source, transforms, options) {
71966
+ return mutateParts({
71967
+ editor,
71968
+ source,
71969
+ dryRun: options?.dryRun,
71970
+ expectedRevision: options?.expectedRevision,
71971
+ operations: [{
71972
+ editor,
71973
+ partId: "word/numbering.xml",
71974
+ operation: "mutate",
71975
+ source,
71976
+ mutate({ part }) {
71977
+ const numbering = getNumbering(editor);
71978
+ for (const transform2 of transforms)
71979
+ transform2(numbering);
71980
+ syncNumberingToXmlTree(part, numbering);
71981
+ }
71982
+ }]
71983
+ });
71984
+ }
71790
71985
  function markerTextToBulletStyle(markerText) {
71791
71986
  return {
71792
71987
  "•": "disc",
@@ -71794,6 +71989,25 @@ function markerTextToBulletStyle(markerText) {
71794
71989
  "▪": "square"
71795
71990
  }[markerText] ?? null;
71796
71991
  }
71992
+ function numberingInfoToOrderedStyle(numFmt, markerText) {
71993
+ const suffix = markerText?.slice(-1);
71994
+ return {
71995
+ decimal: {
71996
+ ".": "decimal",
71997
+ ")": "decimal-paren"
71998
+ },
71999
+ upperRoman: { ".": "upper-roman" },
72000
+ lowerRoman: { ".": "lower-roman" },
72001
+ upperLetter: {
72002
+ ".": "upper-alpha",
72003
+ ")": "upper-alpha-paren"
72004
+ },
72005
+ lowerLetter: {
72006
+ ".": "lower-alpha",
72007
+ ")": "lower-alpha-paren"
72008
+ }
72009
+ }[numFmt]?.[suffix] ?? null;
72010
+ }
71797
72011
  function normalizeCssValue(value) {
71798
72012
  if (!value)
71799
72013
  return value;
@@ -95639,13 +95853,14 @@ var isRegExp = (value) => {
95639
95853
  default:
95640
95854
  return null;
95641
95855
  }
95642
- }, SKIP_FIELD_PROCESSING_NODE_NAMES$1, shouldSkipFieldProcessing$1 = (node2) => SKIP_FIELD_PROCESSING_NODE_NAMES$1.has(node2?.name), preProcessNodesForFldChar = (nodes = [], docx) => {
95856
+ }, TRACK_CHANGE_ELEMENT_NAMES, TRANSLATED_TRACK_CHANGE_ELEMENT_NAMES, isTrackChangeElement = (node2) => TRACK_CHANGE_ELEMENT_NAMES.has(node2?.name), isTranslatedTrackChangeElement = (node2) => TRANSLATED_TRACK_CHANGE_ELEMENT_NAMES.has(node2?.name), SKIP_FIELD_PROCESSING_NODE_NAMES$1, shouldSkipFieldProcessing$1 = (node2) => SKIP_FIELD_PROCESSING_NODE_NAMES$1.has(node2?.name), preProcessNodesForFldChar = (nodes = [], docx) => {
95643
95857
  const processedNodes = [];
95644
95858
  let collectedNodesStack = [];
95645
95859
  let rawCollectedNodesStack = [];
95646
95860
  let fieldRunRPrStack = [];
95647
95861
  let currentFieldStack = [];
95648
95862
  let unpairedEnd = null;
95863
+ let unpairedEndPreserveRaw = null;
95649
95864
  let collecting = false;
95650
95865
  const rawNodeSourceTokens = /* @__PURE__ */ new WeakMap;
95651
95866
  const finalizeField = () => {
@@ -95654,8 +95869,11 @@ var isRegExp = (value) => {
95654
95869
  const rawCollectedNodes = rawCollectedNodesStack.pop().filter((n) => n !== null);
95655
95870
  const fieldRunRPr = fieldRunRPrStack.pop() ?? null;
95656
95871
  const currentField = currentFieldStack.pop();
95657
- const combinedResult = _processCombinedNodesForFldChar(collectedNodes, currentField.instrText.trim(), docx, currentField.instructionTokens, fieldRunRPr);
95658
- const outputNodes = combinedResult.handled ? combinedResult.nodes : rawCollectedNodes;
95872
+ let outputNodes = rawCollectedNodes;
95873
+ if (!currentField.preserveRaw) {
95874
+ const combinedResult = _processCombinedNodesForFldChar(collectedNodes, currentField.instrText.trim(), docx, currentField.instructionTokens, fieldRunRPr);
95875
+ outputNodes = combinedResult.handled ? combinedResult.nodes : rawCollectedNodes;
95876
+ }
95659
95877
  if (collectedNodesStack.length === 0)
95660
95878
  processedNodes.push(...outputNodes);
95661
95879
  else {
@@ -95763,7 +95981,10 @@ var isRegExp = (value) => {
95763
95981
  node2.elements = childResult.processedNodes;
95764
95982
  if (childResult.unpairedBegin)
95765
95983
  childResult.unpairedBegin.forEach((pendingField) => {
95766
- currentFieldStack.push(pendingField.fieldInfo);
95984
+ const fieldInfo = { ...pendingField.fieldInfo };
95985
+ if (fieldInfo.preserveRaw || isTrackChangeElement(node2))
95986
+ fieldInfo.preserveRaw = true;
95987
+ currentFieldStack.push(fieldInfo);
95767
95988
  collectedNodesStack.push([node2]);
95768
95989
  const rawStack = [rawNode];
95769
95990
  rawCollectedNodesStack.push(rawStack);
@@ -95771,6 +95992,16 @@ var isRegExp = (value) => {
95771
95992
  capturedRawNodes.add(rawNode);
95772
95993
  });
95773
95994
  else if (childResult.unpairedEnd) {
95995
+ const shouldPreserveRaw = childResult.unpairedEndPreserveRaw || isTrackChangeElement(node2);
95996
+ if (collectedNodesStack.length === 0) {
95997
+ processedNodes.push(shouldPreserveRaw ? rawNode : node2);
95998
+ unpairedEnd = true;
95999
+ if (shouldPreserveRaw)
96000
+ unpairedEndPreserveRaw = true;
96001
+ return;
96002
+ }
96003
+ if (shouldPreserveRaw)
96004
+ currentFieldStack[currentFieldStack.length - 1].preserveRaw = true;
95774
96005
  collectedNodesStack[collectedNodesStack.length - 1].push(node2);
95775
96006
  captureRawNodeForCurrentField(rawNode, capturedRawNodes, rawSourceToken);
95776
96007
  finalizeField();
@@ -95809,7 +96040,8 @@ var isRegExp = (value) => {
95809
96040
  return {
95810
96041
  processedNodes,
95811
96042
  unpairedBegin,
95812
- unpairedEnd
96043
+ unpairedEnd,
96044
+ unpairedEndPreserveRaw
95813
96045
  };
95814
96046
  }, _processCombinedNodesForFldChar = (nodesToCombine = [], instrText, docx, instructionTokens, fieldRunRPr) => {
95815
96047
  const instructionType = instrText.trim().split(" ")[0];
@@ -98811,14 +99043,11 @@ var isRegExp = (value) => {
98811
99043
  }
98812
99044
  return result;
98813
99045
  }, intToAlpha = (num) => {
98814
- let result = "";
98815
- const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
98816
- let value = num;
98817
- while (value > 0) {
98818
- result = alphabet[(value - 1) % 26] + result;
98819
- value = Math.floor((value - 1) / 26);
98820
- }
98821
- return result;
99046
+ if (num < 1)
99047
+ return "";
99048
+ const letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"[(num - 1) % 26];
99049
+ const repeats = Math.floor((num - 1) / 26) + 1;
99050
+ return letter.repeat(repeats);
98822
99051
  }, intToJapaneseCounting = (num) => {
98823
99052
  const digits = [
98824
99053
  "",
@@ -99166,7 +99395,7 @@ var isRegExp = (value) => {
99166
99395
  updateNumberingProperties(numberingProperties, node2, pos, editor, tr);
99167
99396
  });
99168
99397
  return true;
99169
- }, BULLET_STYLE_CHARS, NUMBERING_PART_ID = "word/numbering.xml", NUMBERING_ROOT_ATTRS, numberingPartDescriptor, generateNewListDefinition$1 = ({ numId, listType, level, start, text: text$2, fmt, editor, markerFontFamily, bulletStyle, bulletStyleLevel }) => {
99398
+ }, BULLET_STYLE_CHARS, ORDERED_LIST_STYLES, DEFAULT_LVL_JC_BY_FMT, DEFAULT_HANGING_BY_FMT, NUMBERING_PART_ID = "word/numbering.xml", NUMBERING_ROOT_ATTRS, numberingPartDescriptor, generateNewListDefinition$1 = ({ numId, listType, level, start, text: text$2, fmt, editor, markerFontFamily, bulletStyle, bulletStyleLevel, orderedStyle, orderedStyleLevel }) => {
99170
99399
  let resultDefs;
99171
99400
  mutateNumbering(editor, "list-numbering-helpers:generateNewListDefinition", (numbering) => {
99172
99401
  const result = generateNewListDefinition(numbering, {
@@ -99178,7 +99407,9 @@ var isRegExp = (value) => {
99178
99407
  fmt,
99179
99408
  markerFontFamily,
99180
99409
  bulletStyle,
99181
- bulletStyleLevel
99410
+ bulletStyleLevel,
99411
+ orderedStyle,
99412
+ orderedStyleLevel
99182
99413
  });
99183
99414
  resultDefs = {
99184
99415
  abstractDef: result.abstractDef,
@@ -99425,6 +99656,46 @@ var isRegExp = (value) => {
99425
99656
  mutateNumbering(editor, "list-numbering-helpers:setLvlRestartOnAbstract", (numbering) => {
99426
99657
  setLvlRestartOnAbstract(numbering, abstractNumId, ilvl, restartAfterLevel);
99427
99658
  });
99659
+ }, setListLevelStyles = ({ editor, levels }) => {
99660
+ if (!levels?.length)
99661
+ return false;
99662
+ const resolved = [];
99663
+ for (const level of levels) {
99664
+ const abstractIdRaw = getListDefinitionDetails({
99665
+ numId: level.numId,
99666
+ level: level.ilvl,
99667
+ editor
99668
+ })?.abstractId;
99669
+ const abstractNumId = abstractIdRaw != null ? Number(abstractIdRaw) : NaN;
99670
+ if (!Number.isFinite(abstractNumId))
99671
+ continue;
99672
+ resolved.push({
99673
+ abstractNumId,
99674
+ ilvl: level.ilvl,
99675
+ bulletStyle: level.bulletStyle,
99676
+ orderedStyle: level.orderedStyle
99677
+ });
99678
+ }
99679
+ if (!resolved.length)
99680
+ return false;
99681
+ let anyChanged = false;
99682
+ mutateNumberingBatch(editor, "list-numbering-helpers:setListLevelStyles", resolved.map(({ abstractNumId, ilvl, bulletStyle, orderedStyle }) => (numbering) => {
99683
+ if (setLvlStyleOnAbstract(numbering, abstractNumId, ilvl, {
99684
+ bulletStyle,
99685
+ orderedStyle
99686
+ }))
99687
+ anyChanged = true;
99688
+ }));
99689
+ return anyChanged;
99690
+ }, cloneListDefinitionWithLevelStyle$1 = ({ editor, sourceNumId, ilvl, bulletStyle, orderedStyle }) => {
99691
+ let result = null;
99692
+ mutateNumbering(editor, "list-numbering-helpers:cloneListDefinitionWithLevelStyle", (numbering) => {
99693
+ result = cloneListDefinitionWithLevelStyle(numbering, sourceNumId, ilvl, {
99694
+ bulletStyle,
99695
+ orderedStyle
99696
+ });
99697
+ });
99698
+ return result;
99428
99699
  }, ListHelpers, extractListLevelStyles = (cssText, listId, level, numId) => {
99429
99700
  const pattern = new RegExp(`@list\\s+l${listId}:level${level}(?:\\s+lfo${numId})?\\s*\\{([^}]+)\\}`, "i");
99430
99701
  const match = cssText.match(pattern);
@@ -101991,10 +102262,10 @@ var isRegExp = (value) => {
101991
102262
  }
101992
102263
  });
101993
102264
  return subs;
101994
- }, config$5, translator$81, isTrackChangeElement = (node2) => node2?.name === "w:del" || node2?.name === "w:ins", unwrapTrackChangeNode = (node2) => {
102265
+ }, config$5, translator$81, unwrapTrackChangeNode = (node2) => {
101995
102266
  if (!node2)
101996
102267
  return null;
101997
- if (isTrackChangeElement(node2))
102268
+ if (isTranslatedTrackChangeElement(node2))
101998
102269
  return node2;
101999
102270
  if (node2.name === "w:sdt") {
102000
102271
  const content$2 = node2.elements?.find((element) => element.name === "w:sdtContent");
@@ -103429,11 +103700,11 @@ var isRegExp = (value) => {
103429
103700
  };
103430
103701
  return nodeListHandlerFn;
103431
103702
  }, DEFAULT_SECTION_PROPS, importHeadersFooters = (docx, converter, mainEditor, numbering, translatedNumbering, translatedLinkedStyles) => {
103432
- const { elements } = docx["word/_rels/document.xml.rels"]?.elements.find((el) => el.name === "Relationships") || { elements: [] };
103703
+ const elements = docx["word/_rels/document.xml.rels"]?.elements?.find((el) => el.name === "Relationships")?.elements ?? [];
103433
103704
  const headerType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header";
103434
103705
  const footerType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer";
103435
- const headers = elements.filter((el) => el.attributes["Type"] === headerType);
103436
- const footers = elements.filter((el) => el.attributes["Type"] === footerType);
103706
+ const headers = elements.filter((el) => el.attributes?.["Type"] === headerType);
103707
+ const footers = elements.filter((el) => el.attributes?.["Type"] === footerType);
103437
103708
  const allSectPrElements = (findSectPr(docx["word/document.xml"]) || []).flatMap((el) => el.elements);
103438
103709
  if (!mainEditor)
103439
103710
  return;
@@ -104407,7 +104678,7 @@ var isRegExp = (value) => {
104407
104678
  state.kern = kernNode.attributes["w:val"];
104408
104679
  }
104409
104680
  }, SuperConverter;
104410
- var init_SuperConverter_ing_1fvK_es = __esm(() => {
104681
+ var init_SuperConverter_D1o6_yKI_es = __esm(() => {
104411
104682
  init_rolldown_runtime_Bg48TavK_es();
104412
104683
  init_jszip_C49i9kUs_es();
104413
104684
  init_xml_js_CqGKpaft_es();
@@ -132317,6 +132588,13 @@ var init_SuperConverter_ing_1fvK_es = __esm(() => {
132317
132588
  })(UTIF, pako$1);
132318
132589
  })();
132319
132590
  }))(), 1);
132591
+ TRACK_CHANGE_ELEMENT_NAMES = new Set([
132592
+ "w:del",
132593
+ "w:ins",
132594
+ "w:moveFrom",
132595
+ "w:moveTo"
132596
+ ]);
132597
+ TRANSLATED_TRACK_CHANGE_ELEMENT_NAMES = new Set(["w:del", "w:ins"]);
132320
132598
  SKIP_FIELD_PROCESSING_NODE_NAMES$1 = new Set(["w:drawing", "w:pict"]);
132321
132599
  FIELD_CONTROL_ELEMENT_NAMES = new Set(["w:fldChar"]);
132322
132600
  INSTRUCTION_ELEMENT_NAMES = new Set(["w:instrText", "w:tab"]);
@@ -134786,6 +135064,54 @@ var init_SuperConverter_ing_1fvK_es = __esm(() => {
134786
135064
  circle: "◦",
134787
135065
  square: "▪"
134788
135066
  };
135067
+ ORDERED_LIST_STYLES = {
135068
+ decimal: {
135069
+ fmt: "decimal",
135070
+ text: "%1."
135071
+ },
135072
+ "decimal-paren": {
135073
+ fmt: "decimal",
135074
+ text: "%1)"
135075
+ },
135076
+ "upper-roman": {
135077
+ fmt: "upperRoman",
135078
+ text: "%1."
135079
+ },
135080
+ "lower-roman": {
135081
+ fmt: "lowerRoman",
135082
+ text: "%1."
135083
+ },
135084
+ "upper-alpha": {
135085
+ fmt: "upperLetter",
135086
+ text: "%1."
135087
+ },
135088
+ "upper-alpha-paren": {
135089
+ fmt: "upperLetter",
135090
+ text: "%1)"
135091
+ },
135092
+ "lower-alpha": {
135093
+ fmt: "lowerLetter",
135094
+ text: "%1."
135095
+ },
135096
+ "lower-alpha-paren": {
135097
+ fmt: "lowerLetter",
135098
+ text: "%1)"
135099
+ }
135100
+ };
135101
+ DEFAULT_LVL_JC_BY_FMT = {
135102
+ decimal: "left",
135103
+ upperRoman: "right",
135104
+ lowerRoman: "right",
135105
+ upperLetter: "left",
135106
+ lowerLetter: "left"
135107
+ };
135108
+ DEFAULT_HANGING_BY_FMT = {
135109
+ decimal: 360,
135110
+ upperRoman: 180,
135111
+ lowerRoman: 180,
135112
+ upperLetter: 360,
135113
+ lowerLetter: 360
135114
+ };
134789
135115
  NUMBERING_ROOT_ATTRS = {
134790
135116
  "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
134791
135117
  "xmlns:w15": "http://schemas.microsoft.com/office/word/2012/wordml",
@@ -134863,6 +135189,8 @@ var init_SuperConverter_ing_1fvK_es = __esm(() => {
134863
135189
  removeLvlOverride: removeLvlOverride$1,
134864
135190
  createNumDefinition: createNumDefinition$1,
134865
135191
  setLvlRestartOnAbstract: setLvlRestartOnAbstract$1,
135192
+ setListLevelStyles,
135193
+ cloneListDefinitionWithLevelStyle: cloneListDefinitionWithLevelStyle$1,
134866
135194
  rebuildRawNumberingFromTranslated,
134867
135195
  createNewList,
134868
135196
  createSchemaOrderedListNode,
@@ -142008,7 +142336,7 @@ var init_SuperConverter_ing_1fvK_es = __esm(() => {
142008
142336
  };
142009
142337
  });
142010
142338
 
142011
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-CUl2z6Fd.es.js
142339
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-CJ0iQq1T.es.js
142012
142340
  function parseSizeUnit(val = "0") {
142013
142341
  const length = val.toString() || "0";
142014
142342
  const value = Number.parseFloat(length);
@@ -144303,15 +144631,27 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
144303
144631
  disabled: false,
144304
144632
  value: isActive2 ? paragraphNode?.attrs?.listRendering?.markerText ?? null : null
144305
144633
  };
144634
+ const activeNumberingFmt = isActive2 ? paragraphNode?.attrs?.listRendering?.numberingType ?? null : null;
144635
+ const activeMarkerText = isActive2 ? paragraphNode?.attrs?.listRendering?.markerText ?? null : null;
144306
144636
  return {
144307
144637
  active: isActive2,
144308
- disabled: false
144638
+ disabled: false,
144639
+ value: activeNumberingFmt && activeMarkerText ? numberingInfoToOrderedStyle(activeNumberingFmt, activeMarkerText) : null
144309
144640
  };
144310
144641
  }, createIndentIncreaseExecute = () => ({ context }) => {
144311
144642
  if (resolveStateEditor(context)?.commands?.increaseListIndent?.())
144312
144643
  return true;
144313
144644
  return createDirectCommandExecute("increaseTextIndent")({ context });
144314
- }, createIndentDecreaseExecute = () => ({ context }) => {
144645
+ }, createListToggleExecute = (styleCommand, legacyCommand) => ({ context, payload }) => {
144646
+ const commands = resolveStateEditor(context)?.commands;
144647
+ if (typeof commands?.[styleCommand] === "function") {
144648
+ const result = payload === undefined ? commands[styleCommand]() : commands[styleCommand](payload);
144649
+ return Boolean(result);
144650
+ }
144651
+ if (typeof commands?.[legacyCommand] === "function")
144652
+ return Boolean(commands[legacyCommand]());
144653
+ return false;
144654
+ }, createBulletListExecute = () => createListToggleExecute("toggleBulletListStyle", "toggleBulletList"), createOrderedListExecute = () => createListToggleExecute("toggleOrderedListStyle", "toggleOrderedList"), createIndentDecreaseExecute = () => ({ context }) => {
144315
144655
  if (resolveStateEditor(context)?.commands?.decreaseListIndent?.())
144316
144656
  return true;
144317
144657
  return createDirectCommandExecute("decreaseTextIndent")({ context });
@@ -144447,12 +144787,14 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
144447
144787
  "bullet-list": {
144448
144788
  id: "bullet-list",
144449
144789
  directCommandName: "toggleBulletListStyle",
144450
- state: createListStateDeriver("bullet")
144790
+ state: createListStateDeriver("bullet"),
144791
+ execute: createBulletListExecute()
144451
144792
  },
144452
144793
  "numbered-list": {
144453
144794
  id: "numbered-list",
144454
- directCommandName: "toggleOrderedList",
144455
- state: createListStateDeriver("ordered")
144795
+ directCommandName: "toggleOrderedListStyle",
144796
+ state: createListStateDeriver("ordered"),
144797
+ execute: createOrderedListExecute()
144456
144798
  },
144457
144799
  "indent-increase": {
144458
144800
  id: "indent-increase",
@@ -144661,8 +145003,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
144661
145003
  }
144662
145004
  };
144663
145005
  };
144664
- var init_create_headless_toolbar_CUl2z6Fd_es = __esm(() => {
144665
- init_SuperConverter_ing_1fvK_es();
145006
+ var init_create_headless_toolbar_CJ0iQq1T_es = __esm(() => {
145007
+ init_SuperConverter_D1o6_yKI_es();
144666
145008
  init_constants_DrU4EASo_es();
144667
145009
  init_dist_B8HfvhaK_es();
144668
145010
  CSS_DIMENSION_REGEX = /[\d-.]+(\w+)$/;
@@ -146109,7 +146451,7 @@ var init_decrypt_docx_4kQ488M9_es = __esm(() => {
146109
146451
  ]);
146110
146452
  });
146111
146453
 
146112
- // ../../packages/superdoc/dist/chunks/DocxZipper-CUX64E5K.es.js
146454
+ // ../../packages/superdoc/dist/chunks/DocxZipper-Dh4RtvcE.es.js
146113
146455
  function sniffEncoding(u8) {
146114
146456
  if (u8.length >= 2) {
146115
146457
  const b0 = u8[0], b1 = u8[1];
@@ -146152,6 +146494,15 @@ function ensureXmlString(content2) {
146152
146494
  xml = xml.replace(/(<\?xml\b[^?]*?)\bencoding\s*=\s*["'][^"']*["']/i, '$1encoding="UTF-8"');
146153
146495
  return xml;
146154
146496
  }
146497
+ function escapeAttributeValue(value) {
146498
+ return String(value).replace(/&quot;/g, QUOT_PLACEHOLDER).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(QUOT_PLACEHOLDER_REGEX, "&quot;");
146499
+ }
146500
+ function serializeOpcXml(jsObject) {
146501
+ return import_lib$3.js2xml(jsObject, {
146502
+ spaces: 0,
146503
+ attributeValueFn: escapeAttributeValue
146504
+ });
146505
+ }
146155
146506
  function readEntry(path2, baseFiles, updatedDocs) {
146156
146507
  if (updatedDocs && Object.prototype.hasOwnProperty.call(updatedDocs, path2))
146157
146508
  return updatedDocs[path2];
@@ -146172,7 +146523,7 @@ function parseXml(xmlString) {
146172
146523
  }
146173
146524
  }
146174
146525
  function serializeXml(jsObject) {
146175
- return import_lib$2.js2xml(jsObject, { spaces: 0 });
146526
+ return serializeOpcXml(jsObject);
146176
146527
  }
146177
146528
  function findRootElement(parsed, tagName) {
146178
146529
  return parsed?.elements?.find((el) => {
@@ -146389,9 +146740,9 @@ function reconcileDocumentRelationships(relsXml, fileExists) {
146389
146740
  }
146390
146741
  if (!changed)
146391
146742
  return relsXml;
146392
- return import_lib$12.js2xml(parsed, { spaces: 0 });
146743
+ return serializeOpcXml(parsed);
146393
146744
  }
146394
- var DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", isXmlLike = (name) => /\.xml$|\.rels$/i.test(name), MANAGED_PACKAGE_PARTS, import_lib$2, RELATIONSHIPS_NS = "http://schemas.openxmlformats.org/package/2006/relationships", import_lib$12, MANAGED_DOCUMENT_PARTS, import_lib3, import_jszip_min, IMAGE_EXTS, MIME_TYPE_FOR_EXT, CUSTOM_XML_ITEM_PROPS_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.customXmlProperties+xml", FONT_CONTENT_TYPES, DocxZipper = class {
146745
+ var DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", isXmlLike = (name) => /\.xml$|\.rels$/i.test(name), MANAGED_PACKAGE_PARTS, import_lib$3, QUOT_PLACEHOLDER = "\x01SD_OPC_QUOT\x01", QUOT_PLACEHOLDER_REGEX, import_lib$2, RELATIONSHIPS_NS = "http://schemas.openxmlformats.org/package/2006/relationships", import_lib$12, MANAGED_DOCUMENT_PARTS, import_lib3, import_jszip_min, IMAGE_EXTS, MIME_TYPE_FOR_EXT, CUSTOM_XML_ITEM_PROPS_CONTENT_TYPE = "application/vnd.openxmlformats-officedocument.customXmlProperties+xml", FONT_CONTENT_TYPES, DocxZipper = class {
146395
146746
  constructor(params = {}) {
146396
146747
  this.debug = params.debug || false;
146397
146748
  this.zip = new import_jszip_min.default;
@@ -146760,7 +147111,7 @@ var DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.docum
146760
147111
  return `image/${MIME_TYPE_FOR_EXT[detectedType] || detectedType}`;
146761
147112
  }
146762
147113
  }, DocxZipper_default;
146763
- var init_DocxZipper_CUX64E5K_es = __esm(() => {
147114
+ var init_DocxZipper_Dh4RtvcE_es = __esm(() => {
146764
147115
  init_rolldown_runtime_Bg48TavK_es();
146765
147116
  init_jszip_C49i9kUs_es();
146766
147117
  init_xml_js_CqGKpaft_es();
@@ -146788,6 +147139,8 @@ var init_DocxZipper_CUX64E5K_es = __esm(() => {
146788
147139
  relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties"
146789
147140
  }
146790
147141
  ];
147142
+ import_lib$3 = /* @__PURE__ */ __toESM2(require_lib(), 1);
147143
+ QUOT_PLACEHOLDER_REGEX = /SD_OPC_QUOT/g;
146791
147144
  import_lib$2 = /* @__PURE__ */ __toESM2(require_lib(), 1);
146792
147145
  import_lib$12 = /* @__PURE__ */ __toESM2(require_lib(), 1);
146793
147146
  MANAGED_DOCUMENT_PARTS = [{
@@ -198870,7 +199223,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
198870
199223
  init_remark_gfm_BhnWr3yf_es();
198871
199224
  });
198872
199225
 
198873
- // ../../packages/superdoc/dist/chunks/src-deKdT-sq.es.js
199226
+ // ../../packages/superdoc/dist/chunks/src-ItIaPxzW.es.js
198874
199227
  function deleteProps(obj, propOrProps) {
198875
199228
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
198876
199229
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -201810,7 +202163,7 @@ function getParagraphListKind(node2, editor) {
201810
202163
  return null;
201811
202164
  return numFmtIsBullet(fmt) ? "bullet" : "ordered";
201812
202165
  }
201813
- function paragraphMatchesToggleListType(node2, editor, listType, bulletStyle) {
202166
+ function paragraphMatchesToggleListType(node2, editor, listType, bulletStyle, orderedStyle) {
201814
202167
  const kind = getParagraphListKind(node2, editor);
201815
202168
  if (!kind)
201816
202169
  return false;
@@ -201822,8 +202175,14 @@ function paragraphMatchesToggleListType(node2, editor, listType, bulletStyle) {
201822
202175
  const markerText = node2.attrs.listRendering?.markerText;
201823
202176
  return markerTextToBulletStyle(markerText) === bulletStyle;
201824
202177
  }
201825
- if (listType === "orderedList")
201826
- return kind === "ordered";
202178
+ if (listType === "orderedList") {
202179
+ if (kind !== "ordered")
202180
+ return false;
202181
+ if (!orderedStyle)
202182
+ return true;
202183
+ const { numberingType, markerText } = node2.attrs.listRendering ?? {};
202184
+ return numberingInfoToOrderedStyle(numberingType, markerText) === orderedStyle;
202185
+ }
201827
202186
  return false;
201828
202187
  }
201829
202188
  function getPrecedingParagraphForListReuse(doc$12, from$1, paragraphsInSelection) {
@@ -241631,119 +241990,6 @@ function applyAlphaToSVG(svg2, alphaData) {
241631
241990
  function generateGradientId(prefix2 = "gradient") {
241632
241991
  return `${prefix2}-${Date.now()}-${gradientIdCounter++}-${Math.random().toString(36).substring(2, 11)}`;
241633
241992
  }
241634
- function isResolvedFragmentWithBorders(item) {
241635
- return item !== undefined && item.kind === "fragment" && "paragraphBorders" in item && item.paragraphBorders !== undefined;
241636
- }
241637
- function resolveClipPath(value) {
241638
- if (typeof value !== "string")
241639
- return;
241640
- const trimmed = value.trim();
241641
- return trimmed.length > 0 ? trimmed : undefined;
241642
- }
241643
- function applyImageClipPath(el, clipPath, options) {
241644
- const resolved = resolveClipPath(clipPath);
241645
- if (resolved) {
241646
- if (options?.clipContainer)
241647
- options.clipContainer.style.overflow = "hidden";
241648
- el.style.clipPath = resolved;
241649
- const scale = parseInsetClipPathForScale(resolved);
241650
- if (scale) {
241651
- el.style.transformOrigin = "0 0";
241652
- el.style.transform = `translate(${scale.translateX}%, ${scale.translateY}%) scale(${scale.scaleX}, ${scale.scaleY})`;
241653
- }
241654
- }
241655
- }
241656
- function isStructuredContentMetadata(sdt) {
241657
- return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "structuredContent";
241658
- }
241659
- function isDocumentSectionMetadata(sdt) {
241660
- return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "documentSection";
241661
- }
241662
- function getSdtContainerConfig(sdt) {
241663
- if (isDocumentSectionMetadata(sdt))
241664
- return {
241665
- className: "superdoc-document-section",
241666
- labelText: sdt.title ?? "Document section",
241667
- labelClassName: "superdoc-document-section__tooltip",
241668
- isStart: true,
241669
- isEnd: true
241670
- };
241671
- if (isStructuredContentMetadata(sdt) && sdt.scope === "block")
241672
- return {
241673
- className: "superdoc-structured-content-block",
241674
- labelText: sdt.alias ?? "Structured content",
241675
- labelClassName: "superdoc-structured-content__label",
241676
- isStart: true,
241677
- isEnd: true
241678
- };
241679
- return null;
241680
- }
241681
- function getSdtContainerMetadata$1(sdt, containerSdt) {
241682
- if (getSdtContainerConfig(sdt))
241683
- return sdt ?? null;
241684
- if (getSdtContainerConfig(containerSdt))
241685
- return containerSdt ?? null;
241686
- return null;
241687
- }
241688
- function getSdtContainerKey(sdt, containerSdt) {
241689
- const metadata = getSdtContainerMetadata$1(sdt, containerSdt);
241690
- if (!metadata)
241691
- return null;
241692
- if (metadata.type === "structuredContent") {
241693
- if (metadata.scope !== "block")
241694
- return null;
241695
- if (!metadata.id)
241696
- return null;
241697
- return `structuredContent:${metadata.id}`;
241698
- }
241699
- if (metadata.type === "documentSection") {
241700
- const sectionId = metadata.id ?? metadata.sdBlockId;
241701
- if (!sectionId)
241702
- return null;
241703
- return `documentSection:${sectionId}`;
241704
- }
241705
- return null;
241706
- }
241707
- function applySdtContainerStyling(doc$12, container, sdt, containerSdt, boundaryOptions) {
241708
- let config3 = getSdtContainerConfig(sdt);
241709
- if (!config3 && containerSdt)
241710
- config3 = getSdtContainerConfig(containerSdt);
241711
- if (!config3)
241712
- return;
241713
- const isStart = boundaryOptions?.isStart ?? config3.isStart;
241714
- const isEnd = boundaryOptions?.isEnd ?? config3.isEnd;
241715
- container.classList.add(config3.className);
241716
- container.dataset.sdtContainerStart = String(isStart);
241717
- container.dataset.sdtContainerEnd = String(isEnd);
241718
- container.style.overflow = "visible";
241719
- if (isStructuredContentMetadata(sdt))
241720
- container.dataset.lockMode = sdt.lockMode || "unlocked";
241721
- else if (isStructuredContentMetadata(containerSdt))
241722
- container.dataset.lockMode = containerSdt.lockMode || "unlocked";
241723
- if (boundaryOptions?.widthOverride != null)
241724
- container.style.width = `${boundaryOptions.widthOverride}px`;
241725
- if (boundaryOptions?.paddingBottomOverride != null && boundaryOptions.paddingBottomOverride > 0)
241726
- container.style.paddingBottom = `${boundaryOptions.paddingBottomOverride}px`;
241727
- if (boundaryOptions?.showLabel ?? isStart) {
241728
- const labelEl = doc$12.createElement("div");
241729
- labelEl.className = config3.labelClassName;
241730
- const labelText = doc$12.createElement("span");
241731
- labelText.textContent = config3.labelText;
241732
- labelEl.appendChild(labelText);
241733
- container.appendChild(labelEl);
241734
- }
241735
- }
241736
- function shouldRebuildForSdtBoundary(element3, boundary) {
241737
- if (!boundary)
241738
- return element3.dataset.sdtContainerStart !== undefined;
241739
- const startAttr = element3.dataset.sdtContainerStart;
241740
- const endAttr = element3.dataset.sdtContainerEnd;
241741
- const expectedStart = String(boundary.isStart ?? true);
241742
- const expectedEnd = String(boundary.isEnd ?? true);
241743
- if (startAttr === undefined || endAttr === undefined)
241744
- return true;
241745
- return startAttr !== expectedStart || endAttr !== expectedEnd;
241746
- }
241747
241993
  function resolveListMarkerGeometry(wordLayout, indentLeft, firstLine, hanging, measureMarkerText) {
241748
241994
  const marker = wordLayout?.marker;
241749
241995
  if (!marker)
@@ -241888,6 +242134,119 @@ function computeTabWidth(currentPos, justification, tabs, hangingIndent, firstLi
241888
242134
  tabWidth = nextDefaultTabStop - currentPos;
241889
242135
  return tabWidth;
241890
242136
  }
242137
+ function isResolvedFragmentWithBorders(item) {
242138
+ return item !== undefined && item.kind === "fragment" && "paragraphBorders" in item && item.paragraphBorders !== undefined;
242139
+ }
242140
+ function resolveClipPath(value) {
242141
+ if (typeof value !== "string")
242142
+ return;
242143
+ const trimmed = value.trim();
242144
+ return trimmed.length > 0 ? trimmed : undefined;
242145
+ }
242146
+ function applyImageClipPath(el, clipPath, options) {
242147
+ const resolved = resolveClipPath(clipPath);
242148
+ if (resolved) {
242149
+ if (options?.clipContainer)
242150
+ options.clipContainer.style.overflow = "hidden";
242151
+ el.style.clipPath = resolved;
242152
+ const scale = parseInsetClipPathForScale(resolved);
242153
+ if (scale) {
242154
+ el.style.transformOrigin = "0 0";
242155
+ el.style.transform = `translate(${scale.translateX}%, ${scale.translateY}%) scale(${scale.scaleX}, ${scale.scaleY})`;
242156
+ }
242157
+ }
242158
+ }
242159
+ function isStructuredContentMetadata(sdt) {
242160
+ return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "structuredContent";
242161
+ }
242162
+ function isDocumentSectionMetadata(sdt) {
242163
+ return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "documentSection";
242164
+ }
242165
+ function getSdtContainerConfig(sdt) {
242166
+ if (isDocumentSectionMetadata(sdt))
242167
+ return {
242168
+ className: "superdoc-document-section",
242169
+ labelText: sdt.title ?? "Document section",
242170
+ labelClassName: "superdoc-document-section__tooltip",
242171
+ isStart: true,
242172
+ isEnd: true
242173
+ };
242174
+ if (isStructuredContentMetadata(sdt) && sdt.scope === "block")
242175
+ return {
242176
+ className: "superdoc-structured-content-block",
242177
+ labelText: sdt.alias ?? "Structured content",
242178
+ labelClassName: "superdoc-structured-content__label",
242179
+ isStart: true,
242180
+ isEnd: true
242181
+ };
242182
+ return null;
242183
+ }
242184
+ function getSdtContainerMetadata$1(sdt, containerSdt) {
242185
+ if (getSdtContainerConfig(sdt))
242186
+ return sdt ?? null;
242187
+ if (getSdtContainerConfig(containerSdt))
242188
+ return containerSdt ?? null;
242189
+ return null;
242190
+ }
242191
+ function getSdtContainerKey(sdt, containerSdt) {
242192
+ const metadata = getSdtContainerMetadata$1(sdt, containerSdt);
242193
+ if (!metadata)
242194
+ return null;
242195
+ if (metadata.type === "structuredContent") {
242196
+ if (metadata.scope !== "block")
242197
+ return null;
242198
+ if (!metadata.id)
242199
+ return null;
242200
+ return `structuredContent:${metadata.id}`;
242201
+ }
242202
+ if (metadata.type === "documentSection") {
242203
+ const sectionId = metadata.id ?? metadata.sdBlockId;
242204
+ if (!sectionId)
242205
+ return null;
242206
+ return `documentSection:${sectionId}`;
242207
+ }
242208
+ return null;
242209
+ }
242210
+ function applySdtContainerStyling(doc$12, container, sdt, containerSdt, boundaryOptions) {
242211
+ let config3 = getSdtContainerConfig(sdt);
242212
+ if (!config3 && containerSdt)
242213
+ config3 = getSdtContainerConfig(containerSdt);
242214
+ if (!config3)
242215
+ return;
242216
+ const isStart = boundaryOptions?.isStart ?? config3.isStart;
242217
+ const isEnd = boundaryOptions?.isEnd ?? config3.isEnd;
242218
+ container.classList.add(config3.className);
242219
+ container.dataset.sdtContainerStart = String(isStart);
242220
+ container.dataset.sdtContainerEnd = String(isEnd);
242221
+ container.style.overflow = "visible";
242222
+ if (isStructuredContentMetadata(sdt))
242223
+ container.dataset.lockMode = sdt.lockMode || "unlocked";
242224
+ else if (isStructuredContentMetadata(containerSdt))
242225
+ container.dataset.lockMode = containerSdt.lockMode || "unlocked";
242226
+ if (boundaryOptions?.widthOverride != null)
242227
+ container.style.width = `${boundaryOptions.widthOverride}px`;
242228
+ if (boundaryOptions?.paddingBottomOverride != null && boundaryOptions.paddingBottomOverride > 0)
242229
+ container.style.paddingBottom = `${boundaryOptions.paddingBottomOverride}px`;
242230
+ if (boundaryOptions?.showLabel ?? isStart) {
242231
+ const labelEl = doc$12.createElement("div");
242232
+ labelEl.className = config3.labelClassName;
242233
+ const labelText = doc$12.createElement("span");
242234
+ labelText.textContent = config3.labelText;
242235
+ labelEl.appendChild(labelText);
242236
+ container.appendChild(labelEl);
242237
+ }
242238
+ }
242239
+ function shouldRebuildForSdtBoundary(element3, boundary) {
242240
+ if (!boundary)
242241
+ return element3.dataset.sdtContainerStart !== undefined;
242242
+ const startAttr = element3.dataset.sdtContainerStart;
242243
+ const endAttr = element3.dataset.sdtContainerEnd;
242244
+ const expectedStart = String(boundary.isStart ?? true);
242245
+ const expectedEnd = String(boundary.isEnd ?? true);
242246
+ if (startAttr === undefined || endAttr === undefined)
242247
+ return true;
242248
+ return startAttr !== expectedStart || endAttr !== expectedEnd;
242249
+ }
241891
242250
  function getCellSegmentCount(cell2) {
241892
242251
  if (cell2.blocks && cell2.blocks.length > 0) {
241893
242252
  let total = 0;
@@ -242001,22 +242360,7 @@ function renderListMarker(params$1) {
242001
242360
  lineEl.style.paddingLeft = `${anchorPoint}px`;
242002
242361
  if (markerLayout?.run?.vanish)
242003
242362
  return;
242004
- const markerContainer = doc$12.createElement("span");
242005
- markerContainer.style.display = "inline-block";
242006
- markerContainer.style.wordSpacing = "0px";
242007
- const markerEl = doc$12.createElement("span");
242008
- markerEl.classList.add("superdoc-paragraph-marker");
242009
- markerEl.textContent = markerLayout?.markerText ?? "";
242010
- markerEl.style.pointerEvents = "none";
242011
- markerEl.style.fontFamily = toCssFontFamily(markerLayout?.run?.fontFamily) ?? markerLayout?.run?.fontFamily ?? "";
242012
- if (markerLayout?.run?.fontSize != null)
242013
- markerEl.style.fontSize = `${markerLayout.run.fontSize}px`;
242014
- markerEl.style.fontWeight = markerLayout?.run?.bold ? "bold" : "";
242015
- markerEl.style.fontStyle = markerLayout?.run?.italic ? "italic" : "";
242016
- if (markerLayout?.run?.color)
242017
- markerEl.style.color = markerLayout.run.color;
242018
- if (markerLayout?.run?.letterSpacing != null)
242019
- markerEl.style.letterSpacing = `${markerLayout.run.letterSpacing}px`;
242363
+ const markerContainer = createListMarkerElement(doc$12, markerLayout?.markerText ?? "", markerLayout?.run ?? {});
242020
242364
  markerContainer.style.position = "relative";
242021
242365
  if (markerJustification === "right") {
242022
242366
  markerContainer.style.position = "absolute";
@@ -242026,7 +242370,6 @@ function renderListMarker(params$1) {
242026
242370
  markerContainer.style.left = `${markerStartPos - markerTextWidth / 2}px`;
242027
242371
  lineEl.style.paddingLeft = parseFloat(lineEl.style.paddingLeft) + markerTextWidth / 2 + "px";
242028
242372
  }
242029
- markerContainer.appendChild(markerEl);
242030
242373
  const suffixType = markerLayout?.suffix ?? "tab";
242031
242374
  if (suffixType === "tab") {
242032
242375
  const tabEl = doc$12.createElement("span");
@@ -253619,6 +253962,30 @@ function handleDocumentPartObjectNode(node2, context) {
253619
253962
  }
253620
253963
  if (sectionState)
253621
253964
  sectionState.currentParagraphIndex++;
253965
+ } else if (child.type === "tableOfContents" && Array.isArray(child.content)) {
253966
+ const metadata = {
253967
+ docPartGallery: docPartGallery ?? "",
253968
+ docPartObjectId,
253969
+ tocInstruction: getNodeInstruction(child) ?? tocInstruction,
253970
+ sdtMetadata: docPartSdtMetadata
253971
+ };
253972
+ const tocContext = {
253973
+ nextBlockId,
253974
+ positions,
253975
+ bookmarks,
253976
+ hyperlinkConfig,
253977
+ enableComments,
253978
+ trackedChangesConfig,
253979
+ themeColors,
253980
+ converters: converters$1,
253981
+ converterContext,
253982
+ sectionState
253983
+ };
253984
+ const output = {
253985
+ blocks: blocks2,
253986
+ recordBlockKind
253987
+ };
253988
+ processTocChildren(child.content, metadata, tocContext, output);
253622
253989
  }
253623
253990
  }
253624
253991
  }
@@ -256014,7 +256381,7 @@ function isSameRenderedNoteTarget(left$1, right$1) {
256014
256381
  function isOutsidePageBodyContent(layout, x, pageIndex, pageLocalY) {
256015
256382
  if (!Number.isFinite(x) || !Number.isFinite(pageIndex) || !Number.isFinite(pageLocalY))
256016
256383
  return false;
256017
- const page = layout.pages[pageIndex];
256384
+ const page = layout?.pages?.[pageIndex];
256018
256385
  if (!page)
256019
256386
  return false;
256020
256387
  const pageWidth = page.size?.w ?? layout.pageSize.w;
@@ -265377,10 +265744,10 @@ var Node$13 = class Node$14 {
265377
265744
  } catch {
265378
265745
  return false;
265379
265746
  }
265380
- }, toggleList = (listType, bulletStyle) => ({ editor, state, tr, dispatch }) => {
265747
+ }, toggleList = (listType, bulletStyle, orderedStyle) => ({ editor, state, tr, dispatch }) => {
265381
265748
  if (listType !== "orderedList" && listType !== "bulletList")
265382
265749
  return false;
265383
- const predicate = (n) => paragraphMatchesToggleListType(n, editor, listType, bulletStyle);
265750
+ const predicate = (n) => paragraphMatchesToggleListType(n, editor, listType, bulletStyle, orderedStyle);
265384
265751
  const { selection } = state;
265385
265752
  const { from: from$1, to } = selection;
265386
265753
  let firstListNode = null;
@@ -265396,7 +265763,35 @@ var Node$13 = class Node$14 {
265396
265763
  }
265397
265764
  return true;
265398
265765
  });
265399
- let paragraphsInSelection = allParagraphsInSelection.length === 1 ? allParagraphsInSelection : allParagraphsInSelection.filter(({ node: node2 }) => !isVisuallyEmptyParagraph(node2));
265766
+ const originalParagraphsInSelection = allParagraphsInSelection.length === 1 ? allParagraphsInSelection : allParagraphsInSelection.filter(({ node: node2 }) => !isVisuallyEmptyParagraph(node2));
265767
+ let paragraphsInSelection = originalParagraphsInSelection;
265768
+ const seenLevels = /* @__PURE__ */ new Set;
265769
+ let allListItems = paragraphsInSelection.length > 0;
265770
+ for (const { node: node2 } of paragraphsInSelection) {
265771
+ const np = getResolvedParagraphProperties(node2)?.numberingProperties;
265772
+ if (!np?.numId) {
265773
+ allListItems = false;
265774
+ break;
265775
+ }
265776
+ seenLevels.add(`${Number(np.numId)}:${Number(np.ilvl ?? 0)}`);
265777
+ }
265778
+ if (allListItems && seenLevels.size > 0 && selection.empty) {
265779
+ const expanded = new Map(paragraphsInSelection.map((p$12) => [p$12.pos, p$12]));
265780
+ state.doc.descendants((node2, pos) => {
265781
+ if (node2.type.name !== "paragraph")
265782
+ return true;
265783
+ if (expanded.has(pos))
265784
+ return false;
265785
+ const np = getResolvedParagraphProperties(node2)?.numberingProperties;
265786
+ if (np?.numId && seenLevels.has(`${Number(np.numId)}:${Number(np.ilvl ?? 0)}`))
265787
+ expanded.set(pos, {
265788
+ node: node2,
265789
+ pos
265790
+ });
265791
+ return false;
265792
+ });
265793
+ paragraphsInSelection = [...expanded.values()].sort((a2, b$1) => a2.pos - b$1.pos);
265794
+ }
265400
265795
  for (const { node: node2 } of paragraphsInSelection)
265401
265796
  if (!firstListNode && predicate(node2))
265402
265797
  firstListNode = node2;
@@ -265408,6 +265803,46 @@ var Node$13 = class Node$14 {
265408
265803
  if (beforeNode && predicate(beforeNode))
265409
265804
  firstListNode = beforeNode;
265410
265805
  }
265806
+ if (firstListNode == null && allListItems && selection.empty) {
265807
+ const effectiveBulletStyle = listType === "bulletList" ? bulletStyle ?? "disc" : null;
265808
+ const effectiveOrderedStyle = listType === "orderedList" ? orderedStyle ?? "decimal" : null;
265809
+ const groups = /* @__PURE__ */ new Map;
265810
+ for (const p$12 of paragraphsInSelection) {
265811
+ const np = getResolvedParagraphProperties(p$12.node).numberingProperties;
265812
+ const sourceNumId = Number(np.numId);
265813
+ const ilvl = Number(np.ilvl ?? 0);
265814
+ const key2 = `${sourceNumId}:${ilvl}`;
265815
+ if (!groups.has(key2))
265816
+ groups.set(key2, {
265817
+ sourceNumId,
265818
+ ilvl,
265819
+ paragraphs: []
265820
+ });
265821
+ groups.get(key2).paragraphs.push(p$12);
265822
+ }
265823
+ if (groups.size > 0) {
265824
+ if (!dispatch)
265825
+ return true;
265826
+ for (const { sourceNumId, ilvl, paragraphs } of groups.values()) {
265827
+ const minted = ListHelpers.cloneListDefinitionWithLevelStyle({
265828
+ editor,
265829
+ sourceNumId,
265830
+ ilvl,
265831
+ bulletStyle: effectiveBulletStyle,
265832
+ orderedStyle: effectiveOrderedStyle
265833
+ });
265834
+ if (!minted)
265835
+ continue;
265836
+ for (const { node: node2, pos } of paragraphs)
265837
+ updateNumberingProperties({
265838
+ numId: minted.newNumId,
265839
+ ilvl
265840
+ }, node2, pos, editor, tr);
265841
+ }
265842
+ dispatch(tr);
265843
+ return true;
265844
+ }
265845
+ }
265411
265846
  let mode = null;
265412
265847
  let sharedNumberingProperties = null;
265413
265848
  if (firstListNode)
@@ -265426,12 +265861,12 @@ var Node$13 = class Node$14 {
265426
265861
  if (!dispatch)
265427
265862
  return true;
265428
265863
  if (mode === "create") {
265429
- let bulletStyleLevel = 0;
265430
- if (bulletStyle) {
265864
+ let styleOverrideLevel = 0;
265865
+ if (bulletStyle || orderedStyle) {
265431
265866
  const firstExistingListPara = paragraphsInSelection.find(({ node: node2 }) => getResolvedParagraphProperties(node2)?.numberingProperties?.ilvl != null);
265432
265867
  const existingIlvl = firstExistingListPara ? getResolvedParagraphProperties(firstExistingListPara.node)?.numberingProperties?.ilvl : null;
265433
265868
  if (existingIlvl != null)
265434
- bulletStyleLevel = existingIlvl;
265869
+ styleOverrideLevel = existingIlvl;
265435
265870
  }
265436
265871
  const numId = ListHelpers.getNewListId(editor);
265437
265872
  ListHelpers.generateNewListDefinition({
@@ -265439,7 +265874,9 @@ var Node$13 = class Node$14 {
265439
265874
  listType,
265440
265875
  editor,
265441
265876
  bulletStyle,
265442
- bulletStyleLevel
265877
+ bulletStyleLevel: styleOverrideLevel,
265878
+ orderedStyle,
265879
+ orderedStyleLevel: styleOverrideLevel
265443
265880
  });
265444
265881
  sharedNumberingProperties = {
265445
265882
  numId: Number(numId),
@@ -265459,16 +265896,16 @@ var Node$13 = class Node$14 {
265459
265896
  ilvl: existingIlvl
265460
265897
  } : sharedNumberingProperties, node2, pos, editor, tr);
265461
265898
  }
265462
- if (paragraphsInSelection.length > 0) {
265463
- const firstPara = paragraphsInSelection[0];
265464
- const lastPara = paragraphsInSelection[paragraphsInSelection.length - 1];
265899
+ if (originalParagraphsInSelection.length > 0) {
265900
+ const firstPara = originalParagraphsInSelection[0];
265901
+ const lastPara = originalParagraphsInSelection[originalParagraphsInSelection.length - 1];
265465
265902
  const firstParagraphPos = firstPara.pos;
265466
265903
  const lastParagraphPos = lastPara.pos;
265467
265904
  const firstNode = tr.doc.nodeAt(firstParagraphPos);
265468
265905
  const lastNode = tr.doc.nodeAt(lastParagraphPos);
265469
265906
  const restoredSelectionRange = computeToggleListSelectionRange({
265470
265907
  selectionWasCollapsed: selection.empty,
265471
- affectedParagraphCount: paragraphsInSelection.length,
265908
+ affectedParagraphCount: originalParagraphsInSelection.length,
265472
265909
  firstParagraphPos,
265473
265910
  lastParagraphPos,
265474
265911
  firstNode,
@@ -265476,7 +265913,7 @@ var Node$13 = class Node$14 {
265476
265913
  });
265477
265914
  if (restoredSelectionRange && restoredSelectionRange.from >= 0 && restoredSelectionRange.to <= tr.doc.content.size && restoredSelectionRange.from <= restoredSelectionRange.to)
265478
265915
  try {
265479
- if (selection.empty && paragraphsInSelection.length === 1)
265916
+ if (selection.empty && originalParagraphsInSelection.length === 1)
265480
265917
  tr.setSelection(Selection.near(tr.doc.resolve(restoredSelectionRange.to), -1));
265481
265918
  else
265482
265919
  tr.setSelection(TextSelection.create(tr.doc, restoredSelectionRange.from, restoredSelectionRange.to));
@@ -265629,16 +266066,56 @@ var Node$13 = class Node$14 {
265629
266066
  uniqueByType.set(typeName, mark2);
265630
266067
  }
265631
266068
  return Array.from(uniqueByType.values());
265632
- }, commands_exports, restartNumbering = ({ editor, tr, state, dispatch }) => {
265633
- const { node: paragraph2 } = findParentNode(isList)(state.selection) || {};
266069
+ }, commands_exports, restartNumbering = ({ editor, tr, state }) => {
266070
+ const { node: paragraph2, pos: paragraphPos } = findParentNode(isList)(state.selection) || {};
265634
266071
  if (!paragraph2)
265635
266072
  return false;
265636
266073
  const { numId, ilvl = 0 } = getResolvedParagraphProperties(paragraph2).numberingProperties || {};
265637
266074
  if (numId == null)
265638
266075
  return false;
265639
- ListHelpers.setLvlOverride(editor, numId, ilvl, { startOverride: 1 });
265640
- if (dispatch)
265641
- dispatch(tr);
266076
+ let hasPrecedingItems = false;
266077
+ state.doc.nodesBetween(0, paragraphPos, (node2) => {
266078
+ if (hasPrecedingItems)
266079
+ return false;
266080
+ if (node2.type.name !== "paragraph")
266081
+ return true;
266082
+ if (getResolvedParagraphProperties(node2)?.numberingProperties?.numId === numId)
266083
+ hasPrecedingItems = true;
266084
+ return false;
266085
+ });
266086
+ if (!hasPrecedingItems) {
266087
+ ListHelpers.setLvlOverride(editor, numId, ilvl, { startOverride: 1 });
266088
+ if (editor.view)
266089
+ tr.setMeta("preventDispatch", true);
266090
+ return true;
266091
+ }
266092
+ const abstractId = ListHelpers.getAllListDefinitions(editor)?.[numId]?.[ilvl]?.abstractId;
266093
+ if (abstractId == null)
266094
+ return false;
266095
+ const { numId: newNumId } = ListHelpers.createNumDefinition(editor, Number(abstractId));
266096
+ ListHelpers.setLvlOverride(editor, newNumId, ilvl, { startOverride: 1 });
266097
+ state.doc.nodesBetween(paragraphPos, state.doc.content.size, (node2, pos) => {
266098
+ if (node2.type.name !== "paragraph")
266099
+ return true;
266100
+ const props = getResolvedParagraphProperties(node2)?.numberingProperties;
266101
+ if (props?.numId === numId)
266102
+ updateNumberingProperties({
266103
+ numId: newNumId,
266104
+ ilvl: props.ilvl ?? 0
266105
+ }, node2, pos, editor, tr);
266106
+ return true;
266107
+ });
266108
+ return true;
266109
+ }, continueNumbering = ({ editor, tr, state }) => {
266110
+ const { node: paragraph2 } = findParentNode(isList)(state.selection) || {};
266111
+ if (!paragraph2)
266112
+ return false;
266113
+ const { numId, ilvl = 0 } = getResolvedParagraphProperties(paragraph2)?.numberingProperties || {};
266114
+ if (numId == null)
266115
+ return false;
266116
+ ListHelpers.removeLvlOverride(editor, numId, ilvl);
266117
+ if (editor.view)
266118
+ tr.setMeta("preventDispatch", true);
265642
266119
  return true;
265643
266120
  }, PIXELS_PER_TWIP, toFiniteNumber$12 = (value) => {
265644
266121
  if (value == null)
@@ -272345,10 +272822,72 @@ var Node$13 = class Node$14 {
272345
272822
  <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"/>
272346
272823
  </svg>`, _hoisted_1$21, _hoisted_2$16, _hoisted_3$12, _hoisted_4$8, _hoisted_5$5, 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>
272347
272824
  `, 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>
272348
- `, 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>', 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>
272825
+ `, 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">
272826
+ <g clip-path="url(#clip0_0_1)">
272827
+ <path d="M260 54C242.3 54 228 68.3 228 86C228 103.7 242.3 118 260 118H480C497.7 118 512 103.7 512 86C512 68.3 497.7 54 480 54H260ZM260 224C242.3 224 228 238.3 228 256C228 273.7 242.3 288 260 288H480C497.7 288 512 273.7 512 256C512 238.3 497.7 224 480 224H260ZM260 394C242.3 394 228 408.3 228 426C228 443.7 242.3 458 260 458H480C497.7 458 512 443.7 512 426C512 408.3 497.7 394 480 394H260Z" fill="currentColor"/>
272828
+ <path d="M131.823 9.18182V111H110.296V29.6151H109.7L86.3828 44.2315V25.1406L111.589 9.18182H131.823ZM163.132 112.293C159.85 112.293 157.033 111.133 154.68 108.812C152.36 106.459 151.2 103.642 151.2 100.361C151.2 97.1127 152.36 94.3286 154.68 92.0085C157.033 89.6884 159.85 88.5284 163.132 88.5284C166.314 88.5284 169.098 89.6884 171.484 92.0085C173.87 94.3286 175.064 97.1127 175.064 100.361C175.064 102.548 174.5 104.554 173.373 106.376C172.279 108.166 170.838 109.608 169.048 110.702C167.258 111.762 165.286 112.293 163.132 112.293Z" fill="currentColor"/>
272829
+ <path d="M62.37 284V268.489L98.6129 234.93C101.695 231.947 104.281 229.263 106.369 226.876C108.49 224.49 110.097 222.153 111.191 219.866C112.285 217.546 112.832 215.044 112.832 212.359C112.832 209.376 112.152 206.808 110.793 204.653C109.434 202.466 107.578 200.792 105.225 199.632C102.872 198.439 100.204 197.842 97.2209 197.842C94.1054 197.842 91.3875 198.472 89.0675 199.732C86.7474 200.991 84.9576 202.797 83.6982 205.151C82.4387 207.504 81.8089 210.304 81.8089 213.553H61.3757C61.3757 206.891 62.8838 201.107 65.8999 196.202C68.916 191.296 73.1418 187.501 78.5774 184.817C84.013 182.132 90.2772 180.79 97.37 180.79C104.662 180.79 111.009 182.082 116.411 184.668C121.847 187.22 126.073 190.766 129.089 195.307C132.105 199.848 133.613 205.051 133.613 210.918C133.613 214.762 132.851 218.557 131.326 222.303C129.835 226.048 127.166 230.207 123.322 234.781C119.477 239.322 114.058 244.774 107.065 251.138L92.1996 265.705V266.401H134.955V284H62.37ZM163.132 285.293C159.85 285.293 157.033 284.133 154.68 281.812C152.36 279.459 151.2 276.642 151.2 273.361C151.2 270.113 152.36 267.329 154.68 265.009C157.033 262.688 159.85 261.528 163.132 261.528C166.314 261.528 169.098 262.688 171.484 265.009C173.87 267.329 175.064 270.113 175.064 273.361C175.064 275.548 174.5 277.554 173.373 279.376C172.279 281.166 170.838 282.608 169.048 283.702C167.258 284.762 165.286 285.293 163.132 285.293Z" fill="currentColor"/>
272830
+ <path d="M98.7745 451.392C91.3503 451.392 84.738 450.116 78.9379 447.564C73.1708 444.979 68.6135 441.432 65.266 436.925C61.9516 432.384 60.2447 427.147 60.1452 421.214H81.8214C81.954 423.7 82.766 425.888 84.2575 427.777C85.7821 429.633 87.8039 431.075 90.3228 432.102C92.8417 433.13 95.6755 433.643 98.8242 433.643C102.105 433.643 105.006 433.063 107.525 431.903C110.043 430.743 112.016 429.136 113.441 427.081C114.866 425.026 115.578 422.656 115.578 419.972C115.578 417.254 114.816 414.851 113.292 412.763C111.8 410.642 109.646 408.984 106.828 407.791C104.044 406.598 100.73 406.001 96.8853 406.001H87.3896V390.192H96.8853C100.133 390.192 103 389.628 105.486 388.501C108.005 387.375 109.961 385.817 111.353 383.828C112.745 381.806 113.441 379.453 113.441 376.768C113.441 374.216 112.828 371.979 111.601 370.057C110.408 368.101 108.718 366.577 106.53 365.483C104.376 364.389 101.857 363.842 98.9734 363.842C96.0567 363.842 93.3886 364.373 90.9691 365.433C88.5496 366.461 86.6107 367.936 85.1523 369.858C83.694 371.78 82.9151 374.034 82.8157 376.619H62.1836C62.283 370.753 63.9568 365.582 67.2049 361.108C70.453 356.634 74.828 353.137 80.3299 350.618C85.8649 348.066 92.1126 346.79 99.0728 346.79C106.099 346.79 112.248 348.066 117.517 350.618C122.787 353.17 126.881 356.617 129.797 360.959C132.747 365.268 134.205 370.107 134.172 375.476C134.205 381.177 132.432 385.933 128.853 389.744C125.306 393.556 120.683 395.975 114.982 397.003V397.798C122.472 398.759 128.173 401.361 132.084 405.604C136.028 409.813 137.984 415.083 137.951 421.413C137.984 427.214 136.31 432.367 132.929 436.875C129.582 441.383 124.958 444.929 119.059 447.514C113.159 450.099 106.398 451.392 98.7745 451.392ZM163.132 451.293C159.85 451.293 157.033 450.133 154.68 447.812C152.36 445.459 151.2 442.642 151.2 439.361C151.2 436.113 152.36 433.329 154.68 431.009C157.033 428.688 159.85 427.528 163.132 427.528C166.314 427.528 169.098 428.688 171.484 431.009C173.87 433.329 175.064 436.113 175.064 439.361C175.064 441.548 174.5 443.554 173.373 445.376C172.279 447.166 170.838 448.608 169.048 449.702C167.258 450.762 165.286 451.293 163.132 451.293Z" fill="currentColor"/>
272831
+ </g>
272832
+ <defs>
272833
+ <clipPath id="clip0_0_1">
272834
+ <rect width="512" height="512" fill="white"/>
272835
+ </clipPath>
272836
+ </defs>
272837
+ </svg>
272838
+ `, list_decimal_paren_solid_default = `<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
272839
+ <g clip-path="url(#clip0_1_12)">
272840
+ <path d="M260 54C242.3 54 228 68.3 228 86C228 103.7 242.3 118 260 118H480C497.7 118 512 103.7 512 86C512 68.3 497.7 54 480 54H260ZM260 224C242.3 224 228 238.3 228 256C228 273.7 242.3 288 260 288H480C497.7 288 512 273.7 512 256C512 238.3 497.7 224 480 224H260ZM260 394C242.3 394 228 408.3 228 426C228 443.7 242.3 458 260 458H480C497.7 458 512 443.7 512 426C512 408.3 497.7 394 480 394H260Z" fill="currentColor"/>
272841
+ <path d="M119.768 25.1818V127H98.2415V45.6151H97.6449L74.3281 60.2315V41.1406L99.5341 25.1818H119.768ZM179.863 76.0909C179.863 88.4536 178.205 99.822 174.891 110.196C171.61 120.57 166.572 130.182 159.777 139.031H139.543C142.128 135.75 144.531 131.74 146.752 127C148.972 122.26 150.911 117.09 152.569 111.489C154.226 105.854 155.518 100.021 156.446 93.9886C157.374 87.9564 157.838 81.9905 157.838 76.0909C157.838 68.2358 157.026 60.3144 155.402 52.3267C153.811 44.3059 151.624 36.8816 148.84 30.054C146.089 23.1932 142.99 17.5753 139.543 13.2003H159.777C166.572 22.0497 171.61 31.6615 174.891 42.0355C178.205 52.4096 179.863 63.7614 179.863 76.0909Z" fill="currentColor"/>
272842
+ <path d="M55.7841 300V284.489L92.027 250.93C95.1094 247.947 97.6946 245.263 99.7827 242.876C101.904 240.49 103.511 238.153 104.605 235.866C105.699 233.546 106.246 231.044 106.246 228.359C106.246 225.376 105.566 222.808 104.207 220.653C102.848 218.466 100.992 216.792 98.6392 215.632C96.286 214.439 93.6179 213.842 90.6349 213.842C87.5194 213.842 84.8016 214.472 82.4815 215.732C80.1615 216.991 78.3717 218.797 77.1122 221.151C75.8527 223.504 75.223 226.304 75.223 229.553H54.7898C54.7898 222.891 56.2978 217.107 59.3139 212.202C62.33 207.296 66.5559 203.501 71.9915 200.817C77.4271 198.132 83.6913 196.79 90.7841 196.79C98.0758 196.79 104.423 198.082 109.825 200.668C115.261 203.22 119.487 206.766 122.503 211.307C125.519 215.848 127.027 221.051 127.027 226.918C127.027 230.762 126.265 234.557 124.74 238.303C123.249 242.048 120.58 246.207 116.736 250.781C112.891 255.322 107.472 260.774 100.479 267.138L85.6136 281.705V282.401H128.369V300H55.7841ZM179.863 249.091C179.863 261.454 178.205 272.822 174.891 283.196C171.61 293.57 166.572 303.182 159.777 312.031H139.543C142.128 308.75 144.531 304.74 146.752 300C148.972 295.26 150.911 290.09 152.569 284.489C154.226 278.854 155.518 273.021 156.446 266.989C157.374 260.956 157.838 254.991 157.838 249.091C157.838 241.236 157.026 233.314 155.402 225.327C153.811 217.306 151.624 209.882 148.84 203.054C146.089 196.193 142.99 190.575 139.543 186.2H159.777C166.572 195.05 171.61 204.661 174.891 215.036C178.205 225.41 179.863 236.761 179.863 249.091Z" fill="currentColor"/>
272843
+ <path d="M89.3175 473.392C81.8932 473.392 75.281 472.116 69.4808 469.564C63.7138 466.979 59.1565 463.432 55.8089 458.925C52.4946 454.384 50.7876 449.147 50.6882 443.214H72.3643C72.4969 445.7 73.3089 447.888 74.8004 449.777C76.325 451.633 78.3468 453.075 80.8658 454.102C83.3847 455.13 86.2185 455.643 89.3672 455.643C92.6484 455.643 95.5485 455.063 98.0675 453.903C100.586 452.743 102.558 451.136 103.984 449.081C105.409 447.026 106.121 444.656 106.121 441.972C106.121 439.254 105.359 436.851 103.835 434.763C102.343 432.642 100.189 430.984 97.3715 429.791C94.5874 428.598 91.273 428.001 87.4283 428.001H77.9325V412.192H87.4283C90.6764 412.192 93.5433 411.628 96.0291 410.501C98.5481 409.375 100.504 407.817 101.896 405.828C103.288 403.806 103.984 401.453 103.984 398.768C103.984 396.216 103.371 393.979 102.144 392.057C100.951 390.101 99.2607 388.577 97.0732 387.483C94.9188 386.389 92.3999 385.842 89.5163 385.842C86.5997 385.842 83.9316 386.373 81.5121 387.433C79.0926 388.461 77.1536 389.936 75.6953 391.858C74.237 393.78 73.4581 396.034 73.3587 398.619H52.7266C52.826 392.753 54.4998 387.582 57.7479 383.108C60.996 378.634 65.371 375.137 70.8729 372.618C76.4079 370.066 82.6555 368.79 89.6158 368.79C96.6423 368.79 102.79 370.066 108.06 372.618C113.33 375.17 117.424 378.617 120.34 382.959C123.29 387.268 124.748 392.107 124.715 397.476C124.748 403.177 122.975 407.933 119.396 411.744C115.849 415.556 111.226 417.975 105.525 419.003V419.798C113.015 420.759 118.716 423.361 122.627 427.604C126.571 431.813 128.527 437.083 128.494 443.413C128.527 449.214 126.853 454.367 123.472 458.875C120.125 463.383 115.501 466.929 109.602 469.514C103.702 472.099 96.9406 473.392 89.3175 473.392ZM179.863 421.091C179.863 433.454 178.205 444.822 174.891 455.196C171.61 465.57 166.572 475.182 159.777 484.031H139.543C142.128 480.75 144.531 476.74 146.752 472C148.972 467.26 150.911 462.09 152.569 456.489C154.226 450.854 155.518 445.021 156.446 438.989C157.374 432.956 157.838 426.991 157.838 421.091C157.838 413.236 157.026 405.314 155.402 397.327C153.811 389.306 151.624 381.882 148.84 375.054C146.089 368.193 142.99 362.575 139.543 358.2H159.777C166.572 367.05 171.61 376.661 174.891 387.036C178.205 397.41 179.863 408.761 179.863 421.091Z" fill="currentColor"/>
272844
+ </g>
272845
+ <defs>
272846
+ <clipPath id="clip0_1_12">
272847
+ <rect width="512" height="512" fill="white"/>
272848
+ </clipPath>
272849
+ </defs>
272850
+ </svg>
272851
+ `, list_upper_roman_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272852
+ <path fill="currentColor" d="M260 54c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L260 54zm0 170c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-220 0zm0 170c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-220 0z"/>
272853
+ <text fill="currentColor" font-family="Georgia, serif" font-weight="bold" font-size="120" text-anchor="end" x="210" y="86" dominant-baseline="central">I.</text>
272854
+ <text fill="currentColor" font-family="Georgia, serif" font-weight="bold" font-size="120" text-anchor="end" x="210" y="256" dominant-baseline="central">II.</text>
272855
+ <text fill="currentColor" font-family="Georgia, serif" font-weight="bold" font-size="120" text-anchor="end" x="210" y="426" dominant-baseline="central">III.</text>
272856
+ </svg>
272857
+ `, list_lower_roman_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272858
+ <path fill="currentColor" d="M260 54C242.3 54 228 68.3 228 86C228 103.7 242.3 118 260 118H480C497.7 118 512 103.7 512 86C512 68.3 497.7 54 480 54H260ZM260 224C242.3 224 228 238.3 228 256C228 273.7 242.3 288 260 288H480C497.7 288 512 273.7 512 256C512 238.3 497.7 224 480 224H260ZM260 394C242.3 394 228 408.3 228 426C228 443.7 242.3 458 260 458H480C497.7 458 512 443.7 512 426C512 408.3 497.7 394 480 394H260Z"/>
272859
+ <text fill="currentColor" font-family="Georgia, serif" font-weight="bold" font-size="120" text-anchor="end" x="210" y="86" dominant-baseline="central">i.</text>
272860
+ <text fill="currentColor" font-family="Georgia, serif" font-weight="bold" font-size="120" text-anchor="end" x="210" y="256" dominant-baseline="central">ii.</text>
272861
+ <text fill="currentColor" font-family="Georgia, serif" font-weight="bold" font-size="120" text-anchor="end" x="210" y="426" dominant-baseline="central">iii.</text>
272862
+ </svg>
272863
+ `, list_upper_alpha_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272864
+ <path fill="currentColor" d="M260 54c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L260 54zm0 170c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-220 0zm0 170c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-220 0z"/>
272865
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="86" dominant-baseline="central">A.</text>
272866
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="256" dominant-baseline="central">B.</text>
272867
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="426" dominant-baseline="central">C.</text>
272868
+ </svg>
272869
+ `, list_upper_alpha_paren_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272870
+ <path fill="currentColor" d="M260 54c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L260 54zm0 170c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-220 0zm0 170c-17.7 0-32 14.3-32 32s14.3 32 32 32l220 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-220 0z"/>
272871
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="86" dominant-baseline="central">A)</text>
272872
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="256" dominant-baseline="central">B)</text>
272873
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="426" dominant-baseline="central">C)</text>
272874
+ </svg>
272875
+ `, list_lower_alpha_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272876
+ <path fill="currentColor" d="M260 54C242.3 54 228 68.3 228 86C228 103.7 242.3 118 260 118H480C497.7 118 512 103.7 512 86C512 68.3 497.7 54 480 54H260ZM260 224C242.3 224 228 238.3 228 256C228 273.7 242.3 288 260 288H480C497.7 288 512 273.7 512 256C512 238.3 497.7 224 480 224H260ZM260 394C242.3 394 228 408.3 228 426C228 443.7 242.3 458 260 458H480C497.7 458 512 443.7 512 426C512 408.3 497.7 394 480 394H260Z"/>
272877
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="74" dominant-baseline="central">a.</text>
272878
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="244" dominant-baseline="central">b.</text>
272879
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="414" dominant-baseline="central">c.</text>
272880
+ </svg>
272881
+ `, list_lower_alpha_paren_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272882
+ <path fill="currentColor" d="M260 54C242.3 54 228 68.3 228 86C228 103.7 242.3 118 260 118H480C497.7 118 512 103.7 512 86C512 68.3 497.7 54 480 54H260ZM260 224C242.3 224 228 238.3 228 256C228 273.7 242.3 288 260 288H480C497.7 288 512 273.7 512 256C512 238.3 497.7 224 480 224H260ZM260 394C242.3 394 228 408.3 228 426C228 443.7 242.3 458 260 458H480C497.7 458 512 443.7 512 426C512 408.3 497.7 394 480 394H260Z"/>
272883
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="74" dominant-baseline="central">a)</text>
272884
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="244" dominant-baseline="central">b)</text>
272885
+ <text fill="currentColor" font-family="sans-serif" font-weight="bold" font-size="140" text-anchor="end" x="210" y="414" dominant-baseline="central">c)</text>
272886
+ </svg>
272887
+ `, 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>
272349
272888
  `, 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>
272350
272889
  `, 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>
272351
- `, 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$20, AlignmentButtons_default, _hoisted_1$19, BulletStyleButtons_default, _hoisted_1$18, _hoisted_2$15, _hoisted_3$11, _hoisted_4$7, _hoisted_5$4, _hoisted_6$2, DocumentMode_default, _hoisted_1$17, _hoisted_2$14, LinkedStyle_default, _hoisted_1$16, _hoisted_2$13, _hoisted_3$10, _hoisted_4$6, _hoisted_5$3, _hoisted_6$1, _hoisted_7$1, _hoisted_8$1, _hoisted_9$1, _hoisted_10$1, _hoisted_11$1, _hoisted_12$1, _hoisted_13, _hoisted_14, LinkInput_default, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, 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>
272890
+ `, 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$20, AlignmentButtons_default, _hoisted_1$19, StyleButtonsList_default, bulletStyleButtons, numberedStyleButtons, _hoisted_1$18, _hoisted_2$15, _hoisted_3$11, _hoisted_4$7, _hoisted_5$4, _hoisted_6$2, DocumentMode_default, _hoisted_1$17, _hoisted_2$14, LinkedStyle_default, _hoisted_1$16, _hoisted_2$13, _hoisted_3$10, _hoisted_4$6, _hoisted_5$3, _hoisted_6$1, _hoisted_7$1, _hoisted_8$1, _hoisted_9$1, _hoisted_10$1, _hoisted_11$1, _hoisted_12$1, _hoisted_13, _hoisted_14, LinkInput_default, _hoisted_1$15, _hoisted_2$12, _hoisted_3$9, 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>
272352
272891
  `, _hoisted_1$14, _hoisted_2$11, _hoisted_3$8, IconGrid_default, closeDropdown$1 = (dropdown) => {
272353
272892
  dropdown.expand.value = false;
272354
272893
  }, makeColorOption = (color2, label = null) => {
@@ -272901,7 +273440,6 @@ var Node$13 = class Node$14 {
272901
273440
  hasCaret: true,
272902
273441
  tooltip: toolbarTexts$1.bulletList,
272903
273442
  restoreEditorFocus: true,
272904
- suppressActiveHighlight: true,
272905
273443
  attributes: { ariaLabel: "Bullet list" },
272906
273444
  options: [{
272907
273445
  type: "render",
@@ -272918,7 +273456,9 @@ var Node$13 = class Node$14 {
272918
273456
  argument: style2
272919
273457
  });
272920
273458
  };
272921
- return exports_vue.h(BulletStyleButtons_default, {
273459
+ return exports_vue.h(StyleButtonsList_default, {
273460
+ buttons: bulletStyleButtons,
273461
+ iconSize: 25,
272922
273462
  selectedStyle: bulletedList.selectedValue.value,
272923
273463
  onSelect: handleSelect
272924
273464
  });
@@ -272926,14 +273466,39 @@ var Node$13 = class Node$14 {
272926
273466
  }]
272927
273467
  });
272928
273468
  const numberedList = useToolbarItem({
272929
- type: "button",
273469
+ type: "dropdown",
272930
273470
  name: "numberedlist",
272931
- command: "toggleOrderedList",
273471
+ command: "toggleOrderedListStyle",
273472
+ splitButton: true,
273473
+ splitButtonCommand: "toggleOrderedList",
272932
273474
  icon: toolbarIcons$1.numberedList,
272933
- active: false,
273475
+ hasCaret: true,
272934
273476
  tooltip: toolbarTexts$1.numberedList,
272935
273477
  restoreEditorFocus: true,
272936
- attributes: { ariaLabel: "Numbered list" }
273478
+ attributes: { ariaLabel: "Numbered list" },
273479
+ options: [{
273480
+ type: "render",
273481
+ key: "numbered-style-buttons",
273482
+ render: () => {
273483
+ const handleSelect = (style2) => {
273484
+ closeDropdown(numberedList);
273485
+ const item = {
273486
+ ...numberedList,
273487
+ command: "toggleOrderedListStyle"
273488
+ };
273489
+ superToolbar.emitCommand({
273490
+ item,
273491
+ argument: style2
273492
+ });
273493
+ };
273494
+ return exports_vue.h(StyleButtonsList_default, {
273495
+ buttons: numberedStyleButtons,
273496
+ iconSize: 30,
273497
+ selectedStyle: numberedList.selectedValue.value,
273498
+ onSelect: handleSelect
273499
+ });
273500
+ }
273501
+ }]
272937
273502
  });
272938
273503
  const indentLeft = useToolbarItem({
272939
273504
  type: "button",
@@ -277457,7 +278022,85 @@ menclose::after {
277457
278022
  styleEl.textContent = MATH_MENCLOSE_STYLES;
277458
278023
  doc$12.head?.appendChild(styleEl);
277459
278024
  mathMencloseStylesInjected = true;
277460
- }, gradientIdCounter = 0, isBetweenBorderNone = (borders) => {
278025
+ }, gradientIdCounter = 0, getFiniteNumber = (value) => {
278026
+ if (typeof value !== "number" || !Number.isFinite(value))
278027
+ return;
278028
+ return value;
278029
+ }, getNonNegativeFiniteNumber = (value) => {
278030
+ const numericValue = getFiniteNumber(value);
278031
+ if (numericValue == null || numericValue < 0)
278032
+ return;
278033
+ return numericValue;
278034
+ }, getMarkerTextWidthPx = (marker, measureMarkerText) => {
278035
+ const glyphWidthPx = getNonNegativeFiniteNumber(marker.glyphWidthPx);
278036
+ if (glyphWidthPx != null)
278037
+ return glyphWidthPx;
278038
+ if (marker.markerText) {
278039
+ const safeMeasuredWidthPx = getNonNegativeFiniteNumber(measureMarkerText(marker.markerText, marker));
278040
+ if (safeMeasuredWidthPx != null)
278041
+ return safeMeasuredWidthPx;
278042
+ }
278043
+ return getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0;
278044
+ }, getMarkerBoxWidthPx = (marker, markerTextWidthPx) => Math.max(getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0, markerTextWidthPx), getExplicitFirstLineMarkerStartPx = (wordLayout, marker) => {
278045
+ if (wordLayout?.firstLineIndentMode !== true)
278046
+ return;
278047
+ return getFiniteNumber(marker.markerX);
278048
+ }, getMarkerAnchorPx = (indentLeft, firstLine, hanging) => indentLeft - hanging + firstLine, getMarkerStartPx = (anchorPx, justification, markerTextWidthPx) => {
278049
+ if (justification === "right")
278050
+ return anchorPx - markerTextWidthPx;
278051
+ if (justification === "center")
278052
+ return anchorPx - markerTextWidthPx / 2;
278053
+ return anchorPx;
278054
+ }, getNextExplicitTabStopPx = (tabsPx, currentPosPx) => {
278055
+ if (!Array.isArray(tabsPx))
278056
+ return;
278057
+ for (const tabPx of tabsPx)
278058
+ if (typeof tabPx === "number" && Number.isFinite(tabPx) && tabPx > currentPosPx)
278059
+ return tabPx;
278060
+ }, getFirstLineTextStartTargetPx = (wordLayout, marker) => {
278061
+ return getFiniteNumber(marker.textStartX) ?? getFiniteNumber(wordLayout?.textStartPx);
278062
+ }, getNextDefaultTabStopPx = (currentPosPx) => {
278063
+ const remainderPx = currentPosPx % 48;
278064
+ if (remainderPx === 0)
278065
+ return currentPosPx + 48;
278066
+ return currentPosPx + 48 - remainderPx;
278067
+ }, getMinimumReadableTextStartPx = (markerContentEndPx, gutterWidthPx) => markerContentEndPx + gutterWidthPx, resolveExplicitStandardTextStartPx = (explicitTextStartPx, markerContentEndPx, gutterWidthPx) => {
278068
+ if (explicitTextStartPx == null)
278069
+ return;
278070
+ if (explicitTextStartPx > markerContentEndPx)
278071
+ return explicitTextStartPx;
278072
+ if (explicitTextStartPx > 0) {
278073
+ const nextTabStopPx = getNextDefaultTabStopPx(markerContentEndPx);
278074
+ const minReadablePx = getMinimumReadableTextStartPx(markerContentEndPx, gutterWidthPx);
278075
+ return Math.max(nextTabStopPx, minReadablePx);
278076
+ }
278077
+ }, getFiniteNonNegativeNumber = (value) => {
278078
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0)
278079
+ return;
278080
+ return value;
278081
+ }, resolvePainterMarkerTextWidth = (markerTextWidthPx, marker) => getFiniteNonNegativeNumber(markerTextWidthPx) ?? getFiniteNonNegativeNumber(marker.glyphWidthPx) ?? getFiniteNonNegativeNumber(marker.markerBoxWidthPx) ?? 0, resolvePainterListMarkerGeometry = ({ wordLayout, indentLeftPx, hangingIndentPx, firstLineIndentPx, markerTextWidthPx }) => resolveListMarkerGeometry(wordLayout, indentLeftPx, firstLineIndentPx, hangingIndentPx, (_markerText, marker) => resolvePainterMarkerTextWidth(markerTextWidthPx, marker)), resolvePainterListTextStartPx = ({ wordLayout, indentLeftPx, hangingIndentPx, firstLineIndentPx, markerTextWidthPx }) => resolveListTextStartPx(wordLayout, indentLeftPx, firstLineIndentPx, hangingIndentPx, (_markerText, marker) => resolvePainterMarkerTextWidth(markerTextWidthPx, marker)), createListMarkerElement = (doc$12, markerText, run2, sourceAnchor) => {
278082
+ const markerContainer = doc$12.createElement("span");
278083
+ markerContainer.classList.add(DOM_CLASS_NAMES.LIST_MARKER);
278084
+ markerContainer.style.display = "inline-block";
278085
+ markerContainer.style.wordSpacing = "0px";
278086
+ const markerEl = doc$12.createElement("span");
278087
+ markerEl.classList.add("superdoc-paragraph-marker");
278088
+ markerEl.textContent = markerText;
278089
+ markerEl.style.pointerEvents = "none";
278090
+ markerEl.style.fontFamily = toCssFontFamily(run2.fontFamily) ?? run2.fontFamily ?? "";
278091
+ if (run2.fontSize != null)
278092
+ markerEl.style.fontSize = `${run2.fontSize}px`;
278093
+ markerEl.style.fontWeight = run2.bold ? "bold" : "";
278094
+ markerEl.style.fontStyle = run2.italic ? "italic" : "";
278095
+ if (run2.color)
278096
+ markerEl.style.color = run2.color;
278097
+ if (run2.letterSpacing != null)
278098
+ markerEl.style.letterSpacing = `${run2.letterSpacing}px`;
278099
+ markerContainer.appendChild(markerEl);
278100
+ if (sourceAnchor)
278101
+ applySourceAnchorDataset(markerEl, sourceAnchor);
278102
+ return markerContainer;
278103
+ }, isBetweenBorderNone = (borders) => {
277461
278104
  if (!borders?.between)
277462
278105
  return true;
277463
278106
  return borders.between.style === "none";
@@ -277741,60 +278384,7 @@ menclose::after {
277741
278384
  line.el.style.marginLeft = `${marginLeft}px`;
277742
278385
  line.el.style.marginRight = `${marginRight}px`;
277743
278386
  });
277744
- }, getFiniteNumber = (value) => {
277745
- if (typeof value !== "number" || !Number.isFinite(value))
277746
- return;
277747
- return value;
277748
- }, getNonNegativeFiniteNumber = (value) => {
277749
- const numericValue = getFiniteNumber(value);
277750
- if (numericValue == null || numericValue < 0)
277751
- return;
277752
- return numericValue;
277753
- }, getMarkerTextWidthPx = (marker, measureMarkerText) => {
277754
- const glyphWidthPx = getNonNegativeFiniteNumber(marker.glyphWidthPx);
277755
- if (glyphWidthPx != null)
277756
- return glyphWidthPx;
277757
- if (marker.markerText) {
277758
- const safeMeasuredWidthPx = getNonNegativeFiniteNumber(measureMarkerText(marker.markerText, marker));
277759
- if (safeMeasuredWidthPx != null)
277760
- return safeMeasuredWidthPx;
277761
- }
277762
- return getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0;
277763
- }, getMarkerBoxWidthPx = (marker, markerTextWidthPx) => Math.max(getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0, markerTextWidthPx), getExplicitFirstLineMarkerStartPx = (wordLayout, marker) => {
277764
- if (wordLayout?.firstLineIndentMode !== true)
277765
- return;
277766
- return getFiniteNumber(marker.markerX);
277767
- }, getMarkerAnchorPx = (indentLeft, firstLine, hanging) => indentLeft - hanging + firstLine, getMarkerStartPx = (anchorPx, justification, markerTextWidthPx) => {
277768
- if (justification === "right")
277769
- return anchorPx - markerTextWidthPx;
277770
- if (justification === "center")
277771
- return anchorPx - markerTextWidthPx / 2;
277772
- return anchorPx;
277773
- }, getNextExplicitTabStopPx = (tabsPx, currentPosPx) => {
277774
- if (!Array.isArray(tabsPx))
277775
- return;
277776
- for (const tabPx of tabsPx)
277777
- if (typeof tabPx === "number" && Number.isFinite(tabPx) && tabPx > currentPosPx)
277778
- return tabPx;
277779
- }, getFirstLineTextStartTargetPx = (wordLayout, marker) => {
277780
- return getFiniteNumber(marker.textStartX) ?? getFiniteNumber(wordLayout?.textStartPx);
277781
- }, getNextDefaultTabStopPx = (currentPosPx) => {
277782
- const remainderPx = currentPosPx % 48;
277783
- if (remainderPx === 0)
277784
- return currentPosPx + 48;
277785
- return currentPosPx + 48 - remainderPx;
277786
- }, getMinimumReadableTextStartPx = (markerContentEndPx, gutterWidthPx) => markerContentEndPx + gutterWidthPx, resolveExplicitStandardTextStartPx = (explicitTextStartPx, markerContentEndPx, gutterWidthPx) => {
277787
- if (explicitTextStartPx == null)
277788
- return;
277789
- if (explicitTextStartPx > markerContentEndPx)
277790
- return explicitTextStartPx;
277791
- if (explicitTextStartPx > 0)
277792
- return getMinimumReadableTextStartPx(markerContentEndPx, gutterWidthPx);
277793
- }, getFiniteNonNegativeNumber = (value) => {
277794
- if (typeof value !== "number" || !Number.isFinite(value) || value < 0)
277795
- return;
277796
- return value;
277797
- }, resolvePainterMarkerTextWidth = (markerTextWidthPx, marker) => getFiniteNonNegativeNumber(markerTextWidthPx) ?? getFiniteNonNegativeNumber(marker.glyphWidthPx) ?? getFiniteNonNegativeNumber(marker.markerBoxWidthPx) ?? 0, resolvePainterListMarkerGeometry = ({ wordLayout, indentLeftPx, hangingIndentPx, firstLineIndentPx, markerTextWidthPx }) => resolveListMarkerGeometry(wordLayout, indentLeftPx, firstLineIndentPx, hangingIndentPx, (_markerText, marker) => resolvePainterMarkerTextWidth(markerTextWidthPx, marker)), resolvePainterListTextStartPx = ({ wordLayout, indentLeftPx, hangingIndentPx, firstLineIndentPx, markerTextWidthPx }) => resolveListTextStartPx(wordLayout, indentLeftPx, firstLineIndentPx, hangingIndentPx, (_markerText, marker) => resolvePainterMarkerTextWidth(markerTextWidthPx, marker)), normalizeSpan = (span) => {
278387
+ }, normalizeSpan = (span) => {
277798
278388
  if (typeof span !== "number" || !Number.isFinite(span) || span < 1)
277799
278389
  return 1;
277800
278390
  return Math.floor(span);
@@ -281834,6 +282424,12 @@ menclose::after {
281834
282424
  return false;
281835
282425
  if (resolveTrackedChangesEnabled(a2.attrs, true) !== resolveTrackedChangesEnabled(b$1.attrs, true))
281836
282426
  return false;
282427
+ const aMarker = a2.attrs?.wordLayout?.marker;
282428
+ const bMarker = b$1.attrs?.wordLayout?.marker;
282429
+ if ((aMarker?.markerText ?? null) !== (bMarker?.markerText ?? null))
282430
+ return false;
282431
+ if ((aMarker?.justification ?? null) !== (bMarker?.justification ?? null))
282432
+ return false;
281837
282433
  if (!paragraphAttrsEqual(a2.attrs, b$1.attrs))
281838
282434
  return false;
281839
282435
  if (a2.runs.length !== b$1.runs.length)
@@ -286752,11 +287348,18 @@ menclose::after {
286752
287348
  } else
286753
287349
  this.#syncNonBodyCommentActivation(event, target, bodyEditor);
286754
287350
  const isNoteEditing = activeNoteSession != null;
286755
- const useActiveSurfaceHitTest = sessionMode !== "body" || activeStorySession != null;
286756
- const editor = sessionMode === "body" && !isNoteEditing ? bodyEditor : this.#deps.getActiveEditor();
286757
- if (sessionMode !== "body") {
287351
+ let currentSessionMode = sessionMode;
287352
+ let useActiveSurfaceHitTest = currentSessionMode !== "body" || activeStorySession != null;
287353
+ let editor = currentSessionMode === "body" && !isNoteEditing ? bodyEditor : this.#deps.getActiveEditor();
287354
+ if (currentSessionMode !== "body") {
286758
287355
  if (this.#handleClickInHeaderFooterMode(event, x, y$1, normalizedPoint.pageIndex, normalizedPoint.pageLocalY))
286759
287356
  return;
287357
+ if ((this.#deps.getHeaderFooterSession()?.session?.mode ?? "body") === "body" && !isNoteEditing) {
287358
+ activeStorySession = this.#deps.getActiveStorySession?.() ?? null;
287359
+ currentSessionMode = "body";
287360
+ useActiveSurfaceHitTest = activeStorySession != null;
287361
+ editor = bodyEditor;
287362
+ }
286760
287363
  }
286761
287364
  if (this.#callbacks.hitTestHeaderFooterRegion?.(x, y$1, normalizedPoint.pageIndex, normalizedPoint.pageLocalY)) {
286762
287365
  if (sessionMode === "body") {
@@ -286764,10 +287367,12 @@ menclose::after {
286764
287367
  return;
286765
287368
  }
286766
287369
  }
286767
- if (!useActiveSurfaceHitTest && isOutsidePageBodyContent(layoutState.layout, x, normalizedPoint.pageIndex, normalizedPoint.pageLocalY)) {
286768
- event.preventDefault();
286769
- this.#focusEditor();
286770
- return;
287370
+ if (!useActiveSurfaceHitTest) {
287371
+ if (!Number.isFinite(normalizedPoint.pageIndex) || isOutsidePageBodyContent(layoutState.layout, x, normalizedPoint.pageIndex, normalizedPoint.pageLocalY)) {
287372
+ event.preventDefault();
287373
+ this.#focusEditor();
287374
+ return;
287375
+ }
286771
287376
  }
286772
287377
  const { rawHit, hit } = this.#resolveSelectionPointerHit({
286773
287378
  layoutState,
@@ -290744,18 +291349,18 @@ menclose::after {
290744
291349
  return;
290745
291350
  console.log(...args$1);
290746
291351
  }, 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;
290747
- var init_src_deKdT_sq_es = __esm(() => {
291352
+ var init_src_ItIaPxzW_es = __esm(() => {
290748
291353
  init_rolldown_runtime_Bg48TavK_es();
290749
- init_SuperConverter_ing_1fvK_es();
291354
+ init_SuperConverter_D1o6_yKI_es();
290750
291355
  init_jszip_C49i9kUs_es();
290751
291356
  init_uuid_qzgm05fK_es();
290752
- init_create_headless_toolbar_CUl2z6Fd_es();
291357
+ init_create_headless_toolbar_CJ0iQq1T_es();
290753
291358
  init_constants_DrU4EASo_es();
290754
291359
  init_dist_B8HfvhaK_es();
290755
291360
  init_unified_Dsuw2be5_es();
290756
291361
  init_remark_gfm_BhnWr3yf_es();
290757
291362
  init_remark_stringify_6MMJfY0k_es();
290758
- init_DocxZipper_CUX64E5K_es();
291363
+ init_DocxZipper_Dh4RtvcE_es();
290759
291364
  init__plugin_vue_export_helper_HmhZBO0u_es();
290760
291365
  init_eventemitter3_UwU_CLPU_es();
290761
291366
  init_errors_C_DoKMoN_es();
@@ -293758,7 +294363,11 @@ ${err.toString()}`);
293758
294363
  toggleBulletListStyle: (style2) => (params$1) => {
293759
294364
  return toggleList("bulletList", style2)(params$1);
293760
294365
  },
293761
- restartNumbering: () => restartNumbering
294366
+ toggleOrderedListStyle: (style2) => (params$1) => {
294367
+ return toggleList("orderedList", null, style2)(params$1);
294368
+ },
294369
+ restartNumbering: () => restartNumbering,
294370
+ continueNumbering: () => continueNumbering
293762
294371
  };
293763
294372
  },
293764
294373
  addPmPlugins() {
@@ -308936,6 +309545,7 @@ function print() { __p += __j.call(arguments, '') }
308936
309545
  SDT_GROUP_HOVER: "sdt-group-hover",
308937
309546
  IMAGE_FRAGMENT: "superdoc-image-fragment",
308938
309547
  INLINE_IMAGE: "superdoc-inline-image",
309548
+ LIST_MARKER: "superdoc-list-marker",
308939
309549
  INLINE_IMAGE_CLIP_WRAPPER: "superdoc-inline-image-clip-wrapper",
308940
309550
  ANNOTATION: "annotation",
308941
309551
  ANNOTATION_CONTENT: "annotation-content",
@@ -309501,6 +310111,14 @@ function print() { __p += __j.call(arguments, '') }
309501
310111
  bulletListCircle: list_circle_solid_default,
309502
310112
  bulletListSquare: list_square_solid_default,
309503
310113
  numberedList: list_ol_solid_default,
310114
+ numberedListDecimal: list_decimal_solid_default,
310115
+ numberedListDecimalParen: list_decimal_paren_solid_default,
310116
+ numberedListUpperRoman: list_upper_roman_solid_default,
310117
+ numberedListLowerRoman: list_lower_roman_solid_default,
310118
+ numberedListUpperAlpha: list_upper_alpha_solid_default,
310119
+ numberedListUpperAlphaParen: list_upper_alpha_paren_solid_default,
310120
+ numberedListLowerAlpha: list_lower_alpha_solid_default,
310121
+ numberedListLowerAlphaParen: list_lower_alpha_paren_solid_default,
309504
310122
  indentLeft: outdent_solid_default,
309505
310123
  indentRight: indent_solid_default,
309506
310124
  pageBreak: file_half_dashed_solid_default,
@@ -309652,35 +310270,32 @@ function print() { __p += __j.call(arguments, '') }
309652
310270
  "aria-label",
309653
310271
  "onKeydown"
309654
310272
  ];
309655
- BulletStyleButtons_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
309656
- __name: "BulletStyleButtons",
309657
- props: { selectedStyle: {
309658
- type: String,
309659
- default: null
309660
- } },
310273
+ StyleButtonsList_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
310274
+ __name: "StyleButtonsList",
310275
+ props: {
310276
+ buttons: {
310277
+ type: Array,
310278
+ required: true
310279
+ },
310280
+ selectedStyle: {
310281
+ type: String,
310282
+ default: null
310283
+ },
310284
+ iconSize: {
310285
+ type: Number,
310286
+ default: 25
310287
+ }
310288
+ },
309661
310289
  emits: ["select"],
309662
310290
  setup(__props, { emit: __emit }) {
309663
310291
  const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
309664
310292
  const emit = __emit;
309665
310293
  const props = __props;
309666
310294
  const buttonRefs = exports_vue.ref([]);
309667
- const bulletButtons = [
309668
- {
309669
- key: "disc",
309670
- icon: toolbarIcons.bulletListDisc,
309671
- ariaLabel: "Opaque circle"
309672
- },
309673
- {
309674
- key: "circle",
309675
- icon: toolbarIcons.bulletListCircle,
309676
- ariaLabel: "Outline circle"
309677
- },
309678
- {
309679
- key: "square",
309680
- icon: toolbarIcons.bulletListSquare,
309681
- ariaLabel: "Opaque square"
309682
- }
309683
- ];
310295
+ const iconStyle = exports_vue.computed(() => ({
310296
+ width: `${props.iconSize}px`,
310297
+ height: `${props.iconSize}px`
310298
+ }));
309684
310299
  const select2 = (key2) => {
309685
310300
  emit("select", key2);
309686
310301
  };
@@ -309711,7 +310326,7 @@ function print() { __p += __j.call(arguments, '') }
309711
310326
  moveToNextButton(index2);
309712
310327
  break;
309713
310328
  case "Enter":
309714
- select2(bulletButtons[index2].key);
310329
+ select2(props.buttons[index2].key);
309715
310330
  break;
309716
310331
  default:
309717
310332
  break;
@@ -309725,10 +310340,11 @@ function print() { __p += __j.call(arguments, '') }
309725
310340
  }
309726
310341
  });
309727
310342
  return (_ctx, _cache) => {
309728
- return exports_vue.openBlock(), exports_vue.createElementBlock("div", { class: exports_vue.normalizeClass(["bullet-style-buttons", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]) }, [(exports_vue.openBlock(), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(bulletButtons, (button, index2) => {
309729
- return exports_vue.createElementVNode("div", {
310343
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", { class: exports_vue.normalizeClass(["style-buttons-list", { "high-contrast": exports_vue.unref(isHighContrastMode$1) }]) }, [(exports_vue.openBlock(true), exports_vue.createElementBlock(exports_vue.Fragment, null, exports_vue.renderList(props.buttons, (button, index2) => {
310344
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
309730
310345
  key: button.key,
309731
310346
  class: exports_vue.normalizeClass(["button-icon", { selected: props.selectedStyle === button.key }]),
310347
+ style: exports_vue.normalizeStyle(iconStyle.value),
309732
310348
  onClick: ($event) => select2(button.key),
309733
310349
  innerHTML: button.icon,
309734
310350
  role: "menuitem",
@@ -309737,11 +310353,70 @@ function print() { __p += __j.call(arguments, '') }
309737
310353
  ref_key: "buttonRefs",
309738
310354
  ref: buttonRefs,
309739
310355
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
309740
- }, null, 42, _hoisted_1$19);
309741
- }), 64))], 2);
310356
+ }, null, 46, _hoisted_1$19);
310357
+ }), 128))], 2);
309742
310358
  };
309743
310359
  }
309744
- }, [["__scopeId", "data-v-e1b3c81e"]]);
310360
+ }, [["__scopeId", "data-v-d374ab76"]]);
310361
+ bulletStyleButtons = [
310362
+ {
310363
+ key: "disc",
310364
+ icon: toolbarIcons.bulletListDisc,
310365
+ ariaLabel: "Opaque circle"
310366
+ },
310367
+ {
310368
+ key: "circle",
310369
+ icon: toolbarIcons.bulletListCircle,
310370
+ ariaLabel: "Outline circle"
310371
+ },
310372
+ {
310373
+ key: "square",
310374
+ icon: toolbarIcons.bulletListSquare,
310375
+ ariaLabel: "Opaque square"
310376
+ }
310377
+ ];
310378
+ numberedStyleButtons = [
310379
+ {
310380
+ key: "decimal",
310381
+ icon: toolbarIcons.numberedListDecimal,
310382
+ ariaLabel: "1. 2. 3."
310383
+ },
310384
+ {
310385
+ key: "decimal-paren",
310386
+ icon: toolbarIcons.numberedListDecimalParen,
310387
+ ariaLabel: "1) 2) 3)"
310388
+ },
310389
+ {
310390
+ key: "upper-roman",
310391
+ icon: toolbarIcons.numberedListUpperRoman,
310392
+ ariaLabel: "I. II. III."
310393
+ },
310394
+ {
310395
+ key: "lower-roman",
310396
+ icon: toolbarIcons.numberedListLowerRoman,
310397
+ ariaLabel: "i. ii. iii."
310398
+ },
310399
+ {
310400
+ key: "upper-alpha",
310401
+ icon: toolbarIcons.numberedListUpperAlpha,
310402
+ ariaLabel: "A. B. C."
310403
+ },
310404
+ {
310405
+ key: "upper-alpha-paren",
310406
+ icon: toolbarIcons.numberedListUpperAlphaParen,
310407
+ ariaLabel: "A) B) C)"
310408
+ },
310409
+ {
310410
+ key: "lower-alpha",
310411
+ icon: toolbarIcons.numberedListLowerAlpha,
310412
+ ariaLabel: "a. b. c."
310413
+ },
310414
+ {
310415
+ key: "lower-alpha-paren",
310416
+ icon: toolbarIcons.numberedListLowerAlphaParen,
310417
+ ariaLabel: "a) b) c)"
310418
+ }
310419
+ ];
309745
310420
  _hoisted_1$18 = ["onClick", "onKeydown"];
309746
310421
  _hoisted_2$15 = { class: "document-mode-column icon-column" };
309747
310422
  _hoisted_3$11 = ["innerHTML"];
@@ -310867,7 +311542,7 @@ function print() { __p += __j.call(arguments, '') }
310867
311542
  setup(__props, { emit: __emit }) {
310868
311543
  const emit = __emit;
310869
311544
  const props = __props;
310870
- const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
311545
+ const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, expand, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
310871
311546
  const isSplit = exports_vue.computed(() => Boolean(splitButton?.value) && Boolean(hasCaret?.value));
310872
311547
  const inlineTextInput = exports_vue.ref(label);
310873
311548
  const inlineInput = exports_vue.ref(null);
@@ -310910,7 +311585,7 @@ function print() { __p += __j.call(arguments, '') }
310910
311585
  return { minWidth: props.minWidth };
310911
311586
  });
310912
311587
  const caretIcon = exports_vue.computed(() => {
310913
- return active.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown;
311588
+ return expand?.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown;
310914
311589
  });
310915
311590
  return (_ctx, _cache) => {
310916
311591
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
@@ -311005,7 +311680,7 @@ function print() { __p += __j.call(arguments, '') }
311005
311680
  ], 10, _hoisted_2$6)], 46, _hoisted_1$9);
311006
311681
  };
311007
311682
  }
311008
- }, [["__scopeId", "data-v-fdaeb82f"]]);
311683
+ }, [["__scopeId", "data-v-9012024b"]]);
311009
311684
  _hoisted_1$8 = {
311010
311685
  class: "toolbar-separator",
311011
311686
  role: "separator",
@@ -312562,6 +313237,15 @@ function print() { __p += __j.call(arguments, '') }
312562
313237
  item.selectedValue.value = null;
312563
313238
  }
312564
313239
  },
313240
+ numberedlist: () => {
313241
+ if (commandState?.active) {
313242
+ item.activate();
313243
+ item.selectedValue.value = commandState.value;
313244
+ } else {
313245
+ item.deactivate();
313246
+ item.selectedValue.value = null;
313247
+ }
313248
+ },
312565
313249
  default: () => {
312566
313250
  if (commandState?.active)
312567
313251
  item.activate();
@@ -315964,6 +316648,7 @@ function print() { __p += __j.call(arguments, '') }
315964
316648
  const prevState = this.state;
315965
316649
  let nextState;
315966
316650
  let transactionToApply = transaction;
316651
+ let effectiveTransaction = transaction;
315967
316652
  const forceTrackChanges = transactionToApply.getMeta("forceTrackChanges") === true;
315968
316653
  try {
315969
316654
  const isTrackChangesActive = TrackChangesBasePluginKey.getState(prevState)?.isTrackChangesActive ?? false;
@@ -315977,8 +316662,9 @@ function print() { __p += __j.call(arguments, '') }
315977
316662
  user: this.options.user,
315978
316663
  replacements: this.options.trackedChanges?.replacements === "independent" ? "independent" : "paired"
315979
316664
  }) : transactionToApply;
315980
- const { state: appliedState } = prevState.applyTransaction(transactionToApply);
316665
+ const { state: appliedState, transactions: appliedTransactions } = prevState.applyTransaction(transactionToApply);
315981
316666
  nextState = appliedState;
316667
+ effectiveTransaction = appliedTransactions.find((t) => t.docChanged) ?? transactionToApply;
315982
316668
  } catch (error48) {
315983
316669
  if (forceTrackChanges)
315984
316670
  throw error48;
@@ -316014,7 +316700,7 @@ function print() { __p += __j.call(arguments, '') }
316014
316700
  event: blur.event,
316015
316701
  transaction: transactionToApply
316016
316702
  });
316017
- if (transactionToApply.docChanged) {
316703
+ if (effectiveTransaction.docChanged) {
316018
316704
  if (transaction.docChanged && this.converter) {
316019
316705
  if (!this.converter.documentGuid) {
316020
316706
  this.converter.promoteToGuid();
@@ -316024,7 +316710,7 @@ function print() { __p += __j.call(arguments, '') }
316024
316710
  }
316025
316711
  this.emit("update", {
316026
316712
  editor: this,
316027
- transaction: transactionToApply
316713
+ transaction: effectiveTransaction
316028
316714
  });
316029
316715
  }
316030
316716
  }
@@ -317957,12 +318643,13 @@ function print() { __p += __j.call(arguments, '') }
317957
318643
  return false;
317958
318644
  return block.anchor?.vRelativeFrom === "page";
317959
318645
  }
317960
- getDecorationAnchorPageOriginY(pageEl, page, kind, effectiveOffset) {
318646
+ getDecorationAnchorPageOriginY(page, kind, effectiveOffset) {
317961
318647
  if (kind === "header")
317962
318648
  return effectiveOffset;
318649
+ if (!Number.isFinite(page.height) || page.height <= 0)
318650
+ throw new Error(`DomPainter: invalid ResolvedPage.height (${page.height}) for page ${page.index}; resolve stage must produce a positive numeric height.`);
317963
318651
  const pageMargins = page.margins;
317964
- const styledPageHeight = Number.parseFloat(pageEl.style.height || "");
317965
- const pageHeight = page.height ?? (Number.isFinite(styledPageHeight) ? styledPageHeight : pageEl.clientHeight);
318652
+ const pageHeight = page.height;
317966
318653
  const footerDistance = pageMargins?.footer;
317967
318654
  if (typeof footerDistance === "number" && Number.isFinite(footerDistance))
317968
318655
  return Math.max(0, pageHeight - Math.max(0, footerDistance));
@@ -317987,7 +318674,7 @@ function print() { __p += __j.call(arguments, '') }
317987
318674
  const container = existing ?? this.doc.createElement("div");
317988
318675
  container.className = className;
317989
318676
  container.innerHTML = "";
317990
- const baseOffset = data.offset ?? (kind === "footer" ? pageEl.clientHeight - data.height : 0);
318677
+ const baseOffset = data.offset;
317991
318678
  const marginLeft = data.marginLeft ?? 0;
317992
318679
  const marginRight = page.margins?.right ?? 0;
317993
318680
  let effectiveHeight = data.height;
@@ -318007,7 +318694,7 @@ function print() { __p += __j.call(arguments, '') }
318007
318694
  container.style.top = `${Math.max(0, effectiveOffset)}px`;
318008
318695
  container.style.zIndex = "1";
318009
318696
  container.style.overflow = "visible";
318010
- const footerAnchorPageOriginY = kind === "footer" ? this.getDecorationAnchorPageOriginY(pageEl, page, kind, effectiveOffset) : 0;
318697
+ const footerAnchorPageOriginY = kind === "footer" ? this.getDecorationAnchorPageOriginY(page, kind, effectiveOffset) : 0;
318011
318698
  const footerAnchorContainerOffsetY = kind === "footer" ? footerAnchorPageOriginY - effectiveOffset : 0;
318012
318699
  let footerYOffset = 0;
318013
318700
  if (kind === "footer" && data.fragments.length > 0) {
@@ -318341,9 +319028,9 @@ function print() { __p += __j.call(arguments, '') }
318341
319028
  const measure = resolvedItem.measure;
318342
319029
  const wordLayout = isMinimalWordLayout$1(block.attrs?.wordLayout) ? block.attrs.wordLayout : undefined;
318343
319030
  const content3 = resolvedItem?.content;
318344
- const paraContinuesFromPrev = resolvedItem?.continuesFromPrev ?? fragment.continuesFromPrev;
318345
- const paraContinuesOnNext = resolvedItem?.continuesOnNext ?? fragment.continuesOnNext;
318346
- const paraMarkerWidth = resolvedItem?.markerWidth ?? fragment.markerWidth;
319031
+ const paraContinuesFromPrev = resolvedItem?.continuesFromPrev;
319032
+ const paraContinuesOnNext = resolvedItem?.continuesOnNext;
319033
+ const paraMarkerWidth = resolvedItem?.markerWidth;
318347
319034
  const fragmentEl = this.doc.createElement("div");
318348
319035
  fragmentEl.classList.add(CLASS_NAMES$1.fragment);
318349
319036
  const isTocEntry = block.attrs?.isTocEntry;
@@ -318444,14 +319131,7 @@ function print() { __p += __j.call(arguments, '') }
318444
319131
  if (resolvedLine.isListFirstLine && resolvedMarker) {
318445
319132
  lineEl.style.paddingLeft = `${resolvedMarker.firstLinePaddingLeftPx}px`;
318446
319133
  if (!resolvedMarker.vanish) {
318447
- const markerContainer = this.doc.createElement("span");
318448
- markerContainer.style.display = "inline-block";
318449
- markerContainer.style.wordSpacing = "0px";
318450
- const markerEl = this.doc.createElement("span");
318451
- markerEl.classList.add("superdoc-paragraph-marker");
318452
- markerEl.textContent = resolvedMarker.text;
318453
- applySourceAnchorDataset(markerEl, resolvedMarker.sourceAnchor ?? resolvedItem?.sourceAnchor ?? fragment.sourceAnchor);
318454
- markerEl.style.pointerEvents = "none";
319134
+ const markerContainer = createListMarkerElement(this.doc, resolvedMarker.text, resolvedMarker.run, resolvedMarker.sourceAnchor ?? resolvedItem?.sourceAnchor);
318455
319135
  markerContainer.style.position = "relative";
318456
319136
  if (resolvedMarker.justification === "right") {
318457
319137
  markerContainer.style.position = "absolute";
@@ -318461,15 +319141,6 @@ function print() { __p += __j.call(arguments, '') }
318461
319141
  markerContainer.style.left = `${resolvedMarker.markerStartPx - (resolvedMarker.centerPaddingAdjustPx ?? 0)}px`;
318462
319142
  lineEl.style.paddingLeft = parseFloat(lineEl.style.paddingLeft) + (resolvedMarker.centerPaddingAdjustPx ?? 0) + "px";
318463
319143
  }
318464
- markerEl.style.fontFamily = toCssFontFamily(resolvedMarker.run.fontFamily) ?? resolvedMarker.run.fontFamily;
318465
- markerEl.style.fontSize = `${resolvedMarker.run.fontSize}px`;
318466
- markerEl.style.fontWeight = resolvedMarker.run.bold ? "bold" : "";
318467
- markerEl.style.fontStyle = resolvedMarker.run.italic ? "italic" : "";
318468
- if (resolvedMarker.run.color)
318469
- markerEl.style.color = resolvedMarker.run.color;
318470
- if (resolvedMarker.run.letterSpacing != null)
318471
- markerEl.style.letterSpacing = `${resolvedMarker.run.letterSpacing}px`;
318472
- markerContainer.appendChild(markerEl);
318473
319144
  if (resolvedMarker.suffix === "tab") {
318474
319145
  const tabEl = this.doc.createElement("span");
318475
319146
  tabEl.classList.add("superdoc-tab", "superdoc-marker-suffix-tab");
@@ -318493,7 +319164,7 @@ function print() { __p += __j.call(arguments, '') }
318493
319164
  this.capturePaintSnapshotLine(lineEl, context, {
318494
319165
  inTableFragment: false,
318495
319166
  inTableParagraph: false,
318496
- sourceAnchor: resolvedItem?.sourceAnchor ?? fragment.sourceAnchor
319167
+ sourceAnchor: resolvedItem?.sourceAnchor
318497
319168
  });
318498
319169
  fragmentEl.appendChild(lineEl);
318499
319170
  });
@@ -318583,14 +319254,7 @@ function print() { __p += __j.call(arguments, '') }
318583
319254
  return;
318584
319255
  lineEl.style.paddingLeft = `${paraIndentLeft + (paraIndent?.firstLine ?? 0) - (paraIndent?.hanging ?? 0)}px`;
318585
319256
  if (!marker.run.vanish) {
318586
- const markerContainer = this.doc.createElement("span");
318587
- markerContainer.style.display = "inline-block";
318588
- markerContainer.style.wordSpacing = "0px";
318589
- const markerEl = this.doc.createElement("span");
318590
- markerEl.classList.add("superdoc-paragraph-marker");
318591
- markerEl.textContent = marker.markerText ?? "";
318592
- applySourceAnchorDataset(markerEl, block.sourceAnchor ?? resolvedItem?.sourceAnchor ?? fragment.sourceAnchor);
318593
- markerEl.style.pointerEvents = "none";
319257
+ const markerContainer = createListMarkerElement(this.doc, marker.markerText ?? "", marker.run, block.sourceAnchor ?? resolvedItem?.sourceAnchor);
318594
319258
  const markerJustification = marker.justification ?? "left";
318595
319259
  markerContainer.style.position = "relative";
318596
319260
  if (markerJustification === "right") {
@@ -318601,15 +319265,6 @@ function print() { __p += __j.call(arguments, '') }
318601
319265
  markerContainer.style.left = `${markerStartPos - fragment.markerTextWidth / 2}px`;
318602
319266
  lineEl.style.paddingLeft = parseFloat(lineEl.style.paddingLeft) + fragment.markerTextWidth / 2 + "px";
318603
319267
  }
318604
- markerEl.style.fontFamily = toCssFontFamily(marker.run.fontFamily) ?? marker.run.fontFamily;
318605
- markerEl.style.fontSize = `${marker.run.fontSize}px`;
318606
- markerEl.style.fontWeight = marker.run.bold ? "bold" : "";
318607
- markerEl.style.fontStyle = marker.run.italic ? "italic" : "";
318608
- if (marker.run.color)
318609
- markerEl.style.color = marker.run.color;
318610
- if (marker.run.letterSpacing != null)
318611
- markerEl.style.letterSpacing = `${marker.run.letterSpacing}px`;
318612
- markerContainer.appendChild(markerEl);
318613
319268
  const suffix = marker.suffix ?? "tab";
318614
319269
  if (suffix === "tab") {
318615
319270
  const tabEl = this.doc.createElement("span");
@@ -318634,7 +319289,7 @@ function print() { __p += __j.call(arguments, '') }
318634
319289
  this.capturePaintSnapshotLine(lineEl, context, {
318635
319290
  inTableFragment: false,
318636
319291
  inTableParagraph: false,
318637
- sourceAnchor: resolvedItem?.sourceAnchor ?? fragment.sourceAnchor
319292
+ sourceAnchor: resolvedItem?.sourceAnchor
318638
319293
  });
318639
319294
  fragmentEl.appendChild(lineEl);
318640
319295
  });
@@ -318709,9 +319364,9 @@ function print() { __p += __j.call(arguments, '') }
318709
319364
  const itemMeasure = measure.items.find((entry) => entry.itemId === fragment.itemId);
318710
319365
  if (!item || !itemMeasure)
318711
319366
  throw new Error(`DomPainter: missing list item ${fragment.itemId}`);
318712
- const listContinuesFromPrev = resolvedItem?.continuesFromPrev ?? fragment.continuesFromPrev;
318713
- const listContinuesOnNext = resolvedItem?.continuesOnNext ?? fragment.continuesOnNext;
318714
- const listMarkerWidth = resolvedItem?.markerWidth ?? fragment.markerWidth;
319367
+ const listContinuesFromPrev = resolvedItem?.continuesFromPrev;
319368
+ const listContinuesOnNext = resolvedItem?.continuesOnNext;
319369
+ const listMarkerWidth = resolvedItem?.markerWidth ?? 0;
318715
319370
  const fragmentEl = this.doc.createElement("div");
318716
319371
  fragmentEl.classList.add(CLASS_NAMES$1.fragment, `${CLASS_NAMES$1.fragment}-list-item`);
318717
319372
  applyStyles(fragmentEl, fragmentStyles);
@@ -318733,8 +319388,8 @@ function print() { __p += __j.call(arguments, '') }
318733
319388
  if (listContinuesOnNext)
318734
319389
  fragmentEl.dataset.continuesOnNext = "true";
318735
319390
  const markerEl = this.doc.createElement("span");
318736
- markerEl.classList.add("superdoc-list-marker");
318737
- applySourceAnchorDataset(markerEl, item.marker.sourceAnchor ?? item.sourceAnchor ?? resolvedItem?.sourceAnchor ?? fragment.sourceAnchor);
319391
+ markerEl.classList.add(DOM_CLASS_NAMES.LIST_MARKER);
319392
+ applySourceAnchorDataset(markerEl, item.marker.sourceAnchor ?? item.sourceAnchor ?? resolvedItem?.sourceAnchor);
318738
319393
  const wordLayout = item.paragraph.attrs?.wordLayout;
318739
319394
  const marker = wordLayout?.marker;
318740
319395
  if (marker) {
@@ -318791,7 +319446,7 @@ function print() { __p += __j.call(arguments, '') }
318791
319446
  this.capturePaintSnapshotLine(lineEl, context, {
318792
319447
  inTableFragment: false,
318793
319448
  inTableParagraph: false,
318794
- sourceAnchor: resolvedItem?.sourceAnchor ?? fragment.sourceAnchor
319449
+ sourceAnchor: resolvedItem?.sourceAnchor
318795
319450
  });
318796
319451
  contentEl.appendChild(lineEl);
318797
319452
  });
@@ -318826,13 +319481,13 @@ function print() { __p += __j.call(arguments, '') }
318826
319481
  this.applyContainerSdtDataset(fragmentEl, block.attrs?.containerSdt);
318827
319482
  if (block.id)
318828
319483
  fragmentEl.setAttribute("data-sd-block-id", block.id);
318829
- const imgPmStart = resolvedItem?.pmStart ?? fragment.pmStart;
319484
+ const imgPmStart = resolvedItem?.pmStart;
318830
319485
  if (imgPmStart != null)
318831
319486
  fragmentEl.dataset.pmStart = String(imgPmStart);
318832
- const imgPmEnd = resolvedItem?.pmEnd ?? fragment.pmEnd;
319487
+ const imgPmEnd = resolvedItem?.pmEnd;
318833
319488
  if (imgPmEnd != null)
318834
319489
  fragmentEl.dataset.pmEnd = String(imgPmEnd);
318835
- const imgMetadata = resolvedItem?.metadata ?? fragment.metadata;
319490
+ const imgMetadata = resolvedItem?.metadata;
318836
319491
  if (imgMetadata && !block.attrs?.vmlWatermark)
318837
319492
  fragmentEl.setAttribute("data-image-metadata", JSON.stringify(imgMetadata));
318838
319493
  const img2 = this.doc.createElement("img");
@@ -320626,7 +321281,7 @@ function print() { __p += __j.call(arguments, '') }
320626
321281
  const runSegments$1 = segmentsByRun.get(runIndex);
320627
321282
  const baseSegX = runSegments$1 && runSegments$1[0]?.x !== undefined ? runSegments$1[0].x : cumulativeX;
320628
321283
  const segX = baseSegX + indentOffset;
320629
- const segWidth = (runSegments$1 && runSegments$1[0]?.width !== undefined ? runSegments$1[0].width : elem.offsetWidth) ?? 0;
321284
+ const segWidth = runSegments$1?.[0]?.width ?? 0;
320630
321285
  elem.style.position = "absolute";
320631
321286
  elem.style.left = `${segX}px`;
320632
321287
  appendToLineGeo(elem, baseRun, segX, segWidth);
@@ -320698,17 +321353,8 @@ function print() { __p += __j.call(arguments, '') }
320698
321353
  const xPos = baseX + indentOffset;
320699
321354
  elem.style.position = "absolute";
320700
321355
  elem.style.left = `${xPos}px`;
320701
- appendToLineGeo(elem, segmentRun, xPos, segment.width ?? 0);
320702
- let width = segment.width ?? 0;
320703
- if (width <= 0 && this.doc) {
320704
- const measureEl = elem.cloneNode(true);
320705
- measureEl.style.position = "absolute";
320706
- measureEl.style.visibility = "hidden";
320707
- measureEl.style.left = "-9999px";
320708
- this.doc.body.appendChild(measureEl);
320709
- width = measureEl.offsetWidth;
320710
- this.doc.body.removeChild(measureEl);
320711
- }
321356
+ appendToLineGeo(elem, segmentRun, xPos, segment.width);
321357
+ const width = segment.width;
320712
321358
  cumulativeX = baseX + width;
320713
321359
  if (geoSdtWrapper)
320714
321360
  geoSdtMaxRight = Math.max(geoSdtMaxRight, xPos + width);
@@ -320867,21 +321513,21 @@ function print() { __p += __j.call(arguments, '') }
320867
321513
  if (section === "body" || section === undefined)
320868
321514
  assertFragmentPmPositions(fragment, "paragraph fragment");
320869
321515
  const resolvedFrag = resolvedItem;
320870
- const pmStart = resolvedFrag?.pmStart ?? fragment.pmStart;
321516
+ const pmStart = resolvedFrag?.pmStart;
320871
321517
  if (pmStart != null)
320872
321518
  el.dataset.pmStart = String(pmStart);
320873
321519
  else
320874
321520
  delete el.dataset.pmStart;
320875
- const pmEnd = resolvedFrag?.pmEnd ?? fragment.pmEnd;
321521
+ const pmEnd = resolvedFrag?.pmEnd;
320876
321522
  if (pmEnd != null)
320877
321523
  el.dataset.pmEnd = String(pmEnd);
320878
321524
  else
320879
321525
  delete el.dataset.pmEnd;
320880
- if (resolvedFrag?.continuesFromPrev ?? fragment.continuesFromPrev)
321526
+ if (resolvedFrag?.continuesFromPrev)
320881
321527
  el.dataset.continuesFromPrev = "true";
320882
321528
  else
320883
321529
  delete el.dataset.continuesFromPrev;
320884
- if (resolvedFrag?.continuesOnNext ?? fragment.continuesOnNext)
321530
+ if (resolvedFrag?.continuesOnNext)
320885
321531
  el.dataset.continuesOnNext = "true";
320886
321532
  else
320887
321533
  delete el.dataset.continuesOnNext;
@@ -320905,7 +321551,7 @@ function print() { __p += __j.call(arguments, '') }
320905
321551
  resolveFragmentWrapperZIndex(fragment, resolvedZIndex) {
320906
321552
  if (!this.isAnchoredMediaFragment(fragment))
320907
321553
  return "";
320908
- const zIndex = resolvedZIndex ?? fragment.zIndex;
321554
+ const zIndex = resolvedZIndex;
320909
321555
  return zIndex != null ? String(zIndex) : "";
320910
321556
  }
320911
321557
  applyFragmentWrapperZIndex(el, fragment, resolvedZIndex) {
@@ -320917,7 +321563,7 @@ function print() { __p += __j.call(arguments, '') }
320917
321563
  el.style.width = `${item.width}px`;
320918
321564
  el.dataset.blockId = item.blockId;
320919
321565
  el.dataset.layoutEpoch = String(this.layoutEpoch);
320920
- applySourceAnchorDataset(el, item.sourceAnchor ?? fragment.sourceAnchor);
321566
+ applySourceAnchorDataset(el, item.sourceAnchor);
320921
321567
  this.applyFragmentWrapperZIndex(el, fragment, item.zIndex);
320922
321568
  if (item.fragmentKind === "image" || item.fragmentKind === "drawing" || item.fragmentKind === "table")
320923
321569
  el.style.height = `${item.height}px`;
@@ -320925,7 +321571,7 @@ function print() { __p += __j.call(arguments, '') }
320925
321571
  }
320926
321572
  applyResolvedListItemWrapperFrame(el, fragment, item, section) {
320927
321573
  this.applyResolvedFragmentFrame(el, item, fragment, section);
320928
- const mw = item.markerWidth ?? fragment.markerWidth;
321574
+ const mw = item.markerWidth ?? 0;
320929
321575
  el.style.left = `${item.x - mw}px`;
320930
321576
  el.style.width = `${item.width + mw}px`;
320931
321577
  }
@@ -328154,7 +328800,11 @@ function print() { __p += __j.call(arguments, '') }
328154
328800
  removeDocumentSection: trash_can_solid_default,
328155
328801
  trackChangesAccept: check_solid_default,
328156
328802
  trackChangesReject: xmark_solid_default,
328157
- cellBackground: paint_roller_solid_default
328803
+ cellBackground: paint_roller_solid_default,
328804
+ listRestartNumbering: list_ol_solid_default,
328805
+ listContinueNumbering: list_ol_solid_default,
328806
+ listDecreaseIndent: outdent_solid_default,
328807
+ listIncreaseIndent: indent_solid_default
328158
328808
  };
328159
328809
  TEXTS = {
328160
328810
  addRowBefore: "Insert row above",
@@ -328180,7 +328830,11 @@ function print() { __p += __j.call(arguments, '') }
328180
328830
  createDocumentSection: "Create section",
328181
328831
  trackChangesAccept: "Accept change",
328182
328832
  trackChangesReject: "Reject change",
328183
- cellBackground: "Cell background"
328833
+ cellBackground: "Cell background",
328834
+ listRestartNumbering: "Restart numbering",
328835
+ listContinueNumbering: "Continue numbering",
328836
+ listDecreaseIndent: "Decrease indent",
328837
+ listIncreaseIndent: "Increase indent"
328184
328838
  };
328185
328839
  tableActionsOptions = [
328186
328840
  {
@@ -328287,11 +328941,11 @@ function print() { __p += __j.call(arguments, '') }
328287
328941
  ];
328288
328942
  });
328289
328943
 
328290
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-C-wMmL5m.es.js
328944
+ // ../../packages/superdoc/dist/chunks/create-super-doc-ui-BZNADU5K.es.js
328291
328945
  var 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;
328292
- var init_create_super_doc_ui_C_wMmL5m_es = __esm(() => {
328293
- init_SuperConverter_ing_1fvK_es();
328294
- init_create_headless_toolbar_CUl2z6Fd_es();
328946
+ var init_create_super_doc_ui_BZNADU5K_es = __esm(() => {
328947
+ init_SuperConverter_D1o6_yKI_es();
328948
+ init_create_headless_toolbar_CJ0iQq1T_es();
328295
328949
  MOD_ALIASES = new Set([
328296
328950
  "Mod",
328297
328951
  "Meta",
@@ -328333,16 +328987,16 @@ var init_zipper_BxRAi0_5_es = __esm(() => {
328333
328987
 
328334
328988
  // ../../packages/superdoc/dist/super-editor.es.js
328335
328989
  var init_super_editor_es = __esm(() => {
328336
- init_src_deKdT_sq_es();
328337
- init_SuperConverter_ing_1fvK_es();
328990
+ init_src_ItIaPxzW_es();
328991
+ init_SuperConverter_D1o6_yKI_es();
328338
328992
  init_jszip_C49i9kUs_es();
328339
328993
  init_xml_js_CqGKpaft_es();
328340
- init_create_headless_toolbar_CUl2z6Fd_es();
328994
+ init_create_headless_toolbar_CJ0iQq1T_es();
328341
328995
  init_constants_DrU4EASo_es();
328342
328996
  init_dist_B8HfvhaK_es();
328343
328997
  init_unified_Dsuw2be5_es();
328344
- init_DocxZipper_CUX64E5K_es();
328345
- init_create_super_doc_ui_C_wMmL5m_es();
328998
+ init_DocxZipper_Dh4RtvcE_es();
328999
+ init_create_super_doc_ui_BZNADU5K_es();
328346
329000
  init_ui_CGB3qmy3_es();
328347
329001
  init_eventemitter3_UwU_CLPU_es();
328348
329002
  init_errors_C_DoKMoN_es();
@@ -406917,6 +407571,13 @@ var init_fld_preprocessors = __esm(() => {
406917
407571
  init_hyperlink_preprocessor();
406918
407572
  });
406919
407573
 
407574
+ // ../../packages/super-editor/src/editors/v1/core/super-converter/v2/importer/trackChangeElements.js
407575
+ var TRACK_CHANGE_ELEMENT_NAMES2, TRANSLATED_TRACK_CHANGE_ELEMENT_NAMES2, isTrackChangeElement2 = (node4) => TRACK_CHANGE_ELEMENT_NAMES2.has(node4?.name), isTranslatedTrackChangeElement2 = (node4) => TRANSLATED_TRACK_CHANGE_ELEMENT_NAMES2.has(node4?.name);
407576
+ var init_trackChangeElements = __esm(() => {
407577
+ TRACK_CHANGE_ELEMENT_NAMES2 = new Set(["w:del", "w:ins", "w:moveFrom", "w:moveTo"]);
407578
+ TRANSLATED_TRACK_CHANGE_ELEMENT_NAMES2 = new Set(["w:del", "w:ins"]);
407579
+ });
407580
+
406920
407581
  // ../../packages/super-editor/src/editors/v1/core/super-converter/field-references/preProcessNodesForFldChar.js
406921
407582
  var SKIP_FIELD_PROCESSING_NODE_NAMES2, shouldSkipFieldProcessing2 = (node4) => SKIP_FIELD_PROCESSING_NODE_NAMES2.has(node4?.name), preProcessNodesForFldChar2 = (nodes = [], docx) => {
406922
407583
  const processedNodes = [];
@@ -406925,6 +407586,7 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES2, shouldSkipFieldProcessing2 = (node4) => S
406925
407586
  let fieldRunRPrStack = [];
406926
407587
  let currentFieldStack = [];
406927
407588
  let unpairedEnd = null;
407589
+ let unpairedEndPreserveRaw = null;
406928
407590
  let collecting = false;
406929
407591
  const rawNodeSourceTokens = new WeakMap;
406930
407592
  const finalizeField = () => {
@@ -406933,8 +407595,11 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES2, shouldSkipFieldProcessing2 = (node4) => S
406933
407595
  const rawCollectedNodes = rawCollectedNodesStack.pop().filter((n) => n !== null);
406934
407596
  const fieldRunRPr = fieldRunRPrStack.pop() ?? null;
406935
407597
  const currentField = currentFieldStack.pop();
406936
- const combinedResult = _processCombinedNodesForFldChar2(collectedNodes, currentField.instrText.trim(), docx, currentField.instructionTokens, fieldRunRPr);
406937
- const outputNodes = combinedResult.handled ? combinedResult.nodes : rawCollectedNodes;
407598
+ let outputNodes = rawCollectedNodes;
407599
+ if (!currentField.preserveRaw) {
407600
+ const combinedResult = _processCombinedNodesForFldChar2(collectedNodes, currentField.instrText.trim(), docx, currentField.instructionTokens, fieldRunRPr);
407601
+ outputNodes = combinedResult.handled ? combinedResult.nodes : rawCollectedNodes;
407602
+ }
406938
407603
  if (collectedNodesStack.length === 0) {
406939
407604
  processedNodes.push(...outputNodes);
406940
407605
  } else {
@@ -407049,7 +407714,11 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES2, shouldSkipFieldProcessing2 = (node4) => S
407049
407714
  node4.elements = childResult.processedNodes;
407050
407715
  if (childResult.unpairedBegin) {
407051
407716
  childResult.unpairedBegin.forEach((pendingField) => {
407052
- currentFieldStack.push(pendingField.fieldInfo);
407717
+ const fieldInfo = { ...pendingField.fieldInfo };
407718
+ if (fieldInfo.preserveRaw || isTrackChangeElement2(node4)) {
407719
+ fieldInfo.preserveRaw = true;
407720
+ }
407721
+ currentFieldStack.push(fieldInfo);
407053
407722
  collectedNodesStack.push([node4]);
407054
407723
  const rawStack = [rawNode];
407055
407724
  rawCollectedNodesStack.push(rawStack);
@@ -407057,6 +407726,17 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES2, shouldSkipFieldProcessing2 = (node4) => S
407057
407726
  capturedRawNodes.add(rawNode);
407058
407727
  });
407059
407728
  } else if (childResult.unpairedEnd) {
407729
+ const shouldPreserveRaw = childResult.unpairedEndPreserveRaw || isTrackChangeElement2(node4);
407730
+ if (collectedNodesStack.length === 0) {
407731
+ processedNodes.push(shouldPreserveRaw ? rawNode : node4);
407732
+ unpairedEnd = true;
407733
+ if (shouldPreserveRaw)
407734
+ unpairedEndPreserveRaw = true;
407735
+ return;
407736
+ }
407737
+ if (shouldPreserveRaw) {
407738
+ currentFieldStack[currentFieldStack.length - 1].preserveRaw = true;
407739
+ }
407060
407740
  collectedNodesStack[collectedNodesStack.length - 1].push(node4);
407061
407741
  captureRawNodeForCurrentField(rawNode, capturedRawNodes, rawSourceToken);
407062
407742
  finalizeField();
@@ -407094,7 +407774,7 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES2, shouldSkipFieldProcessing2 = (node4) => S
407094
407774
  });
407095
407775
  }
407096
407776
  }
407097
- return { processedNodes, unpairedBegin, unpairedEnd };
407777
+ return { processedNodes, unpairedBegin, unpairedEnd, unpairedEndPreserveRaw };
407098
407778
  }, _processCombinedNodesForFldChar2 = (nodesToCombine = [], instrText, docx, instructionTokens, fieldRunRPr) => {
407099
407779
  const instructionType = instrText.trim().split(" ")[0];
407100
407780
  const instructionPreProcessor = getInstructionPreProcessor2(instructionType);
@@ -407177,6 +407857,7 @@ var SKIP_FIELD_PROCESSING_NODE_NAMES2, shouldSkipFieldProcessing2 = (node4) => S
407177
407857
  };
407178
407858
  var init_preProcessNodesForFldChar = __esm(() => {
407179
407859
  init_fld_preprocessors();
407860
+ init_trackChangeElements();
407180
407861
  SKIP_FIELD_PROCESSING_NODE_NAMES2 = new Set(["w:drawing", "w:pict"]);
407181
407862
  FIELD_CONTROL_ELEMENT_NAMES2 = new Set(["w:fldChar"]);
407182
407863
  INSTRUCTION_ELEMENT_NAMES2 = new Set(["w:instrText", "w:tab"]);
@@ -414481,11 +415162,11 @@ var init_ins = __esm(() => {
414481
415162
  });
414482
415163
 
414483
415164
  // ../../packages/super-editor/src/editors/v1/core/super-converter/v2/importer/trackChangesImporter.js
414484
- var isTrackChangeElement2 = (node4) => node4?.name === "w:del" || node4?.name === "w:ins", unwrapTrackChangeNode2 = (node4) => {
415165
+ var unwrapTrackChangeNode2 = (node4) => {
414485
415166
  if (!node4) {
414486
415167
  return null;
414487
415168
  }
414488
- if (isTrackChangeElement2(node4)) {
415169
+ if (isTranslatedTrackChangeElement2(node4)) {
414489
415170
  return node4;
414490
415171
  }
414491
415172
  if (node4.name === "w:sdt") {
@@ -414540,6 +415221,7 @@ var isTrackChangeElement2 = (node4) => node4?.name === "w:del" || node4?.name ==
414540
415221
  var init_trackChangesImporter = __esm(() => {
414541
415222
  init_del();
414542
415223
  init_ins();
415224
+ init_trackChangeElements();
414543
415225
  trackChangeNodeHandlerEntity2 = {
414544
415226
  handlerName: "trackChangeNodeHandler",
414545
415227
  handler: handleTrackChangeNode2
@@ -418395,12 +419077,12 @@ var detectDocumentOrigin2 = (docx) => {
418395
419077
  return nodeListHandlerFn;
418396
419078
  }, DEFAULT_SECTION_PROPS2, importHeadersFooters2 = (docx, converter, mainEditor, numbering, translatedNumbering, translatedLinkedStyles) => {
418397
419079
  const rels = docx["word/_rels/document.xml.rels"];
418398
- const relationships = rels?.elements.find((el) => el.name === "Relationships");
418399
- const { elements } = relationships || { elements: [] };
419080
+ const relationships = rels?.elements?.find((el) => el.name === "Relationships");
419081
+ const elements = relationships?.elements ?? [];
418400
419082
  const headerType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header";
418401
419083
  const footerType = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer";
418402
- const headers = elements.filter((el) => el.attributes["Type"] === headerType);
418403
- const footers = elements.filter((el) => el.attributes["Type"] === footerType);
419084
+ const headers = elements.filter((el) => el.attributes?.["Type"] === headerType);
419085
+ const footers = elements.filter((el) => el.attributes?.["Type"] === footerType);
418404
419086
  const sectPr = findSectPr2(docx["word/document.xml"]) || [];
418405
419087
  const allSectPrElements = sectPr.flatMap((el) => el.elements);
418406
419088
  if (!mainEditor)
@@ -427208,7 +427890,7 @@ function updateNumberingProperties2(newNumberingProperties, paragraphNode, pos,
427208
427890
  ...paragraphNode.attrs.paragraphProperties || {},
427209
427891
  numberingProperties: newNumberingProperties ? { ...newNumberingProperties } : null
427210
427892
  };
427211
- if (paragraphNode.attrs.paragraphProperties?.styleId === "ListParagraph") {
427893
+ if (!newNumberingProperties && paragraphNode.attrs.paragraphProperties?.styleId === "ListParagraph") {
427212
427894
  newProperties.styleId = null;
427213
427895
  }
427214
427896
  if (newProperties.indent) {
@@ -427264,7 +427946,18 @@ function refreshAbstractIdentity2(abstractDef) {
427264
427946
  }
427265
427947
  function generateNewListDefinition2(numbering, options) {
427266
427948
  let { listType } = options;
427267
- const { numId, level, start: start2, text: text9, fmt, markerFontFamily, bulletStyle, bulletStyleLevel } = options;
427949
+ const {
427950
+ numId,
427951
+ level,
427952
+ start: start2,
427953
+ text: text9,
427954
+ fmt,
427955
+ markerFontFamily,
427956
+ bulletStyle,
427957
+ bulletStyleLevel,
427958
+ orderedStyle,
427959
+ orderedStyleLevel
427960
+ } = options;
427268
427961
  if (typeof listType !== "string")
427269
427962
  listType = listType.name;
427270
427963
  const definition5 = listType === "orderedList" ? baseOrderedListDef2 : baseBulletList2;
@@ -427291,6 +427984,50 @@ function generateNewListDefinition2(numbering, options) {
427291
427984
  }
427292
427985
  }
427293
427986
  }
427987
+ const shouldOverrideOrderedStyle = orderedStyle && listType === "orderedList";
427988
+ if (shouldOverrideOrderedStyle) {
427989
+ const styleConfig = ORDERED_LIST_STYLES2[orderedStyle];
427990
+ if (styleConfig) {
427991
+ const targetLevel = Math.max(0, Number.isFinite(orderedStyleLevel) ? orderedStyleLevel : 0);
427992
+ const targetLevelStr = String(targetLevel);
427993
+ const lvl = newAbstractDef.elements.find((el) => el.name === "w:lvl" && el.attributes["w:ilvl"] === targetLevelStr);
427994
+ if (lvl) {
427995
+ const numFmt = lvl.elements.find((el) => el.name === "w:numFmt");
427996
+ if (numFmt)
427997
+ numFmt.attributes["w:val"] = styleConfig.fmt;
427998
+ const lvlText = lvl.elements.find((el) => el.name === "w:lvlText");
427999
+ if (lvlText) {
428000
+ lvlText.attributes["w:val"] = `%${targetLevel + 1}${styleConfig.text.replace(/^%\d+/, "")}`;
428001
+ }
428002
+ const defaultLvlJc = DEFAULT_LVL_JC_BY_FMT2[styleConfig.fmt];
428003
+ if (defaultLvlJc) {
428004
+ const lvlJc = lvl.elements.find((el) => el.name === "w:lvlJc");
428005
+ if (lvlJc) {
428006
+ lvlJc.attributes["w:val"] = defaultLvlJc;
428007
+ } else {
428008
+ lvl.elements.push({ type: "element", name: "w:lvlJc", attributes: { "w:val": defaultLvlJc } });
428009
+ }
428010
+ }
428011
+ const defaultHanging = DEFAULT_HANGING_BY_FMT2[styleConfig.fmt];
428012
+ if (defaultHanging != null) {
428013
+ let pPr = lvl.elements.find((el) => el.name === "w:pPr");
428014
+ if (!pPr) {
428015
+ pPr = { type: "element", name: "w:pPr", elements: [] };
428016
+ lvl.elements.push(pPr);
428017
+ }
428018
+ if (!pPr.elements)
428019
+ pPr.elements = [];
428020
+ let ind = pPr.elements.find((el) => el.name === "w:ind");
428021
+ if (!ind) {
428022
+ ind = { type: "element", name: "w:ind", attributes: { "w:hanging": String(defaultHanging) } };
428023
+ pPr.elements.push(ind);
428024
+ } else {
428025
+ ind.attributes = { ...ind.attributes || {}, "w:hanging": String(defaultHanging) };
428026
+ }
428027
+ }
428028
+ }
428029
+ }
428030
+ }
427294
428031
  if (level != null && start2 != null && text9 != null && fmt != null) {
427295
428032
  if (numbering.definitions[numId]) {
427296
428033
  const abstractId = numbering.definitions[numId]?.elements[0]?.attributes["w:val"];
@@ -427470,7 +428207,108 @@ function setLvlRestartOnAbstract2(numbering, abstractNumId, ilvl, restartAfterLe
427470
428207
  }
427471
428208
  return true;
427472
428209
  }
427473
- var BULLET_STYLE_CHARS2;
428210
+ function setLvlStyleOnAbstract2(numbering, abstractNumId, ilvl, options) {
428211
+ const abstract = numbering.abstracts[abstractNumId];
428212
+ if (!abstract?.elements)
428213
+ return false;
428214
+ const ilvlStr = String(ilvl);
428215
+ const lvlEl = abstract.elements.find((el) => el.name === "w:lvl" && el.attributes?.["w:ilvl"] === ilvlStr);
428216
+ if (!lvlEl)
428217
+ return false;
428218
+ if (!lvlEl.elements)
428219
+ lvlEl.elements = [];
428220
+ const setOrAddChild = (name, value) => {
428221
+ const existing = lvlEl.elements.find((el) => el.name === name);
428222
+ if (existing) {
428223
+ if (existing.attributes?.["w:val"] === value)
428224
+ return false;
428225
+ existing.attributes = { ...existing.attributes || {}, "w:val": value };
428226
+ return true;
428227
+ }
428228
+ lvlEl.elements.push({ type: "element", name, attributes: { "w:val": value } });
428229
+ return true;
428230
+ };
428231
+ const stripMarkerFont = () => {
428232
+ const rPr = lvlEl.elements.find((el) => el.name === "w:rPr");
428233
+ if (!rPr?.elements?.some((el) => el.name === "w:rFonts"))
428234
+ return false;
428235
+ rPr.elements = rPr.elements.filter((el) => el.name !== "w:rFonts");
428236
+ return true;
428237
+ };
428238
+ let numFmtValue = null;
428239
+ let lvlTextValue = null;
428240
+ let lvlJcValue = null;
428241
+ let hangingValue = null;
428242
+ if (options.bulletStyle) {
428243
+ const char = BULLET_STYLE_CHARS2[options.bulletStyle];
428244
+ if (!char)
428245
+ return false;
428246
+ numFmtValue = "bullet";
428247
+ lvlTextValue = char;
428248
+ } else if (options.orderedStyle) {
428249
+ const config43 = ORDERED_LIST_STYLES2[options.orderedStyle];
428250
+ if (!config43)
428251
+ return false;
428252
+ numFmtValue = config43.fmt;
428253
+ lvlTextValue = `%${ilvl + 1}${config43.text.replace(/^%\d+/, "")}`;
428254
+ lvlJcValue = DEFAULT_LVL_JC_BY_FMT2[config43.fmt] ?? null;
428255
+ hangingValue = DEFAULT_HANGING_BY_FMT2[config43.fmt] ?? null;
428256
+ } else {
428257
+ return false;
428258
+ }
428259
+ const setHangingOnLevel = (hanging) => {
428260
+ let pPr = lvlEl.elements.find((el) => el.name === "w:pPr");
428261
+ if (!pPr) {
428262
+ pPr = { type: "element", name: "w:pPr", elements: [] };
428263
+ lvlEl.elements.push(pPr);
428264
+ }
428265
+ if (!pPr.elements)
428266
+ pPr.elements = [];
428267
+ let ind = pPr.elements.find((el) => el.name === "w:ind");
428268
+ if (!ind) {
428269
+ ind = { type: "element", name: "w:ind", attributes: { "w:hanging": String(hanging) } };
428270
+ pPr.elements.push(ind);
428271
+ return true;
428272
+ }
428273
+ if (ind.attributes?.["w:hanging"] === String(hanging))
428274
+ return false;
428275
+ ind.attributes = { ...ind.attributes || {}, "w:hanging": String(hanging) };
428276
+ return true;
428277
+ };
428278
+ let changed = false;
428279
+ if (setOrAddChild("w:numFmt", numFmtValue))
428280
+ changed = true;
428281
+ if (setOrAddChild("w:lvlText", lvlTextValue))
428282
+ changed = true;
428283
+ if (lvlJcValue != null && setOrAddChild("w:lvlJc", lvlJcValue))
428284
+ changed = true;
428285
+ if (hangingValue != null && setHangingOnLevel(hangingValue))
428286
+ changed = true;
428287
+ if (stripMarkerFont())
428288
+ changed = true;
428289
+ return changed;
428290
+ }
428291
+ function cloneListDefinitionWithLevelStyle2(numbering, sourceNumId, ilvl, options) {
428292
+ const sourceNumDef = numbering.definitions[sourceNumId];
428293
+ const sourceAbstractIdRaw = sourceNumDef?.elements?.find((el) => el.name === "w:abstractNumId")?.attributes?.["w:val"];
428294
+ const sourceAbstractId = sourceAbstractIdRaw != null ? Number(sourceAbstractIdRaw) : NaN;
428295
+ const sourceAbstract = Number.isFinite(sourceAbstractId) ? numbering.abstracts[sourceAbstractId] : undefined;
428296
+ if (!sourceAbstract)
428297
+ return null;
428298
+ const newAbstractId = getNextId2(numbering.abstracts);
428299
+ const newAbstractDef = JSON.parse(JSON.stringify(sourceAbstract));
428300
+ newAbstractDef.attributes = {
428301
+ ...newAbstractDef.attributes || {},
428302
+ "w:abstractNumId": String(newAbstractId)
428303
+ };
428304
+ refreshAbstractIdentity2(newAbstractDef);
428305
+ numbering.abstracts[newAbstractId] = newAbstractDef;
428306
+ setLvlStyleOnAbstract2(numbering, newAbstractId, ilvl, options);
428307
+ const newNumId = getNextId2(numbering.definitions);
428308
+ numbering.definitions[newNumId] = buildNumDef2(newNumId, newAbstractId);
428309
+ return { newNumId, newAbstractId };
428310
+ }
428311
+ var BULLET_STYLE_CHARS2, ORDERED_LIST_STYLES2, DEFAULT_LVL_JC_BY_FMT2, DEFAULT_HANGING_BY_FMT2;
427474
428312
  var init_numbering_transforms = __esm(() => {
427475
428313
  init_baseListDefinitions();
427476
428314
  BULLET_STYLE_CHARS2 = {
@@ -427478,6 +428316,30 @@ var init_numbering_transforms = __esm(() => {
427478
428316
  circle: "◦",
427479
428317
  square: "▪"
427480
428318
  };
428319
+ ORDERED_LIST_STYLES2 = {
428320
+ decimal: { fmt: "decimal", text: "%1." },
428321
+ "decimal-paren": { fmt: "decimal", text: "%1)" },
428322
+ "upper-roman": { fmt: "upperRoman", text: "%1." },
428323
+ "lower-roman": { fmt: "lowerRoman", text: "%1." },
428324
+ "upper-alpha": { fmt: "upperLetter", text: "%1." },
428325
+ "upper-alpha-paren": { fmt: "upperLetter", text: "%1)" },
428326
+ "lower-alpha": { fmt: "lowerLetter", text: "%1." },
428327
+ "lower-alpha-paren": { fmt: "lowerLetter", text: "%1)" }
428328
+ };
428329
+ DEFAULT_LVL_JC_BY_FMT2 = {
428330
+ decimal: "left",
428331
+ upperRoman: "right",
428332
+ lowerRoman: "right",
428333
+ upperLetter: "left",
428334
+ lowerLetter: "left"
428335
+ };
428336
+ DEFAULT_HANGING_BY_FMT2 = {
428337
+ decimal: 360,
428338
+ upperRoman: 180,
428339
+ lowerRoman: 180,
428340
+ upperLetter: 360,
428341
+ lowerLetter: 360
428342
+ };
427481
428343
  });
427482
428344
 
427483
428345
  // ../../packages/super-editor/src/editors/v1/core/parts/adapters/numbering-part-descriptor.ts
@@ -427632,6 +428494,29 @@ function mutateNumbering2(editor, source, transform2, options) {
427632
428494
  }
427633
428495
  });
427634
428496
  }
428497
+ function mutateNumberingBatch2(editor, source, transforms, options) {
428498
+ return mutateParts2({
428499
+ editor,
428500
+ source,
428501
+ dryRun: options?.dryRun,
428502
+ expectedRevision: options?.expectedRevision,
428503
+ operations: [
428504
+ {
428505
+ editor,
428506
+ partId: "word/numbering.xml",
428507
+ operation: "mutate",
428508
+ source,
428509
+ mutate({ part }) {
428510
+ const numbering = getNumbering2(editor);
428511
+ for (const transform2 of transforms) {
428512
+ transform2(numbering);
428513
+ }
428514
+ syncNumberingToXmlTree2(part, numbering);
428515
+ }
428516
+ }
428517
+ ]
428518
+ });
428519
+ }
427635
428520
  var init_numbering_mutation = __esm(() => {
427636
428521
  init_mutate_part();
427637
428522
  init_numbering_part_descriptor();
@@ -427648,7 +428533,9 @@ var generateNewListDefinition3 = ({
427648
428533
  editor,
427649
428534
  markerFontFamily,
427650
428535
  bulletStyle,
427651
- bulletStyleLevel
428536
+ bulletStyleLevel,
428537
+ orderedStyle,
428538
+ orderedStyleLevel
427652
428539
  }) => {
427653
428540
  let resultDefs;
427654
428541
  mutateNumbering2(editor, "list-numbering-helpers:generateNewListDefinition", (numbering) => {
@@ -427661,7 +428548,9 @@ var generateNewListDefinition3 = ({
427661
428548
  fmt,
427662
428549
  markerFontFamily,
427663
428550
  bulletStyle,
427664
- bulletStyleLevel
428551
+ bulletStyleLevel,
428552
+ orderedStyle,
428553
+ orderedStyleLevel
427665
428554
  });
427666
428555
  resultDefs = { abstractDef: result.abstractDef, numDef: result.numDef };
427667
428556
  });
@@ -427896,6 +428785,37 @@ var generateNewListDefinition3 = ({
427896
428785
  mutateNumbering2(editor, "list-numbering-helpers:setLvlRestartOnAbstract", (numbering) => {
427897
428786
  setLvlRestartOnAbstract2(numbering, abstractNumId, ilvl, restartAfterLevel);
427898
428787
  });
428788
+ }, setListLevelStyles2 = ({ editor, levels }) => {
428789
+ if (!levels?.length)
428790
+ return false;
428791
+ const resolved = [];
428792
+ for (const level of levels) {
428793
+ const abstractIdRaw = getListDefinitionDetails2({ numId: level.numId, level: level.ilvl, editor })?.abstractId;
428794
+ const abstractNumId = abstractIdRaw != null ? Number(abstractIdRaw) : NaN;
428795
+ if (!Number.isFinite(abstractNumId))
428796
+ continue;
428797
+ resolved.push({
428798
+ abstractNumId,
428799
+ ilvl: level.ilvl,
428800
+ bulletStyle: level.bulletStyle,
428801
+ orderedStyle: level.orderedStyle
428802
+ });
428803
+ }
428804
+ if (!resolved.length)
428805
+ return false;
428806
+ let anyChanged = false;
428807
+ mutateNumberingBatch2(editor, "list-numbering-helpers:setListLevelStyles", resolved.map(({ abstractNumId, ilvl, bulletStyle, orderedStyle }) => (numbering) => {
428808
+ if (setLvlStyleOnAbstract2(numbering, abstractNumId, ilvl, { bulletStyle, orderedStyle })) {
428809
+ anyChanged = true;
428810
+ }
428811
+ }));
428812
+ return anyChanged;
428813
+ }, cloneListDefinitionWithLevelStyle3 = ({ editor, sourceNumId, ilvl, bulletStyle, orderedStyle }) => {
428814
+ let result = null;
428815
+ mutateNumbering2(editor, "list-numbering-helpers:cloneListDefinitionWithLevelStyle", (numbering) => {
428816
+ result = cloneListDefinitionWithLevelStyle2(numbering, sourceNumId, ilvl, { bulletStyle, orderedStyle });
428817
+ });
428818
+ return result;
427899
428819
  }, ListHelpers2;
427900
428820
  var init_list_numbering_helpers = __esm(() => {
427901
428821
  init_listImporter();
@@ -427920,6 +428840,8 @@ var init_list_numbering_helpers = __esm(() => {
427920
428840
  removeLvlOverride: removeLvlOverride3,
427921
428841
  createNumDefinition: createNumDefinition3,
427922
428842
  setLvlRestartOnAbstract: setLvlRestartOnAbstract3,
428843
+ setListLevelStyles: setListLevelStyles2,
428844
+ cloneListDefinitionWithLevelStyle: cloneListDefinitionWithLevelStyle3,
427923
428845
  rebuildRawNumberingFromTranslated: rebuildRawNumberingFromTranslated2,
427924
428846
  createNewList: createNewList2,
427925
428847
  createSchemaOrderedListNode: createSchemaOrderedListNode2,