@superdoc-dev/mcp 0.3.0-next.62 → 0.3.0-next.64

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 +1366 -421
  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-BLL9JGke.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;
@@ -98829,14 +99043,11 @@ var isRegExp = (value) => {
98829
99043
  }
98830
99044
  return result;
98831
99045
  }, intToAlpha = (num) => {
98832
- let result = "";
98833
- const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
98834
- let value = num;
98835
- while (value > 0) {
98836
- result = alphabet[(value - 1) % 26] + result;
98837
- value = Math.floor((value - 1) / 26);
98838
- }
98839
- 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);
98840
99051
  }, intToJapaneseCounting = (num) => {
98841
99052
  const digits = [
98842
99053
  "",
@@ -99184,7 +99395,7 @@ var isRegExp = (value) => {
99184
99395
  updateNumberingProperties(numberingProperties, node2, pos, editor, tr);
99185
99396
  });
99186
99397
  return true;
99187
- }, 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 }) => {
99188
99399
  let resultDefs;
99189
99400
  mutateNumbering(editor, "list-numbering-helpers:generateNewListDefinition", (numbering) => {
99190
99401
  const result = generateNewListDefinition(numbering, {
@@ -99196,7 +99407,9 @@ var isRegExp = (value) => {
99196
99407
  fmt,
99197
99408
  markerFontFamily,
99198
99409
  bulletStyle,
99199
- bulletStyleLevel
99410
+ bulletStyleLevel,
99411
+ orderedStyle,
99412
+ orderedStyleLevel
99200
99413
  });
99201
99414
  resultDefs = {
99202
99415
  abstractDef: result.abstractDef,
@@ -99443,6 +99656,46 @@ var isRegExp = (value) => {
99443
99656
  mutateNumbering(editor, "list-numbering-helpers:setLvlRestartOnAbstract", (numbering) => {
99444
99657
  setLvlRestartOnAbstract(numbering, abstractNumId, ilvl, restartAfterLevel);
99445
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;
99446
99699
  }, ListHelpers, extractListLevelStyles = (cssText, listId, level, numId) => {
99447
99700
  const pattern = new RegExp(`@list\\s+l${listId}:level${level}(?:\\s+lfo${numId})?\\s*\\{([^}]+)\\}`, "i");
99448
99701
  const match = cssText.match(pattern);
@@ -104425,7 +104678,7 @@ var isRegExp = (value) => {
104425
104678
  state.kern = kernNode.attributes["w:val"];
104426
104679
  }
104427
104680
  }, SuperConverter;
104428
- var init_SuperConverter_BLL9JGke_es = __esm(() => {
104681
+ var init_SuperConverter_D1o6_yKI_es = __esm(() => {
104429
104682
  init_rolldown_runtime_Bg48TavK_es();
104430
104683
  init_jszip_C49i9kUs_es();
104431
104684
  init_xml_js_CqGKpaft_es();
@@ -134811,6 +135064,54 @@ var init_SuperConverter_BLL9JGke_es = __esm(() => {
134811
135064
  circle: "◦",
134812
135065
  square: "▪"
134813
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
+ };
134814
135115
  NUMBERING_ROOT_ATTRS = {
134815
135116
  "xmlns:w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
134816
135117
  "xmlns:w15": "http://schemas.microsoft.com/office/word/2012/wordml",
@@ -134888,6 +135189,8 @@ var init_SuperConverter_BLL9JGke_es = __esm(() => {
134888
135189
  removeLvlOverride: removeLvlOverride$1,
134889
135190
  createNumDefinition: createNumDefinition$1,
134890
135191
  setLvlRestartOnAbstract: setLvlRestartOnAbstract$1,
135192
+ setListLevelStyles,
135193
+ cloneListDefinitionWithLevelStyle: cloneListDefinitionWithLevelStyle$1,
134891
135194
  rebuildRawNumberingFromTranslated,
134892
135195
  createNewList,
134893
135196
  createSchemaOrderedListNode,
@@ -142033,7 +142336,7 @@ var init_SuperConverter_BLL9JGke_es = __esm(() => {
142033
142336
  };
142034
142337
  });
142035
142338
 
142036
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-D7n_Okb2.es.js
142339
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-CJ0iQq1T.es.js
142037
142340
  function parseSizeUnit(val = "0") {
142038
142341
  const length = val.toString() || "0";
142039
142342
  const value = Number.parseFloat(length);
@@ -144328,15 +144631,27 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
144328
144631
  disabled: false,
144329
144632
  value: isActive2 ? paragraphNode?.attrs?.listRendering?.markerText ?? null : null
144330
144633
  };
144634
+ const activeNumberingFmt = isActive2 ? paragraphNode?.attrs?.listRendering?.numberingType ?? null : null;
144635
+ const activeMarkerText = isActive2 ? paragraphNode?.attrs?.listRendering?.markerText ?? null : null;
144331
144636
  return {
144332
144637
  active: isActive2,
144333
- disabled: false
144638
+ disabled: false,
144639
+ value: activeNumberingFmt && activeMarkerText ? numberingInfoToOrderedStyle(activeNumberingFmt, activeMarkerText) : null
144334
144640
  };
144335
144641
  }, createIndentIncreaseExecute = () => ({ context }) => {
144336
144642
  if (resolveStateEditor(context)?.commands?.increaseListIndent?.())
144337
144643
  return true;
144338
144644
  return createDirectCommandExecute("increaseTextIndent")({ context });
144339
- }, 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 }) => {
144340
144655
  if (resolveStateEditor(context)?.commands?.decreaseListIndent?.())
144341
144656
  return true;
144342
144657
  return createDirectCommandExecute("decreaseTextIndent")({ context });
@@ -144472,12 +144787,14 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
144472
144787
  "bullet-list": {
144473
144788
  id: "bullet-list",
144474
144789
  directCommandName: "toggleBulletListStyle",
144475
- state: createListStateDeriver("bullet")
144790
+ state: createListStateDeriver("bullet"),
144791
+ execute: createBulletListExecute()
144476
144792
  },
144477
144793
  "numbered-list": {
144478
144794
  id: "numbered-list",
144479
- directCommandName: "toggleOrderedList",
144480
- state: createListStateDeriver("ordered")
144795
+ directCommandName: "toggleOrderedListStyle",
144796
+ state: createListStateDeriver("ordered"),
144797
+ execute: createOrderedListExecute()
144481
144798
  },
144482
144799
  "indent-increase": {
144483
144800
  id: "indent-increase",
@@ -144686,8 +145003,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
144686
145003
  }
144687
145004
  };
144688
145005
  };
144689
- var init_create_headless_toolbar_D7n_Okb2_es = __esm(() => {
144690
- init_SuperConverter_BLL9JGke_es();
145006
+ var init_create_headless_toolbar_CJ0iQq1T_es = __esm(() => {
145007
+ init_SuperConverter_D1o6_yKI_es();
144691
145008
  init_constants_DrU4EASo_es();
144692
145009
  init_dist_B8HfvhaK_es();
144693
145010
  CSS_DIMENSION_REGEX = /[\d-.]+(\w+)$/;
@@ -146134,7 +146451,7 @@ var init_decrypt_docx_4kQ488M9_es = __esm(() => {
146134
146451
  ]);
146135
146452
  });
146136
146453
 
146137
- // ../../packages/superdoc/dist/chunks/DocxZipper-CUX64E5K.es.js
146454
+ // ../../packages/superdoc/dist/chunks/DocxZipper-Dh4RtvcE.es.js
146138
146455
  function sniffEncoding(u8) {
146139
146456
  if (u8.length >= 2) {
146140
146457
  const b0 = u8[0], b1 = u8[1];
@@ -146177,6 +146494,15 @@ function ensureXmlString(content2) {
146177
146494
  xml = xml.replace(/(<\?xml\b[^?]*?)\bencoding\s*=\s*["'][^"']*["']/i, '$1encoding="UTF-8"');
146178
146495
  return xml;
146179
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
+ }
146180
146506
  function readEntry(path2, baseFiles, updatedDocs) {
146181
146507
  if (updatedDocs && Object.prototype.hasOwnProperty.call(updatedDocs, path2))
146182
146508
  return updatedDocs[path2];
@@ -146197,7 +146523,7 @@ function parseXml(xmlString) {
146197
146523
  }
146198
146524
  }
146199
146525
  function serializeXml(jsObject) {
146200
- return import_lib$2.js2xml(jsObject, { spaces: 0 });
146526
+ return serializeOpcXml(jsObject);
146201
146527
  }
146202
146528
  function findRootElement(parsed, tagName) {
146203
146529
  return parsed?.elements?.find((el) => {
@@ -146414,9 +146740,9 @@ function reconcileDocumentRelationships(relsXml, fileExists) {
146414
146740
  }
146415
146741
  if (!changed)
146416
146742
  return relsXml;
146417
- return import_lib$12.js2xml(parsed, { spaces: 0 });
146743
+ return serializeOpcXml(parsed);
146418
146744
  }
146419
- 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 {
146420
146746
  constructor(params = {}) {
146421
146747
  this.debug = params.debug || false;
146422
146748
  this.zip = new import_jszip_min.default;
@@ -146785,7 +147111,7 @@ var DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.docum
146785
147111
  return `image/${MIME_TYPE_FOR_EXT[detectedType] || detectedType}`;
146786
147112
  }
146787
147113
  }, DocxZipper_default;
146788
- var init_DocxZipper_CUX64E5K_es = __esm(() => {
147114
+ var init_DocxZipper_Dh4RtvcE_es = __esm(() => {
146789
147115
  init_rolldown_runtime_Bg48TavK_es();
146790
147116
  init_jszip_C49i9kUs_es();
146791
147117
  init_xml_js_CqGKpaft_es();
@@ -146813,6 +147139,8 @@ var init_DocxZipper_CUX64E5K_es = __esm(() => {
146813
147139
  relationshipType: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties"
146814
147140
  }
146815
147141
  ];
147142
+ import_lib$3 = /* @__PURE__ */ __toESM2(require_lib(), 1);
147143
+ QUOT_PLACEHOLDER_REGEX = /SD_OPC_QUOT/g;
146816
147144
  import_lib$2 = /* @__PURE__ */ __toESM2(require_lib(), 1);
146817
147145
  import_lib$12 = /* @__PURE__ */ __toESM2(require_lib(), 1);
146818
147146
  MANAGED_DOCUMENT_PARTS = [{
@@ -198895,7 +199223,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
198895
199223
  init_remark_gfm_BhnWr3yf_es();
198896
199224
  });
198897
199225
 
198898
- // ../../packages/superdoc/dist/chunks/src-C4h4xIas.es.js
199226
+ // ../../packages/superdoc/dist/chunks/src-C-jV2TZI.es.js
198899
199227
  function deleteProps(obj, propOrProps) {
198900
199228
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
198901
199229
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -198952,9 +199280,11 @@ function cssColorToHex(cssColor) {
198952
199280
  return trimmed;
198953
199281
  }
198954
199282
  function computeTabStops$1(context) {
198955
- const { explicitStops, defaultTabInterval, paragraphIndent } = context;
199283
+ const { explicitStops, defaultTabInterval, paragraphIndent, rawParagraphIndent } = context;
198956
199284
  const leftIndent = paragraphIndent.left ?? 0;
198957
199285
  const hanging = paragraphIndent.hanging ?? 0;
199286
+ const rawLeftIndent = rawParagraphIndent?.left ?? leftIndent;
199287
+ const rawHanging = rawParagraphIndent?.hanging ?? hanging;
198958
199288
  const effectiveMinIndent = Math.max(0, leftIndent - hanging);
198959
199289
  const clearPositions = explicitStops.filter((stop) => stop.val === "clear").map((stop) => stop.pos);
198960
199290
  const filteredExplicitStops = explicitStops.filter((stop) => stop.val !== "clear").filter((stop) => stop.pos >= effectiveMinIndent).map((stop) => ({
@@ -198965,6 +199295,7 @@ function computeTabStops$1(context) {
198965
199295
  const stops = [...filteredExplicitStops];
198966
199296
  const hasStartAlignedExplicit = filteredExplicitStops.some((stop) => stop.val === "start");
198967
199297
  const hasExplicitStops = filteredExplicitStops.length > 0;
199298
+ const hasClearAtPosition = (position4) => clearPositions.some((clearPos) => Math.abs(clearPos - position4) < TAB_POSITION_TOLERANCE_TWIPS);
198968
199299
  const hasClearAtLeftIndent = clearPositions.some((clearPos) => Math.abs(clearPos - leftIndent) < TAB_POSITION_TOLERANCE_TWIPS);
198969
199300
  if (!hasExplicitStops && !hasClearAtLeftIndent && hanging > 0 && leftIndent > effectiveMinIndent)
198970
199301
  stops.push({
@@ -198973,6 +199304,22 @@ function computeTabStops$1(context) {
198973
199304
  leader: "none",
198974
199305
  source: "default"
198975
199306
  });
199307
+ const firstLineOrigin = rawLeftIndent - rawHanging;
199308
+ if (firstLineOrigin < 0 && !hasClearAtPosition(0) && !stops.some((stop) => Math.abs(stop.pos) < TAB_POSITION_TOLERANCE_TWIPS))
199309
+ stops.push({
199310
+ val: "start",
199311
+ pos: 0,
199312
+ leader: "none",
199313
+ source: "default"
199314
+ });
199315
+ const leftIndentStop = Math.abs(rawLeftIndent);
199316
+ if (rawHanging > 0 && leftIndentStop > 0 && firstLineOrigin < leftIndentStop && !hasClearAtPosition(leftIndentStop) && !stops.some((stop) => Math.abs(stop.pos - leftIndentStop) < TAB_POSITION_TOLERANCE_TWIPS))
199317
+ stops.push({
199318
+ val: "start",
199319
+ pos: leftIndentStop,
199320
+ leader: "none",
199321
+ source: "default"
199322
+ });
198976
199323
  const defaultStart = !hasStartAlignedExplicit ? 0 : Math.max(maxExplicit, leftIndent);
198977
199324
  let pos = defaultStart;
198978
199325
  const targetLimit = Math.max(defaultStart, leftIndent, maxExplicit) + 14400;
@@ -201835,7 +202182,7 @@ function getParagraphListKind(node2, editor) {
201835
202182
  return null;
201836
202183
  return numFmtIsBullet(fmt) ? "bullet" : "ordered";
201837
202184
  }
201838
- function paragraphMatchesToggleListType(node2, editor, listType, bulletStyle) {
202185
+ function paragraphMatchesToggleListType(node2, editor, listType, bulletStyle, orderedStyle) {
201839
202186
  const kind = getParagraphListKind(node2, editor);
201840
202187
  if (!kind)
201841
202188
  return false;
@@ -201847,8 +202194,14 @@ function paragraphMatchesToggleListType(node2, editor, listType, bulletStyle) {
201847
202194
  const markerText = node2.attrs.listRendering?.markerText;
201848
202195
  return markerTextToBulletStyle(markerText) === bulletStyle;
201849
202196
  }
201850
- if (listType === "orderedList")
201851
- return kind === "ordered";
202197
+ if (listType === "orderedList") {
202198
+ if (kind !== "ordered")
202199
+ return false;
202200
+ if (!orderedStyle)
202201
+ return true;
202202
+ const { numberingType, markerText } = node2.attrs.listRendering ?? {};
202203
+ return numberingInfoToOrderedStyle(numberingType, markerText) === orderedStyle;
202204
+ }
201852
202205
  return false;
201853
202206
  }
201854
202207
  function getPrecedingParagraphForListReuse(doc$12, from$1, paragraphsInSelection) {
@@ -241656,119 +242009,6 @@ function applyAlphaToSVG(svg2, alphaData) {
241656
242009
  function generateGradientId(prefix2 = "gradient") {
241657
242010
  return `${prefix2}-${Date.now()}-${gradientIdCounter++}-${Math.random().toString(36).substring(2, 11)}`;
241658
242011
  }
241659
- function isResolvedFragmentWithBorders(item) {
241660
- return item !== undefined && item.kind === "fragment" && "paragraphBorders" in item && item.paragraphBorders !== undefined;
241661
- }
241662
- function resolveClipPath(value) {
241663
- if (typeof value !== "string")
241664
- return;
241665
- const trimmed = value.trim();
241666
- return trimmed.length > 0 ? trimmed : undefined;
241667
- }
241668
- function applyImageClipPath(el, clipPath, options) {
241669
- const resolved = resolveClipPath(clipPath);
241670
- if (resolved) {
241671
- if (options?.clipContainer)
241672
- options.clipContainer.style.overflow = "hidden";
241673
- el.style.clipPath = resolved;
241674
- const scale = parseInsetClipPathForScale(resolved);
241675
- if (scale) {
241676
- el.style.transformOrigin = "0 0";
241677
- el.style.transform = `translate(${scale.translateX}%, ${scale.translateY}%) scale(${scale.scaleX}, ${scale.scaleY})`;
241678
- }
241679
- }
241680
- }
241681
- function isStructuredContentMetadata(sdt) {
241682
- return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "structuredContent";
241683
- }
241684
- function isDocumentSectionMetadata(sdt) {
241685
- return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "documentSection";
241686
- }
241687
- function getSdtContainerConfig(sdt) {
241688
- if (isDocumentSectionMetadata(sdt))
241689
- return {
241690
- className: "superdoc-document-section",
241691
- labelText: sdt.title ?? "Document section",
241692
- labelClassName: "superdoc-document-section__tooltip",
241693
- isStart: true,
241694
- isEnd: true
241695
- };
241696
- if (isStructuredContentMetadata(sdt) && sdt.scope === "block")
241697
- return {
241698
- className: "superdoc-structured-content-block",
241699
- labelText: sdt.alias ?? "Structured content",
241700
- labelClassName: "superdoc-structured-content__label",
241701
- isStart: true,
241702
- isEnd: true
241703
- };
241704
- return null;
241705
- }
241706
- function getSdtContainerMetadata$1(sdt, containerSdt) {
241707
- if (getSdtContainerConfig(sdt))
241708
- return sdt ?? null;
241709
- if (getSdtContainerConfig(containerSdt))
241710
- return containerSdt ?? null;
241711
- return null;
241712
- }
241713
- function getSdtContainerKey(sdt, containerSdt) {
241714
- const metadata = getSdtContainerMetadata$1(sdt, containerSdt);
241715
- if (!metadata)
241716
- return null;
241717
- if (metadata.type === "structuredContent") {
241718
- if (metadata.scope !== "block")
241719
- return null;
241720
- if (!metadata.id)
241721
- return null;
241722
- return `structuredContent:${metadata.id}`;
241723
- }
241724
- if (metadata.type === "documentSection") {
241725
- const sectionId = metadata.id ?? metadata.sdBlockId;
241726
- if (!sectionId)
241727
- return null;
241728
- return `documentSection:${sectionId}`;
241729
- }
241730
- return null;
241731
- }
241732
- function applySdtContainerStyling(doc$12, container, sdt, containerSdt, boundaryOptions) {
241733
- let config3 = getSdtContainerConfig(sdt);
241734
- if (!config3 && containerSdt)
241735
- config3 = getSdtContainerConfig(containerSdt);
241736
- if (!config3)
241737
- return;
241738
- const isStart = boundaryOptions?.isStart ?? config3.isStart;
241739
- const isEnd = boundaryOptions?.isEnd ?? config3.isEnd;
241740
- container.classList.add(config3.className);
241741
- container.dataset.sdtContainerStart = String(isStart);
241742
- container.dataset.sdtContainerEnd = String(isEnd);
241743
- container.style.overflow = "visible";
241744
- if (isStructuredContentMetadata(sdt))
241745
- container.dataset.lockMode = sdt.lockMode || "unlocked";
241746
- else if (isStructuredContentMetadata(containerSdt))
241747
- container.dataset.lockMode = containerSdt.lockMode || "unlocked";
241748
- if (boundaryOptions?.widthOverride != null)
241749
- container.style.width = `${boundaryOptions.widthOverride}px`;
241750
- if (boundaryOptions?.paddingBottomOverride != null && boundaryOptions.paddingBottomOverride > 0)
241751
- container.style.paddingBottom = `${boundaryOptions.paddingBottomOverride}px`;
241752
- if (boundaryOptions?.showLabel ?? isStart) {
241753
- const labelEl = doc$12.createElement("div");
241754
- labelEl.className = config3.labelClassName;
241755
- const labelText = doc$12.createElement("span");
241756
- labelText.textContent = config3.labelText;
241757
- labelEl.appendChild(labelText);
241758
- container.appendChild(labelEl);
241759
- }
241760
- }
241761
- function shouldRebuildForSdtBoundary(element3, boundary) {
241762
- if (!boundary)
241763
- return element3.dataset.sdtContainerStart !== undefined;
241764
- const startAttr = element3.dataset.sdtContainerStart;
241765
- const endAttr = element3.dataset.sdtContainerEnd;
241766
- const expectedStart = String(boundary.isStart ?? true);
241767
- const expectedEnd = String(boundary.isEnd ?? true);
241768
- if (startAttr === undefined || endAttr === undefined)
241769
- return true;
241770
- return startAttr !== expectedStart || endAttr !== expectedEnd;
241771
- }
241772
242012
  function resolveListMarkerGeometry(wordLayout, indentLeft, firstLine, hanging, measureMarkerText) {
241773
242013
  const marker = wordLayout?.marker;
241774
242014
  if (!marker)
@@ -241913,6 +242153,119 @@ function computeTabWidth(currentPos, justification, tabs, hangingIndent, firstLi
241913
242153
  tabWidth = nextDefaultTabStop - currentPos;
241914
242154
  return tabWidth;
241915
242155
  }
242156
+ function isResolvedFragmentWithBorders(item) {
242157
+ return item !== undefined && item.kind === "fragment" && "paragraphBorders" in item && item.paragraphBorders !== undefined;
242158
+ }
242159
+ function resolveClipPath(value) {
242160
+ if (typeof value !== "string")
242161
+ return;
242162
+ const trimmed = value.trim();
242163
+ return trimmed.length > 0 ? trimmed : undefined;
242164
+ }
242165
+ function applyImageClipPath(el, clipPath, options) {
242166
+ const resolved = resolveClipPath(clipPath);
242167
+ if (resolved) {
242168
+ if (options?.clipContainer)
242169
+ options.clipContainer.style.overflow = "hidden";
242170
+ el.style.clipPath = resolved;
242171
+ const scale = parseInsetClipPathForScale(resolved);
242172
+ if (scale) {
242173
+ el.style.transformOrigin = "0 0";
242174
+ el.style.transform = `translate(${scale.translateX}%, ${scale.translateY}%) scale(${scale.scaleX}, ${scale.scaleY})`;
242175
+ }
242176
+ }
242177
+ }
242178
+ function isStructuredContentMetadata(sdt) {
242179
+ return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "structuredContent";
242180
+ }
242181
+ function isDocumentSectionMetadata(sdt) {
242182
+ return sdt !== null && sdt !== undefined && typeof sdt === "object" && "type" in sdt && sdt.type === "documentSection";
242183
+ }
242184
+ function getSdtContainerConfig(sdt) {
242185
+ if (isDocumentSectionMetadata(sdt))
242186
+ return {
242187
+ className: "superdoc-document-section",
242188
+ labelText: sdt.title ?? "Document section",
242189
+ labelClassName: "superdoc-document-section__tooltip",
242190
+ isStart: true,
242191
+ isEnd: true
242192
+ };
242193
+ if (isStructuredContentMetadata(sdt) && sdt.scope === "block")
242194
+ return {
242195
+ className: "superdoc-structured-content-block",
242196
+ labelText: sdt.alias ?? "Structured content",
242197
+ labelClassName: "superdoc-structured-content__label",
242198
+ isStart: true,
242199
+ isEnd: true
242200
+ };
242201
+ return null;
242202
+ }
242203
+ function getSdtContainerMetadata$1(sdt, containerSdt) {
242204
+ if (getSdtContainerConfig(sdt))
242205
+ return sdt ?? null;
242206
+ if (getSdtContainerConfig(containerSdt))
242207
+ return containerSdt ?? null;
242208
+ return null;
242209
+ }
242210
+ function getSdtContainerKey(sdt, containerSdt) {
242211
+ const metadata = getSdtContainerMetadata$1(sdt, containerSdt);
242212
+ if (!metadata)
242213
+ return null;
242214
+ if (metadata.type === "structuredContent") {
242215
+ if (metadata.scope !== "block")
242216
+ return null;
242217
+ if (!metadata.id)
242218
+ return null;
242219
+ return `structuredContent:${metadata.id}`;
242220
+ }
242221
+ if (metadata.type === "documentSection") {
242222
+ const sectionId = metadata.id ?? metadata.sdBlockId;
242223
+ if (!sectionId)
242224
+ return null;
242225
+ return `documentSection:${sectionId}`;
242226
+ }
242227
+ return null;
242228
+ }
242229
+ function applySdtContainerStyling(doc$12, container, sdt, containerSdt, boundaryOptions) {
242230
+ let config3 = getSdtContainerConfig(sdt);
242231
+ if (!config3 && containerSdt)
242232
+ config3 = getSdtContainerConfig(containerSdt);
242233
+ if (!config3)
242234
+ return;
242235
+ const isStart = boundaryOptions?.isStart ?? config3.isStart;
242236
+ const isEnd = boundaryOptions?.isEnd ?? config3.isEnd;
242237
+ container.classList.add(config3.className);
242238
+ container.dataset.sdtContainerStart = String(isStart);
242239
+ container.dataset.sdtContainerEnd = String(isEnd);
242240
+ container.style.overflow = "visible";
242241
+ if (isStructuredContentMetadata(sdt))
242242
+ container.dataset.lockMode = sdt.lockMode || "unlocked";
242243
+ else if (isStructuredContentMetadata(containerSdt))
242244
+ container.dataset.lockMode = containerSdt.lockMode || "unlocked";
242245
+ if (boundaryOptions?.widthOverride != null)
242246
+ container.style.width = `${boundaryOptions.widthOverride}px`;
242247
+ if (boundaryOptions?.paddingBottomOverride != null && boundaryOptions.paddingBottomOverride > 0)
242248
+ container.style.paddingBottom = `${boundaryOptions.paddingBottomOverride}px`;
242249
+ if (boundaryOptions?.showLabel ?? isStart) {
242250
+ const labelEl = doc$12.createElement("div");
242251
+ labelEl.className = config3.labelClassName;
242252
+ const labelText = doc$12.createElement("span");
242253
+ labelText.textContent = config3.labelText;
242254
+ labelEl.appendChild(labelText);
242255
+ container.appendChild(labelEl);
242256
+ }
242257
+ }
242258
+ function shouldRebuildForSdtBoundary(element3, boundary) {
242259
+ if (!boundary)
242260
+ return element3.dataset.sdtContainerStart !== undefined;
242261
+ const startAttr = element3.dataset.sdtContainerStart;
242262
+ const endAttr = element3.dataset.sdtContainerEnd;
242263
+ const expectedStart = String(boundary.isStart ?? true);
242264
+ const expectedEnd = String(boundary.isEnd ?? true);
242265
+ if (startAttr === undefined || endAttr === undefined)
242266
+ return true;
242267
+ return startAttr !== expectedStart || endAttr !== expectedEnd;
242268
+ }
241916
242269
  function getCellSegmentCount(cell2) {
241917
242270
  if (cell2.blocks && cell2.blocks.length > 0) {
241918
242271
  let total = 0;
@@ -242026,22 +242379,7 @@ function renderListMarker(params$1) {
242026
242379
  lineEl.style.paddingLeft = `${anchorPoint}px`;
242027
242380
  if (markerLayout?.run?.vanish)
242028
242381
  return;
242029
- const markerContainer = doc$12.createElement("span");
242030
- markerContainer.style.display = "inline-block";
242031
- markerContainer.style.wordSpacing = "0px";
242032
- const markerEl = doc$12.createElement("span");
242033
- markerEl.classList.add("superdoc-paragraph-marker");
242034
- markerEl.textContent = markerLayout?.markerText ?? "";
242035
- markerEl.style.pointerEvents = "none";
242036
- markerEl.style.fontFamily = toCssFontFamily(markerLayout?.run?.fontFamily) ?? markerLayout?.run?.fontFamily ?? "";
242037
- if (markerLayout?.run?.fontSize != null)
242038
- markerEl.style.fontSize = `${markerLayout.run.fontSize}px`;
242039
- markerEl.style.fontWeight = markerLayout?.run?.bold ? "bold" : "";
242040
- markerEl.style.fontStyle = markerLayout?.run?.italic ? "italic" : "";
242041
- if (markerLayout?.run?.color)
242042
- markerEl.style.color = markerLayout.run.color;
242043
- if (markerLayout?.run?.letterSpacing != null)
242044
- markerEl.style.letterSpacing = `${markerLayout.run.letterSpacing}px`;
242382
+ const markerContainer = createListMarkerElement(doc$12, markerLayout?.markerText ?? "", markerLayout?.run ?? {});
242045
242383
  markerContainer.style.position = "relative";
242046
242384
  if (markerJustification === "right") {
242047
242385
  markerContainer.style.position = "absolute";
@@ -242051,7 +242389,6 @@ function renderListMarker(params$1) {
242051
242389
  markerContainer.style.left = `${markerStartPos - markerTextWidth / 2}px`;
242052
242390
  lineEl.style.paddingLeft = parseFloat(lineEl.style.paddingLeft) + markerTextWidth / 2 + "px";
242053
242391
  }
242054
- markerContainer.appendChild(markerEl);
242055
242392
  const suffixType = markerLayout?.suffix ?? "tab";
242056
242393
  if (suffixType === "tab") {
242057
242394
  const tabEl = doc$12.createElement("span");
@@ -242946,7 +243283,8 @@ function resolveParagraphContent(fragment, block, measure) {
242946
243283
  if (!hasExplicitSegmentPositioning)
242947
243284
  textIndentPx = firstLineOffset;
242948
243285
  }
242949
- availableWidth = adjustAvailableWidthForTextIndent(availableWidth, textIndentPx, line.maxWidth);
243286
+ const availableWidthIndentOffset = isFirstLine && !isListFirstLine && line.hasExplicitTabStops !== true ? firstLineOffset : textIndentPx;
243287
+ availableWidth = adjustAvailableWidthForTextIndent(availableWidth, availableWidthIndentOffset, line.maxWidth);
242950
243288
  const indentLeft = paraIndent?.left ?? 0;
242951
243289
  const firstLine = paraIndent?.firstLine ?? 0;
242952
243290
  const hanging = paraIndent?.hanging ?? 0;
@@ -248815,8 +249153,8 @@ function remeasureParagraph(block, maxWidth, firstLineIndent = 0) {
248815
249153
  const wordLayout = attrs?.wordLayout;
248816
249154
  const rawIndentLeft = typeof indent2?.left === "number" && Number.isFinite(indent2.left) ? indent2.left : 0;
248817
249155
  const rawIndentRight = typeof indent2?.right === "number" && Number.isFinite(indent2.right) ? indent2.right : 0;
248818
- const indentLeft = Math.max(0, rawIndentLeft);
248819
- const indentRight = Math.max(0, rawIndentRight);
249156
+ const indentLeft = rawIndentLeft;
249157
+ const indentRight = rawIndentRight;
248820
249158
  const indentFirstLine = Math.max(0, indent2?.firstLine ?? 0);
248821
249159
  const indentHanging = Math.max(0, indent2?.hanging ?? 0);
248822
249160
  const baseFirstLineOffset = attrs?.suppressFirstLineIndent === true ? 0 : firstLineIndent || indentFirstLine - indentHanging;
@@ -256063,7 +256401,7 @@ function isSameRenderedNoteTarget(left$1, right$1) {
256063
256401
  function isOutsidePageBodyContent(layout, x, pageIndex, pageLocalY) {
256064
256402
  if (!Number.isFinite(x) || !Number.isFinite(pageIndex) || !Number.isFinite(pageLocalY))
256065
256403
  return false;
256066
- const page = layout.pages[pageIndex];
256404
+ const page = layout?.pages?.[pageIndex];
256067
256405
  if (!page)
256068
256406
  return false;
256069
256407
  const pageWidth = page.size?.w ?? layout.pageSize.w;
@@ -259318,6 +259656,7 @@ async function measureParagraphBlock(block, maxWidth) {
259318
259656
  let hasSeenTextRun = false;
259319
259657
  let tabStopCursor = 0;
259320
259658
  let pendingTabAlignment = null;
259659
+ let pendingSegmentPrecedingTabEndX;
259321
259660
  let pendingLeader = null;
259322
259661
  let pendingRunSpacing = 0;
259323
259662
  let lastAppliedTabAlign = null;
@@ -259340,7 +259679,7 @@ async function measureParagraphBlock(block, maxWidth) {
259340
259679
  return;
259341
259680
  if (segmentWidth < 0)
259342
259681
  segmentWidth = 0;
259343
- const { target, val } = pendingTabAlignment;
259682
+ const { target, val, compensateNegativeLeft } = pendingTabAlignment;
259344
259683
  let startX = currentLine.width;
259345
259684
  if (val === "decimal") {
259346
259685
  const beforeWidth = beforeDecimalWidth ?? 0;
@@ -259351,10 +259690,9 @@ async function measureParagraphBlock(block, maxWidth) {
259351
259690
  startX = Math.max(0, target - segmentWidth / 2);
259352
259691
  else
259353
259692
  startX = Math.max(0, target);
259354
- if (pendingLeader) {
259355
- const effectiveIndent = lines.length === 0 ? indentLeft + rawFirstLineOffset : indentLeft;
259693
+ const effectiveIndent = lines.length === 0 ? indentLeft + rawFirstLineOffset : indentLeft;
259694
+ if (pendingLeader)
259356
259695
  pendingLeader.to = startX + effectiveIndent;
259357
- }
259358
259696
  currentLine.width = roundValue(startX);
259359
259697
  lastAppliedTabAlign = {
259360
259698
  target,
@@ -259362,7 +259700,17 @@ async function measureParagraphBlock(block, maxWidth) {
259362
259700
  };
259363
259701
  pendingTabAlignment = null;
259364
259702
  pendingLeader = null;
259365
- return startX;
259703
+ const shouldCompensateNegativeLeft = compensateNegativeLeft === true;
259704
+ pendingSegmentPrecedingTabEndX = shouldCompensateNegativeLeft ? startX : undefined;
259705
+ return shouldCompensateNegativeLeft ? startX - Math.min(effectiveIndent, 0) : startX;
259706
+ };
259707
+ const consumePendingPrecedingTabEndX = () => {
259708
+ const value = pendingSegmentPrecedingTabEndX;
259709
+ pendingSegmentPrecedingTabEndX = undefined;
259710
+ return value;
259711
+ };
259712
+ const clearPendingPrecedingTabEndX = () => {
259713
+ pendingSegmentPrecedingTabEndX = undefined;
259366
259714
  };
259367
259715
  const alignSegmentAtTab = (segmentText, font, runContext, segmentStartChar) => {
259368
259716
  if (!pendingTabAlignment || !currentLine)
@@ -259703,7 +260051,8 @@ async function measureParagraphBlock(block, maxWidth) {
259703
260051
  } else
259704
260052
  pendingTabAlignment = {
259705
260053
  target: clampedTarget - effectiveIndent,
259706
- val: stop.val
260054
+ val: stop.val,
260055
+ compensateNegativeLeft: stop.val === "start" && indentLeft < 0 && effectiveIndent === indentLeft && stop.source !== "explicit"
259707
260056
  };
259708
260057
  } else {
259709
260058
  pendingTabAlignment = null;
@@ -259725,6 +260074,7 @@ async function measureParagraphBlock(block, maxWidth) {
259725
260074
  activeTabGroup.currentX = roundValue(activeTabGroup.currentX + imageWidth);
259726
260075
  } else if (pendingTabAlignment && currentLine)
259727
260076
  imageStartX = alignPendingTabForWidth(imageWidth);
260077
+ const imagePrecedingTabEndX = imageStartX !== undefined ? consumePendingPrecedingTabEndX() : undefined;
259728
260078
  if (!currentLine) {
259729
260079
  currentLine = {
259730
260080
  fromRun: runIndex,
@@ -259741,7 +260091,8 @@ async function measureParagraphBlock(block, maxWidth) {
259741
260091
  fromChar: 0,
259742
260092
  toChar: 1,
259743
260093
  width: imageWidth,
259744
- ...imageStartX !== undefined ? { x: imageStartX } : {}
260094
+ ...imageStartX !== undefined ? { x: imageStartX } : {},
260095
+ ...imagePrecedingTabEndX !== undefined ? { precedingTabEndX: imagePrecedingTabEndX } : {}
259745
260096
  }]
259746
260097
  };
259747
260098
  pendingRunSpacing = 0;
@@ -259793,7 +260144,8 @@ async function measureParagraphBlock(block, maxWidth) {
259793
260144
  fromChar: 0,
259794
260145
  toChar: 1,
259795
260146
  width: imageWidth,
259796
- ...imageStartX !== undefined ? { x: imageStartX } : {}
260147
+ ...imageStartX !== undefined ? { x: imageStartX } : {},
260148
+ ...imagePrecedingTabEndX !== undefined ? { precedingTabEndX: imagePrecedingTabEndX } : {}
259797
260149
  });
259798
260150
  }
259799
260151
  if (activeTabGroup && runIndex + 1 >= activeTabGroup.measure.endRunIndex)
@@ -259868,6 +260220,7 @@ async function measureParagraphBlock(block, maxWidth) {
259868
260220
  let annotationStartX;
259869
260221
  if (pendingTabAlignment && currentLine)
259870
260222
  annotationStartX = alignPendingTabForWidth(annotationWidth);
260223
+ const annotationPrecedingTabEndX = annotationStartX !== undefined ? consumePendingPrecedingTabEndX() : undefined;
259871
260224
  if (!currentLine) {
259872
260225
  currentLine = {
259873
260226
  fromRun: runIndex,
@@ -259883,7 +260236,8 @@ async function measureParagraphBlock(block, maxWidth) {
259883
260236
  fromChar: 0,
259884
260237
  toChar: 1,
259885
260238
  width: annotationWidth,
259886
- ...annotationStartX !== undefined ? { x: annotationStartX } : {}
260239
+ ...annotationStartX !== undefined ? { x: annotationStartX } : {},
260240
+ ...annotationPrecedingTabEndX !== undefined ? { precedingTabEndX: annotationPrecedingTabEndX } : {}
259887
260241
  }]
259888
260242
  };
259889
260243
  pendingRunSpacing = 0;
@@ -259930,7 +260284,8 @@ async function measureParagraphBlock(block, maxWidth) {
259930
260284
  fromChar: 0,
259931
260285
  toChar: 1,
259932
260286
  width: annotationWidth,
259933
- ...annotationStartX !== undefined ? { x: annotationStartX } : {}
260287
+ ...annotationStartX !== undefined ? { x: annotationStartX } : {},
260288
+ ...annotationPrecedingTabEndX !== undefined ? { precedingTabEndX: annotationPrecedingTabEndX } : {}
259934
260289
  });
259935
260290
  }
259936
260291
  const tabAlign = lastAppliedTabAlign;
@@ -260038,6 +260393,18 @@ async function measureParagraphBlock(block, maxWidth) {
260038
260393
  if (segmentStartX == null)
260039
260394
  segmentStartX = currentLine.width;
260040
260395
  }
260396
+ let hasPendingSegmentTabGeometry = segmentStartX !== undefined;
260397
+ const consumeSegmentPrecedingTabEndX = () => {
260398
+ if (!hasPendingSegmentTabGeometry)
260399
+ return;
260400
+ hasPendingSegmentTabGeometry = false;
260401
+ return consumePendingPrecedingTabEndX();
260402
+ };
260403
+ const clearWrapState = () => {
260404
+ segmentStartX = undefined;
260405
+ hasPendingSegmentTabGeometry = false;
260406
+ clearPendingPrecedingTabEndX();
260407
+ };
260041
260408
  for (let wordIndex = 0;wordIndex < words.length; wordIndex++) {
260042
260409
  const word$1 = words[wordIndex];
260043
260410
  if (word$1 === "") {
@@ -260079,6 +260446,7 @@ async function measureParagraphBlock(block, maxWidth) {
260079
260446
  pendingLeader = null;
260080
260447
  lastAppliedTabAlign = null;
260081
260448
  activeTabGroup = null;
260449
+ clearWrapState();
260082
260450
  currentLine = {
260083
260451
  fromRun: runIndex,
260084
260452
  fromChar: spaceStartChar,
@@ -260103,11 +260471,15 @@ async function measureParagraphBlock(block, maxWidth) {
260103
260471
  currentLine.maxFontInfo = updateMaxFontInfo(currentLine.maxFontSize, currentLine.maxFontInfo, run2);
260104
260472
  currentLine.maxFontSize = Math.max(currentLine.maxFontSize, lineHeightFontSize(run2));
260105
260473
  let spaceExplicitX;
260474
+ let spacePrecedingTabEndX;
260106
260475
  if (inActiveTabGroup && activeTabGroup) {
260107
260476
  spaceExplicitX = activeTabGroup.currentX;
260108
260477
  activeTabGroup.currentX = roundValue(activeTabGroup.currentX + singleSpaceWidth);
260478
+ } else if (wordIndex === 0 && segmentStartX !== undefined) {
260479
+ spaceExplicitX = segmentStartX;
260480
+ spacePrecedingTabEndX = consumeSegmentPrecedingTabEndX();
260109
260481
  }
260110
- appendSegment(currentLine.segments, runIndex, spaceStartChar, spaceEndChar, singleSpaceWidth, spaceExplicitX);
260482
+ appendSegment(currentLine.segments, runIndex, spaceStartChar, spaceEndChar, singleSpaceWidth, spaceExplicitX, spacePrecedingTabEndX);
260111
260483
  currentLine.spaceCount += 1;
260112
260484
  }
260113
260485
  }
@@ -260135,6 +260507,7 @@ async function measureParagraphBlock(block, maxWidth) {
260135
260507
  pendingTabAlignment = null;
260136
260508
  pendingLeader = null;
260137
260509
  currentLine = null;
260510
+ clearWrapState();
260138
260511
  }
260139
260512
  const lineMaxWidth = getEffectiveWidth(lines.length === 0 ? initialAvailableWidth : contentWidth);
260140
260513
  const hasTabOnlyLine = currentLine && currentLine.segments && currentLine.segments.length === 0 && currentLine.width > 0;
@@ -260180,6 +260553,7 @@ async function measureParagraphBlock(block, maxWidth) {
260180
260553
  pendingTabAlignment = null;
260181
260554
  pendingLeader = null;
260182
260555
  currentLine = null;
260556
+ clearWrapState();
260183
260557
  }
260184
260558
  } else if (isLastChunk) {
260185
260559
  currentLine = {
@@ -260227,6 +260601,7 @@ async function measureParagraphBlock(block, maxWidth) {
260227
260601
  };
260228
260602
  addBarTabsToLine(chunkLine);
260229
260603
  lines.push(chunkLine);
260604
+ clearWrapState();
260230
260605
  }
260231
260606
  chunkCharOffset = chunkEndChar;
260232
260607
  }
@@ -260288,6 +260663,8 @@ async function measureParagraphBlock(block, maxWidth) {
260288
260663
  }
260289
260664
  }
260290
260665
  if (shouldBreak) {
260666
+ if (wordIndex === 0 && hasPendingSegmentTabGeometry)
260667
+ clearWrapState();
260291
260668
  trimTrailingWrapSpaces(currentLine);
260292
260669
  const metrics = finalizeLineMetrics(currentLine, spacing);
260293
260670
  const completedLine = {
@@ -260340,7 +260717,7 @@ async function measureParagraphBlock(block, maxWidth) {
260340
260717
  activeTabGroup.currentX = roundValue(activeTabGroup.currentX + wordOnlyWidth);
260341
260718
  } else if (wordIndex === 0 && segmentStartX !== undefined)
260342
260719
  explicitXHere = segmentStartX;
260343
- appendSegment(currentLine.segments, runIndex, wordStartChar, wordEndNoSpace, wordOnlyWidth, explicitXHere);
260720
+ appendSegment(currentLine.segments, runIndex, wordStartChar, wordEndNoSpace, wordOnlyWidth, explicitXHere, wordIndex === 0 ? consumeSegmentPrecedingTabEndX() : undefined);
260344
260721
  trimTrailingWrapSpaces(currentLine);
260345
260722
  const metrics = finalizeLineMetrics(currentLine, spacing);
260346
260723
  const completedLine = {
@@ -260370,7 +260747,7 @@ async function measureParagraphBlock(block, maxWidth) {
260370
260747
  currentLine.width = roundValue(targetWidth);
260371
260748
  currentLine.maxFontInfo = updateMaxFontInfo(currentLine.maxFontSize, currentLine.maxFontInfo, run2);
260372
260749
  currentLine.maxFontSize = Math.max(currentLine.maxFontSize, lineHeightFontSize(run2));
260373
- appendSegment(currentLine.segments, runIndex, wordStartChar, newToChar, wordCommitWidth, explicitX);
260750
+ appendSegment(currentLine.segments, runIndex, wordStartChar, newToChar, wordCommitWidth, explicitX, wordIndex === 0 ? consumeSegmentPrecedingTabEndX() : undefined);
260374
260751
  if (shouldIncludeDelimiterSpace)
260375
260752
  currentLine.spaceCount += 1;
260376
260753
  }
@@ -260423,7 +260800,8 @@ async function measureParagraphBlock(block, maxWidth) {
260423
260800
  validateTabStopVal(stop);
260424
260801
  pendingTabAlignment = {
260425
260802
  target: clampedTarget - effectiveIndent,
260426
- val: stop.val
260803
+ val: stop.val,
260804
+ compensateNegativeLeft: stop.val === "start" && indentLeft < 0 && effectiveIndent === indentLeft && stop.source !== "explicit"
260427
260805
  };
260428
260806
  } else {
260429
260807
  pendingTabAlignment = null;
@@ -265426,10 +265804,10 @@ var Node$13 = class Node$14 {
265426
265804
  } catch {
265427
265805
  return false;
265428
265806
  }
265429
- }, toggleList = (listType, bulletStyle) => ({ editor, state, tr, dispatch }) => {
265807
+ }, toggleList = (listType, bulletStyle, orderedStyle) => ({ editor, state, tr, dispatch }) => {
265430
265808
  if (listType !== "orderedList" && listType !== "bulletList")
265431
265809
  return false;
265432
- const predicate = (n) => paragraphMatchesToggleListType(n, editor, listType, bulletStyle);
265810
+ const predicate = (n) => paragraphMatchesToggleListType(n, editor, listType, bulletStyle, orderedStyle);
265433
265811
  const { selection } = state;
265434
265812
  const { from: from$1, to } = selection;
265435
265813
  let firstListNode = null;
@@ -265445,7 +265823,35 @@ var Node$13 = class Node$14 {
265445
265823
  }
265446
265824
  return true;
265447
265825
  });
265448
- let paragraphsInSelection = allParagraphsInSelection.length === 1 ? allParagraphsInSelection : allParagraphsInSelection.filter(({ node: node2 }) => !isVisuallyEmptyParagraph(node2));
265826
+ const originalParagraphsInSelection = allParagraphsInSelection.length === 1 ? allParagraphsInSelection : allParagraphsInSelection.filter(({ node: node2 }) => !isVisuallyEmptyParagraph(node2));
265827
+ let paragraphsInSelection = originalParagraphsInSelection;
265828
+ const seenLevels = /* @__PURE__ */ new Set;
265829
+ let allListItems = paragraphsInSelection.length > 0;
265830
+ for (const { node: node2 } of paragraphsInSelection) {
265831
+ const np = getResolvedParagraphProperties(node2)?.numberingProperties;
265832
+ if (!np?.numId) {
265833
+ allListItems = false;
265834
+ break;
265835
+ }
265836
+ seenLevels.add(`${Number(np.numId)}:${Number(np.ilvl ?? 0)}`);
265837
+ }
265838
+ if (allListItems && seenLevels.size > 0 && selection.empty) {
265839
+ const expanded = new Map(paragraphsInSelection.map((p$12) => [p$12.pos, p$12]));
265840
+ state.doc.descendants((node2, pos) => {
265841
+ if (node2.type.name !== "paragraph")
265842
+ return true;
265843
+ if (expanded.has(pos))
265844
+ return false;
265845
+ const np = getResolvedParagraphProperties(node2)?.numberingProperties;
265846
+ if (np?.numId && seenLevels.has(`${Number(np.numId)}:${Number(np.ilvl ?? 0)}`))
265847
+ expanded.set(pos, {
265848
+ node: node2,
265849
+ pos
265850
+ });
265851
+ return false;
265852
+ });
265853
+ paragraphsInSelection = [...expanded.values()].sort((a2, b$1) => a2.pos - b$1.pos);
265854
+ }
265449
265855
  for (const { node: node2 } of paragraphsInSelection)
265450
265856
  if (!firstListNode && predicate(node2))
265451
265857
  firstListNode = node2;
@@ -265457,6 +265863,46 @@ var Node$13 = class Node$14 {
265457
265863
  if (beforeNode && predicate(beforeNode))
265458
265864
  firstListNode = beforeNode;
265459
265865
  }
265866
+ if (firstListNode == null && allListItems && selection.empty) {
265867
+ const effectiveBulletStyle = listType === "bulletList" ? bulletStyle ?? "disc" : null;
265868
+ const effectiveOrderedStyle = listType === "orderedList" ? orderedStyle ?? "decimal" : null;
265869
+ const groups = /* @__PURE__ */ new Map;
265870
+ for (const p$12 of paragraphsInSelection) {
265871
+ const np = getResolvedParagraphProperties(p$12.node).numberingProperties;
265872
+ const sourceNumId = Number(np.numId);
265873
+ const ilvl = Number(np.ilvl ?? 0);
265874
+ const key2 = `${sourceNumId}:${ilvl}`;
265875
+ if (!groups.has(key2))
265876
+ groups.set(key2, {
265877
+ sourceNumId,
265878
+ ilvl,
265879
+ paragraphs: []
265880
+ });
265881
+ groups.get(key2).paragraphs.push(p$12);
265882
+ }
265883
+ if (groups.size > 0) {
265884
+ if (!dispatch)
265885
+ return true;
265886
+ for (const { sourceNumId, ilvl, paragraphs } of groups.values()) {
265887
+ const minted = ListHelpers.cloneListDefinitionWithLevelStyle({
265888
+ editor,
265889
+ sourceNumId,
265890
+ ilvl,
265891
+ bulletStyle: effectiveBulletStyle,
265892
+ orderedStyle: effectiveOrderedStyle
265893
+ });
265894
+ if (!minted)
265895
+ continue;
265896
+ for (const { node: node2, pos } of paragraphs)
265897
+ updateNumberingProperties({
265898
+ numId: minted.newNumId,
265899
+ ilvl
265900
+ }, node2, pos, editor, tr);
265901
+ }
265902
+ dispatch(tr);
265903
+ return true;
265904
+ }
265905
+ }
265460
265906
  let mode = null;
265461
265907
  let sharedNumberingProperties = null;
265462
265908
  if (firstListNode)
@@ -265475,12 +265921,12 @@ var Node$13 = class Node$14 {
265475
265921
  if (!dispatch)
265476
265922
  return true;
265477
265923
  if (mode === "create") {
265478
- let bulletStyleLevel = 0;
265479
- if (bulletStyle) {
265924
+ let styleOverrideLevel = 0;
265925
+ if (bulletStyle || orderedStyle) {
265480
265926
  const firstExistingListPara = paragraphsInSelection.find(({ node: node2 }) => getResolvedParagraphProperties(node2)?.numberingProperties?.ilvl != null);
265481
265927
  const existingIlvl = firstExistingListPara ? getResolvedParagraphProperties(firstExistingListPara.node)?.numberingProperties?.ilvl : null;
265482
265928
  if (existingIlvl != null)
265483
- bulletStyleLevel = existingIlvl;
265929
+ styleOverrideLevel = existingIlvl;
265484
265930
  }
265485
265931
  const numId = ListHelpers.getNewListId(editor);
265486
265932
  ListHelpers.generateNewListDefinition({
@@ -265488,7 +265934,9 @@ var Node$13 = class Node$14 {
265488
265934
  listType,
265489
265935
  editor,
265490
265936
  bulletStyle,
265491
- bulletStyleLevel
265937
+ bulletStyleLevel: styleOverrideLevel,
265938
+ orderedStyle,
265939
+ orderedStyleLevel: styleOverrideLevel
265492
265940
  });
265493
265941
  sharedNumberingProperties = {
265494
265942
  numId: Number(numId),
@@ -265508,16 +265956,16 @@ var Node$13 = class Node$14 {
265508
265956
  ilvl: existingIlvl
265509
265957
  } : sharedNumberingProperties, node2, pos, editor, tr);
265510
265958
  }
265511
- if (paragraphsInSelection.length > 0) {
265512
- const firstPara = paragraphsInSelection[0];
265513
- const lastPara = paragraphsInSelection[paragraphsInSelection.length - 1];
265959
+ if (originalParagraphsInSelection.length > 0) {
265960
+ const firstPara = originalParagraphsInSelection[0];
265961
+ const lastPara = originalParagraphsInSelection[originalParagraphsInSelection.length - 1];
265514
265962
  const firstParagraphPos = firstPara.pos;
265515
265963
  const lastParagraphPos = lastPara.pos;
265516
265964
  const firstNode = tr.doc.nodeAt(firstParagraphPos);
265517
265965
  const lastNode = tr.doc.nodeAt(lastParagraphPos);
265518
265966
  const restoredSelectionRange = computeToggleListSelectionRange({
265519
265967
  selectionWasCollapsed: selection.empty,
265520
- affectedParagraphCount: paragraphsInSelection.length,
265968
+ affectedParagraphCount: originalParagraphsInSelection.length,
265521
265969
  firstParagraphPos,
265522
265970
  lastParagraphPos,
265523
265971
  firstNode,
@@ -265525,7 +265973,7 @@ var Node$13 = class Node$14 {
265525
265973
  });
265526
265974
  if (restoredSelectionRange && restoredSelectionRange.from >= 0 && restoredSelectionRange.to <= tr.doc.content.size && restoredSelectionRange.from <= restoredSelectionRange.to)
265527
265975
  try {
265528
- if (selection.empty && paragraphsInSelection.length === 1)
265976
+ if (selection.empty && originalParagraphsInSelection.length === 1)
265529
265977
  tr.setSelection(Selection.near(tr.doc.resolve(restoredSelectionRange.to), -1));
265530
265978
  else
265531
265979
  tr.setSelection(TextSelection.create(tr.doc, restoredSelectionRange.from, restoredSelectionRange.to));
@@ -265678,16 +266126,56 @@ var Node$13 = class Node$14 {
265678
266126
  uniqueByType.set(typeName, mark2);
265679
266127
  }
265680
266128
  return Array.from(uniqueByType.values());
265681
- }, commands_exports, restartNumbering = ({ editor, tr, state, dispatch }) => {
265682
- const { node: paragraph2 } = findParentNode(isList)(state.selection) || {};
266129
+ }, commands_exports, restartNumbering = ({ editor, tr, state }) => {
266130
+ const { node: paragraph2, pos: paragraphPos } = findParentNode(isList)(state.selection) || {};
265683
266131
  if (!paragraph2)
265684
266132
  return false;
265685
266133
  const { numId, ilvl = 0 } = getResolvedParagraphProperties(paragraph2).numberingProperties || {};
265686
266134
  if (numId == null)
265687
266135
  return false;
265688
- ListHelpers.setLvlOverride(editor, numId, ilvl, { startOverride: 1 });
265689
- if (dispatch)
265690
- dispatch(tr);
266136
+ let hasPrecedingItems = false;
266137
+ state.doc.nodesBetween(0, paragraphPos, (node2) => {
266138
+ if (hasPrecedingItems)
266139
+ return false;
266140
+ if (node2.type.name !== "paragraph")
266141
+ return true;
266142
+ if (getResolvedParagraphProperties(node2)?.numberingProperties?.numId === numId)
266143
+ hasPrecedingItems = true;
266144
+ return false;
266145
+ });
266146
+ if (!hasPrecedingItems) {
266147
+ ListHelpers.setLvlOverride(editor, numId, ilvl, { startOverride: 1 });
266148
+ if (editor.view)
266149
+ tr.setMeta("preventDispatch", true);
266150
+ return true;
266151
+ }
266152
+ const abstractId = ListHelpers.getAllListDefinitions(editor)?.[numId]?.[ilvl]?.abstractId;
266153
+ if (abstractId == null)
266154
+ return false;
266155
+ const { numId: newNumId } = ListHelpers.createNumDefinition(editor, Number(abstractId));
266156
+ ListHelpers.setLvlOverride(editor, newNumId, ilvl, { startOverride: 1 });
266157
+ state.doc.nodesBetween(paragraphPos, state.doc.content.size, (node2, pos) => {
266158
+ if (node2.type.name !== "paragraph")
266159
+ return true;
266160
+ const props = getResolvedParagraphProperties(node2)?.numberingProperties;
266161
+ if (props?.numId === numId)
266162
+ updateNumberingProperties({
266163
+ numId: newNumId,
266164
+ ilvl: props.ilvl ?? 0
266165
+ }, node2, pos, editor, tr);
266166
+ return true;
266167
+ });
266168
+ return true;
266169
+ }, continueNumbering = ({ editor, tr, state }) => {
266170
+ const { node: paragraph2 } = findParentNode(isList)(state.selection) || {};
266171
+ if (!paragraph2)
266172
+ return false;
266173
+ const { numId, ilvl = 0 } = getResolvedParagraphProperties(paragraph2)?.numberingProperties || {};
266174
+ if (numId == null)
266175
+ return false;
266176
+ ListHelpers.removeLvlOverride(editor, numId, ilvl);
266177
+ if (editor.view)
266178
+ tr.setMeta("preventDispatch", true);
265691
266179
  return true;
265692
266180
  }, PIXELS_PER_TWIP, toFiniteNumber$12 = (value) => {
265693
266181
  if (value == null)
@@ -272394,10 +272882,72 @@ var Node$13 = class Node$14 {
272394
272882
  <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"/>
272395
272883
  </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>
272396
272884
  `, 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>
272397
- `, 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>
272885
+ `, 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">
272886
+ <g clip-path="url(#clip0_0_1)">
272887
+ <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"/>
272888
+ <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"/>
272889
+ <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"/>
272890
+ <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"/>
272891
+ </g>
272892
+ <defs>
272893
+ <clipPath id="clip0_0_1">
272894
+ <rect width="512" height="512" fill="white"/>
272895
+ </clipPath>
272896
+ </defs>
272897
+ </svg>
272898
+ `, list_decimal_paren_solid_default = `<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
272899
+ <g clip-path="url(#clip0_1_12)">
272900
+ <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"/>
272901
+ <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"/>
272902
+ <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"/>
272903
+ <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"/>
272904
+ </g>
272905
+ <defs>
272906
+ <clipPath id="clip0_1_12">
272907
+ <rect width="512" height="512" fill="white"/>
272908
+ </clipPath>
272909
+ </defs>
272910
+ </svg>
272911
+ `, list_upper_roman_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272912
+ <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"/>
272913
+ <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>
272914
+ <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>
272915
+ <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>
272916
+ </svg>
272917
+ `, list_lower_roman_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272918
+ <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"/>
272919
+ <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>
272920
+ <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>
272921
+ <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>
272922
+ </svg>
272923
+ `, list_upper_alpha_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272924
+ <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"/>
272925
+ <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>
272926
+ <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>
272927
+ <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>
272928
+ </svg>
272929
+ `, list_upper_alpha_paren_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272930
+ <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"/>
272931
+ <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>
272932
+ <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>
272933
+ <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>
272934
+ </svg>
272935
+ `, list_lower_alpha_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272936
+ <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"/>
272937
+ <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>
272938
+ <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>
272939
+ <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>
272940
+ </svg>
272941
+ `, list_lower_alpha_paren_solid_default = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
272942
+ <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"/>
272943
+ <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>
272944
+ <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>
272945
+ <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>
272946
+ </svg>
272947
+ `, 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>
272398
272948
  `, 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>
272399
272949
  `, 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>
272400
- `, 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>
272950
+ `, 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>
272401
272951
  `, _hoisted_1$14, _hoisted_2$11, _hoisted_3$8, IconGrid_default, closeDropdown$1 = (dropdown) => {
272402
272952
  dropdown.expand.value = false;
272403
272953
  }, makeColorOption = (color2, label = null) => {
@@ -272950,7 +273500,6 @@ var Node$13 = class Node$14 {
272950
273500
  hasCaret: true,
272951
273501
  tooltip: toolbarTexts$1.bulletList,
272952
273502
  restoreEditorFocus: true,
272953
- suppressActiveHighlight: true,
272954
273503
  attributes: { ariaLabel: "Bullet list" },
272955
273504
  options: [{
272956
273505
  type: "render",
@@ -272967,7 +273516,9 @@ var Node$13 = class Node$14 {
272967
273516
  argument: style2
272968
273517
  });
272969
273518
  };
272970
- return exports_vue.h(BulletStyleButtons_default, {
273519
+ return exports_vue.h(StyleButtonsList_default, {
273520
+ buttons: bulletStyleButtons,
273521
+ iconSize: 25,
272971
273522
  selectedStyle: bulletedList.selectedValue.value,
272972
273523
  onSelect: handleSelect
272973
273524
  });
@@ -272975,14 +273526,39 @@ var Node$13 = class Node$14 {
272975
273526
  }]
272976
273527
  });
272977
273528
  const numberedList = useToolbarItem({
272978
- type: "button",
273529
+ type: "dropdown",
272979
273530
  name: "numberedlist",
272980
- command: "toggleOrderedList",
273531
+ command: "toggleOrderedListStyle",
273532
+ splitButton: true,
273533
+ splitButtonCommand: "toggleOrderedList",
272981
273534
  icon: toolbarIcons$1.numberedList,
272982
- active: false,
273535
+ hasCaret: true,
272983
273536
  tooltip: toolbarTexts$1.numberedList,
272984
273537
  restoreEditorFocus: true,
272985
- attributes: { ariaLabel: "Numbered list" }
273538
+ attributes: { ariaLabel: "Numbered list" },
273539
+ options: [{
273540
+ type: "render",
273541
+ key: "numbered-style-buttons",
273542
+ render: () => {
273543
+ const handleSelect = (style2) => {
273544
+ closeDropdown(numberedList);
273545
+ const item = {
273546
+ ...numberedList,
273547
+ command: "toggleOrderedListStyle"
273548
+ };
273549
+ superToolbar.emitCommand({
273550
+ item,
273551
+ argument: style2
273552
+ });
273553
+ };
273554
+ return exports_vue.h(StyleButtonsList_default, {
273555
+ buttons: numberedStyleButtons,
273556
+ iconSize: 30,
273557
+ selectedStyle: numberedList.selectedValue.value,
273558
+ onSelect: handleSelect
273559
+ });
273560
+ }
273561
+ }]
272986
273562
  });
272987
273563
  const indentLeft = useToolbarItem({
272988
273564
  type: "button",
@@ -277506,7 +278082,85 @@ menclose::after {
277506
278082
  styleEl.textContent = MATH_MENCLOSE_STYLES;
277507
278083
  doc$12.head?.appendChild(styleEl);
277508
278084
  mathMencloseStylesInjected = true;
277509
- }, gradientIdCounter = 0, isBetweenBorderNone = (borders) => {
278085
+ }, gradientIdCounter = 0, getFiniteNumber = (value) => {
278086
+ if (typeof value !== "number" || !Number.isFinite(value))
278087
+ return;
278088
+ return value;
278089
+ }, getNonNegativeFiniteNumber = (value) => {
278090
+ const numericValue = getFiniteNumber(value);
278091
+ if (numericValue == null || numericValue < 0)
278092
+ return;
278093
+ return numericValue;
278094
+ }, getMarkerTextWidthPx = (marker, measureMarkerText) => {
278095
+ const glyphWidthPx = getNonNegativeFiniteNumber(marker.glyphWidthPx);
278096
+ if (glyphWidthPx != null)
278097
+ return glyphWidthPx;
278098
+ if (marker.markerText) {
278099
+ const safeMeasuredWidthPx = getNonNegativeFiniteNumber(measureMarkerText(marker.markerText, marker));
278100
+ if (safeMeasuredWidthPx != null)
278101
+ return safeMeasuredWidthPx;
278102
+ }
278103
+ return getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0;
278104
+ }, getMarkerBoxWidthPx = (marker, markerTextWidthPx) => Math.max(getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0, markerTextWidthPx), getExplicitFirstLineMarkerStartPx = (wordLayout, marker) => {
278105
+ if (wordLayout?.firstLineIndentMode !== true)
278106
+ return;
278107
+ return getFiniteNumber(marker.markerX);
278108
+ }, getMarkerAnchorPx = (indentLeft, firstLine, hanging) => indentLeft - hanging + firstLine, getMarkerStartPx = (anchorPx, justification, markerTextWidthPx) => {
278109
+ if (justification === "right")
278110
+ return anchorPx - markerTextWidthPx;
278111
+ if (justification === "center")
278112
+ return anchorPx - markerTextWidthPx / 2;
278113
+ return anchorPx;
278114
+ }, getNextExplicitTabStopPx = (tabsPx, currentPosPx) => {
278115
+ if (!Array.isArray(tabsPx))
278116
+ return;
278117
+ for (const tabPx of tabsPx)
278118
+ if (typeof tabPx === "number" && Number.isFinite(tabPx) && tabPx > currentPosPx)
278119
+ return tabPx;
278120
+ }, getFirstLineTextStartTargetPx = (wordLayout, marker) => {
278121
+ return getFiniteNumber(marker.textStartX) ?? getFiniteNumber(wordLayout?.textStartPx);
278122
+ }, getNextDefaultTabStopPx = (currentPosPx) => {
278123
+ const remainderPx = currentPosPx % 48;
278124
+ if (remainderPx === 0)
278125
+ return currentPosPx + 48;
278126
+ return currentPosPx + 48 - remainderPx;
278127
+ }, getMinimumReadableTextStartPx = (markerContentEndPx, gutterWidthPx) => markerContentEndPx + gutterWidthPx, resolveExplicitStandardTextStartPx = (explicitTextStartPx, markerContentEndPx, gutterWidthPx) => {
278128
+ if (explicitTextStartPx == null)
278129
+ return;
278130
+ if (explicitTextStartPx > markerContentEndPx)
278131
+ return explicitTextStartPx;
278132
+ if (explicitTextStartPx > 0) {
278133
+ const nextTabStopPx = getNextDefaultTabStopPx(markerContentEndPx);
278134
+ const minReadablePx = getMinimumReadableTextStartPx(markerContentEndPx, gutterWidthPx);
278135
+ return Math.max(nextTabStopPx, minReadablePx);
278136
+ }
278137
+ }, getFiniteNonNegativeNumber = (value) => {
278138
+ if (typeof value !== "number" || !Number.isFinite(value) || value < 0)
278139
+ return;
278140
+ return value;
278141
+ }, 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) => {
278142
+ const markerContainer = doc$12.createElement("span");
278143
+ markerContainer.classList.add(DOM_CLASS_NAMES.LIST_MARKER);
278144
+ markerContainer.style.display = "inline-block";
278145
+ markerContainer.style.wordSpacing = "0px";
278146
+ const markerEl = doc$12.createElement("span");
278147
+ markerEl.classList.add("superdoc-paragraph-marker");
278148
+ markerEl.textContent = markerText;
278149
+ markerEl.style.pointerEvents = "none";
278150
+ markerEl.style.fontFamily = toCssFontFamily(run2.fontFamily) ?? run2.fontFamily ?? "";
278151
+ if (run2.fontSize != null)
278152
+ markerEl.style.fontSize = `${run2.fontSize}px`;
278153
+ markerEl.style.fontWeight = run2.bold ? "bold" : "";
278154
+ markerEl.style.fontStyle = run2.italic ? "italic" : "";
278155
+ if (run2.color)
278156
+ markerEl.style.color = run2.color;
278157
+ if (run2.letterSpacing != null)
278158
+ markerEl.style.letterSpacing = `${run2.letterSpacing}px`;
278159
+ markerContainer.appendChild(markerEl);
278160
+ if (sourceAnchor)
278161
+ applySourceAnchorDataset(markerEl, sourceAnchor);
278162
+ return markerContainer;
278163
+ }, isBetweenBorderNone = (borders) => {
277510
278164
  if (!borders?.between)
277511
278165
  return true;
277512
278166
  return borders.between.style === "none";
@@ -277790,60 +278444,7 @@ menclose::after {
277790
278444
  line.el.style.marginLeft = `${marginLeft}px`;
277791
278445
  line.el.style.marginRight = `${marginRight}px`;
277792
278446
  });
277793
- }, getFiniteNumber = (value) => {
277794
- if (typeof value !== "number" || !Number.isFinite(value))
277795
- return;
277796
- return value;
277797
- }, getNonNegativeFiniteNumber = (value) => {
277798
- const numericValue = getFiniteNumber(value);
277799
- if (numericValue == null || numericValue < 0)
277800
- return;
277801
- return numericValue;
277802
- }, getMarkerTextWidthPx = (marker, measureMarkerText) => {
277803
- const glyphWidthPx = getNonNegativeFiniteNumber(marker.glyphWidthPx);
277804
- if (glyphWidthPx != null)
277805
- return glyphWidthPx;
277806
- if (marker.markerText) {
277807
- const safeMeasuredWidthPx = getNonNegativeFiniteNumber(measureMarkerText(marker.markerText, marker));
277808
- if (safeMeasuredWidthPx != null)
277809
- return safeMeasuredWidthPx;
277810
- }
277811
- return getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0;
277812
- }, getMarkerBoxWidthPx = (marker, markerTextWidthPx) => Math.max(getNonNegativeFiniteNumber(marker.markerBoxWidthPx) ?? 0, markerTextWidthPx), getExplicitFirstLineMarkerStartPx = (wordLayout, marker) => {
277813
- if (wordLayout?.firstLineIndentMode !== true)
277814
- return;
277815
- return getFiniteNumber(marker.markerX);
277816
- }, getMarkerAnchorPx = (indentLeft, firstLine, hanging) => indentLeft - hanging + firstLine, getMarkerStartPx = (anchorPx, justification, markerTextWidthPx) => {
277817
- if (justification === "right")
277818
- return anchorPx - markerTextWidthPx;
277819
- if (justification === "center")
277820
- return anchorPx - markerTextWidthPx / 2;
277821
- return anchorPx;
277822
- }, getNextExplicitTabStopPx = (tabsPx, currentPosPx) => {
277823
- if (!Array.isArray(tabsPx))
277824
- return;
277825
- for (const tabPx of tabsPx)
277826
- if (typeof tabPx === "number" && Number.isFinite(tabPx) && tabPx > currentPosPx)
277827
- return tabPx;
277828
- }, getFirstLineTextStartTargetPx = (wordLayout, marker) => {
277829
- return getFiniteNumber(marker.textStartX) ?? getFiniteNumber(wordLayout?.textStartPx);
277830
- }, getNextDefaultTabStopPx = (currentPosPx) => {
277831
- const remainderPx = currentPosPx % 48;
277832
- if (remainderPx === 0)
277833
- return currentPosPx + 48;
277834
- return currentPosPx + 48 - remainderPx;
277835
- }, getMinimumReadableTextStartPx = (markerContentEndPx, gutterWidthPx) => markerContentEndPx + gutterWidthPx, resolveExplicitStandardTextStartPx = (explicitTextStartPx, markerContentEndPx, gutterWidthPx) => {
277836
- if (explicitTextStartPx == null)
277837
- return;
277838
- if (explicitTextStartPx > markerContentEndPx)
277839
- return explicitTextStartPx;
277840
- if (explicitTextStartPx > 0)
277841
- return getMinimumReadableTextStartPx(markerContentEndPx, gutterWidthPx);
277842
- }, getFiniteNonNegativeNumber = (value) => {
277843
- if (typeof value !== "number" || !Number.isFinite(value) || value < 0)
277844
- return;
277845
- return value;
277846
- }, 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) => {
278447
+ }, normalizeSpan = (span) => {
277847
278448
  if (typeof span !== "number" || !Number.isFinite(span) || span < 1)
277848
278449
  return 1;
277849
278450
  return Math.floor(span);
@@ -281380,7 +281981,7 @@ menclose::after {
281380
281981
  if (transform2 === "capitalize")
281381
281982
  return capitalizeText$2(text5, fullText, startOffset);
281382
281983
  return text5;
281383
- }, DEFAULT_TAB_INTERVAL_TWIPS$2 = 720, TWIPS_PER_PX$2, TAB_EPSILON$1 = 0.1, WIDTH_FUDGE_PX = 0.5, twipsToPx$2 = (twips) => twips / TWIPS_PER_PX$2, pxToTwips$1 = (px) => Math.round(px * TWIPS_PER_PX$2), sanitizeIndent$1 = (value) => typeof value === "number" && Number.isFinite(value) ? Math.max(0, value) : 0, sanitizeDecimalSeparator$1 = (value) => value === "," ? "," : ".", getRunWidth = (run2) => {
281984
+ }, DEFAULT_TAB_INTERVAL_TWIPS$2 = 720, TWIPS_PER_PX$2, TAB_EPSILON$1 = 0.1, WIDTH_FUDGE_PX = 0.5, twipsToPx$2 = (twips) => twips / TWIPS_PER_PX$2, pxToTwips$1 = (px) => Math.round(px * TWIPS_PER_PX$2), sanitizeIndent$1 = (value) => typeof value === "number" && Number.isFinite(value) ? Math.max(0, value) : 0, sanitizeRawIndent = (value) => typeof value === "number" && Number.isFinite(value) ? value : 0, sanitizeDecimalSeparator$1 = (value) => value === "," ? "," : ".", getRunWidth = (run2) => {
281384
281985
  const width = run2.width;
281385
281986
  return typeof width === "number" ? width : 0;
281386
281987
  }, isLineBreakRun$1 = (run2) => run2.kind === "lineBreak" || run2.kind === "break" && run2.breakType === "line", markerFontString = (run2) => {
@@ -281394,10 +281995,17 @@ menclose::after {
281394
281995
  firstLine: pxToTwips$1(sanitizeIndent$1(indent2?.firstLine)),
281395
281996
  hanging: pxToTwips$1(sanitizeIndent$1(indent2?.hanging))
281396
281997
  };
281998
+ const rawParagraphIndentTwips = {
281999
+ left: pxToTwips$1(sanitizeRawIndent(indent2?.left)),
282000
+ right: pxToTwips$1(sanitizeRawIndent(indent2?.right)),
282001
+ firstLine: pxToTwips$1(sanitizeRawIndent(indent2?.firstLine)),
282002
+ hanging: pxToTwips$1(sanitizeIndent$1(indent2?.hanging))
282003
+ };
281397
282004
  return computeTabStops$1({
281398
282005
  explicitStops: tabs ?? [],
281399
282006
  defaultTabInterval: tabIntervalTwips ?? DEFAULT_TAB_INTERVAL_TWIPS$2,
281400
- paragraphIndent: paragraphIndentTwips
282007
+ paragraphIndent: paragraphIndentTwips,
282008
+ rawParagraphIndent: rawParagraphIndentTwips
281401
282009
  }).map((stop) => ({
281402
282010
  pos: twipsToPx$2(stop.pos),
281403
282011
  val: stop.val,
@@ -281622,6 +282230,10 @@ menclose::after {
281622
282230
  }
281623
282231
  const clampedTarget = Number.isFinite(maxAbsWidth) ? Math.min(target, maxAbsWidth) : target;
281624
282232
  const relativeTarget = clampedTarget - effectiveIndent;
282233
+ const stopVal = stop?.val ?? "start";
282234
+ const shouldCompensateNegativeLeft = stopVal === "start" && indentLeft < 0 && effectiveIndent === indentLeft && stop?.source !== "explicit";
282235
+ const paintTarget = shouldCompensateNegativeLeft ? relativeTarget - Math.min(effectiveIndent, 0) : relativeTarget;
282236
+ const precedingTabEndX = shouldCompensateNegativeLeft ? relativeTarget : undefined;
281625
282237
  lineWidth = Math.max(lineWidth, relativeTarget);
281626
282238
  if (stop?.source === "explicit")
281627
282239
  line.hasExplicitTabStops = true;
@@ -281634,7 +282246,6 @@ menclose::after {
281634
282246
  };
281635
282247
  leaders.push(currentLeader);
281636
282248
  }
281637
- const stopVal = stop?.val ?? "start";
281638
282249
  if (stopVal === "end" || stopVal === "center" || stopVal === "decimal") {
281639
282250
  const groupMeasure = measureTabAlignmentGroupInLine(runs2, line, startRunIndex, startChar, decimalSeparator);
281640
282251
  if (groupMeasure.totalWidth > 0) {
@@ -281649,14 +282260,28 @@ menclose::after {
281649
282260
  }
281650
282261
  if (currentLeader)
281651
282262
  currentLeader.to = groupStartX + effectiveIndent;
281652
- pendingTabAlignStartX = groupStartX;
282263
+ pendingTabAlignStartX = {
282264
+ layoutX: groupStartX,
282265
+ paintX: groupStartX
282266
+ };
281653
282267
  } else
281654
282268
  cursorX = Math.max(cursorX, relativeTarget);
281655
- } else
282269
+ } else {
281656
282270
  cursorX = Math.max(cursorX, relativeTarget);
282271
+ pendingTabAlignStartX = {
282272
+ layoutX: relativeTarget,
282273
+ paintX: paintTarget,
282274
+ ...precedingTabEndX !== undefined ? { precedingTabEndX } : {}
282275
+ };
282276
+ }
281657
282277
  if (run2 && run2.kind === "tab")
281658
282278
  run2.width = Math.max(0, relativeTarget - originX);
281659
282279
  };
282280
+ const consumePendingTabAlignStart = () => {
282281
+ const pending = pendingTabAlignStartX;
282282
+ pendingTabAlignStartX = null;
282283
+ return pending;
282284
+ };
281660
282285
  for (let runIndex = line.fromRun;runIndex <= line.toRun; runIndex += 1) {
281661
282286
  const run2 = runs2[runIndex];
281662
282287
  if (!run2)
@@ -281688,10 +282313,12 @@ menclose::after {
281688
282313
  toChar: i4,
281689
282314
  width: segmentWidth
281690
282315
  };
281691
- if (pendingTabAlignStartX != null) {
281692
- segment.x = pendingTabAlignStartX;
281693
- cursorX = pendingTabAlignStartX + segmentWidth;
281694
- pendingTabAlignStartX = null;
282316
+ const pendingTabAlign = consumePendingTabAlignStart();
282317
+ if (pendingTabAlign != null) {
282318
+ segment.x = pendingTabAlign.paintX;
282319
+ if (pendingTabAlign.precedingTabEndX !== undefined)
282320
+ segment.precedingTabEndX = pendingTabAlign.precedingTabEndX;
282321
+ cursorX = pendingTabAlign.layoutX + segmentWidth;
281695
282322
  } else
281696
282323
  cursorX += segmentWidth;
281697
282324
  lineWidth = Math.max(lineWidth, cursorX);
@@ -281709,10 +282336,12 @@ menclose::after {
281709
282336
  toChar: sliceEnd,
281710
282337
  width: segmentWidth
281711
282338
  };
281712
- if (pendingTabAlignStartX != null) {
281713
- segment.x = pendingTabAlignStartX;
281714
- cursorX = pendingTabAlignStartX + segmentWidth;
281715
- pendingTabAlignStartX = null;
282339
+ const pendingTabAlign = consumePendingTabAlignStart();
282340
+ if (pendingTabAlign != null) {
282341
+ segment.x = pendingTabAlign.paintX;
282342
+ if (pendingTabAlign.precedingTabEndX !== undefined)
282343
+ segment.precedingTabEndX = pendingTabAlign.precedingTabEndX;
282344
+ cursorX = pendingTabAlign.layoutX + segmentWidth;
281716
282345
  } else
281717
282346
  cursorX += segmentWidth;
281718
282347
  lineWidth = Math.max(lineWidth, cursorX);
@@ -281883,6 +282512,12 @@ menclose::after {
281883
282512
  return false;
281884
282513
  if (resolveTrackedChangesEnabled(a2.attrs, true) !== resolveTrackedChangesEnabled(b$1.attrs, true))
281885
282514
  return false;
282515
+ const aMarker = a2.attrs?.wordLayout?.marker;
282516
+ const bMarker = b$1.attrs?.wordLayout?.marker;
282517
+ if ((aMarker?.markerText ?? null) !== (bMarker?.markerText ?? null))
282518
+ return false;
282519
+ if ((aMarker?.justification ?? null) !== (bMarker?.justification ?? null))
282520
+ return false;
281886
282521
  if (!paragraphAttrsEqual(a2.attrs, b$1.attrs))
281887
282522
  return false;
281888
282523
  if (a2.runs.length !== b$1.runs.length)
@@ -286801,11 +287436,18 @@ menclose::after {
286801
287436
  } else
286802
287437
  this.#syncNonBodyCommentActivation(event, target, bodyEditor);
286803
287438
  const isNoteEditing = activeNoteSession != null;
286804
- const useActiveSurfaceHitTest = sessionMode !== "body" || activeStorySession != null;
286805
- const editor = sessionMode === "body" && !isNoteEditing ? bodyEditor : this.#deps.getActiveEditor();
286806
- if (sessionMode !== "body") {
287439
+ let currentSessionMode = sessionMode;
287440
+ let useActiveSurfaceHitTest = currentSessionMode !== "body" || activeStorySession != null;
287441
+ let editor = currentSessionMode === "body" && !isNoteEditing ? bodyEditor : this.#deps.getActiveEditor();
287442
+ if (currentSessionMode !== "body") {
286807
287443
  if (this.#handleClickInHeaderFooterMode(event, x, y$1, normalizedPoint.pageIndex, normalizedPoint.pageLocalY))
286808
287444
  return;
287445
+ if ((this.#deps.getHeaderFooterSession()?.session?.mode ?? "body") === "body" && !isNoteEditing) {
287446
+ activeStorySession = this.#deps.getActiveStorySession?.() ?? null;
287447
+ currentSessionMode = "body";
287448
+ useActiveSurfaceHitTest = activeStorySession != null;
287449
+ editor = bodyEditor;
287450
+ }
286809
287451
  }
286810
287452
  if (this.#callbacks.hitTestHeaderFooterRegion?.(x, y$1, normalizedPoint.pageIndex, normalizedPoint.pageLocalY)) {
286811
287453
  if (sessionMode === "body") {
@@ -286813,10 +287455,12 @@ menclose::after {
286813
287455
  return;
286814
287456
  }
286815
287457
  }
286816
- if (!useActiveSurfaceHitTest && isOutsidePageBodyContent(layoutState.layout, x, normalizedPoint.pageIndex, normalizedPoint.pageLocalY)) {
286817
- event.preventDefault();
286818
- this.#focusEditor();
286819
- return;
287458
+ if (!useActiveSurfaceHitTest) {
287459
+ if (!Number.isFinite(normalizedPoint.pageIndex) || isOutsidePageBodyContent(layoutState.layout, x, normalizedPoint.pageIndex, normalizedPoint.pageLocalY)) {
287460
+ event.preventDefault();
287461
+ this.#focusEditor();
287462
+ return;
287463
+ }
286820
287464
  }
286821
287465
  const { rawHit, hit } = this.#resolveSelectionPointerHit({
286822
287466
  layoutState,
@@ -289059,11 +289703,11 @@ menclose::after {
289059
289703
  width: currentWidth
289060
289704
  });
289061
289705
  return chunks;
289062
- }, appendSegment = (segments, runIndex, fromChar, toChar, width, x) => {
289706
+ }, appendSegment = (segments, runIndex, fromChar, toChar, width, x, precedingTabEndX) => {
289063
289707
  if (!segments)
289064
289708
  return;
289065
289709
  const last2 = segments[segments.length - 1];
289066
- if (last2 && last2.runIndex === runIndex && last2.toChar === fromChar && x === undefined) {
289710
+ if (last2 && last2.runIndex === runIndex && last2.toChar === fromChar && last2.x === undefined && last2.precedingTabEndX === undefined && x === undefined && precedingTabEndX === undefined) {
289067
289711
  last2.toChar = toChar;
289068
289712
  last2.width += width;
289069
289713
  return;
@@ -289073,7 +289717,8 @@ menclose::after {
289073
289717
  fromChar,
289074
289718
  toChar,
289075
289719
  width,
289076
- x
289720
+ ...x !== undefined ? { x } : {},
289721
+ ...precedingTabEndX !== undefined ? { precedingTabEndX } : {}
289077
289722
  });
289078
289723
  }, resolveLineHeight = (spacing, fontSize, maxHeight = -1) => {
289079
289724
  let computedHeight = spacing?.line ?? WORD_SINGLE_LINE_SPACING_MULTIPLIER;
@@ -289123,10 +289768,17 @@ menclose::after {
289123
289768
  firstLine: pxToTwips(sanitizePositive(indent2?.firstLine)),
289124
289769
  hanging: pxToTwips(sanitizePositive(indent2?.hanging))
289125
289770
  };
289771
+ const rawParagraphIndentTwips = {
289772
+ left: pxToTwips(sanitizeIndent(indent2?.left)),
289773
+ right: pxToTwips(sanitizeIndent(indent2?.right)),
289774
+ firstLine: pxToTwips(sanitizeIndent(indent2?.firstLine)),
289775
+ hanging: pxToTwips(sanitizePositive(indent2?.hanging))
289776
+ };
289126
289777
  return computeTabStops({
289127
289778
  explicitStops: tabs ?? [],
289128
289779
  defaultTabInterval: tabIntervalTwips ?? DEFAULT_TAB_INTERVAL_TWIPS,
289129
- paragraphIndent: paragraphIndentTwips
289780
+ paragraphIndent: paragraphIndentTwips,
289781
+ rawParagraphIndent: rawParagraphIndentTwips
289130
289782
  }).map((stop) => ({
289131
289783
  pos: twipsToPx(stop.pos),
289132
289784
  val: stop.val,
@@ -290793,18 +291445,18 @@ menclose::after {
290793
291445
  return;
290794
291446
  console.log(...args$1);
290795
291447
  }, 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;
290796
- var init_src_C4h4xIas_es = __esm(() => {
291448
+ var init_src_C_jV2TZI_es = __esm(() => {
290797
291449
  init_rolldown_runtime_Bg48TavK_es();
290798
- init_SuperConverter_BLL9JGke_es();
291450
+ init_SuperConverter_D1o6_yKI_es();
290799
291451
  init_jszip_C49i9kUs_es();
290800
291452
  init_uuid_qzgm05fK_es();
290801
- init_create_headless_toolbar_D7n_Okb2_es();
291453
+ init_create_headless_toolbar_CJ0iQq1T_es();
290802
291454
  init_constants_DrU4EASo_es();
290803
291455
  init_dist_B8HfvhaK_es();
290804
291456
  init_unified_Dsuw2be5_es();
290805
291457
  init_remark_gfm_BhnWr3yf_es();
290806
291458
  init_remark_stringify_6MMJfY0k_es();
290807
- init_DocxZipper_CUX64E5K_es();
291459
+ init_DocxZipper_Dh4RtvcE_es();
290808
291460
  init__plugin_vue_export_helper_HmhZBO0u_es();
290809
291461
  init_eventemitter3_UwU_CLPU_es();
290810
291462
  init_errors_C_DoKMoN_es();
@@ -293807,7 +294459,11 @@ ${err.toString()}`);
293807
294459
  toggleBulletListStyle: (style2) => (params$1) => {
293808
294460
  return toggleList("bulletList", style2)(params$1);
293809
294461
  },
293810
- restartNumbering: () => restartNumbering
294462
+ toggleOrderedListStyle: (style2) => (params$1) => {
294463
+ return toggleList("orderedList", null, style2)(params$1);
294464
+ },
294465
+ restartNumbering: () => restartNumbering,
294466
+ continueNumbering: () => continueNumbering
293811
294467
  };
293812
294468
  },
293813
294469
  addPmPlugins() {
@@ -308985,6 +309641,7 @@ function print() { __p += __j.call(arguments, '') }
308985
309641
  SDT_GROUP_HOVER: "sdt-group-hover",
308986
309642
  IMAGE_FRAGMENT: "superdoc-image-fragment",
308987
309643
  INLINE_IMAGE: "superdoc-inline-image",
309644
+ LIST_MARKER: "superdoc-list-marker",
308988
309645
  INLINE_IMAGE_CLIP_WRAPPER: "superdoc-inline-image-clip-wrapper",
308989
309646
  ANNOTATION: "annotation",
308990
309647
  ANNOTATION_CONTENT: "annotation-content",
@@ -309550,6 +310207,14 @@ function print() { __p += __j.call(arguments, '') }
309550
310207
  bulletListCircle: list_circle_solid_default,
309551
310208
  bulletListSquare: list_square_solid_default,
309552
310209
  numberedList: list_ol_solid_default,
310210
+ numberedListDecimal: list_decimal_solid_default,
310211
+ numberedListDecimalParen: list_decimal_paren_solid_default,
310212
+ numberedListUpperRoman: list_upper_roman_solid_default,
310213
+ numberedListLowerRoman: list_lower_roman_solid_default,
310214
+ numberedListUpperAlpha: list_upper_alpha_solid_default,
310215
+ numberedListUpperAlphaParen: list_upper_alpha_paren_solid_default,
310216
+ numberedListLowerAlpha: list_lower_alpha_solid_default,
310217
+ numberedListLowerAlphaParen: list_lower_alpha_paren_solid_default,
309553
310218
  indentLeft: outdent_solid_default,
309554
310219
  indentRight: indent_solid_default,
309555
310220
  pageBreak: file_half_dashed_solid_default,
@@ -309701,35 +310366,32 @@ function print() { __p += __j.call(arguments, '') }
309701
310366
  "aria-label",
309702
310367
  "onKeydown"
309703
310368
  ];
309704
- BulletStyleButtons_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
309705
- __name: "BulletStyleButtons",
309706
- props: { selectedStyle: {
309707
- type: String,
309708
- default: null
309709
- } },
310369
+ StyleButtonsList_default = /* @__PURE__ */ __plugin_vue_export_helper_default({
310370
+ __name: "StyleButtonsList",
310371
+ props: {
310372
+ buttons: {
310373
+ type: Array,
310374
+ required: true
310375
+ },
310376
+ selectedStyle: {
310377
+ type: String,
310378
+ default: null
310379
+ },
310380
+ iconSize: {
310381
+ type: Number,
310382
+ default: 25
310383
+ }
310384
+ },
309710
310385
  emits: ["select"],
309711
310386
  setup(__props, { emit: __emit }) {
309712
310387
  const { isHighContrastMode: isHighContrastMode$1 } = useHighContrastMode();
309713
310388
  const emit = __emit;
309714
310389
  const props = __props;
309715
310390
  const buttonRefs = exports_vue.ref([]);
309716
- const bulletButtons = [
309717
- {
309718
- key: "disc",
309719
- icon: toolbarIcons.bulletListDisc,
309720
- ariaLabel: "Opaque circle"
309721
- },
309722
- {
309723
- key: "circle",
309724
- icon: toolbarIcons.bulletListCircle,
309725
- ariaLabel: "Outline circle"
309726
- },
309727
- {
309728
- key: "square",
309729
- icon: toolbarIcons.bulletListSquare,
309730
- ariaLabel: "Opaque square"
309731
- }
309732
- ];
310391
+ const iconStyle = exports_vue.computed(() => ({
310392
+ width: `${props.iconSize}px`,
310393
+ height: `${props.iconSize}px`
310394
+ }));
309733
310395
  const select2 = (key2) => {
309734
310396
  emit("select", key2);
309735
310397
  };
@@ -309760,7 +310422,7 @@ function print() { __p += __j.call(arguments, '') }
309760
310422
  moveToNextButton(index2);
309761
310423
  break;
309762
310424
  case "Enter":
309763
- select2(bulletButtons[index2].key);
310425
+ select2(props.buttons[index2].key);
309764
310426
  break;
309765
310427
  default:
309766
310428
  break;
@@ -309774,10 +310436,11 @@ function print() { __p += __j.call(arguments, '') }
309774
310436
  }
309775
310437
  });
309776
310438
  return (_ctx, _cache) => {
309777
- 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) => {
309778
- return exports_vue.createElementVNode("div", {
310439
+ 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) => {
310440
+ return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
309779
310441
  key: button.key,
309780
310442
  class: exports_vue.normalizeClass(["button-icon", { selected: props.selectedStyle === button.key }]),
310443
+ style: exports_vue.normalizeStyle(iconStyle.value),
309781
310444
  onClick: ($event) => select2(button.key),
309782
310445
  innerHTML: button.icon,
309783
310446
  role: "menuitem",
@@ -309786,11 +310449,70 @@ function print() { __p += __j.call(arguments, '') }
309786
310449
  ref_key: "buttonRefs",
309787
310450
  ref: buttonRefs,
309788
310451
  onKeydown: exports_vue.withModifiers((event) => handleKeyDown$1(event, index2), ["prevent"])
309789
- }, null, 42, _hoisted_1$19);
309790
- }), 64))], 2);
310452
+ }, null, 46, _hoisted_1$19);
310453
+ }), 128))], 2);
309791
310454
  };
309792
310455
  }
309793
- }, [["__scopeId", "data-v-e1b3c81e"]]);
310456
+ }, [["__scopeId", "data-v-d374ab76"]]);
310457
+ bulletStyleButtons = [
310458
+ {
310459
+ key: "disc",
310460
+ icon: toolbarIcons.bulletListDisc,
310461
+ ariaLabel: "Opaque circle"
310462
+ },
310463
+ {
310464
+ key: "circle",
310465
+ icon: toolbarIcons.bulletListCircle,
310466
+ ariaLabel: "Outline circle"
310467
+ },
310468
+ {
310469
+ key: "square",
310470
+ icon: toolbarIcons.bulletListSquare,
310471
+ ariaLabel: "Opaque square"
310472
+ }
310473
+ ];
310474
+ numberedStyleButtons = [
310475
+ {
310476
+ key: "decimal",
310477
+ icon: toolbarIcons.numberedListDecimal,
310478
+ ariaLabel: "1. 2. 3."
310479
+ },
310480
+ {
310481
+ key: "decimal-paren",
310482
+ icon: toolbarIcons.numberedListDecimalParen,
310483
+ ariaLabel: "1) 2) 3)"
310484
+ },
310485
+ {
310486
+ key: "upper-roman",
310487
+ icon: toolbarIcons.numberedListUpperRoman,
310488
+ ariaLabel: "I. II. III."
310489
+ },
310490
+ {
310491
+ key: "lower-roman",
310492
+ icon: toolbarIcons.numberedListLowerRoman,
310493
+ ariaLabel: "i. ii. iii."
310494
+ },
310495
+ {
310496
+ key: "upper-alpha",
310497
+ icon: toolbarIcons.numberedListUpperAlpha,
310498
+ ariaLabel: "A. B. C."
310499
+ },
310500
+ {
310501
+ key: "upper-alpha-paren",
310502
+ icon: toolbarIcons.numberedListUpperAlphaParen,
310503
+ ariaLabel: "A) B) C)"
310504
+ },
310505
+ {
310506
+ key: "lower-alpha",
310507
+ icon: toolbarIcons.numberedListLowerAlpha,
310508
+ ariaLabel: "a. b. c."
310509
+ },
310510
+ {
310511
+ key: "lower-alpha-paren",
310512
+ icon: toolbarIcons.numberedListLowerAlphaParen,
310513
+ ariaLabel: "a) b) c)"
310514
+ }
310515
+ ];
309794
310516
  _hoisted_1$18 = ["onClick", "onKeydown"];
309795
310517
  _hoisted_2$15 = { class: "document-mode-column icon-column" };
309796
310518
  _hoisted_3$11 = ["innerHTML"];
@@ -310916,7 +311638,7 @@ function print() { __p += __j.call(arguments, '') }
310916
311638
  setup(__props, { emit: __emit }) {
310917
311639
  const emit = __emit;
310918
311640
  const props = __props;
310919
- const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
311641
+ const { name, active, icon, label, hideLabel, iconColor, hasCaret, splitButton, disabled, expand, inlineTextInputVisible, hasInlineTextInput, minWidth, style: style2, attributes } = props.toolbarItem;
310920
311642
  const isSplit = exports_vue.computed(() => Boolean(splitButton?.value) && Boolean(hasCaret?.value));
310921
311643
  const inlineTextInput = exports_vue.ref(label);
310922
311644
  const inlineInput = exports_vue.ref(null);
@@ -310959,7 +311681,7 @@ function print() { __p += __j.call(arguments, '') }
310959
311681
  return { minWidth: props.minWidth };
310960
311682
  });
310961
311683
  const caretIcon = exports_vue.computed(() => {
310962
- return active.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown;
311684
+ return expand?.value ? toolbarIcons.dropdownCaretUp : toolbarIcons.dropdownCaretDown;
310963
311685
  });
310964
311686
  return (_ctx, _cache) => {
310965
311687
  return exports_vue.openBlock(), exports_vue.createElementBlock("div", {
@@ -311054,7 +311776,7 @@ function print() { __p += __j.call(arguments, '') }
311054
311776
  ], 10, _hoisted_2$6)], 46, _hoisted_1$9);
311055
311777
  };
311056
311778
  }
311057
- }, [["__scopeId", "data-v-fdaeb82f"]]);
311779
+ }, [["__scopeId", "data-v-9012024b"]]);
311058
311780
  _hoisted_1$8 = {
311059
311781
  class: "toolbar-separator",
311060
311782
  role: "separator",
@@ -312611,6 +313333,15 @@ function print() { __p += __j.call(arguments, '') }
312611
313333
  item.selectedValue.value = null;
312612
313334
  }
312613
313335
  },
313336
+ numberedlist: () => {
313337
+ if (commandState?.active) {
313338
+ item.activate();
313339
+ item.selectedValue.value = commandState.value;
313340
+ } else {
313341
+ item.deactivate();
313342
+ item.selectedValue.value = null;
313343
+ }
313344
+ },
312614
313345
  default: () => {
312615
313346
  if (commandState?.active)
312616
313347
  item.activate();
@@ -316013,6 +316744,7 @@ function print() { __p += __j.call(arguments, '') }
316013
316744
  const prevState = this.state;
316014
316745
  let nextState;
316015
316746
  let transactionToApply = transaction;
316747
+ let effectiveTransaction = transaction;
316016
316748
  const forceTrackChanges = transactionToApply.getMeta("forceTrackChanges") === true;
316017
316749
  try {
316018
316750
  const isTrackChangesActive = TrackChangesBasePluginKey.getState(prevState)?.isTrackChangesActive ?? false;
@@ -316026,8 +316758,9 @@ function print() { __p += __j.call(arguments, '') }
316026
316758
  user: this.options.user,
316027
316759
  replacements: this.options.trackedChanges?.replacements === "independent" ? "independent" : "paired"
316028
316760
  }) : transactionToApply;
316029
- const { state: appliedState } = prevState.applyTransaction(transactionToApply);
316761
+ const { state: appliedState, transactions: appliedTransactions } = prevState.applyTransaction(transactionToApply);
316030
316762
  nextState = appliedState;
316763
+ effectiveTransaction = appliedTransactions.find((t) => t.docChanged) ?? transactionToApply;
316031
316764
  } catch (error48) {
316032
316765
  if (forceTrackChanges)
316033
316766
  throw error48;
@@ -316063,7 +316796,7 @@ function print() { __p += __j.call(arguments, '') }
316063
316796
  event: blur.event,
316064
316797
  transaction: transactionToApply
316065
316798
  });
316066
- if (transactionToApply.docChanged) {
316799
+ if (effectiveTransaction.docChanged) {
316067
316800
  if (transaction.docChanged && this.converter) {
316068
316801
  if (!this.converter.documentGuid) {
316069
316802
  this.converter.promoteToGuid();
@@ -316073,7 +316806,7 @@ function print() { __p += __j.call(arguments, '') }
316073
316806
  }
316074
316807
  this.emit("update", {
316075
316808
  editor: this,
316076
- transaction: transactionToApply
316809
+ transaction: effectiveTransaction
316077
316810
  });
316078
316811
  }
316079
316812
  }
@@ -318006,12 +318739,13 @@ function print() { __p += __j.call(arguments, '') }
318006
318739
  return false;
318007
318740
  return block.anchor?.vRelativeFrom === "page";
318008
318741
  }
318009
- getDecorationAnchorPageOriginY(pageEl, page, kind, effectiveOffset) {
318742
+ getDecorationAnchorPageOriginY(page, kind, effectiveOffset) {
318010
318743
  if (kind === "header")
318011
318744
  return effectiveOffset;
318745
+ if (!Number.isFinite(page.height) || page.height <= 0)
318746
+ throw new Error(`DomPainter: invalid ResolvedPage.height (${page.height}) for page ${page.index}; resolve stage must produce a positive numeric height.`);
318012
318747
  const pageMargins = page.margins;
318013
- const styledPageHeight = Number.parseFloat(pageEl.style.height || "");
318014
- const pageHeight = page.height ?? (Number.isFinite(styledPageHeight) ? styledPageHeight : pageEl.clientHeight);
318748
+ const pageHeight = page.height;
318015
318749
  const footerDistance = pageMargins?.footer;
318016
318750
  if (typeof footerDistance === "number" && Number.isFinite(footerDistance))
318017
318751
  return Math.max(0, pageHeight - Math.max(0, footerDistance));
@@ -318036,7 +318770,7 @@ function print() { __p += __j.call(arguments, '') }
318036
318770
  const container = existing ?? this.doc.createElement("div");
318037
318771
  container.className = className;
318038
318772
  container.innerHTML = "";
318039
- const baseOffset = data.offset ?? (kind === "footer" ? pageEl.clientHeight - data.height : 0);
318773
+ const baseOffset = data.offset;
318040
318774
  const marginLeft = data.marginLeft ?? 0;
318041
318775
  const marginRight = page.margins?.right ?? 0;
318042
318776
  let effectiveHeight = data.height;
@@ -318056,7 +318790,7 @@ function print() { __p += __j.call(arguments, '') }
318056
318790
  container.style.top = `${Math.max(0, effectiveOffset)}px`;
318057
318791
  container.style.zIndex = "1";
318058
318792
  container.style.overflow = "visible";
318059
- const footerAnchorPageOriginY = kind === "footer" ? this.getDecorationAnchorPageOriginY(pageEl, page, kind, effectiveOffset) : 0;
318793
+ const footerAnchorPageOriginY = kind === "footer" ? this.getDecorationAnchorPageOriginY(page, kind, effectiveOffset) : 0;
318060
318794
  const footerAnchorContainerOffsetY = kind === "footer" ? footerAnchorPageOriginY - effectiveOffset : 0;
318061
318795
  let footerYOffset = 0;
318062
318796
  if (kind === "footer" && data.fragments.length > 0) {
@@ -318390,9 +319124,9 @@ function print() { __p += __j.call(arguments, '') }
318390
319124
  const measure = resolvedItem.measure;
318391
319125
  const wordLayout = isMinimalWordLayout$1(block.attrs?.wordLayout) ? block.attrs.wordLayout : undefined;
318392
319126
  const content3 = resolvedItem?.content;
318393
- const paraContinuesFromPrev = resolvedItem?.continuesFromPrev ?? fragment.continuesFromPrev;
318394
- const paraContinuesOnNext = resolvedItem?.continuesOnNext ?? fragment.continuesOnNext;
318395
- const paraMarkerWidth = resolvedItem?.markerWidth ?? fragment.markerWidth;
319127
+ const paraContinuesFromPrev = resolvedItem?.continuesFromPrev;
319128
+ const paraContinuesOnNext = resolvedItem?.continuesOnNext;
319129
+ const paraMarkerWidth = resolvedItem?.markerWidth;
318396
319130
  const fragmentEl = this.doc.createElement("div");
318397
319131
  fragmentEl.classList.add(CLASS_NAMES$1.fragment);
318398
319132
  const isTocEntry = block.attrs?.isTocEntry;
@@ -318493,14 +319227,7 @@ function print() { __p += __j.call(arguments, '') }
318493
319227
  if (resolvedLine.isListFirstLine && resolvedMarker) {
318494
319228
  lineEl.style.paddingLeft = `${resolvedMarker.firstLinePaddingLeftPx}px`;
318495
319229
  if (!resolvedMarker.vanish) {
318496
- const markerContainer = this.doc.createElement("span");
318497
- markerContainer.style.display = "inline-block";
318498
- markerContainer.style.wordSpacing = "0px";
318499
- const markerEl = this.doc.createElement("span");
318500
- markerEl.classList.add("superdoc-paragraph-marker");
318501
- markerEl.textContent = resolvedMarker.text;
318502
- applySourceAnchorDataset(markerEl, resolvedMarker.sourceAnchor ?? resolvedItem?.sourceAnchor ?? fragment.sourceAnchor);
318503
- markerEl.style.pointerEvents = "none";
319230
+ const markerContainer = createListMarkerElement(this.doc, resolvedMarker.text, resolvedMarker.run, resolvedMarker.sourceAnchor ?? resolvedItem?.sourceAnchor);
318504
319231
  markerContainer.style.position = "relative";
318505
319232
  if (resolvedMarker.justification === "right") {
318506
319233
  markerContainer.style.position = "absolute";
@@ -318510,15 +319237,6 @@ function print() { __p += __j.call(arguments, '') }
318510
319237
  markerContainer.style.left = `${resolvedMarker.markerStartPx - (resolvedMarker.centerPaddingAdjustPx ?? 0)}px`;
318511
319238
  lineEl.style.paddingLeft = parseFloat(lineEl.style.paddingLeft) + (resolvedMarker.centerPaddingAdjustPx ?? 0) + "px";
318512
319239
  }
318513
- markerEl.style.fontFamily = toCssFontFamily(resolvedMarker.run.fontFamily) ?? resolvedMarker.run.fontFamily;
318514
- markerEl.style.fontSize = `${resolvedMarker.run.fontSize}px`;
318515
- markerEl.style.fontWeight = resolvedMarker.run.bold ? "bold" : "";
318516
- markerEl.style.fontStyle = resolvedMarker.run.italic ? "italic" : "";
318517
- if (resolvedMarker.run.color)
318518
- markerEl.style.color = resolvedMarker.run.color;
318519
- if (resolvedMarker.run.letterSpacing != null)
318520
- markerEl.style.letterSpacing = `${resolvedMarker.run.letterSpacing}px`;
318521
- markerContainer.appendChild(markerEl);
318522
319240
  if (resolvedMarker.suffix === "tab") {
318523
319241
  const tabEl = this.doc.createElement("span");
318524
319242
  tabEl.classList.add("superdoc-tab", "superdoc-marker-suffix-tab");
@@ -318542,7 +319260,7 @@ function print() { __p += __j.call(arguments, '') }
318542
319260
  this.capturePaintSnapshotLine(lineEl, context, {
318543
319261
  inTableFragment: false,
318544
319262
  inTableParagraph: false,
318545
- sourceAnchor: resolvedItem?.sourceAnchor ?? fragment.sourceAnchor
319263
+ sourceAnchor: resolvedItem?.sourceAnchor
318546
319264
  });
318547
319265
  fragmentEl.appendChild(lineEl);
318548
319266
  });
@@ -318603,7 +319321,7 @@ function print() { __p += __j.call(arguments, '') }
318603
319321
  availableWidthOverride = fragment.width - listFirstLineTextStartPx - Math.max(0, paraIndentRight);
318604
319322
  const isFirstLine = index2 === 0 && !paraContinuesFromPrev;
318605
319323
  const isListFirstLine = Boolean(hasListFirstLineMarker && fragment.markerTextWidth);
318606
- if (isFirstLine && !isListFirstLine && !hasExplicitSegmentPositioning)
319324
+ if (isFirstLine && !isListFirstLine && line.hasExplicitTabStops !== true)
318607
319325
  availableWidthOverride = adjustAvailableWidthForTextIndent(availableWidthOverride, firstLineOffset, line.maxWidth);
318608
319326
  const shouldSkipJustifyForLastLine = index2 === lines.length - 1 && !paraContinuesOnNext && !paragraphEndsWithLineBreak;
318609
319327
  const lineEl = this.renderLine(block, line, context, availableWidthOverride, fragment.fromLine + index2, shouldSkipJustifyForLastLine, expandedRunsForBlock, shouldUseResolvedListTextStart ? listFirstLineTextStartPx : undefined);
@@ -318632,14 +319350,7 @@ function print() { __p += __j.call(arguments, '') }
318632
319350
  return;
318633
319351
  lineEl.style.paddingLeft = `${paraIndentLeft + (paraIndent?.firstLine ?? 0) - (paraIndent?.hanging ?? 0)}px`;
318634
319352
  if (!marker.run.vanish) {
318635
- const markerContainer = this.doc.createElement("span");
318636
- markerContainer.style.display = "inline-block";
318637
- markerContainer.style.wordSpacing = "0px";
318638
- const markerEl = this.doc.createElement("span");
318639
- markerEl.classList.add("superdoc-paragraph-marker");
318640
- markerEl.textContent = marker.markerText ?? "";
318641
- applySourceAnchorDataset(markerEl, block.sourceAnchor ?? resolvedItem?.sourceAnchor ?? fragment.sourceAnchor);
318642
- markerEl.style.pointerEvents = "none";
319353
+ const markerContainer = createListMarkerElement(this.doc, marker.markerText ?? "", marker.run, block.sourceAnchor ?? resolvedItem?.sourceAnchor);
318643
319354
  const markerJustification = marker.justification ?? "left";
318644
319355
  markerContainer.style.position = "relative";
318645
319356
  if (markerJustification === "right") {
@@ -318650,15 +319361,6 @@ function print() { __p += __j.call(arguments, '') }
318650
319361
  markerContainer.style.left = `${markerStartPos - fragment.markerTextWidth / 2}px`;
318651
319362
  lineEl.style.paddingLeft = parseFloat(lineEl.style.paddingLeft) + fragment.markerTextWidth / 2 + "px";
318652
319363
  }
318653
- markerEl.style.fontFamily = toCssFontFamily(marker.run.fontFamily) ?? marker.run.fontFamily;
318654
- markerEl.style.fontSize = `${marker.run.fontSize}px`;
318655
- markerEl.style.fontWeight = marker.run.bold ? "bold" : "";
318656
- markerEl.style.fontStyle = marker.run.italic ? "italic" : "";
318657
- if (marker.run.color)
318658
- markerEl.style.color = marker.run.color;
318659
- if (marker.run.letterSpacing != null)
318660
- markerEl.style.letterSpacing = `${marker.run.letterSpacing}px`;
318661
- markerContainer.appendChild(markerEl);
318662
319364
  const suffix = marker.suffix ?? "tab";
318663
319365
  if (suffix === "tab") {
318664
319366
  const tabEl = this.doc.createElement("span");
@@ -318683,7 +319385,7 @@ function print() { __p += __j.call(arguments, '') }
318683
319385
  this.capturePaintSnapshotLine(lineEl, context, {
318684
319386
  inTableFragment: false,
318685
319387
  inTableParagraph: false,
318686
- sourceAnchor: resolvedItem?.sourceAnchor ?? fragment.sourceAnchor
319388
+ sourceAnchor: resolvedItem?.sourceAnchor
318687
319389
  });
318688
319390
  fragmentEl.appendChild(lineEl);
318689
319391
  });
@@ -318758,9 +319460,9 @@ function print() { __p += __j.call(arguments, '') }
318758
319460
  const itemMeasure = measure.items.find((entry) => entry.itemId === fragment.itemId);
318759
319461
  if (!item || !itemMeasure)
318760
319462
  throw new Error(`DomPainter: missing list item ${fragment.itemId}`);
318761
- const listContinuesFromPrev = resolvedItem?.continuesFromPrev ?? fragment.continuesFromPrev;
318762
- const listContinuesOnNext = resolvedItem?.continuesOnNext ?? fragment.continuesOnNext;
318763
- const listMarkerWidth = resolvedItem?.markerWidth ?? fragment.markerWidth;
319463
+ const listContinuesFromPrev = resolvedItem?.continuesFromPrev;
319464
+ const listContinuesOnNext = resolvedItem?.continuesOnNext;
319465
+ const listMarkerWidth = resolvedItem?.markerWidth ?? 0;
318764
319466
  const fragmentEl = this.doc.createElement("div");
318765
319467
  fragmentEl.classList.add(CLASS_NAMES$1.fragment, `${CLASS_NAMES$1.fragment}-list-item`);
318766
319468
  applyStyles(fragmentEl, fragmentStyles);
@@ -318782,8 +319484,8 @@ function print() { __p += __j.call(arguments, '') }
318782
319484
  if (listContinuesOnNext)
318783
319485
  fragmentEl.dataset.continuesOnNext = "true";
318784
319486
  const markerEl = this.doc.createElement("span");
318785
- markerEl.classList.add("superdoc-list-marker");
318786
- applySourceAnchorDataset(markerEl, item.marker.sourceAnchor ?? item.sourceAnchor ?? resolvedItem?.sourceAnchor ?? fragment.sourceAnchor);
319487
+ markerEl.classList.add(DOM_CLASS_NAMES.LIST_MARKER);
319488
+ applySourceAnchorDataset(markerEl, item.marker.sourceAnchor ?? item.sourceAnchor ?? resolvedItem?.sourceAnchor);
318787
319489
  const wordLayout = item.paragraph.attrs?.wordLayout;
318788
319490
  const marker = wordLayout?.marker;
318789
319491
  if (marker) {
@@ -318840,7 +319542,7 @@ function print() { __p += __j.call(arguments, '') }
318840
319542
  this.capturePaintSnapshotLine(lineEl, context, {
318841
319543
  inTableFragment: false,
318842
319544
  inTableParagraph: false,
318843
- sourceAnchor: resolvedItem?.sourceAnchor ?? fragment.sourceAnchor
319545
+ sourceAnchor: resolvedItem?.sourceAnchor
318844
319546
  });
318845
319547
  contentEl.appendChild(lineEl);
318846
319548
  });
@@ -318875,13 +319577,13 @@ function print() { __p += __j.call(arguments, '') }
318875
319577
  this.applyContainerSdtDataset(fragmentEl, block.attrs?.containerSdt);
318876
319578
  if (block.id)
318877
319579
  fragmentEl.setAttribute("data-sd-block-id", block.id);
318878
- const imgPmStart = resolvedItem?.pmStart ?? fragment.pmStart;
319580
+ const imgPmStart = resolvedItem?.pmStart;
318879
319581
  if (imgPmStart != null)
318880
319582
  fragmentEl.dataset.pmStart = String(imgPmStart);
318881
- const imgPmEnd = resolvedItem?.pmEnd ?? fragment.pmEnd;
319583
+ const imgPmEnd = resolvedItem?.pmEnd;
318882
319584
  if (imgPmEnd != null)
318883
319585
  fragmentEl.dataset.pmEnd = String(imgPmEnd);
318884
- const imgMetadata = resolvedItem?.metadata ?? fragment.metadata;
319586
+ const imgMetadata = resolvedItem?.metadata;
318885
319587
  if (imgMetadata && !block.attrs?.vmlWatermark)
318886
319588
  fragmentEl.setAttribute("data-image-metadata", JSON.stringify(imgMetadata));
318887
319589
  const img2 = this.doc.createElement("img");
@@ -320413,6 +321115,7 @@ function print() { __p += __j.call(arguments, '') }
320413
321115
  el.appendChild(barEl);
320414
321116
  });
320415
321117
  const hasExplicitPositioning = line.segments?.some((seg) => seg.x !== undefined);
321118
+ const hasMultipleExplicitPositionedSegments = (line.segments?.filter((seg) => seg.x !== undefined).length ?? 0) > 1;
320416
321119
  const availableWidth = availableWidthOverride ?? line.maxWidth ?? line.width;
320417
321120
  const justifyShouldApply = shouldApplyJustify({
320418
321121
  alignment: block.attrs?.alignment,
@@ -320420,7 +321123,7 @@ function print() { __p += __j.call(arguments, '') }
320420
321123
  hasExplicitTabStops: line.hasExplicitTabStops === true,
320421
321124
  isLastLineOfParagraph: false,
320422
321125
  paragraphEndsWithLineBreak: false,
320423
- skipJustifyOverride: skipJustify
321126
+ skipJustifyOverride: skipJustify || hasMultipleExplicitPositionedSegments
320424
321127
  });
320425
321128
  const countSpaces$1 = (text5) => {
320426
321129
  let count = 0;
@@ -320587,12 +321290,14 @@ function print() { __p += __j.call(arguments, '') }
320587
321290
  else
320588
321291
  segmentsByRun.set(segment.runIndex, [segment]);
320589
321292
  });
320590
- const findImmediateNextSegmentX = (fromRunIndex) => {
321293
+ const findImmediateNextSegment = (fromRunIndex) => {
320591
321294
  const nextRunIdx = fromRunIndex + 1;
320592
321295
  if (nextRunIdx <= line.toRun) {
320593
321296
  const nextSegments = segmentsByRun.get(nextRunIdx);
320594
- if (nextSegments && nextSegments.length > 0)
320595
- return nextSegments[0].x;
321297
+ if (nextSegments && nextSegments.length > 0) {
321298
+ const firstSegment = nextSegments[0];
321299
+ return firstSegment.x !== undefined || firstSegment.precedingTabEndX !== undefined ? firstSegment : undefined;
321300
+ }
320596
321301
  }
320597
321302
  };
320598
321303
  let geoSdtWrapper = null;
@@ -320636,9 +321341,10 @@ function print() { __p += __j.call(arguments, '') }
320636
321341
  if (!baseRun)
320637
321342
  continue;
320638
321343
  if (baseRun.kind === "tab") {
320639
- const immediateNextX = findImmediateNextSegmentX(runIndex);
321344
+ const immediateNextSegment = findImmediateNextSegment(runIndex);
320640
321345
  const tabStartX = cumulativeX;
320641
- const tabEndX = immediateNextX !== undefined ? immediateNextX : tabStartX + (baseRun.width ?? 0);
321346
+ const measuredTabEndX = tabStartX + (baseRun.width ?? 0);
321347
+ const tabEndX = immediateNextSegment?.precedingTabEndX ?? immediateNextSegment?.x ?? measuredTabEndX;
320642
321348
  const actualTabWidth = tabEndX - tabStartX;
320643
321349
  const tabEl = this.doc.createElement("span");
320644
321350
  tabEl.style.position = "absolute";
@@ -320675,7 +321381,7 @@ function print() { __p += __j.call(arguments, '') }
320675
321381
  const runSegments$1 = segmentsByRun.get(runIndex);
320676
321382
  const baseSegX = runSegments$1 && runSegments$1[0]?.x !== undefined ? runSegments$1[0].x : cumulativeX;
320677
321383
  const segX = baseSegX + indentOffset;
320678
- const segWidth = (runSegments$1 && runSegments$1[0]?.width !== undefined ? runSegments$1[0].width : elem.offsetWidth) ?? 0;
321384
+ const segWidth = runSegments$1?.[0]?.width ?? 0;
320679
321385
  elem.style.position = "absolute";
320680
321386
  elem.style.left = `${segX}px`;
320681
321387
  appendToLineGeo(elem, baseRun, segX, segWidth);
@@ -320747,20 +321453,11 @@ function print() { __p += __j.call(arguments, '') }
320747
321453
  const xPos = baseX + indentOffset;
320748
321454
  elem.style.position = "absolute";
320749
321455
  elem.style.left = `${xPos}px`;
320750
- appendToLineGeo(elem, segmentRun, xPos, segment.width ?? 0);
320751
- let width = segment.width ?? 0;
320752
- if (width <= 0 && this.doc) {
320753
- const measureEl = elem.cloneNode(true);
320754
- measureEl.style.position = "absolute";
320755
- measureEl.style.visibility = "hidden";
320756
- measureEl.style.left = "-9999px";
320757
- this.doc.body.appendChild(measureEl);
320758
- width = measureEl.offsetWidth;
320759
- this.doc.body.removeChild(measureEl);
320760
- }
320761
- cumulativeX = baseX + width;
321456
+ appendToLineGeo(elem, segmentRun, xPos, segment.width);
321457
+ const visualWidth = segment.width + (spacingPerSpace !== 0 ? spacingPerSpace * countSpaces$1(segmentText) : 0);
321458
+ cumulativeX = baseX + visualWidth;
320762
321459
  if (geoSdtWrapper)
320763
- geoSdtMaxRight = Math.max(geoSdtMaxRight, xPos + width);
321460
+ geoSdtMaxRight = Math.max(geoSdtMaxRight, xPos + visualWidth);
320764
321461
  }
320765
321462
  });
320766
321463
  }
@@ -320916,21 +321613,21 @@ function print() { __p += __j.call(arguments, '') }
320916
321613
  if (section === "body" || section === undefined)
320917
321614
  assertFragmentPmPositions(fragment, "paragraph fragment");
320918
321615
  const resolvedFrag = resolvedItem;
320919
- const pmStart = resolvedFrag?.pmStart ?? fragment.pmStart;
321616
+ const pmStart = resolvedFrag?.pmStart;
320920
321617
  if (pmStart != null)
320921
321618
  el.dataset.pmStart = String(pmStart);
320922
321619
  else
320923
321620
  delete el.dataset.pmStart;
320924
- const pmEnd = resolvedFrag?.pmEnd ?? fragment.pmEnd;
321621
+ const pmEnd = resolvedFrag?.pmEnd;
320925
321622
  if (pmEnd != null)
320926
321623
  el.dataset.pmEnd = String(pmEnd);
320927
321624
  else
320928
321625
  delete el.dataset.pmEnd;
320929
- if (resolvedFrag?.continuesFromPrev ?? fragment.continuesFromPrev)
321626
+ if (resolvedFrag?.continuesFromPrev)
320930
321627
  el.dataset.continuesFromPrev = "true";
320931
321628
  else
320932
321629
  delete el.dataset.continuesFromPrev;
320933
- if (resolvedFrag?.continuesOnNext ?? fragment.continuesOnNext)
321630
+ if (resolvedFrag?.continuesOnNext)
320934
321631
  el.dataset.continuesOnNext = "true";
320935
321632
  else
320936
321633
  delete el.dataset.continuesOnNext;
@@ -320954,7 +321651,7 @@ function print() { __p += __j.call(arguments, '') }
320954
321651
  resolveFragmentWrapperZIndex(fragment, resolvedZIndex) {
320955
321652
  if (!this.isAnchoredMediaFragment(fragment))
320956
321653
  return "";
320957
- const zIndex = resolvedZIndex ?? fragment.zIndex;
321654
+ const zIndex = resolvedZIndex;
320958
321655
  return zIndex != null ? String(zIndex) : "";
320959
321656
  }
320960
321657
  applyFragmentWrapperZIndex(el, fragment, resolvedZIndex) {
@@ -320966,7 +321663,7 @@ function print() { __p += __j.call(arguments, '') }
320966
321663
  el.style.width = `${item.width}px`;
320967
321664
  el.dataset.blockId = item.blockId;
320968
321665
  el.dataset.layoutEpoch = String(this.layoutEpoch);
320969
- applySourceAnchorDataset(el, item.sourceAnchor ?? fragment.sourceAnchor);
321666
+ applySourceAnchorDataset(el, item.sourceAnchor);
320970
321667
  this.applyFragmentWrapperZIndex(el, fragment, item.zIndex);
320971
321668
  if (item.fragmentKind === "image" || item.fragmentKind === "drawing" || item.fragmentKind === "table")
320972
321669
  el.style.height = `${item.height}px`;
@@ -320974,7 +321671,7 @@ function print() { __p += __j.call(arguments, '') }
320974
321671
  }
320975
321672
  applyResolvedListItemWrapperFrame(el, fragment, item, section) {
320976
321673
  this.applyResolvedFragmentFrame(el, item, fragment, section);
320977
- const mw = item.markerWidth ?? fragment.markerWidth;
321674
+ const mw = item.markerWidth ?? 0;
320978
321675
  el.style.left = `${item.x - mw}px`;
320979
321676
  el.style.width = `${item.width + mw}px`;
320980
321677
  }
@@ -328203,7 +328900,11 @@ function print() { __p += __j.call(arguments, '') }
328203
328900
  removeDocumentSection: trash_can_solid_default,
328204
328901
  trackChangesAccept: check_solid_default,
328205
328902
  trackChangesReject: xmark_solid_default,
328206
- cellBackground: paint_roller_solid_default
328903
+ cellBackground: paint_roller_solid_default,
328904
+ listRestartNumbering: list_ol_solid_default,
328905
+ listContinueNumbering: list_ol_solid_default,
328906
+ listDecreaseIndent: outdent_solid_default,
328907
+ listIncreaseIndent: indent_solid_default
328207
328908
  };
328208
328909
  TEXTS = {
328209
328910
  addRowBefore: "Insert row above",
@@ -328229,7 +328930,11 @@ function print() { __p += __j.call(arguments, '') }
328229
328930
  createDocumentSection: "Create section",
328230
328931
  trackChangesAccept: "Accept change",
328231
328932
  trackChangesReject: "Reject change",
328232
- cellBackground: "Cell background"
328933
+ cellBackground: "Cell background",
328934
+ listRestartNumbering: "Restart numbering",
328935
+ listContinueNumbering: "Continue numbering",
328936
+ listDecreaseIndent: "Decrease indent",
328937
+ listIncreaseIndent: "Increase indent"
328233
328938
  };
328234
328939
  tableActionsOptions = [
328235
328940
  {
@@ -328336,11 +329041,11 @@ function print() { __p += __j.call(arguments, '') }
328336
329041
  ];
328337
329042
  });
328338
329043
 
328339
- // ../../packages/superdoc/dist/chunks/create-super-doc-ui-BTCvkLyW.es.js
329044
+ // ../../packages/superdoc/dist/chunks/create-super-doc-ui-BZNADU5K.es.js
328340
329045
  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;
328341
- var init_create_super_doc_ui_BTCvkLyW_es = __esm(() => {
328342
- init_SuperConverter_BLL9JGke_es();
328343
- init_create_headless_toolbar_D7n_Okb2_es();
329046
+ var init_create_super_doc_ui_BZNADU5K_es = __esm(() => {
329047
+ init_SuperConverter_D1o6_yKI_es();
329048
+ init_create_headless_toolbar_CJ0iQq1T_es();
328344
329049
  MOD_ALIASES = new Set([
328345
329050
  "Mod",
328346
329051
  "Meta",
@@ -328382,16 +329087,16 @@ var init_zipper_BxRAi0_5_es = __esm(() => {
328382
329087
 
328383
329088
  // ../../packages/superdoc/dist/super-editor.es.js
328384
329089
  var init_super_editor_es = __esm(() => {
328385
- init_src_C4h4xIas_es();
328386
- init_SuperConverter_BLL9JGke_es();
329090
+ init_src_C_jV2TZI_es();
329091
+ init_SuperConverter_D1o6_yKI_es();
328387
329092
  init_jszip_C49i9kUs_es();
328388
329093
  init_xml_js_CqGKpaft_es();
328389
- init_create_headless_toolbar_D7n_Okb2_es();
329094
+ init_create_headless_toolbar_CJ0iQq1T_es();
328390
329095
  init_constants_DrU4EASo_es();
328391
329096
  init_dist_B8HfvhaK_es();
328392
329097
  init_unified_Dsuw2be5_es();
328393
- init_DocxZipper_CUX64E5K_es();
328394
- init_create_super_doc_ui_BTCvkLyW_es();
329098
+ init_DocxZipper_Dh4RtvcE_es();
329099
+ init_create_super_doc_ui_BZNADU5K_es();
328395
329100
  init_ui_CGB3qmy3_es();
328396
329101
  init_eventemitter3_UwU_CLPU_es();
328397
329102
  init_errors_C_DoKMoN_es();
@@ -427285,7 +427990,7 @@ function updateNumberingProperties2(newNumberingProperties, paragraphNode, pos,
427285
427990
  ...paragraphNode.attrs.paragraphProperties || {},
427286
427991
  numberingProperties: newNumberingProperties ? { ...newNumberingProperties } : null
427287
427992
  };
427288
- if (paragraphNode.attrs.paragraphProperties?.styleId === "ListParagraph") {
427993
+ if (!newNumberingProperties && paragraphNode.attrs.paragraphProperties?.styleId === "ListParagraph") {
427289
427994
  newProperties.styleId = null;
427290
427995
  }
427291
427996
  if (newProperties.indent) {
@@ -427341,7 +428046,18 @@ function refreshAbstractIdentity2(abstractDef) {
427341
428046
  }
427342
428047
  function generateNewListDefinition2(numbering, options) {
427343
428048
  let { listType } = options;
427344
- const { numId, level, start: start2, text: text9, fmt, markerFontFamily, bulletStyle, bulletStyleLevel } = options;
428049
+ const {
428050
+ numId,
428051
+ level,
428052
+ start: start2,
428053
+ text: text9,
428054
+ fmt,
428055
+ markerFontFamily,
428056
+ bulletStyle,
428057
+ bulletStyleLevel,
428058
+ orderedStyle,
428059
+ orderedStyleLevel
428060
+ } = options;
427345
428061
  if (typeof listType !== "string")
427346
428062
  listType = listType.name;
427347
428063
  const definition5 = listType === "orderedList" ? baseOrderedListDef2 : baseBulletList2;
@@ -427368,6 +428084,50 @@ function generateNewListDefinition2(numbering, options) {
427368
428084
  }
427369
428085
  }
427370
428086
  }
428087
+ const shouldOverrideOrderedStyle = orderedStyle && listType === "orderedList";
428088
+ if (shouldOverrideOrderedStyle) {
428089
+ const styleConfig = ORDERED_LIST_STYLES2[orderedStyle];
428090
+ if (styleConfig) {
428091
+ const targetLevel = Math.max(0, Number.isFinite(orderedStyleLevel) ? orderedStyleLevel : 0);
428092
+ const targetLevelStr = String(targetLevel);
428093
+ const lvl = newAbstractDef.elements.find((el) => el.name === "w:lvl" && el.attributes["w:ilvl"] === targetLevelStr);
428094
+ if (lvl) {
428095
+ const numFmt = lvl.elements.find((el) => el.name === "w:numFmt");
428096
+ if (numFmt)
428097
+ numFmt.attributes["w:val"] = styleConfig.fmt;
428098
+ const lvlText = lvl.elements.find((el) => el.name === "w:lvlText");
428099
+ if (lvlText) {
428100
+ lvlText.attributes["w:val"] = `%${targetLevel + 1}${styleConfig.text.replace(/^%\d+/, "")}`;
428101
+ }
428102
+ const defaultLvlJc = DEFAULT_LVL_JC_BY_FMT2[styleConfig.fmt];
428103
+ if (defaultLvlJc) {
428104
+ const lvlJc = lvl.elements.find((el) => el.name === "w:lvlJc");
428105
+ if (lvlJc) {
428106
+ lvlJc.attributes["w:val"] = defaultLvlJc;
428107
+ } else {
428108
+ lvl.elements.push({ type: "element", name: "w:lvlJc", attributes: { "w:val": defaultLvlJc } });
428109
+ }
428110
+ }
428111
+ const defaultHanging = DEFAULT_HANGING_BY_FMT2[styleConfig.fmt];
428112
+ if (defaultHanging != null) {
428113
+ let pPr = lvl.elements.find((el) => el.name === "w:pPr");
428114
+ if (!pPr) {
428115
+ pPr = { type: "element", name: "w:pPr", elements: [] };
428116
+ lvl.elements.push(pPr);
428117
+ }
428118
+ if (!pPr.elements)
428119
+ pPr.elements = [];
428120
+ let ind = pPr.elements.find((el) => el.name === "w:ind");
428121
+ if (!ind) {
428122
+ ind = { type: "element", name: "w:ind", attributes: { "w:hanging": String(defaultHanging) } };
428123
+ pPr.elements.push(ind);
428124
+ } else {
428125
+ ind.attributes = { ...ind.attributes || {}, "w:hanging": String(defaultHanging) };
428126
+ }
428127
+ }
428128
+ }
428129
+ }
428130
+ }
427371
428131
  if (level != null && start2 != null && text9 != null && fmt != null) {
427372
428132
  if (numbering.definitions[numId]) {
427373
428133
  const abstractId = numbering.definitions[numId]?.elements[0]?.attributes["w:val"];
@@ -427547,7 +428307,108 @@ function setLvlRestartOnAbstract2(numbering, abstractNumId, ilvl, restartAfterLe
427547
428307
  }
427548
428308
  return true;
427549
428309
  }
427550
- var BULLET_STYLE_CHARS2;
428310
+ function setLvlStyleOnAbstract2(numbering, abstractNumId, ilvl, options) {
428311
+ const abstract = numbering.abstracts[abstractNumId];
428312
+ if (!abstract?.elements)
428313
+ return false;
428314
+ const ilvlStr = String(ilvl);
428315
+ const lvlEl = abstract.elements.find((el) => el.name === "w:lvl" && el.attributes?.["w:ilvl"] === ilvlStr);
428316
+ if (!lvlEl)
428317
+ return false;
428318
+ if (!lvlEl.elements)
428319
+ lvlEl.elements = [];
428320
+ const setOrAddChild = (name, value) => {
428321
+ const existing = lvlEl.elements.find((el) => el.name === name);
428322
+ if (existing) {
428323
+ if (existing.attributes?.["w:val"] === value)
428324
+ return false;
428325
+ existing.attributes = { ...existing.attributes || {}, "w:val": value };
428326
+ return true;
428327
+ }
428328
+ lvlEl.elements.push({ type: "element", name, attributes: { "w:val": value } });
428329
+ return true;
428330
+ };
428331
+ const stripMarkerFont = () => {
428332
+ const rPr = lvlEl.elements.find((el) => el.name === "w:rPr");
428333
+ if (!rPr?.elements?.some((el) => el.name === "w:rFonts"))
428334
+ return false;
428335
+ rPr.elements = rPr.elements.filter((el) => el.name !== "w:rFonts");
428336
+ return true;
428337
+ };
428338
+ let numFmtValue = null;
428339
+ let lvlTextValue = null;
428340
+ let lvlJcValue = null;
428341
+ let hangingValue = null;
428342
+ if (options.bulletStyle) {
428343
+ const char = BULLET_STYLE_CHARS2[options.bulletStyle];
428344
+ if (!char)
428345
+ return false;
428346
+ numFmtValue = "bullet";
428347
+ lvlTextValue = char;
428348
+ } else if (options.orderedStyle) {
428349
+ const config43 = ORDERED_LIST_STYLES2[options.orderedStyle];
428350
+ if (!config43)
428351
+ return false;
428352
+ numFmtValue = config43.fmt;
428353
+ lvlTextValue = `%${ilvl + 1}${config43.text.replace(/^%\d+/, "")}`;
428354
+ lvlJcValue = DEFAULT_LVL_JC_BY_FMT2[config43.fmt] ?? null;
428355
+ hangingValue = DEFAULT_HANGING_BY_FMT2[config43.fmt] ?? null;
428356
+ } else {
428357
+ return false;
428358
+ }
428359
+ const setHangingOnLevel = (hanging) => {
428360
+ let pPr = lvlEl.elements.find((el) => el.name === "w:pPr");
428361
+ if (!pPr) {
428362
+ pPr = { type: "element", name: "w:pPr", elements: [] };
428363
+ lvlEl.elements.push(pPr);
428364
+ }
428365
+ if (!pPr.elements)
428366
+ pPr.elements = [];
428367
+ let ind = pPr.elements.find((el) => el.name === "w:ind");
428368
+ if (!ind) {
428369
+ ind = { type: "element", name: "w:ind", attributes: { "w:hanging": String(hanging) } };
428370
+ pPr.elements.push(ind);
428371
+ return true;
428372
+ }
428373
+ if (ind.attributes?.["w:hanging"] === String(hanging))
428374
+ return false;
428375
+ ind.attributes = { ...ind.attributes || {}, "w:hanging": String(hanging) };
428376
+ return true;
428377
+ };
428378
+ let changed = false;
428379
+ if (setOrAddChild("w:numFmt", numFmtValue))
428380
+ changed = true;
428381
+ if (setOrAddChild("w:lvlText", lvlTextValue))
428382
+ changed = true;
428383
+ if (lvlJcValue != null && setOrAddChild("w:lvlJc", lvlJcValue))
428384
+ changed = true;
428385
+ if (hangingValue != null && setHangingOnLevel(hangingValue))
428386
+ changed = true;
428387
+ if (stripMarkerFont())
428388
+ changed = true;
428389
+ return changed;
428390
+ }
428391
+ function cloneListDefinitionWithLevelStyle2(numbering, sourceNumId, ilvl, options) {
428392
+ const sourceNumDef = numbering.definitions[sourceNumId];
428393
+ const sourceAbstractIdRaw = sourceNumDef?.elements?.find((el) => el.name === "w:abstractNumId")?.attributes?.["w:val"];
428394
+ const sourceAbstractId = sourceAbstractIdRaw != null ? Number(sourceAbstractIdRaw) : NaN;
428395
+ const sourceAbstract = Number.isFinite(sourceAbstractId) ? numbering.abstracts[sourceAbstractId] : undefined;
428396
+ if (!sourceAbstract)
428397
+ return null;
428398
+ const newAbstractId = getNextId2(numbering.abstracts);
428399
+ const newAbstractDef = JSON.parse(JSON.stringify(sourceAbstract));
428400
+ newAbstractDef.attributes = {
428401
+ ...newAbstractDef.attributes || {},
428402
+ "w:abstractNumId": String(newAbstractId)
428403
+ };
428404
+ refreshAbstractIdentity2(newAbstractDef);
428405
+ numbering.abstracts[newAbstractId] = newAbstractDef;
428406
+ setLvlStyleOnAbstract2(numbering, newAbstractId, ilvl, options);
428407
+ const newNumId = getNextId2(numbering.definitions);
428408
+ numbering.definitions[newNumId] = buildNumDef2(newNumId, newAbstractId);
428409
+ return { newNumId, newAbstractId };
428410
+ }
428411
+ var BULLET_STYLE_CHARS2, ORDERED_LIST_STYLES2, DEFAULT_LVL_JC_BY_FMT2, DEFAULT_HANGING_BY_FMT2;
427551
428412
  var init_numbering_transforms = __esm(() => {
427552
428413
  init_baseListDefinitions();
427553
428414
  BULLET_STYLE_CHARS2 = {
@@ -427555,6 +428416,30 @@ var init_numbering_transforms = __esm(() => {
427555
428416
  circle: "◦",
427556
428417
  square: "▪"
427557
428418
  };
428419
+ ORDERED_LIST_STYLES2 = {
428420
+ decimal: { fmt: "decimal", text: "%1." },
428421
+ "decimal-paren": { fmt: "decimal", text: "%1)" },
428422
+ "upper-roman": { fmt: "upperRoman", text: "%1." },
428423
+ "lower-roman": { fmt: "lowerRoman", text: "%1." },
428424
+ "upper-alpha": { fmt: "upperLetter", text: "%1." },
428425
+ "upper-alpha-paren": { fmt: "upperLetter", text: "%1)" },
428426
+ "lower-alpha": { fmt: "lowerLetter", text: "%1." },
428427
+ "lower-alpha-paren": { fmt: "lowerLetter", text: "%1)" }
428428
+ };
428429
+ DEFAULT_LVL_JC_BY_FMT2 = {
428430
+ decimal: "left",
428431
+ upperRoman: "right",
428432
+ lowerRoman: "right",
428433
+ upperLetter: "left",
428434
+ lowerLetter: "left"
428435
+ };
428436
+ DEFAULT_HANGING_BY_FMT2 = {
428437
+ decimal: 360,
428438
+ upperRoman: 180,
428439
+ lowerRoman: 180,
428440
+ upperLetter: 360,
428441
+ lowerLetter: 360
428442
+ };
427558
428443
  });
427559
428444
 
427560
428445
  // ../../packages/super-editor/src/editors/v1/core/parts/adapters/numbering-part-descriptor.ts
@@ -427709,6 +428594,29 @@ function mutateNumbering2(editor, source, transform2, options) {
427709
428594
  }
427710
428595
  });
427711
428596
  }
428597
+ function mutateNumberingBatch2(editor, source, transforms, options) {
428598
+ return mutateParts2({
428599
+ editor,
428600
+ source,
428601
+ dryRun: options?.dryRun,
428602
+ expectedRevision: options?.expectedRevision,
428603
+ operations: [
428604
+ {
428605
+ editor,
428606
+ partId: "word/numbering.xml",
428607
+ operation: "mutate",
428608
+ source,
428609
+ mutate({ part }) {
428610
+ const numbering = getNumbering2(editor);
428611
+ for (const transform2 of transforms) {
428612
+ transform2(numbering);
428613
+ }
428614
+ syncNumberingToXmlTree2(part, numbering);
428615
+ }
428616
+ }
428617
+ ]
428618
+ });
428619
+ }
427712
428620
  var init_numbering_mutation = __esm(() => {
427713
428621
  init_mutate_part();
427714
428622
  init_numbering_part_descriptor();
@@ -427725,7 +428633,9 @@ var generateNewListDefinition3 = ({
427725
428633
  editor,
427726
428634
  markerFontFamily,
427727
428635
  bulletStyle,
427728
- bulletStyleLevel
428636
+ bulletStyleLevel,
428637
+ orderedStyle,
428638
+ orderedStyleLevel
427729
428639
  }) => {
427730
428640
  let resultDefs;
427731
428641
  mutateNumbering2(editor, "list-numbering-helpers:generateNewListDefinition", (numbering) => {
@@ -427738,7 +428648,9 @@ var generateNewListDefinition3 = ({
427738
428648
  fmt,
427739
428649
  markerFontFamily,
427740
428650
  bulletStyle,
427741
- bulletStyleLevel
428651
+ bulletStyleLevel,
428652
+ orderedStyle,
428653
+ orderedStyleLevel
427742
428654
  });
427743
428655
  resultDefs = { abstractDef: result.abstractDef, numDef: result.numDef };
427744
428656
  });
@@ -427973,6 +428885,37 @@ var generateNewListDefinition3 = ({
427973
428885
  mutateNumbering2(editor, "list-numbering-helpers:setLvlRestartOnAbstract", (numbering) => {
427974
428886
  setLvlRestartOnAbstract2(numbering, abstractNumId, ilvl, restartAfterLevel);
427975
428887
  });
428888
+ }, setListLevelStyles2 = ({ editor, levels }) => {
428889
+ if (!levels?.length)
428890
+ return false;
428891
+ const resolved = [];
428892
+ for (const level of levels) {
428893
+ const abstractIdRaw = getListDefinitionDetails2({ numId: level.numId, level: level.ilvl, editor })?.abstractId;
428894
+ const abstractNumId = abstractIdRaw != null ? Number(abstractIdRaw) : NaN;
428895
+ if (!Number.isFinite(abstractNumId))
428896
+ continue;
428897
+ resolved.push({
428898
+ abstractNumId,
428899
+ ilvl: level.ilvl,
428900
+ bulletStyle: level.bulletStyle,
428901
+ orderedStyle: level.orderedStyle
428902
+ });
428903
+ }
428904
+ if (!resolved.length)
428905
+ return false;
428906
+ let anyChanged = false;
428907
+ mutateNumberingBatch2(editor, "list-numbering-helpers:setListLevelStyles", resolved.map(({ abstractNumId, ilvl, bulletStyle, orderedStyle }) => (numbering) => {
428908
+ if (setLvlStyleOnAbstract2(numbering, abstractNumId, ilvl, { bulletStyle, orderedStyle })) {
428909
+ anyChanged = true;
428910
+ }
428911
+ }));
428912
+ return anyChanged;
428913
+ }, cloneListDefinitionWithLevelStyle3 = ({ editor, sourceNumId, ilvl, bulletStyle, orderedStyle }) => {
428914
+ let result = null;
428915
+ mutateNumbering2(editor, "list-numbering-helpers:cloneListDefinitionWithLevelStyle", (numbering) => {
428916
+ result = cloneListDefinitionWithLevelStyle2(numbering, sourceNumId, ilvl, { bulletStyle, orderedStyle });
428917
+ });
428918
+ return result;
427976
428919
  }, ListHelpers2;
427977
428920
  var init_list_numbering_helpers = __esm(() => {
427978
428921
  init_listImporter();
@@ -427997,6 +428940,8 @@ var init_list_numbering_helpers = __esm(() => {
427997
428940
  removeLvlOverride: removeLvlOverride3,
427998
428941
  createNumDefinition: createNumDefinition3,
427999
428942
  setLvlRestartOnAbstract: setLvlRestartOnAbstract3,
428943
+ setListLevelStyles: setListLevelStyles2,
428944
+ cloneListDefinitionWithLevelStyle: cloneListDefinitionWithLevelStyle3,
428000
428945
  rebuildRawNumberingFromTranslated: rebuildRawNumberingFromTranslated2,
428001
428946
  createNewList: createNewList2,
428002
428947
  createSchemaOrderedListNode: createSchemaOrderedListNode2,