@superdoc-dev/cli 0.2.0-next.81 → 0.2.0-next.83

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 +3258 -703
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -1054,7 +1054,7 @@ function readOperation(options = {}) {
1054
1054
  idempotency: options.idempotency ?? "idempotent",
1055
1055
  supportsDryRun: false,
1056
1056
  supportsTrackedMode: false,
1057
- possibleFailureCodes: NONE_FAILURES,
1057
+ possibleFailureCodes: options.possibleFailureCodes ?? NONE_FAILURES,
1058
1058
  throws: {
1059
1059
  preApply: options.throws ?? NONE_THROWS,
1060
1060
  postApplyForbidden: true
@@ -2184,6 +2184,176 @@ var init_operation_definitions = __esm(() => {
2184
2184
  referenceDocPath: "lists/convert-to-text.mdx",
2185
2185
  referenceGroup: "lists"
2186
2186
  },
2187
+ "lists.applyTemplate": {
2188
+ memberPath: "lists.applyTemplate",
2189
+ description: "Apply a captured ListTemplate to the target list, optionally filtered to specific levels.",
2190
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if all levels already match.",
2191
+ requiresDocumentContext: true,
2192
+ metadata: mutationOperation({
2193
+ idempotency: "conditional",
2194
+ supportsDryRun: true,
2195
+ supportsTrackedMode: false,
2196
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "INVALID_INPUT"],
2197
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
2198
+ }),
2199
+ referenceDocPath: "lists/apply-template.mdx",
2200
+ referenceGroup: "lists"
2201
+ },
2202
+ "lists.applyPreset": {
2203
+ memberPath: "lists.applyPreset",
2204
+ description: "Apply a built-in list formatting preset to the target list.",
2205
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if all levels already match the preset.",
2206
+ requiresDocumentContext: true,
2207
+ metadata: mutationOperation({
2208
+ idempotency: "conditional",
2209
+ supportsDryRun: true,
2210
+ supportsTrackedMode: false,
2211
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "INVALID_INPUT"],
2212
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
2213
+ }),
2214
+ referenceDocPath: "lists/apply-preset.mdx",
2215
+ referenceGroup: "lists"
2216
+ },
2217
+ "lists.captureTemplate": {
2218
+ memberPath: "lists.captureTemplate",
2219
+ description: "Capture the formatting of a list as a reusable ListTemplate.",
2220
+ expectedResult: "Returns a ListsCaptureTemplateResult containing the captured template.",
2221
+ requiresDocumentContext: true,
2222
+ metadata: readOperation({
2223
+ idempotency: "idempotent",
2224
+ throws: ["TARGET_NOT_FOUND", "INVALID_TARGET", "INVALID_INPUT"],
2225
+ possibleFailureCodes: ["INVALID_TARGET", "INVALID_INPUT", "LEVEL_OUT_OF_RANGE"]
2226
+ }),
2227
+ referenceDocPath: "lists/capture-template.mdx",
2228
+ referenceGroup: "lists"
2229
+ },
2230
+ "lists.setLevelNumbering": {
2231
+ memberPath: "lists.setLevelNumbering",
2232
+ description: "Set the numbering format, pattern, and optional start value for a specific list level.",
2233
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the level already matches.",
2234
+ requiresDocumentContext: true,
2235
+ metadata: mutationOperation({
2236
+ idempotency: "conditional",
2237
+ supportsDryRun: true,
2238
+ supportsTrackedMode: false,
2239
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "LEVEL_NOT_FOUND"],
2240
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
2241
+ }),
2242
+ referenceDocPath: "lists/set-level-numbering.mdx",
2243
+ referenceGroup: "lists"
2244
+ },
2245
+ "lists.setLevelBullet": {
2246
+ memberPath: "lists.setLevelBullet",
2247
+ description: "Set the bullet marker text for a specific list level.",
2248
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the marker already matches.",
2249
+ requiresDocumentContext: true,
2250
+ metadata: mutationOperation({
2251
+ idempotency: "conditional",
2252
+ supportsDryRun: true,
2253
+ supportsTrackedMode: false,
2254
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "LEVEL_NOT_FOUND"],
2255
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
2256
+ }),
2257
+ referenceDocPath: "lists/set-level-bullet.mdx",
2258
+ referenceGroup: "lists"
2259
+ },
2260
+ "lists.setLevelPictureBullet": {
2261
+ memberPath: "lists.setLevelPictureBullet",
2262
+ description: "Set a picture bullet for a specific list level by its OOXML lvlPicBulletId.",
2263
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the picture bullet already matches.",
2264
+ requiresDocumentContext: true,
2265
+ metadata: mutationOperation({
2266
+ idempotency: "conditional",
2267
+ supportsDryRun: true,
2268
+ supportsTrackedMode: false,
2269
+ possibleFailureCodes: [
2270
+ "NO_OP",
2271
+ "INVALID_TARGET",
2272
+ "LEVEL_OUT_OF_RANGE",
2273
+ "LEVEL_NOT_FOUND",
2274
+ "INVALID_INPUT",
2275
+ "CAPABILITY_UNAVAILABLE"
2276
+ ],
2277
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "CAPABILITY_UNAVAILABLE"]
2278
+ }),
2279
+ referenceDocPath: "lists/set-level-picture-bullet.mdx",
2280
+ referenceGroup: "lists"
2281
+ },
2282
+ "lists.setLevelAlignment": {
2283
+ memberPath: "lists.setLevelAlignment",
2284
+ description: "Set the marker alignment (left, center, right) for a specific list level.",
2285
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the alignment already matches.",
2286
+ requiresDocumentContext: true,
2287
+ metadata: mutationOperation({
2288
+ idempotency: "conditional",
2289
+ supportsDryRun: true,
2290
+ supportsTrackedMode: false,
2291
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "LEVEL_NOT_FOUND"],
2292
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
2293
+ }),
2294
+ referenceDocPath: "lists/set-level-alignment.mdx",
2295
+ referenceGroup: "lists"
2296
+ },
2297
+ "lists.setLevelIndents": {
2298
+ memberPath: "lists.setLevelIndents",
2299
+ description: "Set the paragraph indentation values (left, hanging, firstLine) for a specific list level.",
2300
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if all indent values already match.",
2301
+ requiresDocumentContext: true,
2302
+ metadata: mutationOperation({
2303
+ idempotency: "conditional",
2304
+ supportsDryRun: true,
2305
+ supportsTrackedMode: false,
2306
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "LEVEL_NOT_FOUND", "INVALID_INPUT"],
2307
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET", "INVALID_INPUT"]
2308
+ }),
2309
+ referenceDocPath: "lists/set-level-indents.mdx",
2310
+ referenceGroup: "lists"
2311
+ },
2312
+ "lists.setLevelTrailingCharacter": {
2313
+ memberPath: "lists.setLevelTrailingCharacter",
2314
+ description: "Set the trailing character (tab, space, nothing) after the marker for a specific list level.",
2315
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the trailing character already matches.",
2316
+ requiresDocumentContext: true,
2317
+ metadata: mutationOperation({
2318
+ idempotency: "conditional",
2319
+ supportsDryRun: true,
2320
+ supportsTrackedMode: false,
2321
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "LEVEL_NOT_FOUND"],
2322
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
2323
+ }),
2324
+ referenceDocPath: "lists/set-level-trailing-character.mdx",
2325
+ referenceGroup: "lists"
2326
+ },
2327
+ "lists.setLevelMarkerFont": {
2328
+ memberPath: "lists.setLevelMarkerFont",
2329
+ description: "Set the font family used for the marker character at a specific list level.",
2330
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the font already matches.",
2331
+ requiresDocumentContext: true,
2332
+ metadata: mutationOperation({
2333
+ idempotency: "conditional",
2334
+ supportsDryRun: true,
2335
+ supportsTrackedMode: false,
2336
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE", "LEVEL_NOT_FOUND"],
2337
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
2338
+ }),
2339
+ referenceDocPath: "lists/set-level-marker-font.mdx",
2340
+ referenceGroup: "lists"
2341
+ },
2342
+ "lists.clearLevelOverrides": {
2343
+ memberPath: "lists.clearLevelOverrides",
2344
+ description: "Remove instance-level overrides for a specific list level, restoring abstract definition values.",
2345
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if no override exists.",
2346
+ requiresDocumentContext: true,
2347
+ metadata: mutationOperation({
2348
+ idempotency: "conditional",
2349
+ supportsDryRun: true,
2350
+ supportsTrackedMode: false,
2351
+ possibleFailureCodes: ["NO_OP", "INVALID_TARGET", "LEVEL_OUT_OF_RANGE"],
2352
+ throws: [...T_NOT_FOUND_CAPABLE, "INVALID_TARGET"]
2353
+ }),
2354
+ referenceDocPath: "lists/clear-level-overrides.mdx",
2355
+ referenceGroup: "lists"
2356
+ },
2187
2357
  "comments.create": {
2188
2358
  memberPath: "comments.create",
2189
2359
  description: "Create a new comment thread (or reply when parentCommentId is given).",
@@ -6226,6 +6396,178 @@ var init_schemas = __esm(() => {
6226
6396
  success: objectSchema({ success: { const: true }, paragraph: ref("ParagraphAddress") }, ["success", "paragraph"]),
6227
6397
  failure: listsFailureSchemaFor("lists.convertToText")
6228
6398
  },
6399
+ "lists.applyTemplate": {
6400
+ input: objectSchema({
6401
+ target: listItemAddressSchema,
6402
+ template: objectSchema({
6403
+ version: { const: 1 },
6404
+ levels: arraySchema(objectSchema({
6405
+ level: { type: "integer", minimum: 0, maximum: 8 },
6406
+ numFmt: { type: "string" },
6407
+ lvlText: { type: "string" },
6408
+ start: { type: "integer" },
6409
+ alignment: { enum: ["left", "center", "right"] },
6410
+ indents: objectSchema({
6411
+ left: { type: "integer" },
6412
+ hanging: { type: "integer" },
6413
+ firstLine: { type: "integer" }
6414
+ }),
6415
+ trailingCharacter: { enum: ["tab", "space", "nothing"] },
6416
+ markerFont: { type: "string" },
6417
+ pictureBulletId: { type: "integer" }
6418
+ }, ["level"]))
6419
+ }, ["version", "levels"]),
6420
+ levels: arraySchema({ type: "integer", minimum: 0, maximum: 8 })
6421
+ }, ["target", "template"]),
6422
+ output: listsMutateItemResultSchemaFor("lists.applyTemplate"),
6423
+ success: listsMutateItemSuccessSchema,
6424
+ failure: listsFailureSchemaFor("lists.applyTemplate")
6425
+ },
6426
+ "lists.applyPreset": {
6427
+ input: objectSchema({
6428
+ target: listItemAddressSchema,
6429
+ preset: {
6430
+ enum: [
6431
+ "decimal",
6432
+ "decimalParenthesis",
6433
+ "lowerLetter",
6434
+ "upperLetter",
6435
+ "lowerRoman",
6436
+ "upperRoman",
6437
+ "disc",
6438
+ "circle",
6439
+ "square",
6440
+ "dash"
6441
+ ]
6442
+ },
6443
+ levels: arraySchema({ type: "integer", minimum: 0, maximum: 8 })
6444
+ }, ["target", "preset"]),
6445
+ output: listsMutateItemResultSchemaFor("lists.applyPreset"),
6446
+ success: listsMutateItemSuccessSchema,
6447
+ failure: listsFailureSchemaFor("lists.applyPreset")
6448
+ },
6449
+ "lists.captureTemplate": (() => {
6450
+ const successSchema = objectSchema({
6451
+ success: { const: true },
6452
+ template: objectSchema({
6453
+ version: { const: 1 },
6454
+ levels: arraySchema(objectSchema({
6455
+ level: { type: "integer", minimum: 0, maximum: 8 },
6456
+ numFmt: { type: "string" },
6457
+ lvlText: { type: "string" },
6458
+ start: { type: "integer" },
6459
+ alignment: { enum: ["left", "center", "right"] },
6460
+ indents: objectSchema({
6461
+ left: { type: "integer" },
6462
+ hanging: { type: "integer" },
6463
+ firstLine: { type: "integer" }
6464
+ }),
6465
+ trailingCharacter: { enum: ["tab", "space", "nothing"] },
6466
+ markerFont: { type: "string" },
6467
+ pictureBulletId: { type: "integer" }
6468
+ }, ["level"]))
6469
+ }, ["version", "levels"])
6470
+ }, ["success", "template"]);
6471
+ return {
6472
+ input: objectSchema({
6473
+ target: listItemAddressSchema,
6474
+ levels: arraySchema({ type: "integer", minimum: 0, maximum: 8 })
6475
+ }, ["target"]),
6476
+ output: { oneOf: [successSchema, listsFailureSchemaFor("lists.captureTemplate")] },
6477
+ success: successSchema,
6478
+ failure: listsFailureSchemaFor("lists.captureTemplate")
6479
+ };
6480
+ })(),
6481
+ "lists.setLevelNumbering": {
6482
+ input: objectSchema({
6483
+ target: listItemAddressSchema,
6484
+ level: { type: "integer", minimum: 0, maximum: 8 },
6485
+ numFmt: { type: "string" },
6486
+ lvlText: { type: "string" },
6487
+ start: { type: "integer" }
6488
+ }, ["target", "level", "numFmt", "lvlText"]),
6489
+ output: listsMutateItemResultSchemaFor("lists.setLevelNumbering"),
6490
+ success: listsMutateItemSuccessSchema,
6491
+ failure: listsFailureSchemaFor("lists.setLevelNumbering")
6492
+ },
6493
+ "lists.setLevelBullet": {
6494
+ input: objectSchema({
6495
+ target: listItemAddressSchema,
6496
+ level: { type: "integer", minimum: 0, maximum: 8 },
6497
+ markerText: { type: "string" }
6498
+ }, ["target", "level", "markerText"]),
6499
+ output: listsMutateItemResultSchemaFor("lists.setLevelBullet"),
6500
+ success: listsMutateItemSuccessSchema,
6501
+ failure: listsFailureSchemaFor("lists.setLevelBullet")
6502
+ },
6503
+ "lists.setLevelPictureBullet": {
6504
+ input: objectSchema({
6505
+ target: listItemAddressSchema,
6506
+ level: { type: "integer", minimum: 0, maximum: 8 },
6507
+ pictureBulletId: { type: "integer" }
6508
+ }, ["target", "level", "pictureBulletId"]),
6509
+ output: listsMutateItemResultSchemaFor("lists.setLevelPictureBullet"),
6510
+ success: listsMutateItemSuccessSchema,
6511
+ failure: listsFailureSchemaFor("lists.setLevelPictureBullet")
6512
+ },
6513
+ "lists.setLevelAlignment": {
6514
+ input: objectSchema({
6515
+ target: listItemAddressSchema,
6516
+ level: { type: "integer", minimum: 0, maximum: 8 },
6517
+ alignment: { enum: ["left", "center", "right"] }
6518
+ }, ["target", "level", "alignment"]),
6519
+ output: listsMutateItemResultSchemaFor("lists.setLevelAlignment"),
6520
+ success: listsMutateItemSuccessSchema,
6521
+ failure: listsFailureSchemaFor("lists.setLevelAlignment")
6522
+ },
6523
+ "lists.setLevelIndents": {
6524
+ input: {
6525
+ type: "object",
6526
+ properties: {
6527
+ target: listItemAddressSchema,
6528
+ level: { type: "integer", minimum: 0, maximum: 8 },
6529
+ left: { type: "integer" },
6530
+ hanging: { type: "integer" },
6531
+ firstLine: { type: "integer" }
6532
+ },
6533
+ required: ["target", "level"],
6534
+ additionalProperties: false,
6535
+ anyOf: [{ required: ["left"] }, { required: ["hanging"] }, { required: ["firstLine"] }],
6536
+ not: { required: ["hanging", "firstLine"] }
6537
+ },
6538
+ output: listsMutateItemResultSchemaFor("lists.setLevelIndents"),
6539
+ success: listsMutateItemSuccessSchema,
6540
+ failure: listsFailureSchemaFor("lists.setLevelIndents")
6541
+ },
6542
+ "lists.setLevelTrailingCharacter": {
6543
+ input: objectSchema({
6544
+ target: listItemAddressSchema,
6545
+ level: { type: "integer", minimum: 0, maximum: 8 },
6546
+ trailingCharacter: { enum: ["tab", "space", "nothing"] }
6547
+ }, ["target", "level", "trailingCharacter"]),
6548
+ output: listsMutateItemResultSchemaFor("lists.setLevelTrailingCharacter"),
6549
+ success: listsMutateItemSuccessSchema,
6550
+ failure: listsFailureSchemaFor("lists.setLevelTrailingCharacter")
6551
+ },
6552
+ "lists.setLevelMarkerFont": {
6553
+ input: objectSchema({
6554
+ target: listItemAddressSchema,
6555
+ level: { type: "integer", minimum: 0, maximum: 8 },
6556
+ fontFamily: { type: "string" }
6557
+ }, ["target", "level", "fontFamily"]),
6558
+ output: listsMutateItemResultSchemaFor("lists.setLevelMarkerFont"),
6559
+ success: listsMutateItemSuccessSchema,
6560
+ failure: listsFailureSchemaFor("lists.setLevelMarkerFont")
6561
+ },
6562
+ "lists.clearLevelOverrides": {
6563
+ input: objectSchema({
6564
+ target: listItemAddressSchema,
6565
+ level: { type: "integer", minimum: 0, maximum: 8 }
6566
+ }, ["target", "level"]),
6567
+ output: listsMutateItemResultSchemaFor("lists.clearLevelOverrides"),
6568
+ success: listsMutateItemSuccessSchema,
6569
+ failure: listsFailureSchemaFor("lists.clearLevelOverrides")
6570
+ },
6229
6571
  "comments.create": {
6230
6572
  input: objectSchema({
6231
6573
  text: { type: "string" },
@@ -8045,6 +8387,50 @@ function executeListsConvertToText(adapter, input, options) {
8045
8387
  validateListTarget(input, "lists.convertToText");
8046
8388
  return adapter.convertToText(input, normalizeMutationOptions(options));
8047
8389
  }
8390
+ function executeListsApplyTemplate(adapter, input, options) {
8391
+ validateListTarget(input, "lists.applyTemplate");
8392
+ return adapter.applyTemplate(input, normalizeMutationOptions(options));
8393
+ }
8394
+ function executeListsApplyPreset(adapter, input, options) {
8395
+ validateListTarget(input, "lists.applyPreset");
8396
+ return adapter.applyPreset(input, normalizeMutationOptions(options));
8397
+ }
8398
+ function executeListsCaptureTemplate(adapter, input) {
8399
+ validateListTarget(input, "lists.captureTemplate");
8400
+ return adapter.captureTemplate(input);
8401
+ }
8402
+ function executeListsSetLevelNumbering(adapter, input, options) {
8403
+ validateListTarget(input, "lists.setLevelNumbering");
8404
+ return adapter.setLevelNumbering(input, normalizeMutationOptions(options));
8405
+ }
8406
+ function executeListsSetLevelBullet(adapter, input, options) {
8407
+ validateListTarget(input, "lists.setLevelBullet");
8408
+ return adapter.setLevelBullet(input, normalizeMutationOptions(options));
8409
+ }
8410
+ function executeListsSetLevelPictureBullet(adapter, input, options) {
8411
+ validateListTarget(input, "lists.setLevelPictureBullet");
8412
+ return adapter.setLevelPictureBullet(input, normalizeMutationOptions(options));
8413
+ }
8414
+ function executeListsSetLevelAlignment(adapter, input, options) {
8415
+ validateListTarget(input, "lists.setLevelAlignment");
8416
+ return adapter.setLevelAlignment(input, normalizeMutationOptions(options));
8417
+ }
8418
+ function executeListsSetLevelIndents(adapter, input, options) {
8419
+ validateListTarget(input, "lists.setLevelIndents");
8420
+ return adapter.setLevelIndents(input, normalizeMutationOptions(options));
8421
+ }
8422
+ function executeListsSetLevelTrailingCharacter(adapter, input, options) {
8423
+ validateListTarget(input, "lists.setLevelTrailingCharacter");
8424
+ return adapter.setLevelTrailingCharacter(input, normalizeMutationOptions(options));
8425
+ }
8426
+ function executeListsSetLevelMarkerFont(adapter, input, options) {
8427
+ validateListTarget(input, "lists.setLevelMarkerFont");
8428
+ return adapter.setLevelMarkerFont(input, normalizeMutationOptions(options));
8429
+ }
8430
+ function executeListsClearLevelOverrides(adapter, input, options) {
8431
+ validateListTarget(input, "lists.clearLevelOverrides");
8432
+ return adapter.clearLevelOverrides(input, normalizeMutationOptions(options));
8433
+ }
8048
8434
  var init_lists = __esm(() => {
8049
8435
  init_errors2();
8050
8436
  });
@@ -8378,6 +8764,17 @@ function buildDispatchTable(api) {
8378
8764
  "lists.canContinuePrevious": (input) => api.lists.canContinuePrevious(input),
8379
8765
  "lists.setLevelRestart": (input, options) => api.lists.setLevelRestart(input, options),
8380
8766
  "lists.convertToText": (input, options) => api.lists.convertToText(input, options),
8767
+ "lists.applyTemplate": (input, options) => api.lists.applyTemplate(input, options),
8768
+ "lists.applyPreset": (input, options) => api.lists.applyPreset(input, options),
8769
+ "lists.captureTemplate": (input) => api.lists.captureTemplate(input),
8770
+ "lists.setLevelNumbering": (input, options) => api.lists.setLevelNumbering(input, options),
8771
+ "lists.setLevelBullet": (input, options) => api.lists.setLevelBullet(input, options),
8772
+ "lists.setLevelPictureBullet": (input, options) => api.lists.setLevelPictureBullet(input, options),
8773
+ "lists.setLevelAlignment": (input, options) => api.lists.setLevelAlignment(input, options),
8774
+ "lists.setLevelIndents": (input, options) => api.lists.setLevelIndents(input, options),
8775
+ "lists.setLevelTrailingCharacter": (input, options) => api.lists.setLevelTrailingCharacter(input, options),
8776
+ "lists.setLevelMarkerFont": (input, options) => api.lists.setLevelMarkerFont(input, options),
8777
+ "lists.clearLevelOverrides": (input, options) => api.lists.clearLevelOverrides(input, options),
8381
8778
  "sections.list": (input) => api.sections.list(input),
8382
8779
  "sections.get": (input) => api.sections.get(input),
8383
8780
  "sections.setBreakType": (input, options) => api.sections.setBreakType(input, options),
@@ -9390,6 +9787,46 @@ function createDocumentApi(adapters) {
9390
9787
  },
9391
9788
  convertToText(input, options) {
9392
9789
  return executeListsConvertToText(adapters.lists, input, options);
9790
+ },
9791
+ applyTemplate(input, options) {
9792
+ return executeListsApplyTemplate(adapters.lists, input, options);
9793
+ },
9794
+ applyPreset(input, options) {
9795
+ return executeListsApplyPreset(adapters.lists, input, options);
9796
+ },
9797
+ captureTemplate(input) {
9798
+ return executeListsCaptureTemplate(adapters.lists, input);
9799
+ },
9800
+ setLevelNumbering(input, options) {
9801
+ return executeListsSetLevelNumbering(adapters.lists, input, options);
9802
+ },
9803
+ setLevelBullet(input, options) {
9804
+ return executeListsSetLevelBullet(adapters.lists, input, options);
9805
+ },
9806
+ setLevelPictureBullet(input, options) {
9807
+ return executeListsSetLevelPictureBullet(adapters.lists, input, options);
9808
+ },
9809
+ setLevelAlignment(input, options) {
9810
+ return executeListsSetLevelAlignment(adapters.lists, input, options);
9811
+ },
9812
+ setLevelIndents(input, options) {
9813
+ return executeListsSetLevelIndents(adapters.lists, input, options);
9814
+ },
9815
+ setLevelTrailingCharacter(input, options) {
9816
+ return executeListsSetLevelTrailingCharacter(adapters.lists, input, options);
9817
+ },
9818
+ setLevelMarkerFont(input, options) {
9819
+ return executeListsSetLevelMarkerFont(adapters.lists, input, options);
9820
+ },
9821
+ clearLevelOverrides(input, options) {
9822
+ return executeListsClearLevelOverrides(adapters.lists, input, options);
9823
+ },
9824
+ setType(input, options) {
9825
+ const presetMap = {
9826
+ ordered: "decimal",
9827
+ bullet: "disc"
9828
+ };
9829
+ return executeListsApplyPreset(adapters.lists, { target: input.target, preset: presetMap[input.kind] }, options);
9393
9830
  }
9394
9831
  },
9395
9832
  sections: {
@@ -10387,6 +10824,17 @@ var init_operation_hints = __esm(() => {
10387
10824
  "lists.continuePrevious": "continued previous list",
10388
10825
  "lists.canContinuePrevious": "checked continue feasibility",
10389
10826
  "lists.setLevelRestart": "set level restart",
10827
+ "lists.applyTemplate": "applied list template",
10828
+ "lists.applyPreset": "applied list preset",
10829
+ "lists.captureTemplate": "captured list template",
10830
+ "lists.setLevelNumbering": "set level numbering",
10831
+ "lists.setLevelBullet": "set level bullet",
10832
+ "lists.setLevelPictureBullet": "set level picture bullet",
10833
+ "lists.setLevelAlignment": "set level alignment",
10834
+ "lists.setLevelIndents": "set level indents",
10835
+ "lists.setLevelTrailingCharacter": "set level trailing character",
10836
+ "lists.setLevelMarkerFont": "set level marker font",
10837
+ "lists.clearLevelOverrides": "cleared level overrides",
10390
10838
  "lists.convertToText": "converted list to text",
10391
10839
  "comments.create": "created comment",
10392
10840
  "comments.patch": "patched comment",
@@ -10506,6 +10954,17 @@ var init_operation_hints = __esm(() => {
10506
10954
  "lists.continuePrevious": "listsMutationResult",
10507
10955
  "lists.canContinuePrevious": "plain",
10508
10956
  "lists.setLevelRestart": "listsMutationResult",
10957
+ "lists.applyTemplate": "listsMutationResult",
10958
+ "lists.applyPreset": "listsMutationResult",
10959
+ "lists.captureTemplate": "plain",
10960
+ "lists.setLevelNumbering": "listsMutationResult",
10961
+ "lists.setLevelBullet": "listsMutationResult",
10962
+ "lists.setLevelPictureBullet": "listsMutationResult",
10963
+ "lists.setLevelAlignment": "listsMutationResult",
10964
+ "lists.setLevelIndents": "listsMutationResult",
10965
+ "lists.setLevelTrailingCharacter": "listsMutationResult",
10966
+ "lists.setLevelMarkerFont": "listsMutationResult",
10967
+ "lists.clearLevelOverrides": "listsMutationResult",
10509
10968
  "lists.convertToText": "listsMutationResult",
10510
10969
  "comments.create": "commentReceipt",
10511
10970
  "comments.patch": "commentReceipt",
@@ -10625,6 +11084,17 @@ var init_operation_hints = __esm(() => {
10625
11084
  "lists.continuePrevious": "result",
10626
11085
  "lists.canContinuePrevious": "result",
10627
11086
  "lists.setLevelRestart": "result",
11087
+ "lists.applyTemplate": "result",
11088
+ "lists.applyPreset": "result",
11089
+ "lists.captureTemplate": "result",
11090
+ "lists.setLevelNumbering": "result",
11091
+ "lists.setLevelBullet": "result",
11092
+ "lists.setLevelPictureBullet": "result",
11093
+ "lists.setLevelAlignment": "result",
11094
+ "lists.setLevelIndents": "result",
11095
+ "lists.setLevelTrailingCharacter": "result",
11096
+ "lists.setLevelMarkerFont": "result",
11097
+ "lists.clearLevelOverrides": "result",
10628
11098
  "lists.convertToText": "result",
10629
11099
  "comments.create": "receipt",
10630
11100
  "comments.patch": "receipt",
@@ -10751,6 +11221,17 @@ var init_operation_hints = __esm(() => {
10751
11221
  "lists.continuePrevious": "lists",
10752
11222
  "lists.canContinuePrevious": "lists",
10753
11223
  "lists.setLevelRestart": "lists",
11224
+ "lists.applyTemplate": "lists",
11225
+ "lists.applyPreset": "lists",
11226
+ "lists.captureTemplate": "lists",
11227
+ "lists.setLevelNumbering": "lists",
11228
+ "lists.setLevelBullet": "lists",
11229
+ "lists.setLevelPictureBullet": "lists",
11230
+ "lists.setLevelAlignment": "lists",
11231
+ "lists.setLevelIndents": "lists",
11232
+ "lists.setLevelTrailingCharacter": "lists",
11233
+ "lists.setLevelMarkerFont": "lists",
11234
+ "lists.clearLevelOverrides": "lists",
10754
11235
  "lists.convertToText": "lists",
10755
11236
  "comments.create": "comments",
10756
11237
  "comments.patch": "comments",
@@ -31834,7 +32315,7 @@ var init_remark_gfm_z_sDF4ss_es = __esm(() => {
31834
32315
  emptyOptions2 = {};
31835
32316
  });
31836
32317
 
31837
- // ../../packages/superdoc/dist/chunks/SuperConverter-Bo_KNppf.es.js
32318
+ // ../../packages/superdoc/dist/chunks/SuperConverter-CejXSSGL.es.js
31838
32319
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
31839
32320
  const fieldValue = extension$1.config[field];
31840
32321
  if (typeof fieldValue === "function")
@@ -32914,7 +33395,7 @@ function readOperation2(options = {}) {
32914
33395
  idempotency: options.idempotency ?? "idempotent",
32915
33396
  supportsDryRun: false,
32916
33397
  supportsTrackedMode: false,
32917
- possibleFailureCodes: NONE_FAILURES2,
33398
+ possibleFailureCodes: options.possibleFailureCodes ?? NONE_FAILURES2,
32918
33399
  throws: {
32919
33400
  preApply: options.throws ?? NONE_THROWS2,
32920
33401
  postApplyForbidden: true
@@ -34168,6 +34649,50 @@ function executeListsConvertToText2(adapter, input, options) {
34168
34649
  validateListTarget2(input, "lists.convertToText");
34169
34650
  return adapter.convertToText(input, normalizeMutationOptions2(options));
34170
34651
  }
34652
+ function executeListsApplyTemplate2(adapter, input, options) {
34653
+ validateListTarget2(input, "lists.applyTemplate");
34654
+ return adapter.applyTemplate(input, normalizeMutationOptions2(options));
34655
+ }
34656
+ function executeListsApplyPreset2(adapter, input, options) {
34657
+ validateListTarget2(input, "lists.applyPreset");
34658
+ return adapter.applyPreset(input, normalizeMutationOptions2(options));
34659
+ }
34660
+ function executeListsCaptureTemplate2(adapter, input) {
34661
+ validateListTarget2(input, "lists.captureTemplate");
34662
+ return adapter.captureTemplate(input);
34663
+ }
34664
+ function executeListsSetLevelNumbering2(adapter, input, options) {
34665
+ validateListTarget2(input, "lists.setLevelNumbering");
34666
+ return adapter.setLevelNumbering(input, normalizeMutationOptions2(options));
34667
+ }
34668
+ function executeListsSetLevelBullet2(adapter, input, options) {
34669
+ validateListTarget2(input, "lists.setLevelBullet");
34670
+ return adapter.setLevelBullet(input, normalizeMutationOptions2(options));
34671
+ }
34672
+ function executeListsSetLevelPictureBullet2(adapter, input, options) {
34673
+ validateListTarget2(input, "lists.setLevelPictureBullet");
34674
+ return adapter.setLevelPictureBullet(input, normalizeMutationOptions2(options));
34675
+ }
34676
+ function executeListsSetLevelAlignment2(adapter, input, options) {
34677
+ validateListTarget2(input, "lists.setLevelAlignment");
34678
+ return adapter.setLevelAlignment(input, normalizeMutationOptions2(options));
34679
+ }
34680
+ function executeListsSetLevelIndents2(adapter, input, options) {
34681
+ validateListTarget2(input, "lists.setLevelIndents");
34682
+ return adapter.setLevelIndents(input, normalizeMutationOptions2(options));
34683
+ }
34684
+ function executeListsSetLevelTrailingCharacter2(adapter, input, options) {
34685
+ validateListTarget2(input, "lists.setLevelTrailingCharacter");
34686
+ return adapter.setLevelTrailingCharacter(input, normalizeMutationOptions2(options));
34687
+ }
34688
+ function executeListsSetLevelMarkerFont2(adapter, input, options) {
34689
+ validateListTarget2(input, "lists.setLevelMarkerFont");
34690
+ return adapter.setLevelMarkerFont(input, normalizeMutationOptions2(options));
34691
+ }
34692
+ function executeListsClearLevelOverrides2(adapter, input, options) {
34693
+ validateListTarget2(input, "lists.clearLevelOverrides");
34694
+ return adapter.clearLevelOverrides(input, normalizeMutationOptions2(options));
34695
+ }
34171
34696
  function validateReplaceInput2(input) {
34172
34697
  if (!isRecord3(input))
34173
34698
  throw new DocumentApiValidationError2("INVALID_TARGET", "Replace input must be a non-null object.");
@@ -34451,6 +34976,17 @@ function buildDispatchTable2(api) {
34451
34976
  "lists.canContinuePrevious": (input) => api.lists.canContinuePrevious(input),
34452
34977
  "lists.setLevelRestart": (input, options) => api.lists.setLevelRestart(input, options),
34453
34978
  "lists.convertToText": (input, options) => api.lists.convertToText(input, options),
34979
+ "lists.applyTemplate": (input, options) => api.lists.applyTemplate(input, options),
34980
+ "lists.applyPreset": (input, options) => api.lists.applyPreset(input, options),
34981
+ "lists.captureTemplate": (input) => api.lists.captureTemplate(input),
34982
+ "lists.setLevelNumbering": (input, options) => api.lists.setLevelNumbering(input, options),
34983
+ "lists.setLevelBullet": (input, options) => api.lists.setLevelBullet(input, options),
34984
+ "lists.setLevelPictureBullet": (input, options) => api.lists.setLevelPictureBullet(input, options),
34985
+ "lists.setLevelAlignment": (input, options) => api.lists.setLevelAlignment(input, options),
34986
+ "lists.setLevelIndents": (input, options) => api.lists.setLevelIndents(input, options),
34987
+ "lists.setLevelTrailingCharacter": (input, options) => api.lists.setLevelTrailingCharacter(input, options),
34988
+ "lists.setLevelMarkerFont": (input, options) => api.lists.setLevelMarkerFont(input, options),
34989
+ "lists.clearLevelOverrides": (input, options) => api.lists.clearLevelOverrides(input, options),
34454
34990
  "sections.list": (input) => api.sections.list(input),
34455
34991
  "sections.get": (input) => api.sections.get(input),
34456
34992
  "sections.setBreakType": (input, options) => api.sections.setBreakType(input, options),
@@ -35339,6 +35875,48 @@ function createDocumentApi2(adapters) {
35339
35875
  },
35340
35876
  convertToText(input, options) {
35341
35877
  return executeListsConvertToText2(adapters.lists, input, options);
35878
+ },
35879
+ applyTemplate(input, options) {
35880
+ return executeListsApplyTemplate2(adapters.lists, input, options);
35881
+ },
35882
+ applyPreset(input, options) {
35883
+ return executeListsApplyPreset2(adapters.lists, input, options);
35884
+ },
35885
+ captureTemplate(input) {
35886
+ return executeListsCaptureTemplate2(adapters.lists, input);
35887
+ },
35888
+ setLevelNumbering(input, options) {
35889
+ return executeListsSetLevelNumbering2(adapters.lists, input, options);
35890
+ },
35891
+ setLevelBullet(input, options) {
35892
+ return executeListsSetLevelBullet2(adapters.lists, input, options);
35893
+ },
35894
+ setLevelPictureBullet(input, options) {
35895
+ return executeListsSetLevelPictureBullet2(adapters.lists, input, options);
35896
+ },
35897
+ setLevelAlignment(input, options) {
35898
+ return executeListsSetLevelAlignment2(adapters.lists, input, options);
35899
+ },
35900
+ setLevelIndents(input, options) {
35901
+ return executeListsSetLevelIndents2(adapters.lists, input, options);
35902
+ },
35903
+ setLevelTrailingCharacter(input, options) {
35904
+ return executeListsSetLevelTrailingCharacter2(adapters.lists, input, options);
35905
+ },
35906
+ setLevelMarkerFont(input, options) {
35907
+ return executeListsSetLevelMarkerFont2(adapters.lists, input, options);
35908
+ },
35909
+ clearLevelOverrides(input, options) {
35910
+ return executeListsClearLevelOverrides2(adapters.lists, input, options);
35911
+ },
35912
+ setType(input, options) {
35913
+ return executeListsApplyPreset2(adapters.lists, {
35914
+ target: input.target,
35915
+ preset: {
35916
+ ordered: "decimal",
35917
+ bullet: "disc"
35918
+ }[input.kind]
35919
+ }, options);
35342
35920
  }
35343
35921
  },
35344
35922
  sections: {
@@ -63134,7 +63712,7 @@ var isRegExp = (value) => {
63134
63712
  state.kern = kernNode.attributes["w:val"];
63135
63713
  }
63136
63714
  }, SuperConverter;
63137
- var init_SuperConverter_Bo_KNppf_es = __esm(() => {
63715
+ var init_SuperConverter_CejXSSGL_es = __esm(() => {
63138
63716
  init_rolldown_runtime_B2q5OVn9_es();
63139
63717
  init_jszip_ChlR43oI_es();
63140
63718
  init_xml_js_DLE8mr0n_es();
@@ -67079,6 +67657,245 @@ var init_SuperConverter_Bo_KNppf_es = __esm(() => {
67079
67657
  referenceDocPath: "lists/convert-to-text.mdx",
67080
67658
  referenceGroup: "lists"
67081
67659
  },
67660
+ "lists.applyTemplate": {
67661
+ memberPath: "lists.applyTemplate",
67662
+ description: "Apply a captured ListTemplate to the target list, optionally filtered to specific levels.",
67663
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if all levels already match.",
67664
+ requiresDocumentContext: true,
67665
+ metadata: mutationOperation2({
67666
+ idempotency: "conditional",
67667
+ supportsDryRun: true,
67668
+ supportsTrackedMode: false,
67669
+ possibleFailureCodes: [
67670
+ "NO_OP",
67671
+ "INVALID_TARGET",
67672
+ "LEVEL_OUT_OF_RANGE",
67673
+ "INVALID_INPUT"
67674
+ ],
67675
+ throws: [
67676
+ ...T_NOT_FOUND_CAPABLE2,
67677
+ "INVALID_TARGET",
67678
+ "INVALID_INPUT"
67679
+ ]
67680
+ }),
67681
+ referenceDocPath: "lists/apply-template.mdx",
67682
+ referenceGroup: "lists"
67683
+ },
67684
+ "lists.applyPreset": {
67685
+ memberPath: "lists.applyPreset",
67686
+ description: "Apply a built-in list formatting preset to the target list.",
67687
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if all levels already match the preset.",
67688
+ requiresDocumentContext: true,
67689
+ metadata: mutationOperation2({
67690
+ idempotency: "conditional",
67691
+ supportsDryRun: true,
67692
+ supportsTrackedMode: false,
67693
+ possibleFailureCodes: [
67694
+ "NO_OP",
67695
+ "INVALID_TARGET",
67696
+ "LEVEL_OUT_OF_RANGE",
67697
+ "INVALID_INPUT"
67698
+ ],
67699
+ throws: [
67700
+ ...T_NOT_FOUND_CAPABLE2,
67701
+ "INVALID_TARGET",
67702
+ "INVALID_INPUT"
67703
+ ]
67704
+ }),
67705
+ referenceDocPath: "lists/apply-preset.mdx",
67706
+ referenceGroup: "lists"
67707
+ },
67708
+ "lists.captureTemplate": {
67709
+ memberPath: "lists.captureTemplate",
67710
+ description: "Capture the formatting of a list as a reusable ListTemplate.",
67711
+ expectedResult: "Returns a ListsCaptureTemplateResult containing the captured template.",
67712
+ requiresDocumentContext: true,
67713
+ metadata: readOperation2({
67714
+ idempotency: "idempotent",
67715
+ throws: [
67716
+ "TARGET_NOT_FOUND",
67717
+ "INVALID_TARGET",
67718
+ "INVALID_INPUT"
67719
+ ],
67720
+ possibleFailureCodes: [
67721
+ "INVALID_TARGET",
67722
+ "INVALID_INPUT",
67723
+ "LEVEL_OUT_OF_RANGE"
67724
+ ]
67725
+ }),
67726
+ referenceDocPath: "lists/capture-template.mdx",
67727
+ referenceGroup: "lists"
67728
+ },
67729
+ "lists.setLevelNumbering": {
67730
+ memberPath: "lists.setLevelNumbering",
67731
+ description: "Set the numbering format, pattern, and optional start value for a specific list level.",
67732
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the level already matches.",
67733
+ requiresDocumentContext: true,
67734
+ metadata: mutationOperation2({
67735
+ idempotency: "conditional",
67736
+ supportsDryRun: true,
67737
+ supportsTrackedMode: false,
67738
+ possibleFailureCodes: [
67739
+ "NO_OP",
67740
+ "INVALID_TARGET",
67741
+ "LEVEL_OUT_OF_RANGE",
67742
+ "LEVEL_NOT_FOUND"
67743
+ ],
67744
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
67745
+ }),
67746
+ referenceDocPath: "lists/set-level-numbering.mdx",
67747
+ referenceGroup: "lists"
67748
+ },
67749
+ "lists.setLevelBullet": {
67750
+ memberPath: "lists.setLevelBullet",
67751
+ description: "Set the bullet marker text for a specific list level.",
67752
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the marker already matches.",
67753
+ requiresDocumentContext: true,
67754
+ metadata: mutationOperation2({
67755
+ idempotency: "conditional",
67756
+ supportsDryRun: true,
67757
+ supportsTrackedMode: false,
67758
+ possibleFailureCodes: [
67759
+ "NO_OP",
67760
+ "INVALID_TARGET",
67761
+ "LEVEL_OUT_OF_RANGE",
67762
+ "LEVEL_NOT_FOUND"
67763
+ ],
67764
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
67765
+ }),
67766
+ referenceDocPath: "lists/set-level-bullet.mdx",
67767
+ referenceGroup: "lists"
67768
+ },
67769
+ "lists.setLevelPictureBullet": {
67770
+ memberPath: "lists.setLevelPictureBullet",
67771
+ description: "Set a picture bullet for a specific list level by its OOXML lvlPicBulletId.",
67772
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the picture bullet already matches.",
67773
+ requiresDocumentContext: true,
67774
+ metadata: mutationOperation2({
67775
+ idempotency: "conditional",
67776
+ supportsDryRun: true,
67777
+ supportsTrackedMode: false,
67778
+ possibleFailureCodes: [
67779
+ "NO_OP",
67780
+ "INVALID_TARGET",
67781
+ "LEVEL_OUT_OF_RANGE",
67782
+ "LEVEL_NOT_FOUND",
67783
+ "INVALID_INPUT",
67784
+ "CAPABILITY_UNAVAILABLE"
67785
+ ],
67786
+ throws: [
67787
+ ...T_NOT_FOUND_CAPABLE2,
67788
+ "INVALID_TARGET",
67789
+ "CAPABILITY_UNAVAILABLE"
67790
+ ]
67791
+ }),
67792
+ referenceDocPath: "lists/set-level-picture-bullet.mdx",
67793
+ referenceGroup: "lists"
67794
+ },
67795
+ "lists.setLevelAlignment": {
67796
+ memberPath: "lists.setLevelAlignment",
67797
+ description: "Set the marker alignment (left, center, right) for a specific list level.",
67798
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the alignment already matches.",
67799
+ requiresDocumentContext: true,
67800
+ metadata: mutationOperation2({
67801
+ idempotency: "conditional",
67802
+ supportsDryRun: true,
67803
+ supportsTrackedMode: false,
67804
+ possibleFailureCodes: [
67805
+ "NO_OP",
67806
+ "INVALID_TARGET",
67807
+ "LEVEL_OUT_OF_RANGE",
67808
+ "LEVEL_NOT_FOUND"
67809
+ ],
67810
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
67811
+ }),
67812
+ referenceDocPath: "lists/set-level-alignment.mdx",
67813
+ referenceGroup: "lists"
67814
+ },
67815
+ "lists.setLevelIndents": {
67816
+ memberPath: "lists.setLevelIndents",
67817
+ description: "Set the paragraph indentation values (left, hanging, firstLine) for a specific list level.",
67818
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if all indent values already match.",
67819
+ requiresDocumentContext: true,
67820
+ metadata: mutationOperation2({
67821
+ idempotency: "conditional",
67822
+ supportsDryRun: true,
67823
+ supportsTrackedMode: false,
67824
+ possibleFailureCodes: [
67825
+ "NO_OP",
67826
+ "INVALID_TARGET",
67827
+ "LEVEL_OUT_OF_RANGE",
67828
+ "LEVEL_NOT_FOUND",
67829
+ "INVALID_INPUT"
67830
+ ],
67831
+ throws: [
67832
+ ...T_NOT_FOUND_CAPABLE2,
67833
+ "INVALID_TARGET",
67834
+ "INVALID_INPUT"
67835
+ ]
67836
+ }),
67837
+ referenceDocPath: "lists/set-level-indents.mdx",
67838
+ referenceGroup: "lists"
67839
+ },
67840
+ "lists.setLevelTrailingCharacter": {
67841
+ memberPath: "lists.setLevelTrailingCharacter",
67842
+ description: "Set the trailing character (tab, space, nothing) after the marker for a specific list level.",
67843
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the trailing character already matches.",
67844
+ requiresDocumentContext: true,
67845
+ metadata: mutationOperation2({
67846
+ idempotency: "conditional",
67847
+ supportsDryRun: true,
67848
+ supportsTrackedMode: false,
67849
+ possibleFailureCodes: [
67850
+ "NO_OP",
67851
+ "INVALID_TARGET",
67852
+ "LEVEL_OUT_OF_RANGE",
67853
+ "LEVEL_NOT_FOUND"
67854
+ ],
67855
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
67856
+ }),
67857
+ referenceDocPath: "lists/set-level-trailing-character.mdx",
67858
+ referenceGroup: "lists"
67859
+ },
67860
+ "lists.setLevelMarkerFont": {
67861
+ memberPath: "lists.setLevelMarkerFont",
67862
+ description: "Set the font family used for the marker character at a specific list level.",
67863
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if the font already matches.",
67864
+ requiresDocumentContext: true,
67865
+ metadata: mutationOperation2({
67866
+ idempotency: "conditional",
67867
+ supportsDryRun: true,
67868
+ supportsTrackedMode: false,
67869
+ possibleFailureCodes: [
67870
+ "NO_OP",
67871
+ "INVALID_TARGET",
67872
+ "LEVEL_OUT_OF_RANGE",
67873
+ "LEVEL_NOT_FOUND"
67874
+ ],
67875
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
67876
+ }),
67877
+ referenceDocPath: "lists/set-level-marker-font.mdx",
67878
+ referenceGroup: "lists"
67879
+ },
67880
+ "lists.clearLevelOverrides": {
67881
+ memberPath: "lists.clearLevelOverrides",
67882
+ description: "Remove instance-level overrides for a specific list level, restoring abstract definition values.",
67883
+ expectedResult: "Returns a ListsMutateItemResult receipt; reports NO_OP if no override exists.",
67884
+ requiresDocumentContext: true,
67885
+ metadata: mutationOperation2({
67886
+ idempotency: "conditional",
67887
+ supportsDryRun: true,
67888
+ supportsTrackedMode: false,
67889
+ possibleFailureCodes: [
67890
+ "NO_OP",
67891
+ "INVALID_TARGET",
67892
+ "LEVEL_OUT_OF_RANGE"
67893
+ ],
67894
+ throws: [...T_NOT_FOUND_CAPABLE2, "INVALID_TARGET"]
67895
+ }),
67896
+ referenceDocPath: "lists/clear-level-overrides.mdx",
67897
+ referenceGroup: "lists"
67898
+ },
67082
67899
  "comments.create": {
67083
67900
  memberPath: "comments.create",
67084
67901
  description: "Create a new comment thread (or reply when parentCommentId is given).",
@@ -70604,6 +71421,199 @@ var init_SuperConverter_Bo_KNppf_es = __esm(() => {
70604
71421
  success: { const: true },
70605
71422
  paragraph: ref2("ParagraphAddress")
70606
71423
  }, ["success", "paragraph"]), listsFailureSchemaFor2("lists.convertToText"), objectSchema2({
71424
+ target: listItemAddressSchema2,
71425
+ template: objectSchema2({
71426
+ version: { const: 1 },
71427
+ levels: arraySchema2(objectSchema2({
71428
+ level: {
71429
+ type: "integer",
71430
+ minimum: 0,
71431
+ maximum: 8
71432
+ },
71433
+ numFmt: { type: "string" },
71434
+ lvlText: { type: "string" },
71435
+ start: { type: "integer" },
71436
+ alignment: { enum: [
71437
+ "left",
71438
+ "center",
71439
+ "right"
71440
+ ] },
71441
+ indents: objectSchema2({
71442
+ left: { type: "integer" },
71443
+ hanging: { type: "integer" },
71444
+ firstLine: { type: "integer" }
71445
+ }),
71446
+ trailingCharacter: { enum: [
71447
+ "tab",
71448
+ "space",
71449
+ "nothing"
71450
+ ] },
71451
+ markerFont: { type: "string" },
71452
+ pictureBulletId: { type: "integer" }
71453
+ }, ["level"]))
71454
+ }, ["version", "levels"]),
71455
+ levels: arraySchema2({
71456
+ type: "integer",
71457
+ minimum: 0,
71458
+ maximum: 8
71459
+ })
71460
+ }, ["target", "template"]), listsMutateItemResultSchemaFor2("lists.applyTemplate"), listsFailureSchemaFor2("lists.applyTemplate"), objectSchema2({
71461
+ target: listItemAddressSchema2,
71462
+ preset: { enum: [
71463
+ "decimal",
71464
+ "decimalParenthesis",
71465
+ "lowerLetter",
71466
+ "upperLetter",
71467
+ "lowerRoman",
71468
+ "upperRoman",
71469
+ "disc",
71470
+ "circle",
71471
+ "square",
71472
+ "dash"
71473
+ ] },
71474
+ levels: arraySchema2({
71475
+ type: "integer",
71476
+ minimum: 0,
71477
+ maximum: 8
71478
+ })
71479
+ }, ["target", "preset"]), listsMutateItemResultSchemaFor2("lists.applyPreset"), listsFailureSchemaFor2("lists.applyPreset"), (() => {
71480
+ const successSchema = objectSchema2({
71481
+ success: { const: true },
71482
+ template: objectSchema2({
71483
+ version: { const: 1 },
71484
+ levels: arraySchema2(objectSchema2({
71485
+ level: {
71486
+ type: "integer",
71487
+ minimum: 0,
71488
+ maximum: 8
71489
+ },
71490
+ numFmt: { type: "string" },
71491
+ lvlText: { type: "string" },
71492
+ start: { type: "integer" },
71493
+ alignment: { enum: [
71494
+ "left",
71495
+ "center",
71496
+ "right"
71497
+ ] },
71498
+ indents: objectSchema2({
71499
+ left: { type: "integer" },
71500
+ hanging: { type: "integer" },
71501
+ firstLine: { type: "integer" }
71502
+ }),
71503
+ trailingCharacter: { enum: [
71504
+ "tab",
71505
+ "space",
71506
+ "nothing"
71507
+ ] },
71508
+ markerFont: { type: "string" },
71509
+ pictureBulletId: { type: "integer" }
71510
+ }, ["level"]))
71511
+ }, ["version", "levels"])
71512
+ }, ["success", "template"]);
71513
+ return {
71514
+ input: objectSchema2({
71515
+ target: listItemAddressSchema2,
71516
+ levels: arraySchema2({
71517
+ type: "integer",
71518
+ minimum: 0,
71519
+ maximum: 8
71520
+ })
71521
+ }, ["target"]),
71522
+ output: { oneOf: [successSchema, listsFailureSchemaFor2("lists.captureTemplate")] },
71523
+ success: successSchema,
71524
+ failure: listsFailureSchemaFor2("lists.captureTemplate")
71525
+ };
71526
+ })(), objectSchema2({
71527
+ target: listItemAddressSchema2,
71528
+ level: {
71529
+ type: "integer",
71530
+ minimum: 0,
71531
+ maximum: 8
71532
+ },
71533
+ numFmt: { type: "string" },
71534
+ lvlText: { type: "string" },
71535
+ start: { type: "integer" }
71536
+ }, [
71537
+ "target",
71538
+ "level",
71539
+ "numFmt",
71540
+ "lvlText"
71541
+ ]), listsMutateItemResultSchemaFor2("lists.setLevelNumbering"), listsFailureSchemaFor2("lists.setLevelNumbering"), objectSchema2({
71542
+ target: listItemAddressSchema2,
71543
+ level: {
71544
+ type: "integer",
71545
+ minimum: 0,
71546
+ maximum: 8
71547
+ },
71548
+ markerText: { type: "string" }
71549
+ }, [
71550
+ "target",
71551
+ "level",
71552
+ "markerText"
71553
+ ]), listsMutateItemResultSchemaFor2("lists.setLevelBullet"), listsFailureSchemaFor2("lists.setLevelBullet"), objectSchema2({
71554
+ target: listItemAddressSchema2,
71555
+ level: {
71556
+ type: "integer",
71557
+ minimum: 0,
71558
+ maximum: 8
71559
+ },
71560
+ pictureBulletId: { type: "integer" }
71561
+ }, [
71562
+ "target",
71563
+ "level",
71564
+ "pictureBulletId"
71565
+ ]), listsMutateItemResultSchemaFor2("lists.setLevelPictureBullet"), listsFailureSchemaFor2("lists.setLevelPictureBullet"), objectSchema2({
71566
+ target: listItemAddressSchema2,
71567
+ level: {
71568
+ type: "integer",
71569
+ minimum: 0,
71570
+ maximum: 8
71571
+ },
71572
+ alignment: { enum: [
71573
+ "left",
71574
+ "center",
71575
+ "right"
71576
+ ] }
71577
+ }, [
71578
+ "target",
71579
+ "level",
71580
+ "alignment"
71581
+ ]), listsMutateItemResultSchemaFor2("lists.setLevelAlignment"), listsFailureSchemaFor2("lists.setLevelAlignment"), listsMutateItemResultSchemaFor2("lists.setLevelIndents"), listsFailureSchemaFor2("lists.setLevelIndents"), objectSchema2({
71582
+ target: listItemAddressSchema2,
71583
+ level: {
71584
+ type: "integer",
71585
+ minimum: 0,
71586
+ maximum: 8
71587
+ },
71588
+ trailingCharacter: { enum: [
71589
+ "tab",
71590
+ "space",
71591
+ "nothing"
71592
+ ] }
71593
+ }, [
71594
+ "target",
71595
+ "level",
71596
+ "trailingCharacter"
71597
+ ]), listsMutateItemResultSchemaFor2("lists.setLevelTrailingCharacter"), listsFailureSchemaFor2("lists.setLevelTrailingCharacter"), objectSchema2({
71598
+ target: listItemAddressSchema2,
71599
+ level: {
71600
+ type: "integer",
71601
+ minimum: 0,
71602
+ maximum: 8
71603
+ },
71604
+ fontFamily: { type: "string" }
71605
+ }, [
71606
+ "target",
71607
+ "level",
71608
+ "fontFamily"
71609
+ ]), listsMutateItemResultSchemaFor2("lists.setLevelMarkerFont"), listsFailureSchemaFor2("lists.setLevelMarkerFont"), objectSchema2({
71610
+ target: listItemAddressSchema2,
71611
+ level: {
71612
+ type: "integer",
71613
+ minimum: 0,
71614
+ maximum: 8
71615
+ }
71616
+ }, ["target", "level"]), listsMutateItemResultSchemaFor2("lists.clearLevelOverrides"), listsFailureSchemaFor2("lists.clearLevelOverrides"), objectSchema2({
70607
71617
  text: { type: "string" },
70608
71618
  target: textAddressSchema2,
70609
71619
  parentCommentId: { type: "string" }
@@ -118788,9 +119798,9 @@ var init_remark_gfm_CjV8kaUy_es = __esm(() => {
118788
119798
  init_remark_gfm_z_sDF4ss_es();
118789
119799
  });
118790
119800
 
118791
- // ../../packages/superdoc/dist/chunks/src-C1h0gpEb.es.js
118792
- var exports_src_C1h0gpEb_es = {};
118793
- __export(exports_src_C1h0gpEb_es, {
119801
+ // ../../packages/superdoc/dist/chunks/src-B8PRu6_u.es.js
119802
+ var exports_src_B8PRu6_u_es = {};
119803
+ __export(exports_src_B8PRu6_u_es, {
118794
119804
  zt: () => defineMark,
118795
119805
  z: () => cM,
118796
119806
  yt: () => removeAwarenessStates,
@@ -132757,7 +133767,7 @@ function resolveListItem(editor, address2) {
132757
133767
  });
132758
133768
  return projectListItemCandidate(editor, matches2[0]);
132759
133769
  }
132760
- function toListsFailure(code$1, message, details) {
133770
+ function toListsFailure$1(code$1, message, details) {
132761
133771
  return {
132762
133772
  success: false,
132763
133773
  failure: {
@@ -132767,7 +133777,7 @@ function toListsFailure(code$1, message, details) {
132767
133777
  }
132768
133778
  };
132769
133779
  }
132770
- function dispatchEditorTransaction$1(editor, tr) {
133780
+ function dispatchEditorTransaction$2(editor, tr) {
132771
133781
  if (typeof editor.dispatch === "function") {
132772
133782
  editor.dispatch(tr);
132773
133783
  return;
@@ -132804,23 +133814,23 @@ function resolveInsertedListItem(editor, sdBlockId) {
132804
133814
  function withListTarget(editor, input2) {
132805
133815
  return resolveListItem(editor, input2.target);
132806
133816
  }
132807
- function hasLevelOverride(editor, numId, level) {
133817
+ function hasLevelOverride$1(editor, numId, level) {
132808
133818
  const definition3 = editor.converter?.numbering?.definitions?.[numId];
132809
133819
  const ilvl = String(level);
132810
133820
  return definition3?.elements?.some((element3) => element3.name === "w:lvlOverride" && element3.attributes?.["w:ilvl"] === ilvl) ?? false;
132811
133821
  }
132812
133822
  function executeSetLevel(editor, target, newLevel, options) {
132813
133823
  if (target.numId == null)
132814
- return toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target: target.address });
133824
+ return toListsFailure$1("INVALID_TARGET", "Target must have numbering metadata.", { target: target.address });
132815
133825
  if (newLevel < 0 || newLevel > 8)
132816
- return toListsFailure("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level: newLevel });
133826
+ return toListsFailure$1("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level: newLevel });
132817
133827
  if (target.level === newLevel)
132818
- return toListsFailure("NO_OP", "Item is already at the requested level.", {
133828
+ return toListsFailure$1("NO_OP", "Item is already at the requested level.", {
132819
133829
  target: target.address,
132820
133830
  level: newLevel
132821
133831
  });
132822
133832
  if (!ListHelpers.hasListDefinition(editor, target.numId, newLevel))
132823
- return toListsFailure("LEVEL_OUT_OF_RANGE", "Target level is not defined in the active numbering definition.", {
133833
+ return toListsFailure$1("LEVEL_OUT_OF_RANGE", "Target level is not defined in the active numbering definition.", {
132824
133834
  target: target.address,
132825
133835
  level: newLevel
132826
133836
  });
@@ -132835,11 +133845,11 @@ function executeSetLevel(editor, target, newLevel, options) {
132835
133845
  numId: target.numId,
132836
133846
  ilvl: newLevel
132837
133847
  }, target.candidate.node, target.candidate.pos, editor, tr);
132838
- dispatchEditorTransaction$1(editor, tr);
133848
+ dispatchEditorTransaction$2(editor, tr);
132839
133849
  clearIndexCache(editor);
132840
133850
  return true;
132841
133851
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
132842
- return toListsFailure("INVALID_TARGET", "Level change could not be applied.", {
133852
+ return toListsFailure$1("INVALID_TARGET", "Level change could not be applied.", {
132843
133853
  target: target.address,
132844
133854
  level: newLevel
132845
133855
  });
@@ -132905,7 +133915,7 @@ function listsInsertWrapper(editor, input2, options) {
132905
133915
  }
132906
133916
  return didApply;
132907
133917
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
132908
- return toListsFailure("INVALID_TARGET", "List item insertion could not be applied at the requested target.", {
133918
+ return toListsFailure$1("INVALID_TARGET", "List item insertion could not be applied at the requested target.", {
132909
133919
  target: input2.target,
132910
133920
  position: input2.position
132911
133921
  });
@@ -132951,24 +133961,24 @@ function listsOutdentWrapper(editor, input2, options) {
132951
133961
  const target = withListTarget(editor, input2);
132952
133962
  const currentLevel = target.level ?? 0;
132953
133963
  if (currentLevel <= 0)
132954
- return toListsFailure("NO_OP", "List item is already at level 0.", { target: input2.target });
133964
+ return toListsFailure$1("NO_OP", "List item is already at level 0.", { target: input2.target });
132955
133965
  return executeSetLevel(editor, target, currentLevel - 1, options);
132956
133966
  }
132957
133967
  function listsCreateWrapper(editor, input2, options) {
132958
133968
  rejectTrackedMode("lists.create", options);
132959
133969
  const raw = input2;
132960
133970
  if (input2.mode === "empty" && raw.at == null)
132961
- return toListsFailure("INVALID_TARGET", 'Mode "empty" requires an "at" field.', { mode: "empty" });
133971
+ return toListsFailure$1("INVALID_TARGET", 'Mode "empty" requires an "at" field.', { mode: "empty" });
132962
133972
  if (input2.mode === "fromParagraphs" && raw.target == null)
132963
- return toListsFailure("INVALID_TARGET", 'Mode "fromParagraphs" requires a "target" field.', { mode: "fromParagraphs" });
133973
+ return toListsFailure$1("INVALID_TARGET", 'Mode "fromParagraphs" requires a "target" field.', { mode: "fromParagraphs" });
132964
133974
  const level = input2.level ?? 0;
132965
133975
  if (level < 0 || level > 8)
132966
- return toListsFailure("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level });
133976
+ return toListsFailure$1("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level });
132967
133977
  const listType = input2.kind === "ordered" ? "orderedList" : "bulletList";
132968
133978
  if (input2.mode === "empty") {
132969
133979
  const block = resolveBlock(editor, input2.at.nodeId);
132970
133980
  if (block.nodeType === "listItem")
132971
- return toListsFailure("INVALID_TARGET", "Target paragraph is already a list item.", { target: input2.at });
133981
+ return toListsFailure$1("INVALID_TARGET", "Target paragraph is already a list item.", { target: input2.at });
132972
133982
  if (options?.dryRun)
132973
133983
  return {
132974
133984
  success: true,
@@ -132992,11 +134002,11 @@ function listsCreateWrapper(editor, input2, options) {
132992
134002
  numId: numId$1,
132993
134003
  ilvl: level
132994
134004
  }, block.node, block.pos, editor, tr);
132995
- dispatchEditorTransaction$1(editor, tr);
134005
+ dispatchEditorTransaction$2(editor, tr);
132996
134006
  clearIndexCache(editor);
132997
134007
  return true;
132998
134008
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
132999
- return toListsFailure("INVALID_TARGET", "List creation could not be applied.", { mode: input2.mode });
134009
+ return toListsFailure$1("INVALID_TARGET", "List creation could not be applied.", { mode: input2.mode });
133000
134010
  return {
133001
134011
  success: true,
133002
134012
  listId: `${numId$1}:${block.nodeId}`,
@@ -133009,10 +134019,10 @@ function listsCreateWrapper(editor, input2, options) {
133009
134019
  }
133010
134020
  const targets = isBlockRange(input2.target) ? resolveBlocksInRange(editor, input2.target.from.nodeId, input2.target.to.nodeId) : [resolveBlock(editor, input2.target.nodeId)];
133011
134021
  if (targets.length === 0)
133012
- return toListsFailure("INVALID_TARGET", "No paragraphs found in the specified range.", { target: input2.target });
134022
+ return toListsFailure$1("INVALID_TARGET", "No paragraphs found in the specified range.", { target: input2.target });
133013
134023
  const alreadyListItem = targets.find((t) => t.nodeType === "listItem");
133014
134024
  if (alreadyListItem)
133015
- return toListsFailure("INVALID_TARGET", "One or more target paragraphs are already list items.", { nodeId: alreadyListItem.nodeId });
134025
+ return toListsFailure$1("INVALID_TARGET", "One or more target paragraphs are already list items.", { nodeId: alreadyListItem.nodeId });
133016
134026
  if (options?.dryRun)
133017
134027
  return {
133018
134028
  success: true,
@@ -133037,11 +134047,11 @@ function listsCreateWrapper(editor, input2, options) {
133037
134047
  numId,
133038
134048
  ilvl: level
133039
134049
  }, block.node, block.pos, editor, tr);
133040
- dispatchEditorTransaction$1(editor, tr);
134050
+ dispatchEditorTransaction$2(editor, tr);
133041
134051
  clearIndexCache(editor);
133042
134052
  return true;
133043
134053
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133044
- return toListsFailure("INVALID_TARGET", "List creation could not be applied.", { mode: input2.mode });
134054
+ return toListsFailure$1("INVALID_TARGET", "List creation could not be applied.", { mode: input2.mode });
133045
134055
  return {
133046
134056
  success: true,
133047
134057
  listId: `${numId}:${targets[0].nodeId}`,
@@ -133056,15 +134066,15 @@ function listsAttachWrapper(editor, input2, options) {
133056
134066
  rejectTrackedMode("lists.attach", options);
133057
134067
  const attachTo = resolveListItem(editor, input2.attachTo);
133058
134068
  if (attachTo.numId == null)
133059
- return toListsFailure("INVALID_TARGET", "attachTo target must be a list item with numbering metadata.", { attachTo: input2.attachTo });
134069
+ return toListsFailure$1("INVALID_TARGET", "attachTo target must be a list item with numbering metadata.", { attachTo: input2.attachTo });
133060
134070
  const numId = attachTo.numId;
133061
134071
  const level = input2.level ?? attachTo.level ?? 0;
133062
134072
  const targets = isBlockRange(input2.target) ? resolveBlocksInRange(editor, input2.target.from.nodeId, input2.target.to.nodeId) : [resolveBlock(editor, input2.target.nodeId)];
133063
134073
  if (targets.length === 0)
133064
- return toListsFailure("INVALID_TARGET", "No paragraphs found in the specified target.", { target: input2.target });
134074
+ return toListsFailure$1("INVALID_TARGET", "No paragraphs found in the specified target.", { target: input2.target });
133065
134075
  const alreadyListItem = targets.find((t) => t.nodeType === "listItem");
133066
134076
  if (alreadyListItem)
133067
- return toListsFailure("INVALID_TARGET", "Target paragraphs are already list items.", { nodeId: alreadyListItem.nodeId });
134077
+ return toListsFailure$1("INVALID_TARGET", "Target paragraphs are already list items.", { nodeId: alreadyListItem.nodeId });
133068
134078
  if (options?.dryRun)
133069
134079
  return {
133070
134080
  success: true,
@@ -133081,11 +134091,11 @@ function listsAttachWrapper(editor, input2, options) {
133081
134091
  numId,
133082
134092
  ilvl: level
133083
134093
  }, block.node, block.pos, editor, tr);
133084
- dispatchEditorTransaction$1(editor, tr);
134094
+ dispatchEditorTransaction$2(editor, tr);
133085
134095
  clearIndexCache(editor);
133086
134096
  return true;
133087
134097
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133088
- return toListsFailure("INVALID_TARGET", "List attachment could not be applied.", { target: input2.target });
134098
+ return toListsFailure$1("INVALID_TARGET", "List attachment could not be applied.", { target: input2.target });
133089
134099
  return {
133090
134100
  success: true,
133091
134101
  item: {
@@ -133110,11 +134120,11 @@ function listsDetachWrapper(editor, input2, options) {
133110
134120
  if (executeDomainCommand(editor, () => {
133111
134121
  const { tr } = editor.state;
133112
134122
  updateNumberingProperties(null, target.candidate.node, target.candidate.pos, editor, tr);
133113
- dispatchEditorTransaction$1(editor, tr);
134123
+ dispatchEditorTransaction$2(editor, tr);
133114
134124
  clearIndexCache(editor);
133115
134125
  return true;
133116
134126
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133117
- return toListsFailure("INVALID_TARGET", "List detach could not be applied.", { target: input2.target });
134127
+ return toListsFailure$1("INVALID_TARGET", "List detach could not be applied.", { target: input2.target });
133118
134128
  return {
133119
134129
  success: true,
133120
134130
  paragraph: {
@@ -133128,10 +134138,10 @@ function listsJoinWrapper(editor, input2, options) {
133128
134138
  rejectTrackedMode("lists.join", options);
133129
134139
  const target = resolveListItem(editor, input2.target);
133130
134140
  if (target.numId == null)
133131
- return toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
134141
+ return toListsFailure$1("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
133132
134142
  const canJoinResult = evaluateCanJoin(editor, target, input2.direction);
133133
134143
  if (!canJoinResult.canJoin)
133134
- return toListsFailure(canJoinResult.reason, `Cannot join: ${canJoinResult.reason}`, {
134144
+ return toListsFailure$1(canJoinResult.reason, `Cannot join: ${canJoinResult.reason}`, {
133135
134145
  target: input2.target,
133136
134146
  direction: input2.direction
133137
134147
  });
@@ -133163,11 +134173,11 @@ function listsJoinWrapper(editor, input2, options) {
133163
134173
  ilvl: currentLevel
133164
134174
  }, item.candidate.node, item.candidate.pos, editor, tr);
133165
134175
  }
133166
- dispatchEditorTransaction$1(editor, tr);
134176
+ dispatchEditorTransaction$2(editor, tr);
133167
134177
  clearIndexCache(editor);
133168
134178
  return true;
133169
134179
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133170
- return toListsFailure("INVALID_TARGET", "List join could not be applied.", {
134180
+ return toListsFailure$1("INVALID_TARGET", "List join could not be applied.", {
133171
134181
  target: input2.target,
133172
134182
  direction: input2.direction
133173
134183
  });
@@ -133180,13 +134190,13 @@ function listsSeparateWrapper(editor, input2, options) {
133180
134190
  rejectTrackedMode("lists.separate", options);
133181
134191
  const target = resolveListItem(editor, input2.target);
133182
134192
  if (target.numId == null)
133183
- return toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
134193
+ return toListsFailure$1("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
133184
134194
  if (isFirstInSequence(editor, target))
133185
- return toListsFailure("NO_OP", "Target is already the first item in its sequence.", { target: input2.target });
134195
+ return toListsFailure$1("NO_OP", "Target is already the first item in its sequence.", { target: input2.target });
133186
134196
  const copyOverrides = input2.copyOverrides !== false;
133187
134197
  const abstractNumId = getAbstractNumId(editor, target.numId);
133188
134198
  if (abstractNumId == null)
133189
- return toListsFailure("INVALID_TARGET", "Could not resolve abstract definition for target.", { target: input2.target });
134199
+ return toListsFailure$1("INVALID_TARGET", "Could not resolve abstract definition for target.", { target: input2.target });
133190
134200
  const itemsToReassign = getSequenceFromTarget(editor, target);
133191
134201
  if (options?.dryRun)
133192
134202
  return {
@@ -133205,11 +134215,11 @@ function listsSeparateWrapper(editor, input2, options) {
133205
134215
  ilvl: currentLevel
133206
134216
  }, item.candidate.node, item.candidate.pos, editor, tr);
133207
134217
  }
133208
- dispatchEditorTransaction$1(editor, tr);
134218
+ dispatchEditorTransaction$2(editor, tr);
133209
134219
  clearIndexCache(editor);
133210
134220
  return true;
133211
134221
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133212
- return toListsFailure("INVALID_TARGET", "List separation could not be applied.", { target: input2.target });
134222
+ return toListsFailure$1("INVALID_TARGET", "List separation could not be applied.", { target: input2.target });
133213
134223
  return {
133214
134224
  success: true,
133215
134225
  listId: `${newNumId}:${target.address.nodeId}`,
@@ -133224,7 +134234,7 @@ function listsSetValueWrapper(editor, input2, options) {
133224
134234
  rejectTrackedMode("lists.setValue", options);
133225
134235
  const target = resolveListItem(editor, input2.target);
133226
134236
  if (target.numId == null)
133227
- return toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
134237
+ return toListsFailure$1("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
133228
134238
  const level = target.level ?? 0;
133229
134239
  if (options?.dryRun)
133230
134240
  return {
@@ -133232,14 +134242,14 @@ function listsSetValueWrapper(editor, input2, options) {
133232
134242
  item: target.address
133233
134243
  };
133234
134244
  if (input2.value === null) {
133235
- if (!hasLevelOverride(editor, target.numId, level))
133236
- return toListsFailure("NO_OP", "No startOverride to remove.", { target: input2.target });
134245
+ if (!hasLevelOverride$1(editor, target.numId, level))
134246
+ return toListsFailure$1("NO_OP", "No startOverride to remove.", { target: input2.target });
133237
134247
  if (executeDomainCommand(editor, () => {
133238
134248
  ListHelpers.removeLvlOverride(editor, target.numId, level);
133239
- dispatchEditorTransaction$1(editor, editor.state.tr);
134249
+ dispatchEditorTransaction$2(editor, editor.state.tr);
133240
134250
  return true;
133241
134251
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133242
- return toListsFailure("NO_OP", "No startOverride to remove.", { target: input2.target });
134252
+ return toListsFailure$1("NO_OP", "No startOverride to remove.", { target: input2.target });
133243
134253
  return {
133244
134254
  success: true,
133245
134255
  item: target.address
@@ -133248,10 +134258,10 @@ function listsSetValueWrapper(editor, input2, options) {
133248
134258
  if (isFirstInSequence(editor, target)) {
133249
134259
  if (executeDomainCommand(editor, () => {
133250
134260
  ListHelpers.setLvlOverride(editor, target.numId, level, { startOverride: input2.value });
133251
- dispatchEditorTransaction$1(editor, editor.state.tr);
134261
+ dispatchEditorTransaction$2(editor, editor.state.tr);
133252
134262
  return true;
133253
134263
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133254
- return toListsFailure("INVALID_TARGET", "setValue could not be applied.", { target: input2.target });
134264
+ return toListsFailure$1("INVALID_TARGET", "setValue could not be applied.", { target: input2.target });
133255
134265
  return {
133256
134266
  success: true,
133257
134267
  item: target.address
@@ -133259,7 +134269,7 @@ function listsSetValueWrapper(editor, input2, options) {
133259
134269
  }
133260
134270
  const abstractNumId = getAbstractNumId(editor, target.numId);
133261
134271
  if (abstractNumId == null)
133262
- return toListsFailure("INVALID_TARGET", "Could not resolve abstract definition for target.", { target: input2.target });
134272
+ return toListsFailure$1("INVALID_TARGET", "Could not resolve abstract definition for target.", { target: input2.target });
133263
134273
  const itemsToReassign = getSequenceFromTarget(editor, target);
133264
134274
  if (executeDomainCommand(editor, () => {
133265
134275
  const { numId: newNumId } = ListHelpers.createNumDefinition(editor, abstractNumId, { copyOverridesFrom: target.numId });
@@ -133270,11 +134280,11 @@ function listsSetValueWrapper(editor, input2, options) {
133270
134280
  numId: newNumId,
133271
134281
  ilvl: item.level ?? 0
133272
134282
  }, item.candidate.node, item.candidate.pos, editor, tr);
133273
- dispatchEditorTransaction$1(editor, tr);
134283
+ dispatchEditorTransaction$2(editor, tr);
133274
134284
  clearIndexCache(editor);
133275
134285
  return true;
133276
134286
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133277
- return toListsFailure("INVALID_TARGET", "setValue could not be applied.", { target: input2.target });
134287
+ return toListsFailure$1("INVALID_TARGET", "setValue could not be applied.", { target: input2.target });
133278
134288
  return {
133279
134289
  success: true,
133280
134290
  item: target.address
@@ -133284,10 +134294,10 @@ function listsContinuePreviousWrapper(editor, input2, options) {
133284
134294
  rejectTrackedMode("lists.continuePrevious", options);
133285
134295
  const target = resolveListItem(editor, input2.target);
133286
134296
  if (target.numId == null)
133287
- return toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
134297
+ return toListsFailure$1("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
133288
134298
  const canContinue = evaluateCanContinuePrevious(editor, target);
133289
134299
  if (!canContinue.canContinue)
133290
- return toListsFailure({
134300
+ return toListsFailure$1({
133291
134301
  NO_PREVIOUS_LIST: "NO_COMPATIBLE_PREVIOUS",
133292
134302
  INCOMPATIBLE_DEFINITIONS: "NO_COMPATIBLE_PREVIOUS",
133293
134303
  ALREADY_CONTINUOUS: "ALREADY_CONTINUOUS"
@@ -133310,11 +134320,11 @@ function listsContinuePreviousWrapper(editor, input2, options) {
133310
134320
  ilvl: currentLevel
133311
134321
  }, item.candidate.node, item.candidate.pos, editor, tr);
133312
134322
  }
133313
- dispatchEditorTransaction$1(editor, tr);
134323
+ dispatchEditorTransaction$2(editor, tr);
133314
134324
  clearIndexCache(editor);
133315
134325
  return true;
133316
134326
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133317
- return toListsFailure("INVALID_TARGET", "continuePrevious could not be applied.", { target: input2.target });
134327
+ return toListsFailure$1("INVALID_TARGET", "continuePrevious could not be applied.", { target: input2.target });
133318
134328
  return {
133319
134329
  success: true,
133320
134330
  item: target.address
@@ -133324,9 +134334,9 @@ function listsSetLevelRestartWrapper(editor, input2, options) {
133324
134334
  rejectTrackedMode("lists.setLevelRestart", options);
133325
134335
  const target = resolveListItem(editor, input2.target);
133326
134336
  if (target.numId == null)
133327
- return toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
134337
+ return toListsFailure$1("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
133328
134338
  if (input2.level < 0 || input2.level > 8)
133329
- return toListsFailure("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level: input2.level });
134339
+ return toListsFailure$1("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level: input2.level });
133330
134340
  if (options?.dryRun)
133331
134341
  return {
133332
134342
  success: true,
@@ -133342,10 +134352,10 @@ function listsSetLevelRestartWrapper(editor, input2, options) {
133342
134352
  return false;
133343
134353
  ListHelpers.setLvlRestartOnAbstract(editor, abstractNumId, input2.level, input2.restartAfterLevel);
133344
134354
  }
133345
- dispatchEditorTransaction$1(editor, editor.state.tr);
134355
+ dispatchEditorTransaction$2(editor, editor.state.tr);
133346
134356
  return true;
133347
134357
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133348
- return toListsFailure("INVALID_TARGET", "setLevelRestart could not be applied.", { target: input2.target });
134358
+ return toListsFailure$1("INVALID_TARGET", "setLevelRestart could not be applied.", { target: input2.target });
133349
134359
  return {
133350
134360
  success: true,
133351
134361
  item: target.address
@@ -133371,11 +134381,11 @@ function listsConvertToTextWrapper(editor, input2, options) {
133371
134381
  tr.insertText(target.marker, startPos);
133372
134382
  }
133373
134383
  updateNumberingProperties(null, target.candidate.node, target.candidate.pos, editor, tr);
133374
- dispatchEditorTransaction$1(editor, tr);
134384
+ dispatchEditorTransaction$2(editor, tr);
133375
134385
  clearIndexCache(editor);
133376
134386
  return true;
133377
134387
  }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
133378
- return toListsFailure("INVALID_TARGET", "convertToText could not be applied.", { target: input2.target });
134388
+ return toListsFailure$1("INVALID_TARGET", "convertToText could not be applied.", { target: input2.target });
133379
134389
  return {
133380
134390
  success: true,
133381
134391
  paragraph: {
@@ -133385,6 +134395,682 @@ function listsConvertToTextWrapper(editor, input2, options) {
133385
134395
  }
133386
134396
  };
133387
134397
  }
134398
+ function findLevelElement(abstract, ilvl) {
134399
+ const ilvlStr = String(ilvl);
134400
+ return abstract.elements?.find((el) => el.name === "w:lvl" && el.attributes?.["w:ilvl"] === ilvlStr);
134401
+ }
134402
+ function readChildAttr(parent, elementName) {
134403
+ return parent.elements?.find((el) => el.name === elementName)?.attributes?.["w:val"];
134404
+ }
134405
+ function setChildAttr(parent, elementName, value) {
134406
+ if (!parent.elements)
134407
+ parent.elements = [];
134408
+ const existing = parent.elements.find((el) => el.name === elementName);
134409
+ if (existing) {
134410
+ if (existing.attributes?.["w:val"] === value)
134411
+ return false;
134412
+ if (!existing.attributes)
134413
+ existing.attributes = {};
134414
+ existing.attributes["w:val"] = value;
134415
+ return true;
134416
+ }
134417
+ parent.elements.push({
134418
+ type: "element",
134419
+ name: elementName,
134420
+ attributes: { "w:val": value }
134421
+ });
134422
+ return true;
134423
+ }
134424
+ function findOrCreateChild(parent, elementName) {
134425
+ if (!parent.elements)
134426
+ parent.elements = [];
134427
+ let child = parent.elements.find((el) => el.name === elementName);
134428
+ if (!child) {
134429
+ child = {
134430
+ type: "element",
134431
+ name: elementName,
134432
+ elements: []
134433
+ };
134434
+ parent.elements.push(child);
134435
+ }
134436
+ if (!child.elements)
134437
+ child.elements = [];
134438
+ return child;
134439
+ }
134440
+ function syncAbstractAndEmit(editor, abstractNumId, abstract) {
134441
+ const numbering = editor.converter.numbering;
134442
+ numbering.abstracts[abstractNumId] = abstract;
134443
+ editor.converter.numbering = { ...numbering };
134444
+ const translated = { ...editor.converter.translatedNumbering || {} };
134445
+ if (!translated.abstracts)
134446
+ translated.abstracts = {};
134447
+ translated.abstracts[abstractNumId] = translator$28.encode({ nodes: [abstract] });
134448
+ editor.converter.translatedNumbering = translated;
134449
+ const definitions = numbering.definitions || {};
134450
+ for (const [, numDef] of Object.entries(definitions)) {
134451
+ const absId = numDef?.elements?.find((el) => el.name === "w:abstractNumId")?.attributes?.["w:val"];
134452
+ if (absId != null && Number(absId) === abstractNumId)
134453
+ editor.emit("list-definitions-change", {
134454
+ change: {
134455
+ numDef,
134456
+ editor
134457
+ },
134458
+ numbering: editor.converter.numbering,
134459
+ editor
134460
+ });
134461
+ }
134462
+ }
134463
+ function resolveAbstractLevel(editor, abstractNumId, ilvl) {
134464
+ const abstract = editor.converter.numbering?.abstracts?.[abstractNumId];
134465
+ if (!abstract)
134466
+ return null;
134467
+ const lvlEl = findLevelElement(abstract, ilvl);
134468
+ if (!lvlEl)
134469
+ return null;
134470
+ return {
134471
+ abstract,
134472
+ lvlEl
134473
+ };
134474
+ }
134475
+ function hasLevel(editor, abstractNumId, ilvl) {
134476
+ return resolveAbstractLevel(editor, abstractNumId, ilvl) != null;
134477
+ }
134478
+ function readLevelProperties(lvlEl, ilvl) {
134479
+ const props = { level: ilvl };
134480
+ const numFmt = readChildAttr(lvlEl, "w:numFmt");
134481
+ if (numFmt != null)
134482
+ props.numFmt = numFmt;
134483
+ const lvlText = readChildAttr(lvlEl, "w:lvlText");
134484
+ if (lvlText != null)
134485
+ props.lvlText = lvlText;
134486
+ const startVal = readChildAttr(lvlEl, "w:start");
134487
+ if (startVal != null)
134488
+ props.start = Number(startVal);
134489
+ const alignment$1 = readChildAttr(lvlEl, "w:lvlJc");
134490
+ if (alignment$1 != null)
134491
+ props.alignment = alignment$1;
134492
+ const suff = readChildAttr(lvlEl, "w:suff");
134493
+ if (suff != null)
134494
+ props.trailingCharacter = suff;
134495
+ const picBulletId = readChildAttr(lvlEl, "w:lvlPicBulletId");
134496
+ if (picBulletId != null)
134497
+ props.pictureBulletId = Number(picBulletId);
134498
+ const ind = lvlEl.elements?.find((el) => el.name === "w:pPr")?.elements?.find((el) => el.name === "w:ind");
134499
+ if (ind?.attributes) {
134500
+ const indents = {};
134501
+ if (ind.attributes["w:left"] != null)
134502
+ indents.left = Number(ind.attributes["w:left"]);
134503
+ if (ind.attributes["w:hanging"] != null)
134504
+ indents.hanging = Number(ind.attributes["w:hanging"]);
134505
+ if (ind.attributes["w:firstLine"] != null)
134506
+ indents.firstLine = Number(ind.attributes["w:firstLine"]);
134507
+ if (Object.keys(indents).length > 0)
134508
+ props.indents = indents;
134509
+ }
134510
+ const rFonts = lvlEl.elements?.find((el) => el.name === "w:rPr")?.elements?.find((el) => el.name === "w:rFonts");
134511
+ if (rFonts?.attributes?.["w:ascii"])
134512
+ props.markerFont = rFonts.attributes["w:ascii"];
134513
+ return props;
134514
+ }
134515
+ function mutateLevelNumberingFormat(lvlEl, { numFmt, lvlText, start: start$1 }) {
134516
+ let changed = false;
134517
+ changed = setChildAttr(lvlEl, "w:numFmt", numFmt) || changed;
134518
+ changed = setChildAttr(lvlEl, "w:lvlText", lvlText) || changed;
134519
+ if (start$1 != null)
134520
+ changed = setChildAttr(lvlEl, "w:start", String(start$1)) || changed;
134521
+ return changed;
134522
+ }
134523
+ function mutateLevelBulletMarker(lvlEl, markerText) {
134524
+ let changed = false;
134525
+ changed = setChildAttr(lvlEl, "w:numFmt", "bullet") || changed;
134526
+ changed = setChildAttr(lvlEl, "w:lvlText", markerText) || changed;
134527
+ return changed;
134528
+ }
134529
+ function mutateLevelPictureBulletId(lvlEl, pictureBulletId) {
134530
+ return setChildAttr(lvlEl, "w:lvlPicBulletId", String(pictureBulletId));
134531
+ }
134532
+ function mutateLevelAlignment(lvlEl, alignment$1) {
134533
+ return setChildAttr(lvlEl, "w:lvlJc", alignment$1);
134534
+ }
134535
+ function mutateLevelIndents(lvlEl, indents) {
134536
+ const ind = findOrCreateChild(findOrCreateChild(lvlEl, "w:pPr"), "w:ind");
134537
+ if (!ind.attributes)
134538
+ ind.attributes = {};
134539
+ let changed = false;
134540
+ if (indents.left != null) {
134541
+ const newVal = String(indents.left);
134542
+ if (ind.attributes["w:left"] !== newVal) {
134543
+ ind.attributes["w:left"] = newVal;
134544
+ changed = true;
134545
+ }
134546
+ }
134547
+ if (indents.hanging != null) {
134548
+ const newVal = String(indents.hanging);
134549
+ if (ind.attributes["w:hanging"] !== newVal) {
134550
+ ind.attributes["w:hanging"] = newVal;
134551
+ changed = true;
134552
+ }
134553
+ if (ind.attributes["w:firstLine"] != null) {
134554
+ delete ind.attributes["w:firstLine"];
134555
+ changed = true;
134556
+ }
134557
+ }
134558
+ if (indents.firstLine != null) {
134559
+ const newVal = String(indents.firstLine);
134560
+ if (ind.attributes["w:firstLine"] !== newVal) {
134561
+ ind.attributes["w:firstLine"] = newVal;
134562
+ changed = true;
134563
+ }
134564
+ if (ind.attributes["w:hanging"] != null) {
134565
+ delete ind.attributes["w:hanging"];
134566
+ changed = true;
134567
+ }
134568
+ }
134569
+ return changed;
134570
+ }
134571
+ function mutateLevelTrailingCharacter(lvlEl, trailingCharacter) {
134572
+ return setChildAttr(lvlEl, "w:suff", trailingCharacter);
134573
+ }
134574
+ function mutateLevelMarkerFont(lvlEl, fontFamily$1) {
134575
+ const rPr = findOrCreateChild(lvlEl, "w:rPr");
134576
+ const rFonts = rPr.elements.find((el) => el.name === "w:rFonts");
134577
+ if (rFonts) {
134578
+ const attrs = rFonts.attributes || {};
134579
+ if (attrs["w:ascii"] === fontFamily$1 && attrs["w:hAnsi"] === fontFamily$1 && attrs["w:eastAsia"] === fontFamily$1 && attrs["w:cs"] === fontFamily$1)
134580
+ return false;
134581
+ rFonts.attributes = {
134582
+ ...rFonts.attributes,
134583
+ "w:ascii": fontFamily$1,
134584
+ "w:hAnsi": fontFamily$1,
134585
+ "w:eastAsia": fontFamily$1,
134586
+ "w:cs": fontFamily$1
134587
+ };
134588
+ return true;
134589
+ }
134590
+ rPr.elements.push({
134591
+ type: "element",
134592
+ name: "w:rFonts",
134593
+ attributes: {
134594
+ "w:ascii": fontFamily$1,
134595
+ "w:hAnsi": fontFamily$1,
134596
+ "w:eastAsia": fontFamily$1,
134597
+ "w:cs": fontFamily$1
134598
+ }
134599
+ });
134600
+ return true;
134601
+ }
134602
+ function setLevelNumberingFormat(editor, abstractNumId, ilvl, params$1) {
134603
+ const resolved = resolveAbstractLevel(editor, abstractNumId, ilvl);
134604
+ if (!resolved)
134605
+ return false;
134606
+ const changed = mutateLevelNumberingFormat(resolved.lvlEl, params$1);
134607
+ if (changed)
134608
+ syncAbstractAndEmit(editor, abstractNumId, resolved.abstract);
134609
+ return changed;
134610
+ }
134611
+ function setLevelBulletMarker(editor, abstractNumId, ilvl, markerText) {
134612
+ const resolved = resolveAbstractLevel(editor, abstractNumId, ilvl);
134613
+ if (!resolved)
134614
+ return false;
134615
+ const changed = mutateLevelBulletMarker(resolved.lvlEl, markerText);
134616
+ if (changed)
134617
+ syncAbstractAndEmit(editor, abstractNumId, resolved.abstract);
134618
+ return changed;
134619
+ }
134620
+ function setLevelPictureBulletId(editor, abstractNumId, ilvl, pictureBulletId) {
134621
+ const resolved = resolveAbstractLevel(editor, abstractNumId, ilvl);
134622
+ if (!resolved)
134623
+ return false;
134624
+ const changed = mutateLevelPictureBulletId(resolved.lvlEl, pictureBulletId);
134625
+ if (changed)
134626
+ syncAbstractAndEmit(editor, abstractNumId, resolved.abstract);
134627
+ return changed;
134628
+ }
134629
+ function setLevelAlignment(editor, abstractNumId, ilvl, alignment$1) {
134630
+ const resolved = resolveAbstractLevel(editor, abstractNumId, ilvl);
134631
+ if (!resolved)
134632
+ return false;
134633
+ const changed = mutateLevelAlignment(resolved.lvlEl, alignment$1);
134634
+ if (changed)
134635
+ syncAbstractAndEmit(editor, abstractNumId, resolved.abstract);
134636
+ return changed;
134637
+ }
134638
+ function setLevelIndents(editor, abstractNumId, ilvl, indents) {
134639
+ const resolved = resolveAbstractLevel(editor, abstractNumId, ilvl);
134640
+ if (!resolved)
134641
+ return false;
134642
+ const changed = mutateLevelIndents(resolved.lvlEl, indents);
134643
+ if (changed)
134644
+ syncAbstractAndEmit(editor, abstractNumId, resolved.abstract);
134645
+ return changed;
134646
+ }
134647
+ function setLevelTrailingCharacter(editor, abstractNumId, ilvl, trailingCharacter) {
134648
+ const resolved = resolveAbstractLevel(editor, abstractNumId, ilvl);
134649
+ if (!resolved)
134650
+ return false;
134651
+ const changed = mutateLevelTrailingCharacter(resolved.lvlEl, trailingCharacter);
134652
+ if (changed)
134653
+ syncAbstractAndEmit(editor, abstractNumId, resolved.abstract);
134654
+ return changed;
134655
+ }
134656
+ function setLevelMarkerFont(editor, abstractNumId, ilvl, fontFamily$1) {
134657
+ const resolved = resolveAbstractLevel(editor, abstractNumId, ilvl);
134658
+ if (!resolved)
134659
+ return false;
134660
+ const changed = mutateLevelMarkerFont(resolved.lvlEl, fontFamily$1);
134661
+ if (changed)
134662
+ syncAbstractAndEmit(editor, abstractNumId, resolved.abstract);
134663
+ return changed;
134664
+ }
134665
+ function hasLevelOverride(editor, numId, ilvl) {
134666
+ const numDef = editor.converter.numbering?.definitions?.[numId];
134667
+ if (!numDef?.elements)
134668
+ return false;
134669
+ const ilvlStr = String(ilvl);
134670
+ return numDef.elements.some((el) => el.name === "w:lvlOverride" && el.attributes?.["w:ilvl"] === ilvlStr);
134671
+ }
134672
+ function clearLevelOverride(editor, numId, ilvl) {
134673
+ if (!hasLevelOverride(editor, numId, ilvl))
134674
+ return false;
134675
+ removeLvlOverride(editor, numId, ilvl);
134676
+ return true;
134677
+ }
134678
+ function captureTemplate(editor, abstractNumId, levels) {
134679
+ const abstract = editor.converter.numbering?.abstracts?.[abstractNumId];
134680
+ if (!abstract?.elements)
134681
+ return null;
134682
+ const lvlElements = abstract.elements.filter((el) => el.name === "w:lvl");
134683
+ const captured = [];
134684
+ for (const lvlEl of lvlElements) {
134685
+ const ilvl = Number(lvlEl.attributes?.["w:ilvl"]);
134686
+ if (levels && !levels.includes(ilvl))
134687
+ continue;
134688
+ captured.push(readLevelProperties(lvlEl, ilvl));
134689
+ }
134690
+ captured.sort((a2, b$1) => a2.level - b$1.level);
134691
+ return {
134692
+ version: 1,
134693
+ levels: captured
134694
+ };
134695
+ }
134696
+ function applyTemplateToAbstract(editor, abstractNumId, template, levels) {
134697
+ const abstract = editor.converter.numbering?.abstracts?.[abstractNumId];
134698
+ if (!abstract?.elements)
134699
+ return {
134700
+ changed: false,
134701
+ error: "ABSTRACT_NOT_FOUND"
134702
+ };
134703
+ const templateByLevel = /* @__PURE__ */ new Map;
134704
+ for (const entry of template.levels)
134705
+ templateByLevel.set(entry.level, entry);
134706
+ const targetLevels = levels ?? template.levels.map((l) => l.level);
134707
+ for (const ilvl of targetLevels)
134708
+ if (!templateByLevel.has(ilvl))
134709
+ return {
134710
+ changed: false,
134711
+ error: "LEVEL_NOT_IN_TEMPLATE"
134712
+ };
134713
+ for (const ilvl of targetLevels)
134714
+ if (!findLevelElement(abstract, ilvl))
134715
+ return {
134716
+ changed: false,
134717
+ error: "LEVEL_NOT_IN_ABSTRACT"
134718
+ };
134719
+ let anyChanged = false;
134720
+ for (const ilvl of targetLevels) {
134721
+ const entry = templateByLevel.get(ilvl);
134722
+ const lvlEl = findLevelElement(abstract, ilvl);
134723
+ if (entry.numFmt != null || entry.lvlText != null) {
134724
+ const fmtParams = {};
134725
+ if (entry.numFmt != null)
134726
+ fmtParams.numFmt = entry.numFmt;
134727
+ if (entry.lvlText != null)
134728
+ fmtParams.lvlText = entry.lvlText;
134729
+ if (entry.start != null)
134730
+ fmtParams.start = entry.start;
134731
+ if (fmtParams.numFmt != null && fmtParams.lvlText != null)
134732
+ anyChanged = mutateLevelNumberingFormat(lvlEl, fmtParams) || anyChanged;
134733
+ else {
134734
+ if (fmtParams.numFmt != null)
134735
+ anyChanged = setChildAttr(lvlEl, "w:numFmt", fmtParams.numFmt) || anyChanged;
134736
+ if (fmtParams.lvlText != null)
134737
+ anyChanged = setChildAttr(lvlEl, "w:lvlText", fmtParams.lvlText) || anyChanged;
134738
+ if (fmtParams.start != null)
134739
+ anyChanged = setChildAttr(lvlEl, "w:start", String(fmtParams.start)) || anyChanged;
134740
+ }
134741
+ } else if (entry.start != null)
134742
+ anyChanged = setChildAttr(lvlEl, "w:start", String(entry.start)) || anyChanged;
134743
+ if (entry.alignment != null)
134744
+ anyChanged = mutateLevelAlignment(lvlEl, entry.alignment) || anyChanged;
134745
+ if (entry.indents != null)
134746
+ anyChanged = mutateLevelIndents(lvlEl, entry.indents) || anyChanged;
134747
+ if (entry.trailingCharacter != null)
134748
+ anyChanged = mutateLevelTrailingCharacter(lvlEl, entry.trailingCharacter) || anyChanged;
134749
+ if (entry.markerFont != null)
134750
+ anyChanged = mutateLevelMarkerFont(lvlEl, entry.markerFont) || anyChanged;
134751
+ if (entry.pictureBulletId != null)
134752
+ anyChanged = mutateLevelPictureBulletId(lvlEl, entry.pictureBulletId) || anyChanged;
134753
+ }
134754
+ if (anyChanged)
134755
+ syncAbstractAndEmit(editor, abstractNumId, abstract);
134756
+ return { changed: anyChanged };
134757
+ }
134758
+ function buildOrderedPresetTemplate(config2) {
134759
+ const levels = [];
134760
+ for (let ilvl = 0;ilvl <= 8; ilvl++)
134761
+ levels.push({
134762
+ level: ilvl,
134763
+ numFmt: config2.numFmt,
134764
+ lvlText: `%${ilvl + 1}${config2.lvlTextSuffix}`,
134765
+ start: 1,
134766
+ alignment: "left",
134767
+ indents: {
134768
+ left: INDENT_PER_LEVEL_TWIPS * (ilvl + 1),
134769
+ hanging: HANGING_INDENT_TWIPS
134770
+ }
134771
+ });
134772
+ return {
134773
+ version: 1,
134774
+ levels
134775
+ };
134776
+ }
134777
+ function buildBulletPresetTemplate(config2) {
134778
+ const levels = [];
134779
+ for (let ilvl = 0;ilvl <= 8; ilvl++)
134780
+ levels.push({
134781
+ level: ilvl,
134782
+ numFmt: "bullet",
134783
+ lvlText: config2.markerText,
134784
+ start: 1,
134785
+ alignment: "left",
134786
+ markerFont: config2.fontFamily,
134787
+ indents: {
134788
+ left: INDENT_PER_LEVEL_TWIPS * (ilvl + 1),
134789
+ hanging: HANGING_INDENT_TWIPS
134790
+ }
134791
+ });
134792
+ return {
134793
+ version: 1,
134794
+ levels
134795
+ };
134796
+ }
134797
+ function getPresetTemplate(presetId) {
134798
+ return PRESET_TEMPLATES[presetId];
134799
+ }
134800
+ function toListsFailure(code$1, message, details) {
134801
+ return {
134802
+ success: false,
134803
+ failure: {
134804
+ code: code$1,
134805
+ message,
134806
+ details
134807
+ }
134808
+ };
134809
+ }
134810
+ function dispatchEditorTransaction$1(editor, tr) {
134811
+ if (typeof editor.dispatch === "function") {
134812
+ editor.dispatch(tr);
134813
+ return;
134814
+ }
134815
+ if (typeof editor.view?.dispatch === "function")
134816
+ editor.view.dispatch(tr);
134817
+ }
134818
+ function validateLevel(level) {
134819
+ if (level < 0 || level > 8)
134820
+ return toListsFailure("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level });
134821
+ return null;
134822
+ }
134823
+ function validateLevelsArray(levels) {
134824
+ if (!levels)
134825
+ return null;
134826
+ for (const lvl of levels)
134827
+ if (lvl < 0 || lvl > 8)
134828
+ return toListsFailure("LEVEL_OUT_OF_RANGE", "Each level must be between 0 and 8.", { level: lvl });
134829
+ if (new Set(levels).size !== levels.length)
134830
+ return toListsFailure("INVALID_INPUT", "levels must contain unique values.", { levels });
134831
+ for (let i$1 = 1;i$1 < levels.length; i$1++)
134832
+ if (levels[i$1] <= levels[i$1 - 1])
134833
+ return toListsFailure("INVALID_INPUT", "levels must be sorted in ascending order.", { levels });
134834
+ return null;
134835
+ }
134836
+ function preflightTemplateLevels(template, levels, target) {
134837
+ const templateLevelSet = new Set(template.levels.map((l) => l.level));
134838
+ const targetLevels = levels ?? template.levels.map((l) => l.level);
134839
+ for (const ilvl of targetLevels)
134840
+ if (!templateLevelSet.has(ilvl))
134841
+ return toListsFailure("INVALID_INPUT", "Requested level does not exist in the template.", { target });
134842
+ return null;
134843
+ }
134844
+ function toApplyTemplateError(error, target) {
134845
+ switch (error) {
134846
+ case "ABSTRACT_NOT_FOUND":
134847
+ return toListsFailure("INVALID_TARGET", "Abstract numbering definition not found.", { target });
134848
+ case "LEVEL_NOT_IN_TEMPLATE":
134849
+ return toListsFailure("INVALID_INPUT", "Requested level does not exist in the template.", { target });
134850
+ case "LEVEL_NOT_IN_ABSTRACT":
134851
+ return toListsFailure("INVALID_TARGET", "Requested level does not exist in the abstract definition.", { target });
134852
+ default:
134853
+ return toListsFailure("INVALID_INPUT", `Template application failed: ${error}.`, { target });
134854
+ }
134855
+ }
134856
+ function resolveTargetAbstract(editor, target) {
134857
+ const resolved = resolveListItem(editor, target);
134858
+ if (resolved.numId == null)
134859
+ return {
134860
+ ok: false,
134861
+ failure: toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target })
134862
+ };
134863
+ const abstractNumId = getAbstractNumId(editor, resolved.numId);
134864
+ if (abstractNumId == null)
134865
+ return {
134866
+ ok: false,
134867
+ failure: toListsFailure("INVALID_TARGET", "Could not resolve abstract definition for target.", { target })
134868
+ };
134869
+ return {
134870
+ ok: true,
134871
+ resolved,
134872
+ abstractNumId,
134873
+ numId: resolved.numId
134874
+ };
134875
+ }
134876
+ function executeSingleLevelMutation(editor, operationId, target, level, options, mutate) {
134877
+ rejectTrackedMode(operationId, options);
134878
+ const levelError = validateLevel(level);
134879
+ if (levelError)
134880
+ return levelError;
134881
+ const targetResult = resolveTargetAbstract(editor, target);
134882
+ if (!targetResult.ok)
134883
+ return targetResult.failure;
134884
+ if (!LevelFormattingHelpers.hasLevel(editor, targetResult.abstractNumId, level))
134885
+ return toListsFailure("LEVEL_NOT_FOUND", `Level ${level} does not exist in the abstract definition.`, {
134886
+ target,
134887
+ level
134888
+ });
134889
+ if (options?.dryRun)
134890
+ return {
134891
+ success: true,
134892
+ item: targetResult.resolved.address
134893
+ };
134894
+ if (executeDomainCommand(editor, () => {
134895
+ if (!mutate(targetResult.abstractNumId, level))
134896
+ return false;
134897
+ dispatchEditorTransaction$1(editor, editor.state.tr);
134898
+ return true;
134899
+ }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
134900
+ return toListsFailure("NO_OP", `${operationId}: values already match.`, { target });
134901
+ return {
134902
+ success: true,
134903
+ item: targetResult.resolved.address
134904
+ };
134905
+ }
134906
+ function listsApplyTemplateWrapper(editor, input2, options) {
134907
+ rejectTrackedMode("lists.applyTemplate", options);
134908
+ if (input2.template.version !== 1)
134909
+ return toListsFailure("INVALID_INPUT", "Unsupported template version.", { version: input2.template.version });
134910
+ const levelsError = validateLevelsArray(input2.levels);
134911
+ if (levelsError)
134912
+ return levelsError;
134913
+ const targetResult = resolveTargetAbstract(editor, input2.target);
134914
+ if (!targetResult.ok)
134915
+ return targetResult.failure;
134916
+ const preflightError = preflightTemplateLevels(input2.template, input2.levels, input2.target);
134917
+ if (preflightError)
134918
+ return preflightError;
134919
+ if (options?.dryRun)
134920
+ return {
134921
+ success: true,
134922
+ item: targetResult.resolved.address
134923
+ };
134924
+ let applyError;
134925
+ const receipt2 = executeDomainCommand(editor, () => {
134926
+ const result = LevelFormattingHelpers.applyTemplateToAbstract(editor, targetResult.abstractNumId, input2.template, input2.levels);
134927
+ if (result.error) {
134928
+ applyError = result.error;
134929
+ return false;
134930
+ }
134931
+ if (!result.changed)
134932
+ return false;
134933
+ dispatchEditorTransaction$1(editor, editor.state.tr);
134934
+ return true;
134935
+ }, { expectedRevision: options?.expectedRevision });
134936
+ if (applyError)
134937
+ return toApplyTemplateError(applyError, input2.target);
134938
+ if (receipt2.steps[0]?.effect !== "changed")
134939
+ return toListsFailure("NO_OP", "All template levels already match.", { target: input2.target });
134940
+ return {
134941
+ success: true,
134942
+ item: targetResult.resolved.address
134943
+ };
134944
+ }
134945
+ function listsApplyPresetWrapper(editor, input2, options) {
134946
+ rejectTrackedMode("lists.applyPreset", options);
134947
+ const template = LevelFormattingHelpers.getPresetTemplate(input2.preset);
134948
+ if (!template)
134949
+ return toListsFailure("INVALID_INPUT", `Unknown preset: ${input2.preset}.`, { preset: input2.preset });
134950
+ const levelsError = validateLevelsArray(input2.levels);
134951
+ if (levelsError)
134952
+ return levelsError;
134953
+ const targetResult = resolveTargetAbstract(editor, input2.target);
134954
+ if (!targetResult.ok)
134955
+ return targetResult.failure;
134956
+ const preflightError = preflightTemplateLevels(template, input2.levels, input2.target);
134957
+ if (preflightError)
134958
+ return preflightError;
134959
+ if (options?.dryRun)
134960
+ return {
134961
+ success: true,
134962
+ item: targetResult.resolved.address
134963
+ };
134964
+ let applyError;
134965
+ const receipt2 = executeDomainCommand(editor, () => {
134966
+ const result = LevelFormattingHelpers.applyTemplateToAbstract(editor, targetResult.abstractNumId, template, input2.levels);
134967
+ if (result.error) {
134968
+ applyError = result.error;
134969
+ return false;
134970
+ }
134971
+ if (!result.changed)
134972
+ return false;
134973
+ dispatchEditorTransaction$1(editor, editor.state.tr);
134974
+ return true;
134975
+ }, { expectedRevision: options?.expectedRevision });
134976
+ if (applyError)
134977
+ return toApplyTemplateError(applyError, input2.target);
134978
+ if (receipt2.steps[0]?.effect !== "changed")
134979
+ return toListsFailure("NO_OP", "All preset levels already match.", { target: input2.target });
134980
+ return {
134981
+ success: true,
134982
+ item: targetResult.resolved.address
134983
+ };
134984
+ }
134985
+ function listsCaptureTemplateWrapper(editor, input2) {
134986
+ const levelsError = validateLevelsArray(input2.levels);
134987
+ if (levelsError)
134988
+ return levelsError;
134989
+ const targetResult = resolveTargetAbstract(editor, input2.target);
134990
+ if (!targetResult.ok)
134991
+ return targetResult.failure;
134992
+ const template = LevelFormattingHelpers.captureTemplate(editor, targetResult.abstractNumId, input2.levels);
134993
+ if (!template)
134994
+ return toListsFailure("INVALID_TARGET", "Could not capture template from target.", { target: input2.target });
134995
+ return {
134996
+ success: true,
134997
+ template
134998
+ };
134999
+ }
135000
+ function listsSetLevelNumberingWrapper(editor, input2, options) {
135001
+ return executeSingleLevelMutation(editor, "lists.setLevelNumbering", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers.setLevelNumberingFormat(editor, abstractNumId, ilvl, {
135002
+ numFmt: input2.numFmt,
135003
+ lvlText: input2.lvlText,
135004
+ start: input2.start
135005
+ }));
135006
+ }
135007
+ function listsSetLevelBulletWrapper(editor, input2, options) {
135008
+ return executeSingleLevelMutation(editor, "lists.setLevelBullet", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers.setLevelBulletMarker(editor, abstractNumId, ilvl, input2.markerText));
135009
+ }
135010
+ function listsSetLevelPictureBulletWrapper(editor, input2, options) {
135011
+ rejectTrackedMode("lists.setLevelPictureBullet", options);
135012
+ const converter = editor.converter;
135013
+ if (converter?.convertedXml && !converter.convertedXml["word/numbering.xml"])
135014
+ return toListsFailure("CAPABILITY_UNAVAILABLE", "Picture bullets require a numbering definition (word/numbering.xml).", { target: input2.target });
135015
+ return executeSingleLevelMutation(editor, "lists.setLevelPictureBullet", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers.setLevelPictureBulletId(editor, abstractNumId, ilvl, input2.pictureBulletId));
135016
+ }
135017
+ function listsSetLevelAlignmentWrapper(editor, input2, options) {
135018
+ return executeSingleLevelMutation(editor, "lists.setLevelAlignment", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers.setLevelAlignment(editor, abstractNumId, ilvl, input2.alignment));
135019
+ }
135020
+ function listsSetLevelIndentsWrapper(editor, input2, options) {
135021
+ const hasLeft = input2.left != null;
135022
+ const hasHanging = input2.hanging != null;
135023
+ const hasFirstLine = input2.firstLine != null;
135024
+ if (!hasLeft && !hasHanging && !hasFirstLine)
135025
+ return toListsFailure("INVALID_INPUT", "At least one indent property is required.", {});
135026
+ if (hasHanging && hasFirstLine)
135027
+ return toListsFailure("INVALID_INPUT", "hanging and firstLine are mutually exclusive.", {});
135028
+ return executeSingleLevelMutation(editor, "lists.setLevelIndents", input2.target, input2.level, options, (abstractNumId, ilvl) => {
135029
+ const indents = {};
135030
+ if (hasLeft)
135031
+ indents.left = input2.left;
135032
+ if (hasHanging)
135033
+ indents.hanging = input2.hanging;
135034
+ if (hasFirstLine)
135035
+ indents.firstLine = input2.firstLine;
135036
+ return LevelFormattingHelpers.setLevelIndents(editor, abstractNumId, ilvl, indents);
135037
+ });
135038
+ }
135039
+ function listsSetLevelTrailingCharacterWrapper(editor, input2, options) {
135040
+ return executeSingleLevelMutation(editor, "lists.setLevelTrailingCharacter", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers.setLevelTrailingCharacter(editor, abstractNumId, ilvl, input2.trailingCharacter));
135041
+ }
135042
+ function listsSetLevelMarkerFontWrapper(editor, input2, options) {
135043
+ return executeSingleLevelMutation(editor, "lists.setLevelMarkerFont", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers.setLevelMarkerFont(editor, abstractNumId, ilvl, input2.fontFamily));
135044
+ }
135045
+ function listsClearLevelOverridesWrapper(editor, input2, options) {
135046
+ rejectTrackedMode("lists.clearLevelOverrides", options);
135047
+ const levelError = validateLevel(input2.level);
135048
+ if (levelError)
135049
+ return levelError;
135050
+ const resolved = resolveListItem(editor, input2.target);
135051
+ if (resolved.numId == null)
135052
+ return toListsFailure("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
135053
+ if (options?.dryRun)
135054
+ return {
135055
+ success: true,
135056
+ item: resolved.address
135057
+ };
135058
+ if (!LevelFormattingHelpers.hasLevelOverride(editor, resolved.numId, input2.level))
135059
+ return toListsFailure("NO_OP", "No override exists for this level.", {
135060
+ target: input2.target,
135061
+ level: input2.level
135062
+ });
135063
+ if (executeDomainCommand(editor, () => {
135064
+ LevelFormattingHelpers.clearLevelOverride(editor, resolved.numId, input2.level);
135065
+ dispatchEditorTransaction$1(editor, editor.state.tr);
135066
+ return true;
135067
+ }, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
135068
+ return toListsFailure("NO_OP", "clearLevelOverrides could not be applied.", { target: input2.target });
135069
+ return {
135070
+ success: true,
135071
+ item: resolved.address
135072
+ };
135073
+ }
133388
135074
  function previewPlan(editor, input2) {
133389
135075
  checkRevision(editor, input2.expectedRevision);
133390
135076
  if (!input2.steps?.length)
@@ -140696,7 +142382,18 @@ function assembleDocumentApiAdapters(editor) {
140696
142382
  continuePrevious: (input2, options) => listsContinuePreviousWrapper(editor, input2, options),
140697
142383
  canContinuePrevious: (input2) => listsCanContinuePreviousWrapper(editor, input2),
140698
142384
  setLevelRestart: (input2, options) => listsSetLevelRestartWrapper(editor, input2, options),
140699
- convertToText: (input2, options) => listsConvertToTextWrapper(editor, input2, options)
142385
+ convertToText: (input2, options) => listsConvertToTextWrapper(editor, input2, options),
142386
+ applyTemplate: (input2, options) => listsApplyTemplateWrapper(editor, input2, options),
142387
+ applyPreset: (input2, options) => listsApplyPresetWrapper(editor, input2, options),
142388
+ captureTemplate: (input2) => listsCaptureTemplateWrapper(editor, input2),
142389
+ setLevelNumbering: (input2, options) => listsSetLevelNumberingWrapper(editor, input2, options),
142390
+ setLevelBullet: (input2, options) => listsSetLevelBulletWrapper(editor, input2, options),
142391
+ setLevelPictureBullet: (input2, options) => listsSetLevelPictureBulletWrapper(editor, input2, options),
142392
+ setLevelAlignment: (input2, options) => listsSetLevelAlignmentWrapper(editor, input2, options),
142393
+ setLevelIndents: (input2, options) => listsSetLevelIndentsWrapper(editor, input2, options),
142394
+ setLevelTrailingCharacter: (input2, options) => listsSetLevelTrailingCharacterWrapper(editor, input2, options),
142395
+ setLevelMarkerFont: (input2, options) => listsSetLevelMarkerFontWrapper(editor, input2, options),
142396
+ clearLevelOverrides: (input2, options) => listsClearLevelOverridesWrapper(editor, input2, options)
140700
142397
  },
140701
142398
  sections: {
140702
142399
  list: (query2) => sectionsListAdapter(editor, query2),
@@ -141729,6 +143426,28 @@ function computeWrapExclusion(image2, lineY, lineHeight$1) {
141729
143426
  return null;
141730
143427
  }
141731
143428
  }
143429
+ function mapWordFamilyFallback(wordFamily) {
143430
+ if (!wordFamily)
143431
+ return DEFAULT_GENERIC_FALLBACK2;
143432
+ return FONT_FAMILY_FALLBACKS2[wordFamily.toLowerCase()] || "sans-serif";
143433
+ }
143434
+ function toCssFontFamily(fontName, options = {}) {
143435
+ if (!fontName || typeof fontName !== "string")
143436
+ return fontName;
143437
+ let trimmed = fontName.trim();
143438
+ if (!trimmed || trimmed.includes(","))
143439
+ return trimmed;
143440
+ if (trimmed.includes(";"))
143441
+ trimmed = splitOutsideQuotes(trimmed, ";").join(", ");
143442
+ const { fallback, wordFamily } = options;
143443
+ const fallbackParts = normalizeParts(fallback ?? (wordFamily ? mapWordFamilyFallback(wordFamily) : undefined) ?? "sans-serif");
143444
+ if (fallbackParts.length === 0)
143445
+ return trimmed;
143446
+ const normalizedName = trimmed.toLowerCase();
143447
+ if (fallbackParts.some((part) => part.toLowerCase() === normalizedName))
143448
+ return fallbackParts.join(", ");
143449
+ return [trimmed, ...fallbackParts].join(", ");
143450
+ }
141732
143451
  function U() {
141733
143452
  if (typeof DOMParser < "u")
141734
143453
  return new DOMParser;
@@ -142145,6 +143864,318 @@ function k0(t) {
142145
143864
  ${o}
142146
143865
  </svg>`;
142147
143866
  }
143867
+ function assertPmPositions(run2, context) {
143868
+ const hasPmStart = run2.pmStart != null;
143869
+ const hasPmEnd = run2.pmEnd != null;
143870
+ globalValidationStats.record(hasPmStart, hasPmEnd);
143871
+ if (!isDevelopment())
143872
+ return;
143873
+ if (!hasPmStart || !hasPmEnd) {
143874
+ const textPreview = run2.text ? run2.text.substring(0, 20) + (run2.text.length > 20 ? "..." : "") : "(no text)";
143875
+ console.warn(`[PmPositionValidation] Missing PM positions in ${context}:`, {
143876
+ hasPmStart,
143877
+ hasPmEnd,
143878
+ textPreview,
143879
+ fallback: "Will use PM DOM coordinates for cursor positioning"
143880
+ });
143881
+ }
143882
+ }
143883
+ function assertFragmentPmPositions(fragment, _context) {
143884
+ const hasPmStart = fragment.pmStart != null;
143885
+ const hasPmEnd = fragment.pmEnd != null;
143886
+ globalValidationStats.record(hasPmStart, hasPmEnd);
143887
+ }
143888
+ function generateRulerDefinition(config2) {
143889
+ const ppi = config2.ppi ?? DEFAULT_PPI;
143890
+ const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
143891
+ const { pageSize, pageMargins } = config2;
143892
+ if (!Number.isFinite(ppi) || ppi <= 0)
143893
+ throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
143894
+ if (!Number.isFinite(pageSize.width) || pageSize.width <= 0)
143895
+ throw new Error(`Invalid page width: ${pageSize.width}. Must be a positive finite number.`);
143896
+ if (!Number.isFinite(pageSize.height) || pageSize.height <= 0)
143897
+ throw new Error(`Invalid page height: ${pageSize.height}. Must be a positive finite number.`);
143898
+ if (!Number.isFinite(pageMargins.left) || pageMargins.left < 0)
143899
+ throw new Error(`Invalid left margin: ${pageMargins.left}. Must be a non-negative finite number.`);
143900
+ if (!Number.isFinite(pageMargins.right) || pageMargins.right < 0)
143901
+ throw new Error(`Invalid right margin: ${pageMargins.right}. Must be a non-negative finite number.`);
143902
+ if (pageMargins.left + pageMargins.right >= pageSize.width)
143903
+ throw new Error(`Invalid margins: left (${pageMargins.left}) + right (${pageMargins.right}) must be less than page width (${pageSize.width}).`);
143904
+ const widthPx = pageSize.width * ppi;
143905
+ const ticks = [];
143906
+ let currentX = 0;
143907
+ for (let inch = 0;inch < pageSize.width; inch++) {
143908
+ const remaining = pageSize.width - inch;
143909
+ ticks.push({
143910
+ size: "main",
143911
+ height: "20%",
143912
+ label: inch,
143913
+ x: currentX
143914
+ });
143915
+ currentX += TICK_SPACING_PX;
143916
+ for (let i$1 = 0;i$1 < 3; i$1++) {
143917
+ ticks.push({
143918
+ size: "eighth",
143919
+ height: "10%",
143920
+ x: currentX
143921
+ });
143922
+ currentX += TICK_SPACING_PX;
143923
+ }
143924
+ ticks.push({
143925
+ size: "half",
143926
+ height: "40%",
143927
+ x: currentX
143928
+ });
143929
+ currentX += TICK_SPACING_PX;
143930
+ if (remaining <= 0.5)
143931
+ break;
143932
+ for (let i$1 = 0;i$1 < 3; i$1++) {
143933
+ ticks.push({
143934
+ size: "eighth",
143935
+ height: "10%",
143936
+ x: currentX
143937
+ });
143938
+ currentX += TICK_SPACING_PX;
143939
+ }
143940
+ }
143941
+ return {
143942
+ widthPx,
143943
+ heightPx,
143944
+ ticks,
143945
+ leftMarginPx: pageMargins.left * ppi,
143946
+ rightMarginPx: widthPx - pageMargins.right * ppi,
143947
+ pageWidthInches: pageSize.width
143948
+ };
143949
+ }
143950
+ function calculateMarginFromHandle(handleX, side, pageWidthPx, ppi = DEFAULT_PPI) {
143951
+ if (side === "left")
143952
+ return handleX / ppi;
143953
+ else
143954
+ return (pageWidthPx - handleX) / ppi;
143955
+ }
143956
+ function clampHandlePosition(handleX, side, otherHandleX, pageWidthPx, minContentWidthPx = 200) {
143957
+ if (!Number.isFinite(handleX))
143958
+ throw new Error(`Invalid handleX: ${handleX}. Must be a finite number.`);
143959
+ if (!Number.isFinite(otherHandleX))
143960
+ throw new Error(`Invalid otherHandleX: ${otherHandleX}. Must be a finite number.`);
143961
+ if (!Number.isFinite(pageWidthPx))
143962
+ throw new Error(`Invalid pageWidthPx: ${pageWidthPx}. Must be a finite number.`);
143963
+ if (!Number.isFinite(minContentWidthPx))
143964
+ throw new Error(`Invalid minContentWidthPx: ${minContentWidthPx}. Must be a finite number.`);
143965
+ if (side === "left") {
143966
+ const min$2 = 0;
143967
+ const max$2 = otherHandleX - minContentWidthPx;
143968
+ return Math.max(min$2, Math.min(max$2, handleX));
143969
+ } else {
143970
+ const min$2 = otherHandleX + minContentWidthPx;
143971
+ const max$2 = pageWidthPx;
143972
+ return Math.max(min$2, Math.min(max$2, handleX));
143973
+ }
143974
+ }
143975
+ function generateRulerDefinitionFromPx(config2) {
143976
+ const ppi = config2.ppi ?? DEFAULT_PPI;
143977
+ const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
143978
+ const { pageWidthPx, leftMarginPx, rightMarginPx } = config2;
143979
+ if (!Number.isFinite(ppi) || ppi <= 0)
143980
+ throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
143981
+ if (!Number.isFinite(pageWidthPx) || pageWidthPx <= 0)
143982
+ throw new Error(`Invalid page width: ${pageWidthPx}px. Must be a positive finite number.`);
143983
+ if (!Number.isFinite(config2.pageHeightPx) || config2.pageHeightPx <= 0)
143984
+ throw new Error(`Invalid page height: ${config2.pageHeightPx}px. Must be a positive finite number.`);
143985
+ if (!Number.isFinite(leftMarginPx) || leftMarginPx < 0)
143986
+ throw new Error(`Invalid left margin: ${leftMarginPx}px. Must be a non-negative finite number.`);
143987
+ if (!Number.isFinite(rightMarginPx) || rightMarginPx < 0)
143988
+ throw new Error(`Invalid right margin: ${rightMarginPx}px. Must be a non-negative finite number.`);
143989
+ if (leftMarginPx + rightMarginPx >= pageWidthPx)
143990
+ throw new Error(`Invalid margins: left (${leftMarginPx}px) + right (${rightMarginPx}px) must be less than page width (${pageWidthPx}px).`);
143991
+ const pageWidthInches = pageWidthPx / ppi;
143992
+ const ticks = [];
143993
+ let currentX = 0;
143994
+ for (let inch = 0;inch < pageWidthInches; inch++) {
143995
+ const remaining = pageWidthInches - inch;
143996
+ ticks.push({
143997
+ size: "main",
143998
+ height: "20%",
143999
+ label: inch,
144000
+ x: currentX
144001
+ });
144002
+ currentX += TICK_SPACING_PX;
144003
+ for (let i$1 = 0;i$1 < 3; i$1++) {
144004
+ ticks.push({
144005
+ size: "eighth",
144006
+ height: "10%",
144007
+ x: currentX
144008
+ });
144009
+ currentX += TICK_SPACING_PX;
144010
+ }
144011
+ ticks.push({
144012
+ size: "half",
144013
+ height: "40%",
144014
+ x: currentX
144015
+ });
144016
+ currentX += TICK_SPACING_PX;
144017
+ if (remaining <= 0.5)
144018
+ break;
144019
+ for (let i$1 = 0;i$1 < 3; i$1++) {
144020
+ ticks.push({
144021
+ size: "eighth",
144022
+ height: "10%",
144023
+ x: currentX
144024
+ });
144025
+ currentX += TICK_SPACING_PX;
144026
+ }
144027
+ }
144028
+ return {
144029
+ widthPx: pageWidthPx,
144030
+ heightPx,
144031
+ ticks,
144032
+ leftMarginPx,
144033
+ rightMarginPx: pageWidthPx - rightMarginPx,
144034
+ pageWidthInches
144035
+ };
144036
+ }
144037
+ function createRulerElement(options) {
144038
+ const { definition: definition3, doc: doc$2, interactive = false } = options;
144039
+ if (!Number.isFinite(definition3.widthPx) || definition3.widthPx <= 0) {
144040
+ console.warn(`[createRulerElement] Invalid ruler width: ${definition3.widthPx}px. Using minimum width of 1px.`);
144041
+ definition3.widthPx = Math.max(1, definition3.widthPx || 1);
144042
+ }
144043
+ if (!definition3.ticks || definition3.ticks.length === 0)
144044
+ console.warn("[createRulerElement] Ruler definition has no ticks. Ruler will be empty.");
144045
+ const ruler = doc$2.createElement("div");
144046
+ ruler.className = RULER_CLASS_NAMES.ruler;
144047
+ ruler.style.cssText = `
144048
+ position: relative;
144049
+ width: ${definition3.widthPx}px;
144050
+ height: ${definition3.heightPx}px;
144051
+ display: flex;
144052
+ align-items: flex-end;
144053
+ box-sizing: border-box;
144054
+ user-select: none;
144055
+ pointer-events: ${interactive ? "auto" : "none"};
144056
+ `;
144057
+ for (const tick of definition3.ticks) {
144058
+ const tickEl = createTickElement(tick, doc$2);
144059
+ ruler.appendChild(tickEl);
144060
+ }
144061
+ if (interactive) {
144062
+ const leftHandle = createHandleElement("left", definition3.leftMarginPx, doc$2, options);
144063
+ const rightHandle = createHandleElement("right", definition3.rightMarginPx, doc$2, options);
144064
+ ruler.appendChild(leftHandle);
144065
+ ruler.appendChild(rightHandle);
144066
+ }
144067
+ return ruler;
144068
+ }
144069
+ function createTickElement(tick, doc$2) {
144070
+ const el = doc$2.createElement("div");
144071
+ const sizeClass = tick.size === "main" ? RULER_CLASS_NAMES.tickMain : tick.size === "half" ? RULER_CLASS_NAMES.tickHalf : RULER_CLASS_NAMES.tickEighth;
144072
+ el.className = `${RULER_CLASS_NAMES.tick} ${sizeClass}`;
144073
+ el.style.cssText = `
144074
+ position: absolute;
144075
+ left: ${tick.x}px;
144076
+ bottom: 0;
144077
+ width: 1px;
144078
+ height: ${tick.height};
144079
+ background-color: #666;
144080
+ pointer-events: none;
144081
+ `;
144082
+ if (tick.label !== undefined) {
144083
+ const label = doc$2.createElement("span");
144084
+ label.className = RULER_CLASS_NAMES.label;
144085
+ label.textContent = String(tick.label);
144086
+ label.style.cssText = `
144087
+ position: absolute;
144088
+ top: -16px;
144089
+ left: -2px;
144090
+ font-size: 10px;
144091
+ color: #666;
144092
+ pointer-events: none;
144093
+ user-select: none;
144094
+ `;
144095
+ el.appendChild(label);
144096
+ }
144097
+ return el;
144098
+ }
144099
+ function createHandleElement(side, x, doc$2, options) {
144100
+ const handle3 = doc$2.createElement("div");
144101
+ const sideClass = side === "left" ? RULER_CLASS_NAMES.handleLeft : RULER_CLASS_NAMES.handleRight;
144102
+ handle3.className = `${RULER_CLASS_NAMES.handle} ${sideClass}`;
144103
+ handle3.dataset.side = side;
144104
+ handle3.style.cssText = `
144105
+ position: absolute;
144106
+ left: ${x}px;
144107
+ top: 0;
144108
+ width: 5px;
144109
+ height: 20px;
144110
+ margin-left: -2px;
144111
+ background-color: #ccc;
144112
+ border-radius: 4px 4px 0 0;
144113
+ cursor: grab;
144114
+ transition: background-color 150ms ease;
144115
+ z-index: 10;
144116
+ `;
144117
+ handle3.addEventListener("mouseenter", () => {
144118
+ if (!handle3.dataset.dragging)
144119
+ handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
144120
+ });
144121
+ handle3.addEventListener("mouseleave", () => {
144122
+ if (!handle3.dataset.dragging)
144123
+ handle3.style.backgroundColor = "#ccc";
144124
+ });
144125
+ if (options.onDragStart || options.onDrag || options.onDragEnd)
144126
+ setupHandleDrag(handle3, side, options);
144127
+ return handle3;
144128
+ }
144129
+ function setupHandleDrag(handle3, side, options) {
144130
+ let offsetX = 0;
144131
+ const onPointerDown = (event) => {
144132
+ event.preventDefault();
144133
+ handle3.dataset.dragging = "true";
144134
+ handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
144135
+ handle3.style.cursor = "grabbing";
144136
+ const rect = handle3.getBoundingClientRect();
144137
+ offsetX = event.clientX - rect.left - rect.width / 2;
144138
+ handle3.setPointerCapture(event.pointerId);
144139
+ options.onDragStart?.(side, event);
144140
+ };
144141
+ const onPointerMove = (event) => {
144142
+ if (handle3.dataset.dragging !== "true")
144143
+ return;
144144
+ const ruler = handle3.parentElement;
144145
+ if (!ruler)
144146
+ return;
144147
+ const rulerRect = ruler.getBoundingClientRect();
144148
+ const newX = event.clientX - rulerRect.left - offsetX;
144149
+ options.onDrag?.(side, newX, event);
144150
+ };
144151
+ const onPointerUp = (event) => {
144152
+ if (handle3.dataset.dragging !== "true")
144153
+ return;
144154
+ handle3.dataset.dragging = "";
144155
+ handle3.style.backgroundColor = "#ccc";
144156
+ handle3.style.cursor = "grab";
144157
+ handle3.releasePointerCapture(event.pointerId);
144158
+ const ruler = handle3.parentElement;
144159
+ if (!ruler)
144160
+ return;
144161
+ const rulerRect = ruler.getBoundingClientRect();
144162
+ const finalX = event.clientX - rulerRect.left - offsetX;
144163
+ options.onDragEnd?.(side, finalX, event);
144164
+ };
144165
+ handle3.addEventListener("pointerdown", onPointerDown);
144166
+ handle3.addEventListener("pointermove", onPointerMove);
144167
+ handle3.addEventListener("pointerup", onPointerUp);
144168
+ handle3.addEventListener("pointercancel", onPointerUp);
144169
+ }
144170
+ function ensureRulerStyles(doc$2) {
144171
+ if (rulerStylesInjected || !doc$2)
144172
+ return;
144173
+ const styleEl = doc$2.createElement("style");
144174
+ styleEl.setAttribute("data-superdoc-ruler-styles", "true");
144175
+ styleEl.textContent = RULER_STYLES;
144176
+ doc$2.head?.appendChild(styleEl);
144177
+ rulerStylesInjected = true;
144178
+ }
142148
144179
  function validateHexColor(color2) {
142149
144180
  if (typeof color2 !== "string")
142150
144181
  return;
@@ -142328,28 +144359,6 @@ function normalizeRotation(rotation) {
142328
144359
  function degToRad(degrees) {
142329
144360
  return degrees * Math.PI / 180;
142330
144361
  }
142331
- function mapWordFamilyFallback(wordFamily) {
142332
- if (!wordFamily)
142333
- return DEFAULT_GENERIC_FALLBACK2;
142334
- return FONT_FAMILY_FALLBACKS2[wordFamily.toLowerCase()] || "sans-serif";
142335
- }
142336
- function toCssFontFamily(fontName, options = {}) {
142337
- if (!fontName || typeof fontName !== "string")
142338
- return fontName;
142339
- let trimmed = fontName.trim();
142340
- if (!trimmed || trimmed.includes(","))
142341
- return trimmed;
142342
- if (trimmed.includes(";"))
142343
- trimmed = splitOutsideQuotes(trimmed, ";").join(", ");
142344
- const { fallback, wordFamily } = options;
142345
- const fallbackParts = normalizeParts(fallback ?? (wordFamily ? mapWordFamilyFallback(wordFamily) : undefined) ?? "sans-serif");
142346
- if (fallbackParts.length === 0)
142347
- return trimmed;
142348
- const normalizedName = trimmed.toLowerCase();
142349
- if (fallbackParts.some((part) => part.toLowerCase() === normalizedName))
142350
- return fallbackParts.join(", ");
142351
- return [trimmed, ...fallbackParts].join(", ");
142352
- }
142353
144362
  function getMeasuredTextWidth(text5, font, letterSpacing, ctx$2) {
142354
144363
  if (text5.length > 32000)
142355
144364
  text5 = text5.substring(0, 32000);
@@ -148545,321 +150554,9 @@ function applyParagraphBordersAndShading(paraWrapper, block) {
148545
150554
  if (shadingFill)
148546
150555
  paraWrapper.style.backgroundColor = shadingFill;
148547
150556
  }
148548
- function assertPmPositions(run2, context) {
148549
- const hasPmStart = run2.pmStart != null;
148550
- const hasPmEnd = run2.pmEnd != null;
148551
- globalValidationStats.record(hasPmStart, hasPmEnd);
148552
- if (!isDevelopment())
148553
- return;
148554
- if (!hasPmStart || !hasPmEnd) {
148555
- const textPreview = run2.text ? run2.text.substring(0, 20) + (run2.text.length > 20 ? "..." : "") : "(no text)";
148556
- console.warn(`[PmPositionValidation] Missing PM positions in ${context}:`, {
148557
- hasPmStart,
148558
- hasPmEnd,
148559
- textPreview,
148560
- fallback: "Will use PM DOM coordinates for cursor positioning"
148561
- });
148562
- }
148563
- }
148564
- function assertFragmentPmPositions(fragment, _context) {
148565
- const hasPmStart = fragment.pmStart != null;
148566
- const hasPmEnd = fragment.pmEnd != null;
148567
- globalValidationStats.record(hasPmStart, hasPmEnd);
148568
- }
148569
150557
  function sdtElementsById(root$1, sdtId) {
148570
150558
  return root$1.querySelectorAll(`.${DOM_CLASS_NAMES.BLOCK_SDT}[data-sdt-id="${sdtId}"]`);
148571
150559
  }
148572
- function generateRulerDefinition(config2) {
148573
- const ppi = config2.ppi ?? DEFAULT_PPI;
148574
- const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
148575
- const { pageSize, pageMargins } = config2;
148576
- if (!Number.isFinite(ppi) || ppi <= 0)
148577
- throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
148578
- if (!Number.isFinite(pageSize.width) || pageSize.width <= 0)
148579
- throw new Error(`Invalid page width: ${pageSize.width}. Must be a positive finite number.`);
148580
- if (!Number.isFinite(pageSize.height) || pageSize.height <= 0)
148581
- throw new Error(`Invalid page height: ${pageSize.height}. Must be a positive finite number.`);
148582
- if (!Number.isFinite(pageMargins.left) || pageMargins.left < 0)
148583
- throw new Error(`Invalid left margin: ${pageMargins.left}. Must be a non-negative finite number.`);
148584
- if (!Number.isFinite(pageMargins.right) || pageMargins.right < 0)
148585
- throw new Error(`Invalid right margin: ${pageMargins.right}. Must be a non-negative finite number.`);
148586
- if (pageMargins.left + pageMargins.right >= pageSize.width)
148587
- throw new Error(`Invalid margins: left (${pageMargins.left}) + right (${pageMargins.right}) must be less than page width (${pageSize.width}).`);
148588
- const widthPx = pageSize.width * ppi;
148589
- const ticks = [];
148590
- let currentX = 0;
148591
- for (let inch = 0;inch < pageSize.width; inch++) {
148592
- const remaining = pageSize.width - inch;
148593
- ticks.push({
148594
- size: "main",
148595
- height: "20%",
148596
- label: inch,
148597
- x: currentX
148598
- });
148599
- currentX += TICK_SPACING_PX;
148600
- for (let i$1 = 0;i$1 < 3; i$1++) {
148601
- ticks.push({
148602
- size: "eighth",
148603
- height: "10%",
148604
- x: currentX
148605
- });
148606
- currentX += TICK_SPACING_PX;
148607
- }
148608
- ticks.push({
148609
- size: "half",
148610
- height: "40%",
148611
- x: currentX
148612
- });
148613
- currentX += TICK_SPACING_PX;
148614
- if (remaining <= 0.5)
148615
- break;
148616
- for (let i$1 = 0;i$1 < 3; i$1++) {
148617
- ticks.push({
148618
- size: "eighth",
148619
- height: "10%",
148620
- x: currentX
148621
- });
148622
- currentX += TICK_SPACING_PX;
148623
- }
148624
- }
148625
- return {
148626
- widthPx,
148627
- heightPx,
148628
- ticks,
148629
- leftMarginPx: pageMargins.left * ppi,
148630
- rightMarginPx: widthPx - pageMargins.right * ppi,
148631
- pageWidthInches: pageSize.width
148632
- };
148633
- }
148634
- function calculateMarginFromHandle(handleX, side, pageWidthPx, ppi = DEFAULT_PPI) {
148635
- if (side === "left")
148636
- return handleX / ppi;
148637
- else
148638
- return (pageWidthPx - handleX) / ppi;
148639
- }
148640
- function clampHandlePosition(handleX, side, otherHandleX, pageWidthPx, minContentWidthPx = 200) {
148641
- if (!Number.isFinite(handleX))
148642
- throw new Error(`Invalid handleX: ${handleX}. Must be a finite number.`);
148643
- if (!Number.isFinite(otherHandleX))
148644
- throw new Error(`Invalid otherHandleX: ${otherHandleX}. Must be a finite number.`);
148645
- if (!Number.isFinite(pageWidthPx))
148646
- throw new Error(`Invalid pageWidthPx: ${pageWidthPx}. Must be a finite number.`);
148647
- if (!Number.isFinite(minContentWidthPx))
148648
- throw new Error(`Invalid minContentWidthPx: ${minContentWidthPx}. Must be a finite number.`);
148649
- if (side === "left") {
148650
- const min$2 = 0;
148651
- const max$2 = otherHandleX - minContentWidthPx;
148652
- return Math.max(min$2, Math.min(max$2, handleX));
148653
- } else {
148654
- const min$2 = otherHandleX + minContentWidthPx;
148655
- const max$2 = pageWidthPx;
148656
- return Math.max(min$2, Math.min(max$2, handleX));
148657
- }
148658
- }
148659
- function generateRulerDefinitionFromPx(config2) {
148660
- const ppi = config2.ppi ?? DEFAULT_PPI;
148661
- const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
148662
- const { pageWidthPx, leftMarginPx, rightMarginPx } = config2;
148663
- if (!Number.isFinite(ppi) || ppi <= 0)
148664
- throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
148665
- if (!Number.isFinite(pageWidthPx) || pageWidthPx <= 0)
148666
- throw new Error(`Invalid page width: ${pageWidthPx}px. Must be a positive finite number.`);
148667
- if (!Number.isFinite(config2.pageHeightPx) || config2.pageHeightPx <= 0)
148668
- throw new Error(`Invalid page height: ${config2.pageHeightPx}px. Must be a positive finite number.`);
148669
- if (!Number.isFinite(leftMarginPx) || leftMarginPx < 0)
148670
- throw new Error(`Invalid left margin: ${leftMarginPx}px. Must be a non-negative finite number.`);
148671
- if (!Number.isFinite(rightMarginPx) || rightMarginPx < 0)
148672
- throw new Error(`Invalid right margin: ${rightMarginPx}px. Must be a non-negative finite number.`);
148673
- if (leftMarginPx + rightMarginPx >= pageWidthPx)
148674
- throw new Error(`Invalid margins: left (${leftMarginPx}px) + right (${rightMarginPx}px) must be less than page width (${pageWidthPx}px).`);
148675
- const pageWidthInches = pageWidthPx / ppi;
148676
- const ticks = [];
148677
- let currentX = 0;
148678
- for (let inch = 0;inch < pageWidthInches; inch++) {
148679
- const remaining = pageWidthInches - inch;
148680
- ticks.push({
148681
- size: "main",
148682
- height: "20%",
148683
- label: inch,
148684
- x: currentX
148685
- });
148686
- currentX += TICK_SPACING_PX;
148687
- for (let i$1 = 0;i$1 < 3; i$1++) {
148688
- ticks.push({
148689
- size: "eighth",
148690
- height: "10%",
148691
- x: currentX
148692
- });
148693
- currentX += TICK_SPACING_PX;
148694
- }
148695
- ticks.push({
148696
- size: "half",
148697
- height: "40%",
148698
- x: currentX
148699
- });
148700
- currentX += TICK_SPACING_PX;
148701
- if (remaining <= 0.5)
148702
- break;
148703
- for (let i$1 = 0;i$1 < 3; i$1++) {
148704
- ticks.push({
148705
- size: "eighth",
148706
- height: "10%",
148707
- x: currentX
148708
- });
148709
- currentX += TICK_SPACING_PX;
148710
- }
148711
- }
148712
- return {
148713
- widthPx: pageWidthPx,
148714
- heightPx,
148715
- ticks,
148716
- leftMarginPx,
148717
- rightMarginPx: pageWidthPx - rightMarginPx,
148718
- pageWidthInches
148719
- };
148720
- }
148721
- function createRulerElement(options) {
148722
- const { definition: definition3, doc: doc$2, interactive = false } = options;
148723
- if (!Number.isFinite(definition3.widthPx) || definition3.widthPx <= 0) {
148724
- console.warn(`[createRulerElement] Invalid ruler width: ${definition3.widthPx}px. Using minimum width of 1px.`);
148725
- definition3.widthPx = Math.max(1, definition3.widthPx || 1);
148726
- }
148727
- if (!definition3.ticks || definition3.ticks.length === 0)
148728
- console.warn("[createRulerElement] Ruler definition has no ticks. Ruler will be empty.");
148729
- const ruler = doc$2.createElement("div");
148730
- ruler.className = RULER_CLASS_NAMES.ruler;
148731
- ruler.style.cssText = `
148732
- position: relative;
148733
- width: ${definition3.widthPx}px;
148734
- height: ${definition3.heightPx}px;
148735
- display: flex;
148736
- align-items: flex-end;
148737
- box-sizing: border-box;
148738
- user-select: none;
148739
- pointer-events: ${interactive ? "auto" : "none"};
148740
- `;
148741
- for (const tick of definition3.ticks) {
148742
- const tickEl = createTickElement(tick, doc$2);
148743
- ruler.appendChild(tickEl);
148744
- }
148745
- if (interactive) {
148746
- const leftHandle = createHandleElement("left", definition3.leftMarginPx, doc$2, options);
148747
- const rightHandle = createHandleElement("right", definition3.rightMarginPx, doc$2, options);
148748
- ruler.appendChild(leftHandle);
148749
- ruler.appendChild(rightHandle);
148750
- }
148751
- return ruler;
148752
- }
148753
- function createTickElement(tick, doc$2) {
148754
- const el = doc$2.createElement("div");
148755
- const sizeClass = tick.size === "main" ? RULER_CLASS_NAMES.tickMain : tick.size === "half" ? RULER_CLASS_NAMES.tickHalf : RULER_CLASS_NAMES.tickEighth;
148756
- el.className = `${RULER_CLASS_NAMES.tick} ${sizeClass}`;
148757
- el.style.cssText = `
148758
- position: absolute;
148759
- left: ${tick.x}px;
148760
- bottom: 0;
148761
- width: 1px;
148762
- height: ${tick.height};
148763
- background-color: #666;
148764
- pointer-events: none;
148765
- `;
148766
- if (tick.label !== undefined) {
148767
- const label = doc$2.createElement("span");
148768
- label.className = RULER_CLASS_NAMES.label;
148769
- label.textContent = String(tick.label);
148770
- label.style.cssText = `
148771
- position: absolute;
148772
- top: -16px;
148773
- left: -2px;
148774
- font-size: 10px;
148775
- color: #666;
148776
- pointer-events: none;
148777
- user-select: none;
148778
- `;
148779
- el.appendChild(label);
148780
- }
148781
- return el;
148782
- }
148783
- function createHandleElement(side, x, doc$2, options) {
148784
- const handle3 = doc$2.createElement("div");
148785
- const sideClass = side === "left" ? RULER_CLASS_NAMES.handleLeft : RULER_CLASS_NAMES.handleRight;
148786
- handle3.className = `${RULER_CLASS_NAMES.handle} ${sideClass}`;
148787
- handle3.dataset.side = side;
148788
- handle3.style.cssText = `
148789
- position: absolute;
148790
- left: ${x}px;
148791
- top: 0;
148792
- width: 5px;
148793
- height: 20px;
148794
- margin-left: -2px;
148795
- background-color: #ccc;
148796
- border-radius: 4px 4px 0 0;
148797
- cursor: grab;
148798
- transition: background-color 150ms ease;
148799
- z-index: 10;
148800
- `;
148801
- handle3.addEventListener("mouseenter", () => {
148802
- if (!handle3.dataset.dragging)
148803
- handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
148804
- });
148805
- handle3.addEventListener("mouseleave", () => {
148806
- if (!handle3.dataset.dragging)
148807
- handle3.style.backgroundColor = "#ccc";
148808
- });
148809
- if (options.onDragStart || options.onDrag || options.onDragEnd)
148810
- setupHandleDrag(handle3, side, options);
148811
- return handle3;
148812
- }
148813
- function setupHandleDrag(handle3, side, options) {
148814
- let offsetX = 0;
148815
- const onPointerDown = (event) => {
148816
- event.preventDefault();
148817
- handle3.dataset.dragging = "true";
148818
- handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
148819
- handle3.style.cursor = "grabbing";
148820
- const rect = handle3.getBoundingClientRect();
148821
- offsetX = event.clientX - rect.left - rect.width / 2;
148822
- handle3.setPointerCapture(event.pointerId);
148823
- options.onDragStart?.(side, event);
148824
- };
148825
- const onPointerMove = (event) => {
148826
- if (handle3.dataset.dragging !== "true")
148827
- return;
148828
- const ruler = handle3.parentElement;
148829
- if (!ruler)
148830
- return;
148831
- const rulerRect = ruler.getBoundingClientRect();
148832
- const newX = event.clientX - rulerRect.left - offsetX;
148833
- options.onDrag?.(side, newX, event);
148834
- };
148835
- const onPointerUp = (event) => {
148836
- if (handle3.dataset.dragging !== "true")
148837
- return;
148838
- handle3.dataset.dragging = "";
148839
- handle3.style.backgroundColor = "#ccc";
148840
- handle3.style.cursor = "grab";
148841
- handle3.releasePointerCapture(event.pointerId);
148842
- const ruler = handle3.parentElement;
148843
- if (!ruler)
148844
- return;
148845
- const rulerRect = ruler.getBoundingClientRect();
148846
- const finalX = event.clientX - rulerRect.left - offsetX;
148847
- options.onDragEnd?.(side, finalX, event);
148848
- };
148849
- handle3.addEventListener("pointerdown", onPointerDown);
148850
- handle3.addEventListener("pointermove", onPointerMove);
148851
- handle3.addEventListener("pointerup", onPointerUp);
148852
- handle3.addEventListener("pointercancel", onPointerUp);
148853
- }
148854
- function ensureRulerStyles(doc$2) {
148855
- if (rulerStylesInjected || !doc$2)
148856
- return;
148857
- const styleEl = doc$2.createElement("style");
148858
- styleEl.setAttribute("data-superdoc-ruler-styles", "true");
148859
- styleEl.textContent = RULER_STYLES;
148860
- doc$2.head?.appendChild(styleEl);
148861
- rulerStylesInjected = true;
148862
- }
148863
150560
  function isMinimalWordLayout(value) {
148864
150561
  if (typeof value !== "object" || value === null)
148865
150562
  return false;
@@ -175450,7 +177147,7 @@ var Node$13 = class Node$14 {
175450
177147
  console.warn("Failed to initialize developer tools:", error);
175451
177148
  }
175452
177149
  }
175453
- }, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, cacheByEditor, OBJECT_REPLACEMENT_CHAR = "", TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, PlanError, revisionMap, subscribedEditors, HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, everSyncedProviders, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", STUB_WHERE, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, ALIGNMENT_TO_JUSTIFICATION, DERIVED_ID_LENGTH = 24, groupedCache, SUPPORTED_NODE_TYPES, REJECTED_NODE_TYPES, CSS_NAMED_COLORS, SETTINGS_PART_PATH = "word/settings.xml", POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH$2 = 1440, PX_PER_INCH$2 = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN, FOOTER_FILE_PATTERN, HISTORY_UNSAFE_OPS, DEFAULT_LEVEL = 1, SWITCH_PATTERN, DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, DEFAULT_MIME_TYPE = "application/octet-stream", simpleHash2 = (str) => {
177150
+ }, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, DocumentApiAdapterError, ALIAS_ELIGIBLE_TYPES, cacheByEditor, OBJECT_REPLACEMENT_CHAR = "", TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, PlanError, revisionMap, subscribedEditors, HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, everSyncedProviders, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", STUB_WHERE, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, ALIGNMENT_TO_JUSTIFICATION, DERIVED_ID_LENGTH = 24, groupedCache, SUPPORTED_NODE_TYPES, REJECTED_NODE_TYPES, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, CSS_NAMED_COLORS, SETTINGS_PART_PATH = "word/settings.xml", POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, TABLE_ADAPTER_DISPATCH, ROW_OPS, TABLE_SCOPED_OPS, registered = false, SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH$2 = 1440, PX_PER_INCH$2 = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH$2 = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN, FOOTER_FILE_PATTERN, HISTORY_UNSAFE_OPS, DEFAULT_LEVEL = 1, SWITCH_PATTERN, DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, DEFAULT_MIME_TYPE = "application/octet-stream", simpleHash2 = (str) => {
175454
177151
  let hash$3 = 0;
175455
177152
  for (let i$1 = 0;i$1 < str.length; i$1++) {
175456
177153
  const char = str.charCodeAt(i$1);
@@ -177561,7 +179258,194 @@ var Node$13 = class Node$14 {
177561
179258
  return;
177562
179259
  const candidate = run2.pmEnd;
177563
179260
  return typeof candidate === "number" ? candidate : undefined;
177564
- }, engines_exports, _, F, X, p3 = "http://schemas.openxmlformats.org/drawingml/2006/main", G, c0, n0 = 100, o0, u0 = (t) => h$1(t, p3, "path").length > 0, M0, r0, gradientIdCounter = 0, DOM_CLASS_NAMES, CLASS_NAMES$1, DEFAULT_PAGE_STYLES, containerStyles, containerStylesHorizontal, spreadStyles, pageStyles = (width, height, overrides) => {
179261
+ }, engines_exports, FONT_FAMILY_FALLBACKS2, DEFAULT_GENERIC_FALLBACK2 = "sans-serif", normalizeParts = (value) => (value || "").split(",").map((part) => part.trim()).filter(Boolean), splitOutsideQuotes = (str, delimiter) => {
179262
+ if (!str.includes('"') && !str.includes("'"))
179263
+ return str.split(delimiter).map((p$12) => p$12.trim()).filter(Boolean);
179264
+ const parts = [];
179265
+ let current = "";
179266
+ let inQuote = false;
179267
+ let quoteChar = null;
179268
+ for (const char of str)
179269
+ if (!inQuote && (char === '"' || char === "'")) {
179270
+ inQuote = true;
179271
+ quoteChar = char;
179272
+ current += char;
179273
+ } else if (inQuote && char === quoteChar) {
179274
+ inQuote = false;
179275
+ quoteChar = null;
179276
+ current += char;
179277
+ } else if (!inQuote && char === delimiter) {
179278
+ if (current.trim())
179279
+ parts.push(current.trim());
179280
+ current = "";
179281
+ } else
179282
+ current += char;
179283
+ if (current.trim())
179284
+ parts.push(current.trim());
179285
+ return parts;
179286
+ }, _, F, X, p3 = "http://schemas.openxmlformats.org/drawingml/2006/main", G, c0, n0 = 100, o0, u0 = (t) => h$1(t, p3, "path").length > 0, M0, r0, DOM_CLASS_NAMES, hashParagraphBorder$1 = (border) => {
179287
+ const parts = [];
179288
+ if (border.style !== undefined)
179289
+ parts.push(`s:${border.style}`);
179290
+ if (border.width !== undefined)
179291
+ parts.push(`w:${border.width}`);
179292
+ if (border.color !== undefined)
179293
+ parts.push(`c:${border.color}`);
179294
+ if (border.space !== undefined)
179295
+ parts.push(`sp:${border.space}`);
179296
+ return parts.join(",");
179297
+ }, hashParagraphBorders$1 = (borders) => {
179298
+ const parts = [];
179299
+ if (borders.top)
179300
+ parts.push(`t:[${hashParagraphBorder$1(borders.top)}]`);
179301
+ if (borders.right)
179302
+ parts.push(`r:[${hashParagraphBorder$1(borders.right)}]`);
179303
+ if (borders.bottom)
179304
+ parts.push(`b:[${hashParagraphBorder$1(borders.bottom)}]`);
179305
+ if (borders.left)
179306
+ parts.push(`l:[${hashParagraphBorder$1(borders.left)}]`);
179307
+ return parts.join(";");
179308
+ }, isNoneBorder$1 = (value) => {
179309
+ return typeof value === "object" && value !== null && "none" in value && value.none === true;
179310
+ }, isBorderSpec$1 = (value) => {
179311
+ return typeof value === "object" && value !== null && !("none" in value);
179312
+ }, hashBorderSpec$1 = (border) => {
179313
+ const parts = [];
179314
+ if (border.style !== undefined)
179315
+ parts.push(`s:${border.style}`);
179316
+ if (border.width !== undefined)
179317
+ parts.push(`w:${border.width}`);
179318
+ if (border.color !== undefined)
179319
+ parts.push(`c:${border.color}`);
179320
+ if (border.space !== undefined)
179321
+ parts.push(`sp:${border.space}`);
179322
+ return parts.join(",");
179323
+ }, hashTableBorderValue$1 = (borderValue) => {
179324
+ if (borderValue === undefined)
179325
+ return "";
179326
+ if (borderValue === null)
179327
+ return "null";
179328
+ if (isNoneBorder$1(borderValue))
179329
+ return "none";
179330
+ if (isBorderSpec$1(borderValue))
179331
+ return hashBorderSpec$1(borderValue);
179332
+ return "";
179333
+ }, hashTableBorders$1 = (borders) => {
179334
+ if (!borders)
179335
+ return "";
179336
+ const parts = [];
179337
+ if (borders.top !== undefined)
179338
+ parts.push(`t:[${hashTableBorderValue$1(borders.top)}]`);
179339
+ if (borders.right !== undefined)
179340
+ parts.push(`r:[${hashTableBorderValue$1(borders.right)}]`);
179341
+ if (borders.bottom !== undefined)
179342
+ parts.push(`b:[${hashTableBorderValue$1(borders.bottom)}]`);
179343
+ if (borders.left !== undefined)
179344
+ parts.push(`l:[${hashTableBorderValue$1(borders.left)}]`);
179345
+ if (borders.insideH !== undefined)
179346
+ parts.push(`ih:[${hashTableBorderValue$1(borders.insideH)}]`);
179347
+ if (borders.insideV !== undefined)
179348
+ parts.push(`iv:[${hashTableBorderValue$1(borders.insideV)}]`);
179349
+ return parts.join(";");
179350
+ }, hashCellBorders$1 = (borders) => {
179351
+ if (!borders)
179352
+ return "";
179353
+ const parts = [];
179354
+ if (borders.top)
179355
+ parts.push(`t:[${hashBorderSpec$1(borders.top)}]`);
179356
+ if (borders.right)
179357
+ parts.push(`r:[${hashBorderSpec$1(borders.right)}]`);
179358
+ if (borders.bottom)
179359
+ parts.push(`b:[${hashBorderSpec$1(borders.bottom)}]`);
179360
+ if (borders.left)
179361
+ parts.push(`l:[${hashBorderSpec$1(borders.left)}]`);
179362
+ return parts.join(";");
179363
+ }, hasStringProp = (run2, prop) => {
179364
+ return prop in run2 && typeof run2[prop] === "string";
179365
+ }, hasNumberProp = (run2, prop) => {
179366
+ return prop in run2 && typeof run2[prop] === "number";
179367
+ }, hasBooleanProp = (run2, prop) => {
179368
+ return prop in run2 && typeof run2[prop] === "boolean";
179369
+ }, getRunStringProp = (run2, prop) => {
179370
+ if (hasStringProp(run2, prop))
179371
+ return run2[prop];
179372
+ return "";
179373
+ }, getRunNumberProp = (run2, prop) => {
179374
+ if (hasNumberProp(run2, prop))
179375
+ return run2[prop];
179376
+ return 0;
179377
+ }, getRunBooleanProp = (run2, prop) => {
179378
+ if (hasBooleanProp(run2, prop))
179379
+ return run2[prop];
179380
+ return false;
179381
+ }, getRunUnderlineStyle = (run2) => {
179382
+ if ("underline" in run2 && typeof run2.underline === "boolean")
179383
+ return run2.underline ? "single" : "";
179384
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
179385
+ return run2.underline.style ?? "";
179386
+ return "";
179387
+ }, getRunUnderlineColor = (run2) => {
179388
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
179389
+ return run2.underline.color ?? "";
179390
+ return "";
179391
+ }, isDevelopment = () => {
179392
+ if (typeof process$1 !== "undefined" && typeof process$1.env !== "undefined")
179393
+ return process$1.env.NODE_ENV === "development";
179394
+ return false;
179395
+ }, ValidationStatsCollector = class {
179396
+ constructor() {
179397
+ this.stats = {
179398
+ totalSpans: 0,
179399
+ validSpans: 0,
179400
+ missingPmStart: 0,
179401
+ missingPmEnd: 0,
179402
+ missingBoth: 0
179403
+ };
179404
+ }
179405
+ record(hasPmStart, hasPmEnd) {
179406
+ this.stats.totalSpans++;
179407
+ if (hasPmStart && hasPmEnd)
179408
+ this.stats.validSpans++;
179409
+ else if (!hasPmStart && !hasPmEnd)
179410
+ this.stats.missingBoth++;
179411
+ else if (!hasPmStart)
179412
+ this.stats.missingPmStart++;
179413
+ else
179414
+ this.stats.missingPmEnd++;
179415
+ }
179416
+ getStats() {
179417
+ return { ...this.stats };
179418
+ }
179419
+ reset() {
179420
+ this.stats = {
179421
+ totalSpans: 0,
179422
+ validSpans: 0,
179423
+ missingPmStart: 0,
179424
+ missingPmEnd: 0,
179425
+ missingBoth: 0
179426
+ };
179427
+ }
179428
+ getCoveragePercent() {
179429
+ if (this.stats.totalSpans === 0)
179430
+ return 100;
179431
+ return this.stats.validSpans / this.stats.totalSpans * 100;
179432
+ }
179433
+ logSummary() {
179434
+ if (!isDevelopment())
179435
+ return;
179436
+ const coverage = this.getCoveragePercent();
179437
+ const s2 = this.stats;
179438
+ if (coverage < 100)
179439
+ console.warn("[PmPositionValidation] PM position coverage:", {
179440
+ coverage: `${coverage.toFixed(1)}%`,
179441
+ totalSpans: s2.totalSpans,
179442
+ validSpans: s2.validSpans,
179443
+ missingPmStart: s2.missingPmStart,
179444
+ missingPmEnd: s2.missingPmEnd,
179445
+ missingBoth: s2.missingBoth
179446
+ });
179447
+ }
179448
+ }, globalValidationStats, DEFAULT_PPI = 96, DEFAULT_RULER_HEIGHT = 25, TICK_SPACING_PX, RULER_CLASS_NAMES, RULER_STYLES, rulerStylesInjected = false, CLASS_NAMES$1, DEFAULT_PAGE_STYLES, containerStyles, containerStylesHorizontal, spreadStyles, pageStyles = (width, height, overrides) => {
177565
179449
  const merged = {
177566
179450
  ...DEFAULT_PAGE_STYLES,
177567
179451
  ...overrides || {}
@@ -178118,32 +180002,7 @@ var Node$13 = class Node$14 {
178118
180002
  styleEl.textContent = NATIVE_SELECTION_STYLES;
178119
180003
  doc$2.head?.appendChild(styleEl);
178120
180004
  nativeSelectionStylesInjected = true;
178121
- }, EMUS_PER_INCH = 914400, FONT_FAMILY_FALLBACKS2, DEFAULT_GENERIC_FALLBACK2 = "sans-serif", normalizeParts = (value) => (value || "").split(",").map((part) => part.trim()).filter(Boolean), splitOutsideQuotes = (str, delimiter) => {
178122
- if (!str.includes('"') && !str.includes("'"))
178123
- return str.split(delimiter).map((p$12) => p$12.trim()).filter(Boolean);
178124
- const parts = [];
178125
- let current = "";
178126
- let inQuote = false;
178127
- let quoteChar = null;
178128
- for (const char of str)
178129
- if (!inQuote && (char === '"' || char === "'")) {
178130
- inQuote = true;
178131
- quoteChar = char;
178132
- current += char;
178133
- } else if (inQuote && char === quoteChar) {
178134
- inQuote = false;
178135
- quoteChar = null;
178136
- current += char;
178137
- } else if (!inQuote && char === delimiter) {
178138
- if (current.trim())
178139
- parts.push(current.trim());
178140
- current = "";
178141
- } else
178142
- current += char;
178143
- if (current.trim())
178144
- parts.push(current.trim());
178145
- return parts;
178146
- }, maxSize = 5000, cache$2, makeKey = (text5, font, letterSpacing) => {
180005
+ }, gradientIdCounter = 0, EMUS_PER_INCH = 914400, maxSize = 5000, cache$2, makeKey = (text5, font, letterSpacing) => {
178147
180006
  return `${text5}|${font}|${letterSpacing || 0}`;
178148
180007
  }, fontMetricsCache, MAX_CACHE_SIZE$1 = 1000, METRICS_TEST_STRING = "MHgypbdlÁÉÍ", computeTabStops, measurementConfig, canvasContext = null, DEFAULT_TAB_INTERVAL_TWIPS$2 = 720, TWIPS_PER_PX$1, twipsToPx$2 = (twips) => twips / TWIPS_PER_PX$1, pxToTwips$1 = (px) => Math.round(px * TWIPS_PER_PX$1), DEFAULT_TAB_INTERVAL_PX$1, TAB_EPSILON$1 = 0.1, DEFAULT_DECIMAL_SEPARATOR$1 = ".", ALLOWED_TAB_VALS, FIELD_ANNOTATION_PILL_PADDING = 8, FIELD_ANNOTATION_LINE_HEIGHT_MULTIPLIER = 1.2, FIELD_ANNOTATION_VERTICAL_PADDING = 6, DEFAULT_FIELD_ANNOTATION_FONT_SIZE = 16, DEFAULT_PARAGRAPH_FONT_SIZE = 12, DEFAULT_PARAGRAPH_FONT_FAMILY = "Arial", isValidFontSize = (value) => typeof value === "number" && Number.isFinite(value) && value > 0, normalizeFontSize$1 = (value, fallback = DEFAULT_PARAGRAPH_FONT_SIZE) => {
178149
180008
  if (isValidFontSize(value))
@@ -179559,64 +181418,7 @@ var Node$13 = class Node$14 {
179559
181418
  y$1 += actualRowHeight + cellSpacingPx;
179560
181419
  }
179561
181420
  return container;
179562
- }, isDevelopment = () => {
179563
- if (typeof process$1 !== "undefined" && typeof process$1.env !== "undefined")
179564
- return process$1.env.NODE_ENV === "development";
179565
- return false;
179566
- }, ValidationStatsCollector = class {
179567
- constructor() {
179568
- this.stats = {
179569
- totalSpans: 0,
179570
- validSpans: 0,
179571
- missingPmStart: 0,
179572
- missingPmEnd: 0,
179573
- missingBoth: 0
179574
- };
179575
- }
179576
- record(hasPmStart, hasPmEnd) {
179577
- this.stats.totalSpans++;
179578
- if (hasPmStart && hasPmEnd)
179579
- this.stats.validSpans++;
179580
- else if (!hasPmStart && !hasPmEnd)
179581
- this.stats.missingBoth++;
179582
- else if (!hasPmStart)
179583
- this.stats.missingPmStart++;
179584
- else
179585
- this.stats.missingPmEnd++;
179586
- }
179587
- getStats() {
179588
- return { ...this.stats };
179589
- }
179590
- reset() {
179591
- this.stats = {
179592
- totalSpans: 0,
179593
- validSpans: 0,
179594
- missingPmStart: 0,
179595
- missingPmEnd: 0,
179596
- missingBoth: 0
179597
- };
179598
- }
179599
- getCoveragePercent() {
179600
- if (this.stats.totalSpans === 0)
179601
- return 100;
179602
- return this.stats.validSpans / this.stats.totalSpans * 100;
179603
- }
179604
- logSummary() {
179605
- if (!isDevelopment())
179606
- return;
179607
- const coverage = this.getCoveragePercent();
179608
- const s2 = this.stats;
179609
- if (coverage < 100)
179610
- console.warn("[PmPositionValidation] PM position coverage:", {
179611
- coverage: `${coverage.toFixed(1)}%`,
179612
- totalSpans: s2.totalSpans,
179613
- validSpans: s2.validSpans,
179614
- missingPmStart: s2.missingPmStart,
179615
- missingPmEnd: s2.missingPmEnd,
179616
- missingBoth: s2.missingBoth
179617
- });
179618
- }
179619
- }, globalValidationStats, SDT_BLOCK_SELECTOR, HOVER_CLASS, SdtGroupedHover = class {
181421
+ }, SDT_BLOCK_SELECTOR, HOVER_CLASS, SdtGroupedHover = class {
179620
181422
  constructor() {
179621
181423
  this.hoveredSdtId = null;
179622
181424
  this.mount = null;
@@ -179667,111 +181469,6 @@ var Node$13 = class Node$14 {
179667
181469
  this.onMouseLeave = null;
179668
181470
  this.hoveredSdtId = null;
179669
181471
  }
179670
- }, DEFAULT_PPI = 96, DEFAULT_RULER_HEIGHT = 25, TICK_SPACING_PX, RULER_CLASS_NAMES, RULER_STYLES, rulerStylesInjected = false, hashParagraphBorder$1 = (border) => {
179671
- const parts = [];
179672
- if (border.style !== undefined)
179673
- parts.push(`s:${border.style}`);
179674
- if (border.width !== undefined)
179675
- parts.push(`w:${border.width}`);
179676
- if (border.color !== undefined)
179677
- parts.push(`c:${border.color}`);
179678
- if (border.space !== undefined)
179679
- parts.push(`sp:${border.space}`);
179680
- return parts.join(",");
179681
- }, hashParagraphBorders$1 = (borders) => {
179682
- const parts = [];
179683
- if (borders.top)
179684
- parts.push(`t:[${hashParagraphBorder$1(borders.top)}]`);
179685
- if (borders.right)
179686
- parts.push(`r:[${hashParagraphBorder$1(borders.right)}]`);
179687
- if (borders.bottom)
179688
- parts.push(`b:[${hashParagraphBorder$1(borders.bottom)}]`);
179689
- if (borders.left)
179690
- parts.push(`l:[${hashParagraphBorder$1(borders.left)}]`);
179691
- return parts.join(";");
179692
- }, isNoneBorder$1 = (value) => {
179693
- return typeof value === "object" && value !== null && "none" in value && value.none === true;
179694
- }, isBorderSpec$1 = (value) => {
179695
- return typeof value === "object" && value !== null && !("none" in value);
179696
- }, hashBorderSpec$1 = (border) => {
179697
- const parts = [];
179698
- if (border.style !== undefined)
179699
- parts.push(`s:${border.style}`);
179700
- if (border.width !== undefined)
179701
- parts.push(`w:${border.width}`);
179702
- if (border.color !== undefined)
179703
- parts.push(`c:${border.color}`);
179704
- if (border.space !== undefined)
179705
- parts.push(`sp:${border.space}`);
179706
- return parts.join(",");
179707
- }, hashTableBorderValue$1 = (borderValue) => {
179708
- if (borderValue === undefined)
179709
- return "";
179710
- if (borderValue === null)
179711
- return "null";
179712
- if (isNoneBorder$1(borderValue))
179713
- return "none";
179714
- if (isBorderSpec$1(borderValue))
179715
- return hashBorderSpec$1(borderValue);
179716
- return "";
179717
- }, hashTableBorders$1 = (borders) => {
179718
- if (!borders)
179719
- return "";
179720
- const parts = [];
179721
- if (borders.top !== undefined)
179722
- parts.push(`t:[${hashTableBorderValue$1(borders.top)}]`);
179723
- if (borders.right !== undefined)
179724
- parts.push(`r:[${hashTableBorderValue$1(borders.right)}]`);
179725
- if (borders.bottom !== undefined)
179726
- parts.push(`b:[${hashTableBorderValue$1(borders.bottom)}]`);
179727
- if (borders.left !== undefined)
179728
- parts.push(`l:[${hashTableBorderValue$1(borders.left)}]`);
179729
- if (borders.insideH !== undefined)
179730
- parts.push(`ih:[${hashTableBorderValue$1(borders.insideH)}]`);
179731
- if (borders.insideV !== undefined)
179732
- parts.push(`iv:[${hashTableBorderValue$1(borders.insideV)}]`);
179733
- return parts.join(";");
179734
- }, hashCellBorders$1 = (borders) => {
179735
- if (!borders)
179736
- return "";
179737
- const parts = [];
179738
- if (borders.top)
179739
- parts.push(`t:[${hashBorderSpec$1(borders.top)}]`);
179740
- if (borders.right)
179741
- parts.push(`r:[${hashBorderSpec$1(borders.right)}]`);
179742
- if (borders.bottom)
179743
- parts.push(`b:[${hashBorderSpec$1(borders.bottom)}]`);
179744
- if (borders.left)
179745
- parts.push(`l:[${hashBorderSpec$1(borders.left)}]`);
179746
- return parts.join(";");
179747
- }, hasStringProp = (run2, prop) => {
179748
- return prop in run2 && typeof run2[prop] === "string";
179749
- }, hasNumberProp = (run2, prop) => {
179750
- return prop in run2 && typeof run2[prop] === "number";
179751
- }, hasBooleanProp = (run2, prop) => {
179752
- return prop in run2 && typeof run2[prop] === "boolean";
179753
- }, getRunStringProp = (run2, prop) => {
179754
- if (hasStringProp(run2, prop))
179755
- return run2[prop];
179756
- return "";
179757
- }, getRunNumberProp = (run2, prop) => {
179758
- if (hasNumberProp(run2, prop))
179759
- return run2[prop];
179760
- return 0;
179761
- }, getRunBooleanProp = (run2, prop) => {
179762
- if (hasBooleanProp(run2, prop))
179763
- return run2[prop];
179764
- return false;
179765
- }, getRunUnderlineStyle = (run2) => {
179766
- if ("underline" in run2 && typeof run2.underline === "boolean")
179767
- return run2.underline ? "single" : "";
179768
- if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
179769
- return run2.underline.style ?? "";
179770
- return "";
179771
- }, getRunUnderlineColor = (run2) => {
179772
- if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
179773
- return run2.underline.color ?? "";
179774
- return "";
179775
181472
  }, LIST_MARKER_GAP = 8, DEFAULT_PAGE_HEIGHT_PX = 1056, DEFAULT_VIRTUALIZED_PAGE_GAP = 72, COMMENT_EXTERNAL_COLOR = "#B1124B", COMMENT_INTERNAL_COLOR = "#078383", COMMENT_INACTIVE_ALPHA = "40", COMMENT_ACTIVE_ALPHA = "66", COMMENT_FADED_ALPHA = "20", LINK_DATASET_KEYS, MAX_HREF_LENGTH = 2048, SAFE_ANCHOR_PATTERN, MAX_DATA_URL_LENGTH, VALID_IMAGE_DATA_URL, MAX_RESIZE_MULTIPLIER = 3, FALLBACK_MAX_DIMENSION = 1000, MIN_IMAGE_DIMENSION = 20, AMBIGUOUS_LINK_PATTERNS, linkMetrics, TRACK_CHANGE_BASE_CLASS, TRACK_CHANGE_FOCUSED_CLASS = "track-change-focused", TRACK_CHANGE_MODIFIER_CLASS, LINK_TARGET_SET, normalizeAnchor = (value) => {
179776
181473
  if (typeof value !== "string")
179777
181474
  return null;
@@ -194092,9 +195789,9 @@ var Node$13 = class Node$14 {
194092
195789
  trackedChanges: context.trackedChanges ?? []
194093
195790
  });
194094
195791
  }, _hoisted_1$6, _hoisted_2$2, _hoisted_3, _hoisted_4, ContextMenu_default, _hoisted_1$5, BasicUpload_default, _hoisted_1$4, MIN_WIDTH = 200, PPI = 96, alignment = "flex-end", Ruler_default, GenericPopover_default, _hoisted_1$3, _hoisted_2$1, RESIZE_HANDLE_WIDTH_PX = 9, RESIZE_HANDLE_HEIGHT_PX = 9, RESIZE_HANDLE_OFFSET_PX = 4, DRAG_OVERLAY_EXTENSION_PX = 1000, MIN_DRAG_OVERLAY_WIDTH_PX = 2000, THROTTLE_INTERVAL_MS = 16, MIN_RESIZE_DELTA_PX = 1, TableResizeOverlay_default, _hoisted_1$2, OVERLAY_EXPANSION_PX = 2000, RESIZE_HANDLE_SIZE_PX = 12, MOUSE_MOVE_THROTTLE_MS = 16, DIMENSION_CHANGE_THRESHOLD_PX = 1, Z_INDEX_OVERLAY = 10, Z_INDEX_HANDLE = 15, Z_INDEX_GUIDELINE = 20, ImageResizeOverlay_default, LINK_CLICK_DEBOUNCE_MS = 300, CURSOR_UPDATE_TIMEOUT_MS = 10, POPOVER_VERTICAL_OFFSET_PX = 15, LinkClickHandler_default, _hoisted_1$1, _hoisted_2, DOCX2 = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", TABLE_RESIZE_HOVER_THRESHOLD = 8, TABLE_RESIZE_THROTTLE_MS = 16, SuperEditor_default, _hoisted_1, SuperInput_default, SlashMenu, Extensions;
194095
- var init_src_C1h0gpEb_es = __esm(() => {
195792
+ var init_src_B8PRu6_u_es = __esm(() => {
194096
195793
  init_rolldown_runtime_B2q5OVn9_es();
194097
- init_SuperConverter_Bo_KNppf_es();
195794
+ init_SuperConverter_CejXSSGL_es();
194098
195795
  init_jszip_ChlR43oI_es();
194099
195796
  init_uuid_qzgm05fK_es();
194100
195797
  init_constants_CMPtQbp7_es();
@@ -202282,6 +203979,17 @@ function print() { __p += __j.call(arguments, '') }
202282
203979
  "lists.continuePrevious": [],
202283
203980
  "lists.setLevelRestart": [],
202284
203981
  "lists.convertToText": [],
203982
+ "lists.applyTemplate": [],
203983
+ "lists.applyPreset": [],
203984
+ "lists.captureTemplate": [],
203985
+ "lists.setLevelNumbering": [],
203986
+ "lists.setLevelBullet": [],
203987
+ "lists.setLevelPictureBullet": [],
203988
+ "lists.setLevelAlignment": [],
203989
+ "lists.setLevelIndents": [],
203990
+ "lists.setLevelTrailingCharacter": [],
203991
+ "lists.setLevelMarkerFont": [],
203992
+ "lists.clearLevelOverrides": [],
202285
203993
  "blocks.delete": ["deleteBlockNodeById"],
202286
203994
  "comments.create": [
202287
203995
  "addComment",
@@ -202366,7 +204074,11 @@ function print() { __p += __j.call(arguments, '') }
202366
204074
  "sections.setOddEvenHeadersFooters": (editor) => Boolean(editor.converter),
202367
204075
  "sections.setHeaderFooterRef": (editor) => Boolean(editor.converter),
202368
204076
  "tables.setDefaultStyle": (editor) => Boolean(editor.converter),
202369
- "tables.clearDefaultStyle": (editor) => Boolean(editor.converter)
204077
+ "tables.clearDefaultStyle": (editor) => Boolean(editor.converter),
204078
+ "lists.setLevelPictureBullet": (editor) => {
204079
+ const converter = editor.converter;
204080
+ return Boolean(converter?.convertedXml?.["word/numbering.xml"]);
204081
+ }
202370
204082
  };
202371
204083
  SUPPORTED_NON_UNIFORM_STRATEGIES = [
202372
204084
  "error",
@@ -202547,6 +204259,73 @@ function print() { __p += __j.call(arguments, '') }
202547
204259
  groupedCache = /* @__PURE__ */ new WeakMap;
202548
204260
  SUPPORTED_NODE_TYPES = new Set(DELETABLE_BLOCK_NODE_TYPES2);
202549
204261
  REJECTED_NODE_TYPES = new Set(["tableRow", "tableCell"]);
204262
+ ORDERED_PRESET_CONFIG = {
204263
+ decimal: {
204264
+ numFmt: "decimal",
204265
+ lvlTextSuffix: "."
204266
+ },
204267
+ decimalParenthesis: {
204268
+ numFmt: "decimal",
204269
+ lvlTextSuffix: ")"
204270
+ },
204271
+ lowerLetter: {
204272
+ numFmt: "lowerLetter",
204273
+ lvlTextSuffix: "."
204274
+ },
204275
+ upperLetter: {
204276
+ numFmt: "upperLetter",
204277
+ lvlTextSuffix: "."
204278
+ },
204279
+ lowerRoman: {
204280
+ numFmt: "lowerRoman",
204281
+ lvlTextSuffix: "."
204282
+ },
204283
+ upperRoman: {
204284
+ numFmt: "upperRoman",
204285
+ lvlTextSuffix: "."
204286
+ }
204287
+ };
204288
+ BULLET_PRESET_CONFIG = {
204289
+ disc: {
204290
+ markerText: "•",
204291
+ fontFamily: "Symbol"
204292
+ },
204293
+ circle: {
204294
+ markerText: "o",
204295
+ fontFamily: "Courier New"
204296
+ },
204297
+ square: {
204298
+ markerText: "",
204299
+ fontFamily: "Wingdings"
204300
+ },
204301
+ dash: {
204302
+ markerText: "–",
204303
+ fontFamily: "Calibri"
204304
+ }
204305
+ };
204306
+ PRESET_TEMPLATES = {};
204307
+ for (const [id2, config2] of Object.entries(ORDERED_PRESET_CONFIG))
204308
+ PRESET_TEMPLATES[id2] = buildOrderedPresetTemplate(config2);
204309
+ for (const [id2, config2] of Object.entries(BULLET_PRESET_CONFIG))
204310
+ PRESET_TEMPLATES[id2] = buildBulletPresetTemplate(config2);
204311
+ LevelFormattingHelpers = {
204312
+ readLevelProperties,
204313
+ findLevelElement,
204314
+ hasLevel,
204315
+ setLevelNumberingFormat,
204316
+ setLevelBulletMarker,
204317
+ setLevelPictureBulletId,
204318
+ setLevelAlignment,
204319
+ setLevelIndents,
204320
+ setLevelTrailingCharacter,
204321
+ setLevelMarkerFont,
204322
+ hasLevelOverride,
204323
+ clearLevelOverride,
204324
+ captureTemplate,
204325
+ applyTemplateToAbstract,
204326
+ getPresetTemplate,
204327
+ PRESET_TEMPLATES
204328
+ };
202550
204329
  CSS_NAMED_COLORS = {
202551
204330
  aliceblue: "#f0f8ff",
202552
204331
  antiquewhite: "#faebd7",
@@ -205327,6 +207106,15 @@ function print() { __p += __j.call(arguments, '') }
205327
207106
  resolveSpacingIndent: () => resolveSpacingIndent,
205328
207107
  scaleWrapPolygon: () => scaleWrapPolygon
205329
207108
  }, 1);
207109
+ FONT_FAMILY_FALLBACKS2 = Object.freeze({
207110
+ swiss: "Arial, sans-serif",
207111
+ roman: "Times New Roman, serif",
207112
+ modern: "Courier New, monospace",
207113
+ script: "cursive",
207114
+ decorative: "fantasy",
207115
+ system: "system-ui",
207116
+ auto: "sans-serif"
207117
+ });
205330
207118
  init_dist();
205331
207119
  _ = {
205332
207120
  accentBorderCallout1: {
@@ -207838,6 +209626,88 @@ function print() { __p += __j.call(arguments, '') }
207838
209626
  INLINE_IMAGE: "superdoc-inline-image",
207839
209627
  INLINE_IMAGE_CLIP_WRAPPER: "superdoc-inline-image-clip-wrapper"
207840
209628
  };
209629
+ init_dist();
209630
+ globalValidationStats = new ValidationStatsCollector;
209631
+ TICK_SPACING_PX = DEFAULT_PPI / 8;
209632
+ RULER_CLASS_NAMES = {
209633
+ ruler: "superdoc-ruler",
209634
+ tick: "superdoc-ruler-tick",
209635
+ tickMain: "superdoc-ruler-tick--main",
209636
+ tickHalf: "superdoc-ruler-tick--half",
209637
+ tickEighth: "superdoc-ruler-tick--eighth",
209638
+ label: "superdoc-ruler-label",
209639
+ handle: "superdoc-ruler-handle",
209640
+ handleLeft: "superdoc-ruler-handle--left",
209641
+ handleRight: "superdoc-ruler-handle--right",
209642
+ indicator: "superdoc-ruler-indicator"
209643
+ };
209644
+ RULER_STYLES = `
209645
+ /* Ruler container */
209646
+ .${RULER_CLASS_NAMES.ruler} {
209647
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
209648
+ background-color: transparent;
209649
+ }
209650
+
209651
+ /* Tick marks base styling */
209652
+ .${RULER_CLASS_NAMES.tick} {
209653
+ flex-shrink: 0;
209654
+ }
209655
+
209656
+ /* Handle hover and active states */
209657
+ .${RULER_CLASS_NAMES.handle}:hover {
209658
+ background-color: rgba(37, 99, 235, 0.4) !important;
209659
+ }
209660
+
209661
+ .${RULER_CLASS_NAMES.handle}:active,
209662
+ .${RULER_CLASS_NAMES.handle}[data-dragging="true"] {
209663
+ background-color: rgba(37, 99, 235, 0.6) !important;
209664
+ cursor: grabbing !important;
209665
+ }
209666
+
209667
+ /* Vertical indicator animation */
209668
+ .${RULER_CLASS_NAMES.indicator} {
209669
+ transition: left 16ms linear;
209670
+ }
209671
+
209672
+ /* Print mode: hide rulers */
209673
+ @media print {
209674
+ .${RULER_CLASS_NAMES.ruler} {
209675
+ display: none !important;
209676
+ }
209677
+ }
209678
+
209679
+ /* High contrast mode support */
209680
+ @media (prefers-contrast: high) {
209681
+ .${RULER_CLASS_NAMES.tick} {
209682
+ background-color: #000 !important;
209683
+ }
209684
+
209685
+ .${RULER_CLASS_NAMES.label} {
209686
+ color: #000 !important;
209687
+ }
209688
+
209689
+ .${RULER_CLASS_NAMES.handle} {
209690
+ background-color: #666 !important;
209691
+ border: 1px solid #000;
209692
+ }
209693
+
209694
+ .${RULER_CLASS_NAMES.handle}:hover,
209695
+ .${RULER_CLASS_NAMES.handle}:active {
209696
+ background-color: #0066cc !important;
209697
+ }
209698
+ }
209699
+
209700
+ /* Reduced motion support */
209701
+ @media (prefers-reduced-motion: reduce) {
209702
+ .${RULER_CLASS_NAMES.handle} {
209703
+ transition: none !important;
209704
+ }
209705
+
209706
+ .${RULER_CLASS_NAMES.indicator} {
209707
+ transition: none !important;
209708
+ }
209709
+ }
209710
+ `;
207841
209711
  CLASS_NAMES$1 = {
207842
209712
  container: "superdoc-layout",
207843
209713
  page: "superdoc-page",
@@ -207919,15 +209789,6 @@ function print() { __p += __j.call(arguments, '') }
207919
209789
  `;
207920
209790
  96 / EMUS_PER_INCH;
207921
209791
  EMUS_PER_INCH / 96;
207922
- FONT_FAMILY_FALLBACKS2 = Object.freeze({
207923
- swiss: "Arial, sans-serif",
207924
- roman: "Times New Roman, serif",
207925
- modern: "Courier New, monospace",
207926
- script: "cursive",
207927
- decorative: "fantasy",
207928
- system: "system-ui",
207929
- auto: "sans-serif"
207930
- });
207931
209792
  cache$2 = /* @__PURE__ */ new Map;
207932
209793
  fontMetricsCache = /* @__PURE__ */ new Map;
207933
209794
  ({ computeTabStops } = engines_exports);
@@ -208015,90 +209876,8 @@ function print() { __p += __j.call(arguments, '') }
208015
209876
  "wave",
208016
209877
  "doubleWave"
208017
209878
  ]);
208018
- init_dist();
208019
- globalValidationStats = new ValidationStatsCollector;
208020
209879
  SDT_BLOCK_SELECTOR = `.${DOM_CLASS_NAMES.BLOCK_SDT}[data-sdt-id]`;
208021
209880
  HOVER_CLASS = DOM_CLASS_NAMES.SDT_HOVER;
208022
- TICK_SPACING_PX = DEFAULT_PPI / 8;
208023
- RULER_CLASS_NAMES = {
208024
- ruler: "superdoc-ruler",
208025
- tick: "superdoc-ruler-tick",
208026
- tickMain: "superdoc-ruler-tick--main",
208027
- tickHalf: "superdoc-ruler-tick--half",
208028
- tickEighth: "superdoc-ruler-tick--eighth",
208029
- label: "superdoc-ruler-label",
208030
- handle: "superdoc-ruler-handle",
208031
- handleLeft: "superdoc-ruler-handle--left",
208032
- handleRight: "superdoc-ruler-handle--right",
208033
- indicator: "superdoc-ruler-indicator"
208034
- };
208035
- RULER_STYLES = `
208036
- /* Ruler container */
208037
- .${RULER_CLASS_NAMES.ruler} {
208038
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
208039
- background-color: transparent;
208040
- }
208041
-
208042
- /* Tick marks base styling */
208043
- .${RULER_CLASS_NAMES.tick} {
208044
- flex-shrink: 0;
208045
- }
208046
-
208047
- /* Handle hover and active states */
208048
- .${RULER_CLASS_NAMES.handle}:hover {
208049
- background-color: rgba(37, 99, 235, 0.4) !important;
208050
- }
208051
-
208052
- .${RULER_CLASS_NAMES.handle}:active,
208053
- .${RULER_CLASS_NAMES.handle}[data-dragging="true"] {
208054
- background-color: rgba(37, 99, 235, 0.6) !important;
208055
- cursor: grabbing !important;
208056
- }
208057
-
208058
- /* Vertical indicator animation */
208059
- .${RULER_CLASS_NAMES.indicator} {
208060
- transition: left 16ms linear;
208061
- }
208062
-
208063
- /* Print mode: hide rulers */
208064
- @media print {
208065
- .${RULER_CLASS_NAMES.ruler} {
208066
- display: none !important;
208067
- }
208068
- }
208069
-
208070
- /* High contrast mode support */
208071
- @media (prefers-contrast: high) {
208072
- .${RULER_CLASS_NAMES.tick} {
208073
- background-color: #000 !important;
208074
- }
208075
-
208076
- .${RULER_CLASS_NAMES.label} {
208077
- color: #000 !important;
208078
- }
208079
-
208080
- .${RULER_CLASS_NAMES.handle} {
208081
- background-color: #666 !important;
208082
- border: 1px solid #000;
208083
- }
208084
-
208085
- .${RULER_CLASS_NAMES.handle}:hover,
208086
- .${RULER_CLASS_NAMES.handle}:active {
208087
- background-color: #0066cc !important;
208088
- }
208089
- }
208090
-
208091
- /* Reduced motion support */
208092
- @media (prefers-reduced-motion: reduce) {
208093
- .${RULER_CLASS_NAMES.handle} {
208094
- transition: none !important;
208095
- }
208096
-
208097
- .${RULER_CLASS_NAMES.indicator} {
208098
- transition: none !important;
208099
- }
208100
- }
208101
- `;
208102
209881
  init_dist();
208103
209882
  LINK_DATASET_KEYS = {
208104
209883
  blocked: "linkBlocked",
@@ -208199,6 +209978,7 @@ function print() { __p += __j.call(arguments, '') }
208199
209978
  this.onResizeHandler = null;
208200
209979
  this.zoomFactor = 1;
208201
209980
  this.scrollContainer = null;
209981
+ this.scrollContainerMountOffset = null;
208202
209982
  this.sdtHover = new SdtGroupedHover;
208203
209983
  this.activeCommentId = null;
208204
209984
  this.paintSnapshotBuilder = null;
@@ -208237,6 +210017,7 @@ function print() { __p += __j.call(arguments, '') }
208237
210017
  const next2 = typeof zoom === "number" && Number.isFinite(zoom) && zoom > 0 ? zoom : 1;
208238
210018
  if (next2 !== this.zoomFactor) {
208239
210019
  this.zoomFactor = next2;
210020
+ this.scrollContainerMountOffset = null;
208240
210021
  if (this.virtualEnabled && this.mount)
208241
210022
  this.updateVirtualWindow();
208242
210023
  }
@@ -208244,6 +210025,7 @@ function print() { __p += __j.call(arguments, '') }
208244
210025
  setScrollContainer(el) {
208245
210026
  if (el !== this.scrollContainer) {
208246
210027
  this.scrollContainer = el;
210028
+ this.scrollContainerMountOffset = null;
208247
210029
  if (this.virtualEnabled && this.mount)
208248
210030
  this.updateVirtualWindow();
208249
210031
  }
@@ -208532,6 +210314,7 @@ function print() { __p += __j.call(arguments, '') }
208532
210314
  this.virtualPagesEl.style.alignItems = "center";
208533
210315
  this.virtualPagesEl.style.width = "100%";
208534
210316
  this.virtualPagesEl.style.gap = `${this.virtualGap}px`;
210317
+ this.virtualPagesEl.style.overflowAnchor = "none";
208535
210318
  mount$1.appendChild(this.topSpacerEl);
208536
210319
  mount$1.appendChild(this.virtualPagesEl);
208537
210320
  mount$1.appendChild(this.bottomSpacerEl);
@@ -208541,6 +210324,7 @@ function print() { __p += __j.call(arguments, '') }
208541
210324
  element3.style.width = "1px";
208542
210325
  element3.style.height = "0px";
208543
210326
  element3.style.flex = "0 0 auto";
210327
+ element3.style.overflowAnchor = "none";
208544
210328
  element3.setAttribute("data-virtual-spacer", type);
208545
210329
  }
208546
210330
  bindVirtualizationHandlers(mount$1) {
@@ -208561,6 +210345,7 @@ function print() { __p += __j.call(arguments, '') }
208561
210345
  if (this.onResizeHandler)
208562
210346
  win.removeEventListener("resize", this.onResizeHandler);
208563
210347
  this.onResizeHandler = () => {
210348
+ this.scrollContainerMountOffset = null;
208564
210349
  this.updateVirtualWindow();
208565
210350
  };
208566
210351
  win.addEventListener("resize", this.onResizeHandler);
@@ -208623,9 +210408,12 @@ function print() { __p += __j.call(arguments, '') }
208623
210408
  if (this.mount.scrollHeight > this.mount.clientHeight + 1)
208624
210409
  scrollY = Math.max(0, this.mount.scrollTop - paddingTop);
208625
210410
  else if (this.scrollContainer) {
208626
- const mountRect = this.mount.getBoundingClientRect();
208627
- const containerRect = this.scrollContainer.getBoundingClientRect();
208628
- scrollY = Math.max(0, (containerRect.top - mountRect.top) / zoom - paddingTop);
210411
+ if (this.scrollContainerMountOffset == null) {
210412
+ const mountRect = this.mount.getBoundingClientRect();
210413
+ const containerRect = this.scrollContainer.getBoundingClientRect();
210414
+ this.scrollContainerMountOffset = mountRect.top - containerRect.top + this.scrollContainer.scrollTop;
210415
+ }
210416
+ scrollY = Math.max(0, (this.scrollContainer.scrollTop - this.scrollContainerMountOffset) / zoom - paddingTop);
208629
210417
  } else {
208630
210418
  const rect = this.mount.getBoundingClientRect();
208631
210419
  scrollY = Math.max(0, -rect.top / zoom - paddingTop);
@@ -208982,6 +210770,7 @@ function print() { __p += __j.call(arguments, '') }
208982
210770
  this.onScrollHandler = null;
208983
210771
  this.onWindowScrollHandler = null;
208984
210772
  this.onResizeHandler = null;
210773
+ this.scrollContainerMountOffset = null;
208985
210774
  this.sdtHover.destroy();
208986
210775
  this.layoutVersion = 0;
208987
210776
  this.processedLayoutVersion = -1;
@@ -225684,8 +227473,8 @@ function print() { __p += __j.call(arguments, '') }
225684
227473
  return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
225685
227474
  };
225686
227475
  stubFalse_default = stubFalse;
225687
- freeExports$2 = typeof exports_src_C1h0gpEb_es == "object" && exports_src_C1h0gpEb_es && !exports_src_C1h0gpEb_es.nodeType && exports_src_C1h0gpEb_es;
225688
- freeModule$2 = freeExports$2 && typeof module_src_C1h0gpEb_es == "object" && module_src_C1h0gpEb_es && !module_src_C1h0gpEb_es.nodeType && module_src_C1h0gpEb_es;
227476
+ freeExports$2 = typeof exports_src_B8PRu6_u_es == "object" && exports_src_B8PRu6_u_es && !exports_src_B8PRu6_u_es.nodeType && exports_src_B8PRu6_u_es;
227477
+ freeModule$2 = freeExports$2 && typeof module_src_B8PRu6_u_es == "object" && module_src_B8PRu6_u_es && !module_src_B8PRu6_u_es.nodeType && module_src_B8PRu6_u_es;
225689
227478
  Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
225690
227479
  isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
225691
227480
  typedArrayTags = {};
@@ -225693,8 +227482,8 @@ function print() { __p += __j.call(arguments, '') }
225693
227482
  typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false;
225694
227483
  _baseIsTypedArray_default = baseIsTypedArray;
225695
227484
  _baseUnary_default = baseUnary;
225696
- freeExports$1 = typeof exports_src_C1h0gpEb_es == "object" && exports_src_C1h0gpEb_es && !exports_src_C1h0gpEb_es.nodeType && exports_src_C1h0gpEb_es;
225697
- freeModule$1 = freeExports$1 && typeof module_src_C1h0gpEb_es == "object" && module_src_C1h0gpEb_es && !module_src_C1h0gpEb_es.nodeType && module_src_C1h0gpEb_es;
227485
+ freeExports$1 = typeof exports_src_B8PRu6_u_es == "object" && exports_src_B8PRu6_u_es && !exports_src_B8PRu6_u_es.nodeType && exports_src_B8PRu6_u_es;
227486
+ freeModule$1 = freeExports$1 && typeof module_src_B8PRu6_u_es == "object" && module_src_B8PRu6_u_es && !module_src_B8PRu6_u_es.nodeType && module_src_B8PRu6_u_es;
225698
227487
  freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
225699
227488
  _nodeUtil_default = function() {
225700
227489
  try {
@@ -225799,8 +227588,8 @@ function print() { __p += __j.call(arguments, '') }
225799
227588
  Stack.prototype.has = _stackHas_default;
225800
227589
  Stack.prototype.set = _stackSet_default;
225801
227590
  _Stack_default = Stack;
225802
- freeExports = typeof exports_src_C1h0gpEb_es == "object" && exports_src_C1h0gpEb_es && !exports_src_C1h0gpEb_es.nodeType && exports_src_C1h0gpEb_es;
225803
- freeModule = freeExports && typeof module_src_C1h0gpEb_es == "object" && module_src_C1h0gpEb_es && !module_src_C1h0gpEb_es.nodeType && module_src_C1h0gpEb_es;
227591
+ freeExports = typeof exports_src_B8PRu6_u_es == "object" && exports_src_B8PRu6_u_es && !exports_src_B8PRu6_u_es.nodeType && exports_src_B8PRu6_u_es;
227592
+ freeModule = freeExports && typeof module_src_B8PRu6_u_es == "object" && module_src_B8PRu6_u_es && !module_src_B8PRu6_u_es.nodeType && module_src_B8PRu6_u_es;
225804
227593
  Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
225805
227594
  allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
225806
227595
  _cloneBuffer_default = cloneBuffer;
@@ -233880,8 +235669,8 @@ var init_zipper_DqXT7uTa_es = __esm(() => {
233880
235669
 
233881
235670
  // ../../packages/superdoc/dist/super-editor.es.js
233882
235671
  var init_super_editor_es = __esm(() => {
233883
- init_src_C1h0gpEb_es();
233884
- init_SuperConverter_Bo_KNppf_es();
235672
+ init_src_B8PRu6_u_es();
235673
+ init_SuperConverter_CejXSSGL_es();
233885
235674
  init_jszip_ChlR43oI_es();
233886
235675
  init_xml_js_DLE8mr0n_es();
233887
235676
  init_constants_CMPtQbp7_es();
@@ -295649,6 +297438,17 @@ var init_capabilities_adapter = __esm(() => {
295649
297438
  "lists.continuePrevious": [],
295650
297439
  "lists.setLevelRestart": [],
295651
297440
  "lists.convertToText": [],
297441
+ "lists.applyTemplate": [],
297442
+ "lists.applyPreset": [],
297443
+ "lists.captureTemplate": [],
297444
+ "lists.setLevelNumbering": [],
297445
+ "lists.setLevelBullet": [],
297446
+ "lists.setLevelPictureBullet": [],
297447
+ "lists.setLevelAlignment": [],
297448
+ "lists.setLevelIndents": [],
297449
+ "lists.setLevelTrailingCharacter": [],
297450
+ "lists.setLevelMarkerFont": [],
297451
+ "lists.clearLevelOverrides": [],
295652
297452
  "blocks.delete": ["deleteBlockNodeById"],
295653
297453
  "comments.create": ["addComment", "setTextSelection", "addCommentReply"],
295654
297454
  "comments.patch": ["editComment", "moveComment", "resolveComment", "setCommentInternal"],
@@ -295724,7 +297524,11 @@ var init_capabilities_adapter = __esm(() => {
295724
297524
  "sections.setOddEvenHeadersFooters": (editor) => Boolean(editor.converter),
295725
297525
  "sections.setHeaderFooterRef": (editor) => Boolean(editor.converter),
295726
297526
  "tables.setDefaultStyle": (editor) => Boolean(editor.converter),
295727
- "tables.clearDefaultStyle": (editor) => Boolean(editor.converter)
297527
+ "tables.clearDefaultStyle": (editor) => Boolean(editor.converter),
297528
+ "lists.setLevelPictureBullet": (editor) => {
297529
+ const converter = editor.converter;
297530
+ return Boolean(converter?.convertedXml?.["word/numbering.xml"]);
297531
+ }
295728
297532
  };
295729
297533
  SUPPORTED_NON_UNIFORM_STRATEGIES2 = ["error", "useLeadingRun", "majority", "union"];
295730
297534
  SUPPORTED_SET_MARKS2 = ["bold", "italic", "underline", "strike"];
@@ -301981,6 +303785,723 @@ var init_lists_wrappers = __esm(() => {
301981
303785
  init_changeListLevel();
301982
303786
  });
301983
303787
 
303788
+ // ../../packages/super-editor/src/core/helpers/list-level-formatting-helpers.js
303789
+ function findLevelElement2(abstract, ilvl) {
303790
+ const ilvlStr = String(ilvl);
303791
+ return abstract.elements?.find((el) => el.name === "w:lvl" && el.attributes?.["w:ilvl"] === ilvlStr);
303792
+ }
303793
+ function readChildAttr2(parent, elementName) {
303794
+ return parent.elements?.find((el) => el.name === elementName)?.attributes?.["w:val"];
303795
+ }
303796
+ function setChildAttr2(parent, elementName, value) {
303797
+ if (!parent.elements)
303798
+ parent.elements = [];
303799
+ const existing = parent.elements.find((el) => el.name === elementName);
303800
+ if (existing) {
303801
+ if (existing.attributes?.["w:val"] === value)
303802
+ return false;
303803
+ if (!existing.attributes)
303804
+ existing.attributes = {};
303805
+ existing.attributes["w:val"] = value;
303806
+ return true;
303807
+ }
303808
+ parent.elements.push({
303809
+ type: "element",
303810
+ name: elementName,
303811
+ attributes: { "w:val": value }
303812
+ });
303813
+ return true;
303814
+ }
303815
+ function findOrCreateChild2(parent, elementName) {
303816
+ if (!parent.elements)
303817
+ parent.elements = [];
303818
+ let child = parent.elements.find((el) => el.name === elementName);
303819
+ if (!child) {
303820
+ child = { type: "element", name: elementName, elements: [] };
303821
+ parent.elements.push(child);
303822
+ }
303823
+ if (!child.elements)
303824
+ child.elements = [];
303825
+ return child;
303826
+ }
303827
+ function syncAbstractAndEmit2(editor, abstractNumId, abstract) {
303828
+ const numbering = editor.converter.numbering;
303829
+ numbering.abstracts[abstractNumId] = abstract;
303830
+ editor.converter.numbering = { ...numbering };
303831
+ const translated = { ...editor.converter.translatedNumbering || {} };
303832
+ if (!translated.abstracts)
303833
+ translated.abstracts = {};
303834
+ translated.abstracts[abstractNumId] = translator182.encode({ nodes: [abstract] });
303835
+ editor.converter.translatedNumbering = translated;
303836
+ const definitions = numbering.definitions || {};
303837
+ for (const [, numDef] of Object.entries(definitions)) {
303838
+ const absId = numDef?.elements?.find((el) => el.name === "w:abstractNumId")?.attributes?.["w:val"];
303839
+ if (absId != null && Number(absId) === abstractNumId) {
303840
+ editor.emit("list-definitions-change", {
303841
+ change: { numDef, editor },
303842
+ numbering: editor.converter.numbering,
303843
+ editor
303844
+ });
303845
+ }
303846
+ }
303847
+ }
303848
+ function resolveAbstractLevel2(editor, abstractNumId, ilvl) {
303849
+ const abstract = editor.converter.numbering?.abstracts?.[abstractNumId];
303850
+ if (!abstract)
303851
+ return null;
303852
+ const lvlEl = findLevelElement2(abstract, ilvl);
303853
+ if (!lvlEl)
303854
+ return null;
303855
+ return { abstract, lvlEl };
303856
+ }
303857
+ function hasLevel2(editor, abstractNumId, ilvl) {
303858
+ return resolveAbstractLevel2(editor, abstractNumId, ilvl) != null;
303859
+ }
303860
+ function readLevelProperties2(lvlEl, ilvl) {
303861
+ const props = { level: ilvl };
303862
+ const numFmt = readChildAttr2(lvlEl, "w:numFmt");
303863
+ if (numFmt != null)
303864
+ props.numFmt = numFmt;
303865
+ const lvlText = readChildAttr2(lvlEl, "w:lvlText");
303866
+ if (lvlText != null)
303867
+ props.lvlText = lvlText;
303868
+ const startVal = readChildAttr2(lvlEl, "w:start");
303869
+ if (startVal != null)
303870
+ props.start = Number(startVal);
303871
+ const alignment2 = readChildAttr2(lvlEl, "w:lvlJc");
303872
+ if (alignment2 != null)
303873
+ props.alignment = alignment2;
303874
+ const suff = readChildAttr2(lvlEl, "w:suff");
303875
+ if (suff != null)
303876
+ props.trailingCharacter = suff;
303877
+ const picBulletId = readChildAttr2(lvlEl, "w:lvlPicBulletId");
303878
+ if (picBulletId != null)
303879
+ props.pictureBulletId = Number(picBulletId);
303880
+ const pPr = lvlEl.elements?.find((el) => el.name === "w:pPr");
303881
+ const ind = pPr?.elements?.find((el) => el.name === "w:ind");
303882
+ if (ind?.attributes) {
303883
+ const indents = {};
303884
+ if (ind.attributes["w:left"] != null)
303885
+ indents.left = Number(ind.attributes["w:left"]);
303886
+ if (ind.attributes["w:hanging"] != null)
303887
+ indents.hanging = Number(ind.attributes["w:hanging"]);
303888
+ if (ind.attributes["w:firstLine"] != null)
303889
+ indents.firstLine = Number(ind.attributes["w:firstLine"]);
303890
+ if (Object.keys(indents).length > 0)
303891
+ props.indents = indents;
303892
+ }
303893
+ const rPr = lvlEl.elements?.find((el) => el.name === "w:rPr");
303894
+ const rFonts = rPr?.elements?.find((el) => el.name === "w:rFonts");
303895
+ if (rFonts?.attributes?.["w:ascii"]) {
303896
+ props.markerFont = rFonts.attributes["w:ascii"];
303897
+ }
303898
+ return props;
303899
+ }
303900
+ function mutateLevelNumberingFormat2(lvlEl, { numFmt, lvlText, start: start2 }) {
303901
+ let changed = false;
303902
+ changed = setChildAttr2(lvlEl, "w:numFmt", numFmt) || changed;
303903
+ changed = setChildAttr2(lvlEl, "w:lvlText", lvlText) || changed;
303904
+ if (start2 != null) {
303905
+ changed = setChildAttr2(lvlEl, "w:start", String(start2)) || changed;
303906
+ }
303907
+ return changed;
303908
+ }
303909
+ function mutateLevelBulletMarker2(lvlEl, markerText) {
303910
+ let changed = false;
303911
+ changed = setChildAttr2(lvlEl, "w:numFmt", "bullet") || changed;
303912
+ changed = setChildAttr2(lvlEl, "w:lvlText", markerText) || changed;
303913
+ return changed;
303914
+ }
303915
+ function mutateLevelPictureBulletId2(lvlEl, pictureBulletId) {
303916
+ return setChildAttr2(lvlEl, "w:lvlPicBulletId", String(pictureBulletId));
303917
+ }
303918
+ function mutateLevelAlignment2(lvlEl, alignment2) {
303919
+ return setChildAttr2(lvlEl, "w:lvlJc", alignment2);
303920
+ }
303921
+ function mutateLevelIndents2(lvlEl, indents) {
303922
+ const pPr = findOrCreateChild2(lvlEl, "w:pPr");
303923
+ const ind = findOrCreateChild2(pPr, "w:ind");
303924
+ if (!ind.attributes)
303925
+ ind.attributes = {};
303926
+ let changed = false;
303927
+ if (indents.left != null) {
303928
+ const newVal = String(indents.left);
303929
+ if (ind.attributes["w:left"] !== newVal) {
303930
+ ind.attributes["w:left"] = newVal;
303931
+ changed = true;
303932
+ }
303933
+ }
303934
+ if (indents.hanging != null) {
303935
+ const newVal = String(indents.hanging);
303936
+ if (ind.attributes["w:hanging"] !== newVal) {
303937
+ ind.attributes["w:hanging"] = newVal;
303938
+ changed = true;
303939
+ }
303940
+ if (ind.attributes["w:firstLine"] != null) {
303941
+ delete ind.attributes["w:firstLine"];
303942
+ changed = true;
303943
+ }
303944
+ }
303945
+ if (indents.firstLine != null) {
303946
+ const newVal = String(indents.firstLine);
303947
+ if (ind.attributes["w:firstLine"] !== newVal) {
303948
+ ind.attributes["w:firstLine"] = newVal;
303949
+ changed = true;
303950
+ }
303951
+ if (ind.attributes["w:hanging"] != null) {
303952
+ delete ind.attributes["w:hanging"];
303953
+ changed = true;
303954
+ }
303955
+ }
303956
+ return changed;
303957
+ }
303958
+ function mutateLevelTrailingCharacter2(lvlEl, trailingCharacter) {
303959
+ return setChildAttr2(lvlEl, "w:suff", trailingCharacter);
303960
+ }
303961
+ function mutateLevelMarkerFont2(lvlEl, fontFamily2) {
303962
+ const rPr = findOrCreateChild2(lvlEl, "w:rPr");
303963
+ const rFonts = rPr.elements.find((el) => el.name === "w:rFonts");
303964
+ if (rFonts) {
303965
+ const attrs = rFonts.attributes || {};
303966
+ if (attrs["w:ascii"] === fontFamily2 && attrs["w:hAnsi"] === fontFamily2 && attrs["w:eastAsia"] === fontFamily2 && attrs["w:cs"] === fontFamily2) {
303967
+ return false;
303968
+ }
303969
+ rFonts.attributes = {
303970
+ ...rFonts.attributes,
303971
+ "w:ascii": fontFamily2,
303972
+ "w:hAnsi": fontFamily2,
303973
+ "w:eastAsia": fontFamily2,
303974
+ "w:cs": fontFamily2
303975
+ };
303976
+ return true;
303977
+ }
303978
+ rPr.elements.push({
303979
+ type: "element",
303980
+ name: "w:rFonts",
303981
+ attributes: {
303982
+ "w:ascii": fontFamily2,
303983
+ "w:hAnsi": fontFamily2,
303984
+ "w:eastAsia": fontFamily2,
303985
+ "w:cs": fontFamily2
303986
+ }
303987
+ });
303988
+ return true;
303989
+ }
303990
+ function setLevelNumberingFormat2(editor, abstractNumId, ilvl, params3) {
303991
+ const resolved = resolveAbstractLevel2(editor, abstractNumId, ilvl);
303992
+ if (!resolved)
303993
+ return false;
303994
+ const changed = mutateLevelNumberingFormat2(resolved.lvlEl, params3);
303995
+ if (changed)
303996
+ syncAbstractAndEmit2(editor, abstractNumId, resolved.abstract);
303997
+ return changed;
303998
+ }
303999
+ function setLevelBulletMarker2(editor, abstractNumId, ilvl, markerText) {
304000
+ const resolved = resolveAbstractLevel2(editor, abstractNumId, ilvl);
304001
+ if (!resolved)
304002
+ return false;
304003
+ const changed = mutateLevelBulletMarker2(resolved.lvlEl, markerText);
304004
+ if (changed)
304005
+ syncAbstractAndEmit2(editor, abstractNumId, resolved.abstract);
304006
+ return changed;
304007
+ }
304008
+ function setLevelPictureBulletId2(editor, abstractNumId, ilvl, pictureBulletId) {
304009
+ const resolved = resolveAbstractLevel2(editor, abstractNumId, ilvl);
304010
+ if (!resolved)
304011
+ return false;
304012
+ const changed = mutateLevelPictureBulletId2(resolved.lvlEl, pictureBulletId);
304013
+ if (changed)
304014
+ syncAbstractAndEmit2(editor, abstractNumId, resolved.abstract);
304015
+ return changed;
304016
+ }
304017
+ function setLevelAlignment2(editor, abstractNumId, ilvl, alignment2) {
304018
+ const resolved = resolveAbstractLevel2(editor, abstractNumId, ilvl);
304019
+ if (!resolved)
304020
+ return false;
304021
+ const changed = mutateLevelAlignment2(resolved.lvlEl, alignment2);
304022
+ if (changed)
304023
+ syncAbstractAndEmit2(editor, abstractNumId, resolved.abstract);
304024
+ return changed;
304025
+ }
304026
+ function setLevelIndents2(editor, abstractNumId, ilvl, indents) {
304027
+ const resolved = resolveAbstractLevel2(editor, abstractNumId, ilvl);
304028
+ if (!resolved)
304029
+ return false;
304030
+ const changed = mutateLevelIndents2(resolved.lvlEl, indents);
304031
+ if (changed)
304032
+ syncAbstractAndEmit2(editor, abstractNumId, resolved.abstract);
304033
+ return changed;
304034
+ }
304035
+ function setLevelTrailingCharacter2(editor, abstractNumId, ilvl, trailingCharacter) {
304036
+ const resolved = resolveAbstractLevel2(editor, abstractNumId, ilvl);
304037
+ if (!resolved)
304038
+ return false;
304039
+ const changed = mutateLevelTrailingCharacter2(resolved.lvlEl, trailingCharacter);
304040
+ if (changed)
304041
+ syncAbstractAndEmit2(editor, abstractNumId, resolved.abstract);
304042
+ return changed;
304043
+ }
304044
+ function setLevelMarkerFont2(editor, abstractNumId, ilvl, fontFamily2) {
304045
+ const resolved = resolveAbstractLevel2(editor, abstractNumId, ilvl);
304046
+ if (!resolved)
304047
+ return false;
304048
+ const changed = mutateLevelMarkerFont2(resolved.lvlEl, fontFamily2);
304049
+ if (changed)
304050
+ syncAbstractAndEmit2(editor, abstractNumId, resolved.abstract);
304051
+ return changed;
304052
+ }
304053
+ function hasLevelOverride3(editor, numId, ilvl) {
304054
+ const numDef = editor.converter.numbering?.definitions?.[numId];
304055
+ if (!numDef?.elements)
304056
+ return false;
304057
+ const ilvlStr = String(ilvl);
304058
+ return numDef.elements.some((el) => el.name === "w:lvlOverride" && el.attributes?.["w:ilvl"] === ilvlStr);
304059
+ }
304060
+ function clearLevelOverride2(editor, numId, ilvl) {
304061
+ if (!hasLevelOverride3(editor, numId, ilvl))
304062
+ return false;
304063
+ removeLvlOverride2(editor, numId, ilvl);
304064
+ return true;
304065
+ }
304066
+ function captureTemplate2(editor, abstractNumId, levels) {
304067
+ const abstract = editor.converter.numbering?.abstracts?.[abstractNumId];
304068
+ if (!abstract?.elements)
304069
+ return null;
304070
+ const lvlElements = abstract.elements.filter((el) => el.name === "w:lvl");
304071
+ const captured = [];
304072
+ for (const lvlEl of lvlElements) {
304073
+ const ilvl = Number(lvlEl.attributes?.["w:ilvl"]);
304074
+ if (levels && !levels.includes(ilvl))
304075
+ continue;
304076
+ captured.push(readLevelProperties2(lvlEl, ilvl));
304077
+ }
304078
+ captured.sort((a2, b2) => a2.level - b2.level);
304079
+ return { version: 1, levels: captured };
304080
+ }
304081
+ function applyTemplateToAbstract2(editor, abstractNumId, template, levels) {
304082
+ const abstract = editor.converter.numbering?.abstracts?.[abstractNumId];
304083
+ if (!abstract?.elements)
304084
+ return { changed: false, error: "ABSTRACT_NOT_FOUND" };
304085
+ const templateByLevel = new Map;
304086
+ for (const entry of template.levels) {
304087
+ templateByLevel.set(entry.level, entry);
304088
+ }
304089
+ const targetLevels = levels ?? template.levels.map((l) => l.level);
304090
+ for (const ilvl of targetLevels) {
304091
+ if (!templateByLevel.has(ilvl)) {
304092
+ return { changed: false, error: "LEVEL_NOT_IN_TEMPLATE" };
304093
+ }
304094
+ }
304095
+ for (const ilvl of targetLevels) {
304096
+ if (!findLevelElement2(abstract, ilvl)) {
304097
+ return { changed: false, error: "LEVEL_NOT_IN_ABSTRACT" };
304098
+ }
304099
+ }
304100
+ let anyChanged = false;
304101
+ for (const ilvl of targetLevels) {
304102
+ const entry = templateByLevel.get(ilvl);
304103
+ const lvlEl = findLevelElement2(abstract, ilvl);
304104
+ if (entry.numFmt != null || entry.lvlText != null) {
304105
+ const fmtParams = {};
304106
+ if (entry.numFmt != null)
304107
+ fmtParams.numFmt = entry.numFmt;
304108
+ if (entry.lvlText != null)
304109
+ fmtParams.lvlText = entry.lvlText;
304110
+ if (entry.start != null)
304111
+ fmtParams.start = entry.start;
304112
+ if (fmtParams.numFmt != null && fmtParams.lvlText != null) {
304113
+ anyChanged = mutateLevelNumberingFormat2(lvlEl, fmtParams) || anyChanged;
304114
+ } else {
304115
+ if (fmtParams.numFmt != null)
304116
+ anyChanged = setChildAttr2(lvlEl, "w:numFmt", fmtParams.numFmt) || anyChanged;
304117
+ if (fmtParams.lvlText != null)
304118
+ anyChanged = setChildAttr2(lvlEl, "w:lvlText", fmtParams.lvlText) || anyChanged;
304119
+ if (fmtParams.start != null)
304120
+ anyChanged = setChildAttr2(lvlEl, "w:start", String(fmtParams.start)) || anyChanged;
304121
+ }
304122
+ } else if (entry.start != null) {
304123
+ anyChanged = setChildAttr2(lvlEl, "w:start", String(entry.start)) || anyChanged;
304124
+ }
304125
+ if (entry.alignment != null) {
304126
+ anyChanged = mutateLevelAlignment2(lvlEl, entry.alignment) || anyChanged;
304127
+ }
304128
+ if (entry.indents != null) {
304129
+ anyChanged = mutateLevelIndents2(lvlEl, entry.indents) || anyChanged;
304130
+ }
304131
+ if (entry.trailingCharacter != null) {
304132
+ anyChanged = mutateLevelTrailingCharacter2(lvlEl, entry.trailingCharacter) || anyChanged;
304133
+ }
304134
+ if (entry.markerFont != null) {
304135
+ anyChanged = mutateLevelMarkerFont2(lvlEl, entry.markerFont) || anyChanged;
304136
+ }
304137
+ if (entry.pictureBulletId != null) {
304138
+ anyChanged = mutateLevelPictureBulletId2(lvlEl, entry.pictureBulletId) || anyChanged;
304139
+ }
304140
+ }
304141
+ if (anyChanged) {
304142
+ syncAbstractAndEmit2(editor, abstractNumId, abstract);
304143
+ }
304144
+ return { changed: anyChanged };
304145
+ }
304146
+ function buildOrderedPresetTemplate2(config34) {
304147
+ const levels = [];
304148
+ for (let ilvl = 0;ilvl <= 8; ilvl++) {
304149
+ levels.push({
304150
+ level: ilvl,
304151
+ numFmt: config34.numFmt,
304152
+ lvlText: `%${ilvl + 1}${config34.lvlTextSuffix}`,
304153
+ start: 1,
304154
+ alignment: "left",
304155
+ indents: {
304156
+ left: INDENT_PER_LEVEL_TWIPS2 * (ilvl + 1),
304157
+ hanging: HANGING_INDENT_TWIPS2
304158
+ }
304159
+ });
304160
+ }
304161
+ return { version: 1, levels };
304162
+ }
304163
+ function buildBulletPresetTemplate2(config34) {
304164
+ const levels = [];
304165
+ for (let ilvl = 0;ilvl <= 8; ilvl++) {
304166
+ levels.push({
304167
+ level: ilvl,
304168
+ numFmt: "bullet",
304169
+ lvlText: config34.markerText,
304170
+ start: 1,
304171
+ alignment: "left",
304172
+ markerFont: config34.fontFamily,
304173
+ indents: {
304174
+ left: INDENT_PER_LEVEL_TWIPS2 * (ilvl + 1),
304175
+ hanging: HANGING_INDENT_TWIPS2
304176
+ }
304177
+ });
304178
+ }
304179
+ return { version: 1, levels };
304180
+ }
304181
+ function getPresetTemplate2(presetId) {
304182
+ return PRESET_TEMPLATES2[presetId];
304183
+ }
304184
+ var INDENT_PER_LEVEL_TWIPS2 = 720, HANGING_INDENT_TWIPS2 = 360, ORDERED_PRESET_CONFIG2, BULLET_PRESET_CONFIG2, PRESET_TEMPLATES2, LevelFormattingHelpers2;
304185
+ var init_list_level_formatting_helpers = __esm(() => {
304186
+ init_abstractNum();
304187
+ init_list_numbering_helpers();
304188
+ ORDERED_PRESET_CONFIG2 = {
304189
+ decimal: { numFmt: "decimal", lvlTextSuffix: "." },
304190
+ decimalParenthesis: { numFmt: "decimal", lvlTextSuffix: ")" },
304191
+ lowerLetter: { numFmt: "lowerLetter", lvlTextSuffix: "." },
304192
+ upperLetter: { numFmt: "upperLetter", lvlTextSuffix: "." },
304193
+ lowerRoman: { numFmt: "lowerRoman", lvlTextSuffix: "." },
304194
+ upperRoman: { numFmt: "upperRoman", lvlTextSuffix: "." }
304195
+ };
304196
+ BULLET_PRESET_CONFIG2 = {
304197
+ disc: { markerText: "•", fontFamily: "Symbol" },
304198
+ circle: { markerText: "o", fontFamily: "Courier New" },
304199
+ square: { markerText: "", fontFamily: "Wingdings" },
304200
+ dash: { markerText: "–", fontFamily: "Calibri" }
304201
+ };
304202
+ PRESET_TEMPLATES2 = {};
304203
+ for (const [id2, config34] of Object.entries(ORDERED_PRESET_CONFIG2)) {
304204
+ PRESET_TEMPLATES2[id2] = buildOrderedPresetTemplate2(config34);
304205
+ }
304206
+ for (const [id2, config34] of Object.entries(BULLET_PRESET_CONFIG2)) {
304207
+ PRESET_TEMPLATES2[id2] = buildBulletPresetTemplate2(config34);
304208
+ }
304209
+ LevelFormattingHelpers2 = {
304210
+ readLevelProperties: readLevelProperties2,
304211
+ findLevelElement: findLevelElement2,
304212
+ hasLevel: hasLevel2,
304213
+ setLevelNumberingFormat: setLevelNumberingFormat2,
304214
+ setLevelBulletMarker: setLevelBulletMarker2,
304215
+ setLevelPictureBulletId: setLevelPictureBulletId2,
304216
+ setLevelAlignment: setLevelAlignment2,
304217
+ setLevelIndents: setLevelIndents2,
304218
+ setLevelTrailingCharacter: setLevelTrailingCharacter2,
304219
+ setLevelMarkerFont: setLevelMarkerFont2,
304220
+ hasLevelOverride: hasLevelOverride3,
304221
+ clearLevelOverride: clearLevelOverride2,
304222
+ captureTemplate: captureTemplate2,
304223
+ applyTemplateToAbstract: applyTemplateToAbstract2,
304224
+ getPresetTemplate: getPresetTemplate2,
304225
+ PRESET_TEMPLATES: PRESET_TEMPLATES2
304226
+ };
304227
+ });
304228
+
304229
+ // ../../packages/super-editor/src/document-api-adapters/plan-engine/lists-formatting-wrappers.ts
304230
+ function toListsFailure3(code9, message, details) {
304231
+ return { success: false, failure: { code: code9, message, details } };
304232
+ }
304233
+ function dispatchEditorTransaction3(editor, tr) {
304234
+ if (typeof editor.dispatch === "function") {
304235
+ editor.dispatch(tr);
304236
+ return;
304237
+ }
304238
+ if (typeof editor.view?.dispatch === "function") {
304239
+ editor.view.dispatch(tr);
304240
+ }
304241
+ }
304242
+ function validateLevel2(level) {
304243
+ if (level < 0 || level > 8) {
304244
+ return toListsFailure3("LEVEL_OUT_OF_RANGE", "Level must be between 0 and 8.", { level });
304245
+ }
304246
+ return null;
304247
+ }
304248
+ function validateLevelsArray2(levels) {
304249
+ if (!levels)
304250
+ return null;
304251
+ for (const lvl of levels) {
304252
+ if (lvl < 0 || lvl > 8) {
304253
+ return toListsFailure3("LEVEL_OUT_OF_RANGE", "Each level must be between 0 and 8.", { level: lvl });
304254
+ }
304255
+ }
304256
+ if (new Set(levels).size !== levels.length) {
304257
+ return toListsFailure3("INVALID_INPUT", "levels must contain unique values.", { levels });
304258
+ }
304259
+ for (let i4 = 1;i4 < levels.length; i4++) {
304260
+ if (levels[i4] <= levels[i4 - 1]) {
304261
+ return toListsFailure3("INVALID_INPUT", "levels must be sorted in ascending order.", { levels });
304262
+ }
304263
+ }
304264
+ return null;
304265
+ }
304266
+ function preflightTemplateLevels2(template, levels, target) {
304267
+ const templateLevelSet = new Set(template.levels.map((l) => l.level));
304268
+ const targetLevels = levels ?? template.levels.map((l) => l.level);
304269
+ for (const ilvl of targetLevels) {
304270
+ if (!templateLevelSet.has(ilvl)) {
304271
+ return toListsFailure3("INVALID_INPUT", "Requested level does not exist in the template.", { target });
304272
+ }
304273
+ }
304274
+ return null;
304275
+ }
304276
+ function toApplyTemplateError2(error, target) {
304277
+ switch (error) {
304278
+ case "ABSTRACT_NOT_FOUND":
304279
+ return toListsFailure3("INVALID_TARGET", "Abstract numbering definition not found.", { target });
304280
+ case "LEVEL_NOT_IN_TEMPLATE":
304281
+ return toListsFailure3("INVALID_INPUT", "Requested level does not exist in the template.", { target });
304282
+ case "LEVEL_NOT_IN_ABSTRACT":
304283
+ return toListsFailure3("INVALID_TARGET", "Requested level does not exist in the abstract definition.", { target });
304284
+ default:
304285
+ return toListsFailure3("INVALID_INPUT", `Template application failed: ${error}.`, { target });
304286
+ }
304287
+ }
304288
+ function resolveTargetAbstract2(editor, target) {
304289
+ const resolved = resolveListItem2(editor, target);
304290
+ if (resolved.numId == null) {
304291
+ return {
304292
+ ok: false,
304293
+ failure: toListsFailure3("INVALID_TARGET", "Target must have numbering metadata.", { target })
304294
+ };
304295
+ }
304296
+ const abstractNumId = getAbstractNumId2(editor, resolved.numId);
304297
+ if (abstractNumId == null) {
304298
+ return {
304299
+ ok: false,
304300
+ failure: toListsFailure3("INVALID_TARGET", "Could not resolve abstract definition for target.", { target })
304301
+ };
304302
+ }
304303
+ return { ok: true, resolved, abstractNumId, numId: resolved.numId };
304304
+ }
304305
+ function executeSingleLevelMutation2(editor, operationId, target, level, options, mutate) {
304306
+ rejectTrackedMode2(operationId, options);
304307
+ const levelError = validateLevel2(level);
304308
+ if (levelError)
304309
+ return levelError;
304310
+ const targetResult = resolveTargetAbstract2(editor, target);
304311
+ if (!targetResult.ok)
304312
+ return targetResult.failure;
304313
+ if (!LevelFormattingHelpers2.hasLevel(editor, targetResult.abstractNumId, level)) {
304314
+ return toListsFailure3("LEVEL_NOT_FOUND", `Level ${level} does not exist in the abstract definition.`, {
304315
+ target,
304316
+ level
304317
+ });
304318
+ }
304319
+ if (options?.dryRun) {
304320
+ return { success: true, item: targetResult.resolved.address };
304321
+ }
304322
+ const receipt2 = executeDomainCommand2(editor, () => {
304323
+ const changed = mutate(targetResult.abstractNumId, level);
304324
+ if (!changed)
304325
+ return false;
304326
+ dispatchEditorTransaction3(editor, editor.state.tr);
304327
+ return true;
304328
+ }, { expectedRevision: options?.expectedRevision });
304329
+ if (receipt2.steps[0]?.effect !== "changed") {
304330
+ return toListsFailure3("NO_OP", `${operationId}: values already match.`, { target });
304331
+ }
304332
+ return { success: true, item: targetResult.resolved.address };
304333
+ }
304334
+ function listsApplyTemplateWrapper2(editor, input2, options) {
304335
+ rejectTrackedMode2("lists.applyTemplate", options);
304336
+ if (input2.template.version !== 1) {
304337
+ return toListsFailure3("INVALID_INPUT", "Unsupported template version.", { version: input2.template.version });
304338
+ }
304339
+ const levelsError = validateLevelsArray2(input2.levels);
304340
+ if (levelsError)
304341
+ return levelsError;
304342
+ const targetResult = resolveTargetAbstract2(editor, input2.target);
304343
+ if (!targetResult.ok)
304344
+ return targetResult.failure;
304345
+ const preflightError = preflightTemplateLevels2(input2.template, input2.levels, input2.target);
304346
+ if (preflightError)
304347
+ return preflightError;
304348
+ if (options?.dryRun) {
304349
+ return { success: true, item: targetResult.resolved.address };
304350
+ }
304351
+ let applyError;
304352
+ const receipt2 = executeDomainCommand2(editor, () => {
304353
+ const result = LevelFormattingHelpers2.applyTemplateToAbstract(editor, targetResult.abstractNumId, input2.template, input2.levels);
304354
+ if (result.error) {
304355
+ applyError = result.error;
304356
+ return false;
304357
+ }
304358
+ if (!result.changed)
304359
+ return false;
304360
+ dispatchEditorTransaction3(editor, editor.state.tr);
304361
+ return true;
304362
+ }, { expectedRevision: options?.expectedRevision });
304363
+ if (applyError) {
304364
+ return toApplyTemplateError2(applyError, input2.target);
304365
+ }
304366
+ if (receipt2.steps[0]?.effect !== "changed") {
304367
+ return toListsFailure3("NO_OP", "All template levels already match.", { target: input2.target });
304368
+ }
304369
+ return { success: true, item: targetResult.resolved.address };
304370
+ }
304371
+ function listsApplyPresetWrapper2(editor, input2, options) {
304372
+ rejectTrackedMode2("lists.applyPreset", options);
304373
+ const template = LevelFormattingHelpers2.getPresetTemplate(input2.preset);
304374
+ if (!template) {
304375
+ return toListsFailure3("INVALID_INPUT", `Unknown preset: ${input2.preset}.`, { preset: input2.preset });
304376
+ }
304377
+ const levelsError = validateLevelsArray2(input2.levels);
304378
+ if (levelsError)
304379
+ return levelsError;
304380
+ const targetResult = resolveTargetAbstract2(editor, input2.target);
304381
+ if (!targetResult.ok)
304382
+ return targetResult.failure;
304383
+ const preflightError = preflightTemplateLevels2(template, input2.levels, input2.target);
304384
+ if (preflightError)
304385
+ return preflightError;
304386
+ if (options?.dryRun) {
304387
+ return { success: true, item: targetResult.resolved.address };
304388
+ }
304389
+ let applyError;
304390
+ const receipt2 = executeDomainCommand2(editor, () => {
304391
+ const result = LevelFormattingHelpers2.applyTemplateToAbstract(editor, targetResult.abstractNumId, template, input2.levels);
304392
+ if (result.error) {
304393
+ applyError = result.error;
304394
+ return false;
304395
+ }
304396
+ if (!result.changed)
304397
+ return false;
304398
+ dispatchEditorTransaction3(editor, editor.state.tr);
304399
+ return true;
304400
+ }, { expectedRevision: options?.expectedRevision });
304401
+ if (applyError) {
304402
+ return toApplyTemplateError2(applyError, input2.target);
304403
+ }
304404
+ if (receipt2.steps[0]?.effect !== "changed") {
304405
+ return toListsFailure3("NO_OP", "All preset levels already match.", { target: input2.target });
304406
+ }
304407
+ return { success: true, item: targetResult.resolved.address };
304408
+ }
304409
+ function listsCaptureTemplateWrapper2(editor, input2) {
304410
+ const levelsError = validateLevelsArray2(input2.levels);
304411
+ if (levelsError)
304412
+ return levelsError;
304413
+ const targetResult = resolveTargetAbstract2(editor, input2.target);
304414
+ if (!targetResult.ok)
304415
+ return targetResult.failure;
304416
+ const template = LevelFormattingHelpers2.captureTemplate(editor, targetResult.abstractNumId, input2.levels);
304417
+ if (!template) {
304418
+ return toListsFailure3("INVALID_TARGET", "Could not capture template from target.", { target: input2.target });
304419
+ }
304420
+ return { success: true, template };
304421
+ }
304422
+ function listsSetLevelNumberingWrapper2(editor, input2, options) {
304423
+ return executeSingleLevelMutation2(editor, "lists.setLevelNumbering", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers2.setLevelNumberingFormat(editor, abstractNumId, ilvl, {
304424
+ numFmt: input2.numFmt,
304425
+ lvlText: input2.lvlText,
304426
+ start: input2.start
304427
+ }));
304428
+ }
304429
+ function listsSetLevelBulletWrapper2(editor, input2, options) {
304430
+ return executeSingleLevelMutation2(editor, "lists.setLevelBullet", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers2.setLevelBulletMarker(editor, abstractNumId, ilvl, input2.markerText));
304431
+ }
304432
+ function listsSetLevelPictureBulletWrapper2(editor, input2, options) {
304433
+ rejectTrackedMode2("lists.setLevelPictureBullet", options);
304434
+ const converter = editor.converter;
304435
+ if (converter?.convertedXml && !converter.convertedXml["word/numbering.xml"]) {
304436
+ return toListsFailure3("CAPABILITY_UNAVAILABLE", "Picture bullets require a numbering definition (word/numbering.xml).", {
304437
+ target: input2.target
304438
+ });
304439
+ }
304440
+ return executeSingleLevelMutation2(editor, "lists.setLevelPictureBullet", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers2.setLevelPictureBulletId(editor, abstractNumId, ilvl, input2.pictureBulletId));
304441
+ }
304442
+ function listsSetLevelAlignmentWrapper2(editor, input2, options) {
304443
+ return executeSingleLevelMutation2(editor, "lists.setLevelAlignment", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers2.setLevelAlignment(editor, abstractNumId, ilvl, input2.alignment));
304444
+ }
304445
+ function listsSetLevelIndentsWrapper2(editor, input2, options) {
304446
+ const hasLeft = input2.left != null;
304447
+ const hasHanging = input2.hanging != null;
304448
+ const hasFirstLine = input2.firstLine != null;
304449
+ if (!hasLeft && !hasHanging && !hasFirstLine) {
304450
+ return toListsFailure3("INVALID_INPUT", "At least one indent property is required.", {});
304451
+ }
304452
+ if (hasHanging && hasFirstLine) {
304453
+ return toListsFailure3("INVALID_INPUT", "hanging and firstLine are mutually exclusive.", {});
304454
+ }
304455
+ return executeSingleLevelMutation2(editor, "lists.setLevelIndents", input2.target, input2.level, options, (abstractNumId, ilvl) => {
304456
+ const indents = {};
304457
+ if (hasLeft)
304458
+ indents.left = input2.left;
304459
+ if (hasHanging)
304460
+ indents.hanging = input2.hanging;
304461
+ if (hasFirstLine)
304462
+ indents.firstLine = input2.firstLine;
304463
+ return LevelFormattingHelpers2.setLevelIndents(editor, abstractNumId, ilvl, indents);
304464
+ });
304465
+ }
304466
+ function listsSetLevelTrailingCharacterWrapper2(editor, input2, options) {
304467
+ return executeSingleLevelMutation2(editor, "lists.setLevelTrailingCharacter", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers2.setLevelTrailingCharacter(editor, abstractNumId, ilvl, input2.trailingCharacter));
304468
+ }
304469
+ function listsSetLevelMarkerFontWrapper2(editor, input2, options) {
304470
+ return executeSingleLevelMutation2(editor, "lists.setLevelMarkerFont", input2.target, input2.level, options, (abstractNumId, ilvl) => LevelFormattingHelpers2.setLevelMarkerFont(editor, abstractNumId, ilvl, input2.fontFamily));
304471
+ }
304472
+ function listsClearLevelOverridesWrapper2(editor, input2, options) {
304473
+ rejectTrackedMode2("lists.clearLevelOverrides", options);
304474
+ const levelError = validateLevel2(input2.level);
304475
+ if (levelError)
304476
+ return levelError;
304477
+ const resolved = resolveListItem2(editor, input2.target);
304478
+ if (resolved.numId == null) {
304479
+ return toListsFailure3("INVALID_TARGET", "Target must have numbering metadata.", { target: input2.target });
304480
+ }
304481
+ if (options?.dryRun) {
304482
+ return { success: true, item: resolved.address };
304483
+ }
304484
+ if (!LevelFormattingHelpers2.hasLevelOverride(editor, resolved.numId, input2.level)) {
304485
+ return toListsFailure3("NO_OP", "No override exists for this level.", { target: input2.target, level: input2.level });
304486
+ }
304487
+ const receipt2 = executeDomainCommand2(editor, () => {
304488
+ LevelFormattingHelpers2.clearLevelOverride(editor, resolved.numId, input2.level);
304489
+ dispatchEditorTransaction3(editor, editor.state.tr);
304490
+ return true;
304491
+ }, { expectedRevision: options?.expectedRevision });
304492
+ if (receipt2.steps[0]?.effect !== "changed") {
304493
+ return toListsFailure3("NO_OP", "clearLevelOverrides could not be applied.", { target: input2.target });
304494
+ }
304495
+ return { success: true, item: resolved.address };
304496
+ }
304497
+ var init_lists_formatting_wrappers = __esm(() => {
304498
+ init_mutation_helpers();
304499
+ init_plan_wrappers();
304500
+ init_list_item_resolver();
304501
+ init_list_sequence_helpers();
304502
+ init_list_level_formatting_helpers();
304503
+ });
304504
+
301984
304505
  // ../../packages/super-editor/src/document-api-adapters/plan-engine/preview.ts
301985
304506
  function previewPlan2(editor, input2) {
301986
304507
  checkRevision2(editor, input2.expectedRevision);
@@ -309196,7 +311717,7 @@ function normalizeTocContent2(content5, editor) {
309196
311717
  return null;
309197
311718
  return content5.map((entry) => entry && typeof entry === "object" && typeof entry.type === "string" ? editor.state.schema.nodeFromJSON(entry) : entry);
309198
311719
  }
309199
- function dispatchEditorTransaction3(editor, tr) {
311720
+ function dispatchEditorTransaction4(editor, tr) {
309200
311721
  if (typeof editor.dispatch === "function") {
309201
311722
  editor.dispatch(tr);
309202
311723
  return;
@@ -309312,7 +311833,7 @@ function tocConfigureWrapper2(editor, input2, options) {
309312
311833
  const to = resolved.pos + resolved.node.nodeSize - 1;
309313
311834
  tr.replaceWith(from4, to, normalizeTocContent2(nextContent, editor) ?? []);
309314
311835
  }
309315
- dispatchEditorTransaction3(editor, tr);
311836
+ dispatchEditorTransaction4(editor, tr);
309316
311837
  return true;
309317
311838
  } catch {
309318
311839
  return false;
@@ -309353,7 +311874,7 @@ function tocUpdateAll2(editor, input2, options) {
309353
311874
  const from4 = resolved.pos + 1;
309354
311875
  const to = resolved.pos + resolved.node.nodeSize - 1;
309355
311876
  tr.replaceWith(from4, to, normalizeTocContent2(content5, editor) ?? []);
309356
- dispatchEditorTransaction3(editor, tr);
311877
+ dispatchEditorTransaction4(editor, tr);
309357
311878
  return true;
309358
311879
  } catch {
309359
311880
  return false;
@@ -309403,7 +311924,7 @@ function tocUpdatePageNumbers2(editor, input2, options) {
309403
311924
  const from4 = resolved.pos + 1;
309404
311925
  const to = resolved.pos + resolved.node.nodeSize - 1;
309405
311926
  tr.replaceWith(from4, to, normalizeTocContent2(updatedContent, editor) ?? []);
309406
- dispatchEditorTransaction3(editor, tr);
311927
+ dispatchEditorTransaction4(editor, tr);
309407
311928
  return true;
309408
311929
  } catch {
309409
311930
  return false;
@@ -309462,7 +311983,7 @@ function tocRemoveWrapper2(editor, input2, options) {
309462
311983
  try {
309463
311984
  const { tr } = editor.state;
309464
311985
  tr.delete(resolved.pos, resolved.pos + resolved.node.nodeSize);
309465
- dispatchEditorTransaction3(editor, tr);
311986
+ dispatchEditorTransaction4(editor, tr);
309466
311987
  return true;
309467
311988
  } catch {
309468
311989
  return false;
@@ -309512,7 +312033,7 @@ function createTableOfContentsWrapper2(editor, input2, options) {
309512
312033
  try {
309513
312034
  const { tr } = editor.state;
309514
312035
  tr.insert(pos, tocNode);
309515
- dispatchEditorTransaction3(editor, tr);
312036
+ dispatchEditorTransaction4(editor, tr);
309516
312037
  return true;
309517
312038
  } catch (error) {
309518
312039
  if (error instanceof RangeError)
@@ -310479,7 +313000,18 @@ function assembleDocumentApiAdapters2(editor) {
310479
313000
  continuePrevious: (input2, options) => listsContinuePreviousWrapper2(editor, input2, options),
310480
313001
  canContinuePrevious: (input2) => listsCanContinuePreviousWrapper2(editor, input2),
310481
313002
  setLevelRestart: (input2, options) => listsSetLevelRestartWrapper2(editor, input2, options),
310482
- convertToText: (input2, options) => listsConvertToTextWrapper2(editor, input2, options)
313003
+ convertToText: (input2, options) => listsConvertToTextWrapper2(editor, input2, options),
313004
+ applyTemplate: (input2, options) => listsApplyTemplateWrapper2(editor, input2, options),
313005
+ applyPreset: (input2, options) => listsApplyPresetWrapper2(editor, input2, options),
313006
+ captureTemplate: (input2) => listsCaptureTemplateWrapper2(editor, input2),
313007
+ setLevelNumbering: (input2, options) => listsSetLevelNumberingWrapper2(editor, input2, options),
313008
+ setLevelBullet: (input2, options) => listsSetLevelBulletWrapper2(editor, input2, options),
313009
+ setLevelPictureBullet: (input2, options) => listsSetLevelPictureBulletWrapper2(editor, input2, options),
313010
+ setLevelAlignment: (input2, options) => listsSetLevelAlignmentWrapper2(editor, input2, options),
313011
+ setLevelIndents: (input2, options) => listsSetLevelIndentsWrapper2(editor, input2, options),
313012
+ setLevelTrailingCharacter: (input2, options) => listsSetLevelTrailingCharacterWrapper2(editor, input2, options),
313013
+ setLevelMarkerFont: (input2, options) => listsSetLevelMarkerFontWrapper2(editor, input2, options),
313014
+ clearLevelOverrides: (input2, options) => listsClearLevelOverridesWrapper2(editor, input2, options)
310483
313015
  },
310484
313016
  sections: {
310485
313017
  list: (query2) => sectionsListAdapter3(editor, query2),
@@ -310597,6 +313129,7 @@ var init_assemble_adapters = __esm(() => {
310597
313129
  init_create_wrappers();
310598
313130
  init_blocks_wrappers();
310599
313131
  init_lists_wrappers();
313132
+ init_lists_formatting_wrappers();
310600
313133
  init_executor();
310601
313134
  init_preview();
310602
313135
  init_query_match_adapter();
@@ -365504,6 +368037,17 @@ var init_invoke_input = __esm(() => {
365504
368037
  "lists.continuePrevious": "input",
365505
368038
  "lists.canContinuePrevious": "input",
365506
368039
  "lists.setLevelRestart": "input",
368040
+ "lists.applyTemplate": "input",
368041
+ "lists.applyPreset": "input",
368042
+ "lists.captureTemplate": "input",
368043
+ "lists.setLevelNumbering": "input",
368044
+ "lists.setLevelBullet": "input",
368045
+ "lists.setLevelPictureBullet": "input",
368046
+ "lists.setLevelAlignment": "input",
368047
+ "lists.setLevelIndents": "input",
368048
+ "lists.setLevelTrailingCharacter": "input",
368049
+ "lists.setLevelMarkerFont": "input",
368050
+ "lists.clearLevelOverrides": "input",
365507
368051
  "lists.convertToText": "input",
365508
368052
  "create.paragraph": "input",
365509
368053
  "create.heading": "input"
@@ -366682,6 +369226,17 @@ var init_operation_params = __esm(() => {
366682
369226
  ...LIST_TARGET_FLAT_PARAMS
366683
369227
  ],
366684
369228
  "doc.lists.setLevelRestart": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369229
+ "doc.lists.applyTemplate": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369230
+ "doc.lists.applyPreset": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369231
+ "doc.lists.captureTemplate": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369232
+ "doc.lists.setLevelNumbering": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369233
+ "doc.lists.setLevelBullet": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369234
+ "doc.lists.setLevelPictureBullet": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369235
+ "doc.lists.setLevelAlignment": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369236
+ "doc.lists.setLevelIndents": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369237
+ "doc.lists.setLevelTrailingCharacter": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369238
+ "doc.lists.setLevelMarkerFont": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
369239
+ "doc.lists.clearLevelOverrides": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
366685
369240
  "doc.lists.convertToText": [
366686
369241
  { name: "input", kind: "jsonFlag", flag: "input-json", type: "json" },
366687
369242
  ...LIST_TARGET_FLAT_PARAMS