ooxml-core 1.6.2 → 1.8.0

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 (308) hide show
  1. package/dist/automation/index.cjs +11143 -6014
  2. package/dist/automation/index.mjs +11143 -6014
  3. package/dist/collab/session.d.ts.map +1 -1
  4. package/dist/color/index.cjs +103 -0
  5. package/dist/color/index.d.ts +1 -0
  6. package/dist/color/index.d.ts.map +1 -1
  7. package/dist/color/index.mjs +94 -1
  8. package/dist/color/theme-palette.d.ts +55 -0
  9. package/dist/color/theme-palette.d.ts.map +1 -0
  10. package/dist/docx/layout/page-cursor.d.ts.map +1 -1
  11. package/dist/docx/model.d.ts +2 -2
  12. package/dist/docx/model.d.ts.map +1 -1
  13. package/dist/docx/style-numbering-package.d.ts.map +1 -1
  14. package/dist/docx/tab-stops.d.ts.map +1 -1
  15. package/dist/docx/table-styles.d.ts.map +1 -1
  16. package/dist/docx/write-drawing.d.ts.map +1 -1
  17. package/dist/docx/write-table.d.ts.map +1 -1
  18. package/dist/geometry/connector-router-astar.d.ts +24 -0
  19. package/dist/geometry/connector-router-astar.d.ts.map +1 -0
  20. package/dist/geometry/connector-router-graph.d.ts +38 -0
  21. package/dist/geometry/connector-router-graph.d.ts.map +1 -0
  22. package/dist/geometry/connector-router-types.d.ts +53 -0
  23. package/dist/geometry/connector-router-types.d.ts.map +1 -0
  24. package/dist/geometry/connector-router.d.ts +35 -0
  25. package/dist/geometry/connector-router.d.ts.map +1 -0
  26. package/dist/geometry/guide-formula-api.d.ts.map +1 -1
  27. package/dist/geometry/index.cjs +344 -0
  28. package/dist/geometry/index.d.ts +2 -0
  29. package/dist/geometry/index.d.ts.map +1 -1
  30. package/dist/geometry/index.mjs +327 -1
  31. package/dist/geometry/nudge.d.ts +12 -0
  32. package/dist/geometry/nudge.d.ts.map +1 -0
  33. package/dist/geometry/preset-shape-definitions-chart-marks.d.ts.map +1 -1
  34. package/dist/geometry/preset-shape-paths.d.ts +1 -1
  35. package/dist/geometry/preset-shape-paths.d.ts.map +1 -1
  36. package/dist/geometry/rotation-drag.d.ts +6 -0
  37. package/dist/geometry/rotation-drag.d.ts.map +1 -1
  38. package/dist/index.cjs +535 -3
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.mjs +535 -4
  42. package/dist/math/omml-to-latex.d.ts.map +1 -1
  43. package/dist/pptx/automation/index.cjs +7 -2
  44. package/dist/pptx/automation/index.d.ts.map +1 -1
  45. package/dist/pptx/chunks/index-Cn-GzYGp.d.ts.map +1 -1
  46. package/dist/pptx/cli/index.cjs +7 -2
  47. package/dist/pptx/converter/index.cjs +7 -2
  48. package/dist/pptx/index.cjs +7 -2
  49. package/dist/pptx/signature-node/index.cjs +37 -7
  50. package/dist/pptx/signature-node/index.d.ts.map +1 -1
  51. package/dist/pptx/signature-node/index.mjs +37 -7
  52. package/dist/pptx/ui/index.cjs +22 -24
  53. package/dist/pptx/ui/index.d.ts +14 -7
  54. package/dist/pptx/ui/index.d.ts.map +1 -1
  55. package/dist/pptx/ui/index.mjs +22 -24
  56. package/dist/ribbon/add-in.d.ts +53 -0
  57. package/dist/ribbon/add-in.d.ts.map +1 -0
  58. package/dist/ribbon/index.cjs +28 -0
  59. package/dist/ribbon/index.d.ts +2 -0
  60. package/dist/ribbon/index.d.ts.map +1 -0
  61. package/dist/ribbon/index.mjs +23 -0
  62. package/dist/teams/files.d.ts.map +1 -1
  63. package/dist/teams/index.cjs +36 -17
  64. package/dist/teams/index.mjs +36 -17
  65. package/dist/text/font-metrics/advance-width.d.ts +9 -0
  66. package/dist/text/font-metrics/advance-width.d.ts.map +1 -0
  67. package/dist/text/font-metrics/design-advances.generated.d.ts +12 -0
  68. package/dist/text/font-metrics/design-advances.generated.d.ts.map +1 -0
  69. package/dist/text/index.cjs +53 -0
  70. package/dist/text/index.d.ts +1 -0
  71. package/dist/text/index.d.ts.map +1 -1
  72. package/dist/text/index.mjs +52 -1
  73. package/dist/visio/clipboard-types.d.ts +8 -0
  74. package/dist/visio/clipboard-types.d.ts.map +1 -1
  75. package/dist/visio/clipboard-xml.d.ts.map +1 -1
  76. package/dist/visio/clipboard.d.ts.map +1 -1
  77. package/dist/visio/connector-route-avoid.d.ts +24 -0
  78. package/dist/visio/connector-route-avoid.d.ts.map +1 -0
  79. package/dist/visio/connector-route-walk.d.ts +37 -0
  80. package/dist/visio/connector-route-walk.d.ts.map +1 -0
  81. package/dist/visio/connector-route.d.ts +5 -2
  82. package/dist/visio/connector-route.d.ts.map +1 -1
  83. package/dist/visio/create-document.d.ts +6 -0
  84. package/dist/visio/create-document.d.ts.map +1 -1
  85. package/dist/visio/edit-change-shape-builtin.d.ts +18 -0
  86. package/dist/visio/edit-change-shape-builtin.d.ts.map +1 -0
  87. package/dist/visio/edit-change-shape-commands.d.ts +10 -4
  88. package/dist/visio/edit-change-shape-commands.d.ts.map +1 -1
  89. package/dist/visio/edit-change-shape.d.ts +3 -1
  90. package/dist/visio/edit-change-shape.d.ts.map +1 -1
  91. package/dist/visio/edit-commands.d.ts +7 -1
  92. package/dist/visio/edit-commands.d.ts.map +1 -1
  93. package/dist/visio/edit-connector-layout.d.ts +2 -2
  94. package/dist/visio/edit-connector-layout.d.ts.map +1 -1
  95. package/dist/visio/edit-connector-obstacles.d.ts +14 -0
  96. package/dist/visio/edit-connector-obstacles.d.ts.map +1 -0
  97. package/dist/visio/edit-connector-reroute.d.ts +7 -0
  98. package/dist/visio/edit-connector-reroute.d.ts.map +1 -1
  99. package/dist/visio/edit-connector.d.ts +2 -0
  100. package/dist/visio/edit-connector.d.ts.map +1 -1
  101. package/dist/visio/edit-delete.d.ts +4 -2
  102. package/dist/visio/edit-delete.d.ts.map +1 -1
  103. package/dist/visio/edit-duplicate-scope.d.ts +7 -2
  104. package/dist/visio/edit-duplicate-scope.d.ts.map +1 -1
  105. package/dist/visio/edit-duplicate.d.ts.map +1 -1
  106. package/dist/visio/edit-formatting-cell-admission.d.ts.map +1 -1
  107. package/dist/visio/edit-formatting-commands.d.ts +17 -0
  108. package/dist/visio/edit-formatting-commands.d.ts.map +1 -1
  109. package/dist/visio/edit-formatting-paint.d.ts.map +1 -1
  110. package/dist/visio/edit-formatting-scope.d.ts +6 -1
  111. package/dist/visio/edit-formatting-scope.d.ts.map +1 -1
  112. package/dist/visio/edit-formatting-text.d.ts.map +1 -1
  113. package/dist/visio/edit-formatting.d.ts.map +1 -1
  114. package/dist/visio/edit-group-formulas.d.ts +22 -0
  115. package/dist/visio/edit-group-formulas.d.ts.map +1 -0
  116. package/dist/visio/edit-group-rotation.d.ts +3 -1
  117. package/dist/visio/edit-group-rotation.d.ts.map +1 -1
  118. package/dist/visio/edit-group.d.ts +10 -3
  119. package/dist/visio/edit-group.d.ts.map +1 -1
  120. package/dist/visio/edit-instance-checks.d.ts +18 -0
  121. package/dist/visio/edit-instance-checks.d.ts.map +1 -0
  122. package/dist/visio/edit-instance-clipboard.d.ts +22 -0
  123. package/dist/visio/edit-instance-clipboard.d.ts.map +1 -0
  124. package/dist/visio/edit-instance-delete.d.ts +19 -0
  125. package/dist/visio/edit-instance-delete.d.ts.map +1 -0
  126. package/dist/visio/edit-instance-duplicate.d.ts +17 -0
  127. package/dist/visio/edit-instance-duplicate.d.ts.map +1 -0
  128. package/dist/visio/edit-instance-format.d.ts +31 -0
  129. package/dist/visio/edit-instance-format.d.ts.map +1 -0
  130. package/dist/visio/edit-instance-geometry.d.ts +21 -0
  131. package/dist/visio/edit-instance-geometry.d.ts.map +1 -0
  132. package/dist/visio/edit-instance-group.d.ts +18 -0
  133. package/dist/visio/edit-instance-group.d.ts.map +1 -0
  134. package/dist/visio/edit-instance-order.d.ts +16 -0
  135. package/dist/visio/edit-instance-order.d.ts.map +1 -0
  136. package/dist/visio/edit-instance-recalculate.d.ts +32 -0
  137. package/dist/visio/edit-instance-recalculate.d.ts.map +1 -0
  138. package/dist/visio/edit-instance-replace.d.ts +18 -0
  139. package/dist/visio/edit-instance-replace.d.ts.map +1 -0
  140. package/dist/visio/edit-instance-scope.d.ts +29 -0
  141. package/dist/visio/edit-instance-scope.d.ts.map +1 -0
  142. package/dist/visio/edit-instance-shape.d.ts +52 -0
  143. package/dist/visio/edit-instance-shape.d.ts.map +1 -0
  144. package/dist/visio/edit-instance-sheet.d.ts +52 -0
  145. package/dist/visio/edit-instance-sheet.d.ts.map +1 -0
  146. package/dist/visio/edit-layer-properties.d.ts +22 -0
  147. package/dist/visio/edit-layer-properties.d.ts.map +1 -0
  148. package/dist/visio/edit-master-drop.d.ts +39 -0
  149. package/dist/visio/edit-master-drop.d.ts.map +1 -0
  150. package/dist/visio/edit-master-index.d.ts.map +1 -1
  151. package/dist/visio/edit-master-instance-extras.d.ts +15 -0
  152. package/dist/visio/edit-master-instance-extras.d.ts.map +1 -0
  153. package/dist/visio/edit-master-instance-group.d.ts +25 -0
  154. package/dist/visio/edit-master-instance-group.d.ts.map +1 -0
  155. package/dist/visio/edit-master-instance.d.ts +42 -0
  156. package/dist/visio/edit-master-instance.d.ts.map +1 -0
  157. package/dist/visio/edit-master-scope.d.ts.map +1 -1
  158. package/dist/visio/edit-page-auto-size.d.ts.map +1 -1
  159. package/dist/visio/edit-page-layout.d.ts +15 -0
  160. package/dist/visio/edit-page-layout.d.ts.map +1 -0
  161. package/dist/visio/edit-page-setup-commands.d.ts +3 -1
  162. package/dist/visio/edit-page-setup-commands.d.ts.map +1 -1
  163. package/dist/visio/edit-page-theme-refresh.d.ts +4 -0
  164. package/dist/visio/edit-page-theme-refresh.d.ts.map +1 -0
  165. package/dist/visio/edit-page-theme.d.ts.map +1 -1
  166. package/dist/visio/edit-pages.d.ts.map +1 -1
  167. package/dist/visio/edit-paste.d.ts +3 -1
  168. package/dist/visio/edit-paste.d.ts.map +1 -1
  169. package/dist/visio/edit-recalculate-index.d.ts.map +1 -1
  170. package/dist/visio/edit-recalculate-values.d.ts.map +1 -1
  171. package/dist/visio/edit-shape-order.d.ts +19 -4
  172. package/dist/visio/edit-shape-order.d.ts.map +1 -1
  173. package/dist/visio/edit-snap-glue.d.ts +16 -0
  174. package/dist/visio/edit-snap-glue.d.ts.map +1 -0
  175. package/dist/visio/edit-stencil-connector-drop.d.ts +9 -0
  176. package/dist/visio/edit-stencil-connector-drop.d.ts.map +1 -0
  177. package/dist/visio/edit-stencil-connector-layout.d.ts +14 -0
  178. package/dist/visio/edit-stencil-connector-layout.d.ts.map +1 -0
  179. package/dist/visio/edit-stencil-connector-write.d.ts +16 -0
  180. package/dist/visio/edit-stencil-connector-write.d.ts.map +1 -0
  181. package/dist/visio/edit-stencil-connector.d.ts +29 -0
  182. package/dist/visio/edit-stencil-connector.d.ts.map +1 -0
  183. package/dist/visio/edit-stencil-master.d.ts +17 -0
  184. package/dist/visio/edit-stencil-master.d.ts.map +1 -0
  185. package/dist/visio/edit-text-instance.d.ts +21 -0
  186. package/dist/visio/edit-text-instance.d.ts.map +1 -0
  187. package/dist/visio/edit-text-ranges.d.ts.map +1 -1
  188. package/dist/visio/edit-text-scope.d.ts +6 -1
  189. package/dist/visio/edit-text-scope.d.ts.map +1 -1
  190. package/dist/visio/edit-text-size-formula.d.ts +17 -0
  191. package/dist/visio/edit-text-size-formula.d.ts.map +1 -0
  192. package/dist/visio/edit-text-size.d.ts +34 -0
  193. package/dist/visio/edit-text-size.d.ts.map +1 -0
  194. package/dist/visio/edit-text-target.d.ts +11 -1
  195. package/dist/visio/edit-text-target.d.ts.map +1 -1
  196. package/dist/visio/edit-text.d.ts +2 -1
  197. package/dist/visio/edit-text.d.ts.map +1 -1
  198. package/dist/visio/edit.d.ts +1 -1
  199. package/dist/visio/edit.d.ts.map +1 -1
  200. package/dist/visio/formula-evaluate.d.ts +2 -0
  201. package/dist/visio/formula-evaluate.d.ts.map +1 -1
  202. package/dist/visio/formula-functions.d.ts +13 -0
  203. package/dist/visio/formula-functions.d.ts.map +1 -0
  204. package/dist/visio/formula-numeric-functions.d.ts.map +1 -1
  205. package/dist/visio/formula.d.ts +14 -0
  206. package/dist/visio/formula.d.ts.map +1 -1
  207. package/dist/visio/index.cjs +11307 -5982
  208. package/dist/visio/index.d.ts +11 -1
  209. package/dist/visio/index.d.ts.map +1 -1
  210. package/dist/visio/index.mjs +11281 -5983
  211. package/dist/visio/line-jumps.d.ts +21 -0
  212. package/dist/visio/line-jumps.d.ts.map +1 -0
  213. package/dist/visio/master-list.d.ts +20 -0
  214. package/dist/visio/master-list.d.ts.map +1 -0
  215. package/dist/visio/model.d.ts +41 -0
  216. package/dist/visio/model.d.ts.map +1 -1
  217. package/dist/visio/page-layout.d.ts +40 -0
  218. package/dist/visio/page-layout.d.ts.map +1 -0
  219. package/dist/visio/page-theme.d.ts.map +1 -1
  220. package/dist/visio/parser.d.ts.map +1 -1
  221. package/dist/visio/shape-connections.d.ts +2 -2
  222. package/dist/visio/shape-connections.d.ts.map +1 -1
  223. package/dist/visio/snap-glue.d.ts +49 -0
  224. package/dist/visio/snap-glue.d.ts.map +1 -0
  225. package/dist/visio/stencil-master-part.d.ts +15 -0
  226. package/dist/visio/stencil-master-part.d.ts.map +1 -0
  227. package/dist/visio/stencil-masters.d.ts +19 -0
  228. package/dist/visio/stencil-masters.d.ts.map +1 -0
  229. package/dist/visio/stencil-windows.d.ts +20 -0
  230. package/dist/visio/stencil-windows.d.ts.map +1 -0
  231. package/dist/visio/stencils.d.ts +2 -0
  232. package/dist/visio/stencils.d.ts.map +1 -1
  233. package/dist/visio/style.d.ts +5 -0
  234. package/dist/visio/style.d.ts.map +1 -1
  235. package/dist/visio/text-extent.d.ts +40 -0
  236. package/dist/visio/text-extent.d.ts.map +1 -0
  237. package/dist/visio/text-fields.d.ts.map +1 -1
  238. package/dist/visio/theme-color-ref.d.ts +33 -0
  239. package/dist/visio/theme-color-ref.d.ts.map +1 -0
  240. package/dist/visio/ui/auto-connect.d.ts +80 -0
  241. package/dist/visio/ui/auto-connect.d.ts.map +1 -0
  242. package/dist/visio/ui/connection-points.d.ts +7 -2
  243. package/dist/visio/ui/connection-points.d.ts.map +1 -1
  244. package/dist/visio/ui/connector-preview.d.ts +3 -2
  245. package/dist/visio/ui/connector-preview.d.ts.map +1 -1
  246. package/dist/visio/ui/contract.d.ts +7 -2
  247. package/dist/visio/ui/contract.d.ts.map +1 -1
  248. package/dist/visio/ui/data-graphics.d.ts +6 -2
  249. package/dist/visio/ui/data-graphics.d.ts.map +1 -1
  250. package/dist/visio/ui/edit-commands.d.ts.map +1 -1
  251. package/dist/visio/ui/edit-error.d.ts +4 -1
  252. package/dist/visio/ui/edit-error.d.ts.map +1 -1
  253. package/dist/visio/ui/formatting.d.ts +27 -0
  254. package/dist/visio/ui/formatting.d.ts.map +1 -1
  255. package/dist/visio/ui/guides.d.ts +14 -0
  256. package/dist/visio/ui/guides.d.ts.map +1 -1
  257. package/dist/visio/ui/index.cjs +27125 -3841
  258. package/dist/visio/ui/index.d.ts +4 -0
  259. package/dist/visio/ui/index.d.ts.map +1 -1
  260. package/dist/visio/ui/index.mjs +27090 -3842
  261. package/dist/visio/ui/master-drop.d.ts +38 -0
  262. package/dist/visio/ui/master-drop.d.ts.map +1 -0
  263. package/dist/visio/ui/page-edit.d.ts.map +1 -1
  264. package/dist/visio/ui/ruler-grid.d.ts +45 -0
  265. package/dist/visio/ui/ruler-grid.d.ts.map +1 -0
  266. package/dist/visio/ui/sample-drawing.d.ts +9 -0
  267. package/dist/visio/ui/sample-drawing.d.ts.map +1 -0
  268. package/dist/visio/ui/scene-validation.d.ts.map +1 -1
  269. package/dist/visio/ui/shape-change.d.ts +16 -4
  270. package/dist/visio/ui/shape-change.d.ts.map +1 -1
  271. package/dist/visio/ui/shape-clipboard.d.ts.map +1 -1
  272. package/dist/visio/ui/shape-duplicate.d.ts +7 -1
  273. package/dist/visio/ui/shape-duplicate.d.ts.map +1 -1
  274. package/dist/visio/ui/shape-group.d.ts.map +1 -1
  275. package/dist/visio/ui/shape-move.d.ts +6 -0
  276. package/dist/visio/ui/shape-move.d.ts.map +1 -1
  277. package/dist/visio/ui/shape-order.d.ts +6 -1
  278. package/dist/visio/ui/shape-order.d.ts.map +1 -1
  279. package/dist/visio/ui/shape-resize.d.ts.map +1 -1
  280. package/dist/visio/ui/shape-rotation.d.ts +10 -1
  281. package/dist/visio/ui/shape-rotation.d.ts.map +1 -1
  282. package/dist/visio/ui/size-position.d.ts.map +1 -1
  283. package/dist/visio/ui/snapshot-scene.d.ts.map +1 -1
  284. package/dist/xlsx/conditional-extensions.d.ts.map +1 -1
  285. package/dist/xlsx/edit/cell-shift.d.ts.map +1 -1
  286. package/dist/xlsx/edit/shift-rule-anchors.d.ts +9 -0
  287. package/dist/xlsx/edit/shift-rule-anchors.d.ts.map +1 -0
  288. package/dist/xlsx/edit/structure.d.ts.map +1 -1
  289. package/dist/xlsx/edit/table-edits.d.ts.map +1 -1
  290. package/dist/xlsx/formula/engine-util.d.ts.map +1 -1
  291. package/dist/xlsx/index.cjs +55 -15
  292. package/dist/xlsx/index.mjs +55 -15
  293. package/dist/xlsx/load/index.cjs +70 -16
  294. package/dist/xlsx/load/index.mjs +70 -16
  295. package/dist/xlsx/load/text-decode.d.ts.map +1 -1
  296. package/dist/xlsx/model.d.ts +2 -0
  297. package/dist/xlsx/model.d.ts.map +1 -1
  298. package/dist/xlsx/read/package.d.ts.map +1 -1
  299. package/dist/xlsx/read/tables.d.ts.map +1 -1
  300. package/dist/xlsx/ui/commands/number.d.ts.map +1 -1
  301. package/dist/xlsx/ui/commands/util.d.ts.map +1 -1
  302. package/dist/xlsx/ui/index.cjs +26 -0
  303. package/dist/xlsx/ui/index.mjs +26 -0
  304. package/dist/xlsx/ui/ribbon/parts.d.ts.map +1 -1
  305. package/dist/xlsx/write/conditional.d.ts.map +1 -1
  306. package/dist/xlsx/write/styles.d.ts.map +1 -1
  307. package/dist/xlsx/write/table-patch.d.ts.map +1 -1
  308. package/package.json +7 -1
@@ -1,4 +1,12 @@
1
1
  import { n as PptxThemeColorSchemeName, t as PptxThemeColorRef } from "../chunks/color-ref-DT599vEx.js";
2
+ //#region color/theme-palette.d.ts
3
+ /** A luminance variant of a base theme colour. */
4
+ interface ThemePaletteVariant {
5
+ readonly kind: 'lighter' | 'darker';
6
+ /** Whole percent as Office labels it (80 for "Lighter 80%"). */
7
+ readonly percent: number;
8
+ }
9
+ //#endregion
2
10
  //#region pptx/ui/theme-color-swatches.d.ts
3
11
  /** One swatch of the theme palette. */
4
12
  export interface ThemeColorSwatch {
@@ -11,19 +19,18 @@ export interface ThemeColorSwatch {
11
19
  /** Structured variant, for hosts that localise the label themselves. */
12
20
  readonly variant: ThemeColorVariant | undefined;
13
21
  }
14
- /** A luminance variant of a base theme colour. */
15
- export interface ThemeColorVariant {
16
- readonly kind: 'lighter' | 'darker';
17
- /** Whole percent as PowerPoint labels it (80 for "Lighter 80%"). */
18
- readonly percent: number;
19
- }
22
+ /** A luminance variant of a base theme colour (the shared Office palette's). */
23
+ export type ThemeColorVariant = ThemePaletteVariant;
20
24
  /** One palette column: the base swatch followed by its five variants. */
21
25
  export interface ThemeColorSwatchColumn {
22
26
  readonly scheme: PptxThemeColorSchemeName;
23
27
  readonly base: ThemeColorSwatch;
24
28
  readonly variants: readonly ThemeColorSwatch[];
25
29
  }
26
- /** The five variants PowerPoint shows under a base colour of luminance `l` (0..1). */
30
+ /**
31
+ * The five variants PowerPoint shows under a base colour of luminance `l` (0..1). The rule is
32
+ * Office's, shared by every product: see `themePaletteVariantsForLuminance` in the color area.
33
+ */
27
34
  export declare function themeColorVariantsForLuminance(l: number): readonly ThemeColorVariant[];
28
35
  /** The `lumMod`/`lumOff` pair a variant serialises as. */
29
36
  export declare function themeColorVariantToRef(scheme: PptxThemeColorSchemeName, variant: ThemeColorVariant): PptxThemeColorRef;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../pptx/ui/theme-color-swatches.ts","../../../pptx/ui/theme-color-picker-state.ts"],"mappings":";;;iBAyBiB;;WAEP,KAAK;;WAEL;;WAEA;;WAEA,SAAS;;;iBAIF;WACP;;WAEA;;;iBAIO;WACP,QAAQ;WACR,MAAM;WACN,mBAAmB;;;wBA+Bb,+BAA+B,qBAAqB;;wBAiBpD,uBACf,QAAQ,0BACR,SAAS,oBACP;;wBAOa,yBACf,KAAK,mBACL,SAAS;;;;;wBAcM,uBAAuB,KAAK,oBAAoB;;;;;;;wBAiBhD,0BACf,eAAe,SAAS,+CACb;;;;iBCvHK;;WAEP;;WAEA,KAAK;;;wBAIC,oBACf,GAAG,+BACH,GAAG;;;;;;;;;;wBAuBY,wBACf,kBAAkB,0BAClB,KAAK,+BACL,0BACE;;wBA0Ba,kBAAkB,QAAQ,mBAAmB;;;;;wBAQ7C,kBAAkB,cAAc;;;;;;;wBAUhC,qBACf,kBAAkB,+CACI"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../color/theme-palette.ts","../../../pptx/ui/theme-color-swatches.ts","../../../pptx/ui/theme-color-picker-state.ts"],"mappings":";;;UAUiB;WACP;;WAEA;;;;;iBCkBO;;WAEP,KAAK;;WAEL;;WAEA;;WAEA,SAAS;;;YAIP,oBAAoB;;iBAGf;WACP,QAAQ;WACR,MAAM;WACN,mBAAmB;;;;;;wBA6Bb,+BAA+B,qBAAqB;;wBAKpD,uBACf,QAAQ,0BACR,SAAS,oBACP;;wBAKa,yBACf,KAAK,mBACL,SAAS;;;;;wBAcM,uBAAuB,KAAK,oBAAoB;;;;;;;wBAiBhD,0BACf,eAAe,SAAS,+CACb;;;;iBCzGK;;WAEP;;WAEA,KAAK;;;wBAIC,oBACf,GAAG,+BACH,GAAG;;;;;;;;;;wBAuBY,wBACf,kBAAkB,0BAClB,KAAK,+BACL,0BACE;;wBA0Ba,kBAAkB,QAAQ,mBAAmB;;;;;wBAQ7C,kBAAkB,cAAc;;;;;;;wBAUhC,qBACf,kBAAkB,+CACI"}
@@ -2,6 +2,22 @@ import { THEME_COLOR_PALETTE_COLUMNS } from '../../chunk-EP5BJIUW.mjs';
2
2
  import { resolveThemeColorRef, hexToRgbChannels, rgbToHsl } from '../../chunk-KII4AAYH.mjs';
3
3
  import '../../chunk-7P6ASYW6.mjs';
4
4
 
5
+ // color/theme-palette.ts
6
+ var lighter = (percent) => ({ kind: "lighter", percent });
7
+ var darker = (percent) => ({ kind: "darker", percent });
8
+ function themePaletteVariantsForLuminance(l) {
9
+ if (l < 0.05) return [lighter(50), lighter(35), lighter(25), lighter(15), lighter(5)];
10
+ if (l < 0.25) return [lighter(90), lighter(75), lighter(50), lighter(25), lighter(10)];
11
+ if (l < 0.75) return [lighter(80), lighter(60), lighter(40), darker(25), darker(50)];
12
+ if (l < 0.95) return [darker(10), darker(25), darker(50), darker(75), darker(90)];
13
+ return [darker(5), darker(15), darker(25), darker(35), darker(50)];
14
+ }
15
+ function themePaletteVariantLuminance(variant) {
16
+ const fraction = variant.percent / 100;
17
+ const lumMod = Math.round((1 - fraction) * 1e5) / 1e5;
18
+ return variant.kind === "lighter" ? { lumMod, lumOff: fraction } : { lumMod };
19
+ }
20
+
5
21
  // pptx/ui/theme-color-swatches.ts
6
22
  var COLUMN_LABELS = {
7
23
  bg1: "Background 1",
@@ -21,31 +37,13 @@ var COLUMN_LABELS = {
21
37
  hlink: "Hyperlink",
22
38
  folHlink: "Followed Hyperlink"
23
39
  };
24
- function lighter(percent) {
25
- return { kind: "lighter", percent };
26
- }
27
- function darker(percent) {
28
- return { kind: "darker", percent };
29
- }
40
+ var lighter2 = (percent) => ({ kind: "lighter", percent });
41
+ var darker2 = (percent) => ({ kind: "darker", percent });
30
42
  function themeColorVariantsForLuminance(l) {
31
- if (l < 0.05) {
32
- return [lighter(50), lighter(35), lighter(25), lighter(15), lighter(5)];
33
- }
34
- if (l < 0.25) {
35
- return [lighter(90), lighter(75), lighter(50), lighter(25), lighter(10)];
36
- }
37
- if (l < 0.75) {
38
- return [lighter(80), lighter(60), lighter(40), darker(25), darker(50)];
39
- }
40
- if (l < 0.95) {
41
- return [darker(10), darker(25), darker(50), darker(75), darker(90)];
42
- }
43
- return [darker(5), darker(15), darker(25), darker(35), darker(50)];
43
+ return themePaletteVariantsForLuminance(l);
44
44
  }
45
45
  function themeColorVariantToRef(scheme, variant) {
46
- const fraction = variant.percent / 100;
47
- const lumMod = Math.round((1 - fraction) * 1e5) / 1e5;
48
- return variant.kind === "lighter" ? { scheme, lumMod, lumOff: fraction } : { scheme, lumMod };
46
+ return { scheme, ...themePaletteVariantLuminance(variant) };
49
47
  }
50
48
  function describeThemeColorSwatch(ref, variant) {
51
49
  const column = COLUMN_LABELS[ref.scheme] ?? ref.scheme;
@@ -61,9 +59,9 @@ function themeColorVariantOfRef(ref) {
61
59
  }
62
60
  const percent = Math.round((1 - ref.lumMod) * 100);
63
61
  if (ref.lumOff !== void 0) {
64
- return Math.round(ref.lumOff * 100) === percent ? lighter(percent) : void 0;
62
+ return Math.round(ref.lumOff * 100) === percent ? lighter2(percent) : void 0;
65
63
  }
66
- return darker(percent);
64
+ return darker2(percent);
67
65
  }
68
66
  function buildThemeColorSwatchGrid(themeColorMap) {
69
67
  if (!themeColorMap) {
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Ribbon add-in tabs: tabs a host application adds after a product's own, as an Office add-in
3
+ * does (the ACROBAT tab in Visio and Excel). The descriptor is plain data, so one tab works in
4
+ * every editor and every framework binding; the DOM that renders it lives in `ooxml-ui`
5
+ * (`syncRibbonAddIns`) and in the PowerPoint ribbon descriptors.
6
+ */
7
+ /** One command of an add-in group. With `items` it is a drop-down of those commands. */
8
+ export interface RibbonAddInCommand {
9
+ /** Unique within the tab; reported in the event detail. */
10
+ id: string;
11
+ label: string;
12
+ /** A name from the shared icon set (`registerIcon` of `ooxml-ui` adds the host's own). */
13
+ icon?: string;
14
+ /** `large` (the default) stacks the icon over the label; `small` commands fill columns of three. */
15
+ size?: 'large' | 'small';
16
+ /** Tooltip; the label when omitted. */
17
+ title?: string;
18
+ disabled?: boolean;
19
+ items?: readonly RibbonAddInCommand[];
20
+ run?: () => void;
21
+ }
22
+ export interface RibbonAddInGroup {
23
+ label: string;
24
+ commands: readonly RibbonAddInCommand[];
25
+ }
26
+ export interface RibbonAddInTab {
27
+ /** Unique among the add-in tabs and different from the product's tab ids (`home`, `insert`...). */
28
+ id: string;
29
+ label: string;
30
+ /** Key tip of the tab, for products that show key tips. */
31
+ keytip?: string;
32
+ groups: readonly RibbonAddInGroup[];
33
+ }
34
+ /** Name of the DOM event an editor dispatches when an add-in command is chosen. */
35
+ export declare const RIBBON_ADD_IN_EVENT = "office-ribbon-add-in";
36
+ /** Detail of the `office-ribbon-add-in` event: the tab and the command that was chosen. */
37
+ export interface RibbonAddInCommandDetail {
38
+ tab: string;
39
+ command: string;
40
+ }
41
+ /**
42
+ * The tabs a ribbon may show, in order: a tab whose id is empty, repeated or one of `reserved`
43
+ * (the product's own tab ids) is left out, so an add-in can never replace a built-in tab.
44
+ */
45
+ export declare function acceptedRibbonAddIns(tabs: readonly RibbonAddInTab[] | null | undefined, reserved?: Iterable<string>): RibbonAddInTab[];
46
+ /** Every command of a tab, drop-down items included, in document order. */
47
+ export declare function ribbonAddInCommands(tab: RibbonAddInTab): RibbonAddInCommand[];
48
+ /**
49
+ * The enabled command `id` of the tab, or undefined when it is unknown or disabled. Renderers
50
+ * call this before running a command, so a disabled command never runs however it was reached.
51
+ */
52
+ export declare function findRibbonAddInCommand(tab: RibbonAddInTab, id: string | undefined): RibbonAddInCommand | undefined;
53
+ //# sourceMappingURL=add-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-in.d.ts","sourceRoot":"","sources":["../../ribbon/add-in.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wFAAwF;AACxF,MAAM,WAAW,kBAAkB;IAClC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oGAAoG;IACpG,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC9B,mGAAmG;IACnG,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpC;AAED,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAE1D,2FAA2F;AAC3F,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,EAClD,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAM,GAC7B,cAAc,EAAE,CASlB;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,GAAG,kBAAkB,EAAE,CAI7E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,MAAM,GAAG,SAAS,GACpB,kBAAkB,GAAG,SAAS,CAIhC"}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ // ribbon/add-in.ts
4
+ var RIBBON_ADD_IN_EVENT = "office-ribbon-add-in";
5
+ function acceptedRibbonAddIns(tabs, reserved = []) {
6
+ const taken = new Set(reserved);
7
+ const accepted = [];
8
+ for (const tab of tabs ?? []) {
9
+ if (!tab || typeof tab.id !== "string" || !tab.id || taken.has(tab.id)) continue;
10
+ taken.add(tab.id);
11
+ accepted.push(tab);
12
+ }
13
+ return accepted;
14
+ }
15
+ function ribbonAddInCommands(tab) {
16
+ const flatten = (commands) => commands.flatMap((command) => [command, ...flatten(command.items ?? [])]);
17
+ return flatten(tab.groups.flatMap((group) => group.commands));
18
+ }
19
+ function findRibbonAddInCommand(tab, id) {
20
+ if (id === void 0) return void 0;
21
+ const command = ribbonAddInCommands(tab).find((candidate) => candidate.id === id);
22
+ return command && !command.disabled ? command : void 0;
23
+ }
24
+
25
+ exports.RIBBON_ADD_IN_EVENT = RIBBON_ADD_IN_EVENT;
26
+ exports.acceptedRibbonAddIns = acceptedRibbonAddIns;
27
+ exports.findRibbonAddInCommand = findRibbonAddInCommand;
28
+ exports.ribbonAddInCommands = ribbonAddInCommands;
@@ -0,0 +1,2 @@
1
+ export * from './add-in.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ribbon/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,23 @@
1
+ // ribbon/add-in.ts
2
+ var RIBBON_ADD_IN_EVENT = "office-ribbon-add-in";
3
+ function acceptedRibbonAddIns(tabs, reserved = []) {
4
+ const taken = new Set(reserved);
5
+ const accepted = [];
6
+ for (const tab of tabs ?? []) {
7
+ if (!tab || typeof tab.id !== "string" || !tab.id || taken.has(tab.id)) continue;
8
+ taken.add(tab.id);
9
+ accepted.push(tab);
10
+ }
11
+ return accepted;
12
+ }
13
+ function ribbonAddInCommands(tab) {
14
+ const flatten = (commands) => commands.flatMap((command) => [command, ...flatten(command.items ?? [])]);
15
+ return flatten(tab.groups.flatMap((group) => group.commands));
16
+ }
17
+ function findRibbonAddInCommand(tab, id) {
18
+ if (id === void 0) return void 0;
19
+ const command = ribbonAddInCommands(tab).find((candidate) => candidate.id === id);
20
+ return command && !command.disabled ? command : void 0;
21
+ }
22
+
23
+ export { RIBBON_ADD_IN_EVENT, acceptedRibbonAddIns, findRibbonAddInCommand, ribbonAddInCommands };
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../teams/files.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3D,KAAK,QAAQ,GAAG,cAAc,GAAG,IAAI,CAAC;AACtC,UAAU,WAAW;IACpB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,SAAS,IAAI,OAAO,CAAC;IACrB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;CAC1E;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,WAAW,GAClB,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,aAAa,GAAG,gBAAgB,CAAC,CAoGtE"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../teams/files.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE3D,KAAK,QAAQ,GAAG,cAAc,GAAG,IAAI,CAAC;AACtC,UAAU,WAAW;IACpB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,SAAS,IAAI,OAAO,CAAC;IACrB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;CAC1E;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,WAAW,GAClB,IAAI,CAAC,WAAW,EAAE,cAAc,GAAG,aAAa,GAAG,gBAAgB,CAAC,CAoGtE"}
@@ -35,8 +35,13 @@ var encoding__namespace = /*#__PURE__*/_interopNamespace(encoding);
35
35
 
36
36
  var __defProp = Object.defineProperty;
37
37
  var __getOwnPropNames = Object.getOwnPropertyNames;
38
- var __esm = (fn, res) => function __init() {
39
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
38
+ var __esm = (fn, res, err2) => function __init() {
39
+ if (err2) throw err2[0];
40
+ try {
41
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
42
+ } catch (e) {
43
+ throw err2 = [e], e;
44
+ }
40
45
  };
41
46
  var __export = (target, all2) => {
42
47
  for (var name in all2)
@@ -18722,6 +18727,8 @@ function parseTable(xml, partName) {
18722
18727
  const columns = xChildren(xFirst(root, "tableColumns") ?? root, "tableColumn").map(
18723
18728
  (node) => {
18724
18729
  const column = { name: att(node, "name") ?? "" };
18730
+ const id = numAttr(node, "id");
18731
+ if (id !== void 0 && Number.isInteger(id) && id >= 0) column.sourceId = id;
18725
18732
  const fn = att(node, "totalsRowFunction");
18726
18733
  if (fn && fn !== "none") column.totalsRowFunction = fn;
18727
18734
  const label2 = att(node, "totalsRowLabel");
@@ -19085,7 +19092,22 @@ function tableFilterRange(table2) {
19085
19092
  end: { ...table2.range.end, row: table2.range.end.row - (table2.totalsRow ? 1 : 0) }
19086
19093
  };
19087
19094
  }
19088
- function patchAutoFilter(doc, root, table2, before) {
19095
+ function sourceColumnsForPatch(root, table2, names2) {
19096
+ const list = xKid(root, "tableColumns");
19097
+ const source2 = list ? xKids(list, "tableColumn") : [];
19098
+ const byId = new Map(source2.map((c2) => [Number(c2.getAttribute("id")), c2]));
19099
+ const byName = new Map(source2.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2]));
19100
+ const tracked = table2.partName !== void 0 || table2.columns.some((c2) => c2.sourceId !== void 0);
19101
+ const used = /* @__PURE__ */ new Set();
19102
+ return names2.map((name, index2) => {
19103
+ const id = table2.columns[index2]?.sourceId;
19104
+ const match2 = id !== void 0 ? byId.get(id) : tracked ? void 0 : source2.length === names2.length ? source2[index2] : byName.get(name.toLowerCase());
19105
+ if (!match2 || used.has(match2)) return void 0;
19106
+ used.add(match2);
19107
+ return match2;
19108
+ });
19109
+ }
19110
+ function patchAutoFilter(doc, root, table2, before, names2) {
19089
19111
  const existing = xKid(root, "autoFilter");
19090
19112
  if (!table2.headerRow) {
19091
19113
  if (existing) root.removeChild(existing);
@@ -19094,10 +19116,14 @@ function patchAutoFilter(doc, root, table2, before) {
19094
19116
  const filter2 = existing ?? doc.createElementNS(NS.x, "autoFilter");
19095
19117
  const range = tableFilterRange(table2);
19096
19118
  filter2.setAttribute("ref", formatRange(range));
19097
- const width = range.end.col - range.start.col + 1;
19119
+ const list = xKid(root, "tableColumns");
19120
+ const original = list ? xKids(list, "tableColumn") : [];
19121
+ const current = new Map(sourceColumnsForPatch(root, table2, names2).map((c2, index2) => [c2, index2]));
19098
19122
  for (const column of xKids(filter2, "filterColumn")) {
19099
- const colId = Number(column.getAttribute("colId") ?? "0");
19100
- if (!(colId < width)) filter2.removeChild(column);
19123
+ const old = original[Number(column.getAttribute("colId") ?? "0")];
19124
+ const index2 = old ? current.get(old) : void 0;
19125
+ if (index2 === void 0) filter2.removeChild(column);
19126
+ else column.setAttribute("colId", num(index2));
19101
19127
  }
19102
19128
  if (!existing) insertBefore(root, filter2, ["sortState", "tableColumns"]);
19103
19129
  const sort2 = xKid(filter2, "sortState") ?? xKid(root, "sortState");
@@ -19130,18 +19156,11 @@ function patchColumns(doc, root, sheet, table2, names2) {
19130
19156
  insertBefore(root, list, ["tableStyleInfo", "extLst"]);
19131
19157
  }
19132
19158
  const sourceColumns = xKids(list, "tableColumn");
19133
- const byName = new Map(
19134
- sourceColumns.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2])
19135
- );
19136
- const sameCount = sourceColumns.length === names2.length;
19137
- const used = /* @__PURE__ */ new Set();
19138
19159
  const ids = /* @__PURE__ */ new Set();
19139
- const picked = names2.map((name, index2) => {
19140
- const match2 = sameCount ? sourceColumns[index2] : byName.get(name.toLowerCase());
19141
- if (!match2 || used.has(match2)) return void 0;
19142
- used.add(match2);
19160
+ const picked = sourceColumnsForPatch(root, table2, names2).map((match2) => {
19161
+ if (!match2) return void 0;
19143
19162
  const id = Number(match2.getAttribute("id"));
19144
- if (Number.isInteger(id) && id > 0 && !ids.has(id)) ids.add(id);
19163
+ if (Number.isInteger(id) && id >= 0 && !ids.has(id)) ids.add(id);
19145
19164
  else match2.removeAttribute("id");
19146
19165
  return match2;
19147
19166
  });
@@ -19214,7 +19233,7 @@ function patchTableXml(sourceXml, sheet, table2, id, names2) {
19214
19233
  root.removeAttribute("totalsRowCount");
19215
19234
  if (!root.hasAttribute("totalsRowShown")) root.setAttribute("totalsRowShown", "0");
19216
19235
  }
19217
- patchAutoFilter(doc, root, table2, before);
19236
+ patchAutoFilter(doc, root, table2, before, names2);
19218
19237
  patchColumns(doc, root, sheet, table2, names2);
19219
19238
  patchStyleInfo(doc, root, table2);
19220
19239
  return buildXml(doc);
@@ -8,8 +8,13 @@ import * as encoding from 'lib0/encoding';
8
8
 
9
9
  var __defProp = Object.defineProperty;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
- var __esm = (fn, res) => function __init() {
12
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ var __esm = (fn, res, err2) => function __init() {
12
+ if (err2) throw err2[0];
13
+ try {
14
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
15
+ } catch (e) {
16
+ throw err2 = [e], e;
17
+ }
13
18
  };
14
19
  var __export = (target, all2) => {
15
20
  for (var name in all2)
@@ -18695,6 +18700,8 @@ function parseTable(xml, partName) {
18695
18700
  const columns = xChildren(xFirst(root, "tableColumns") ?? root, "tableColumn").map(
18696
18701
  (node) => {
18697
18702
  const column = { name: att(node, "name") ?? "" };
18703
+ const id = numAttr(node, "id");
18704
+ if (id !== void 0 && Number.isInteger(id) && id >= 0) column.sourceId = id;
18698
18705
  const fn = att(node, "totalsRowFunction");
18699
18706
  if (fn && fn !== "none") column.totalsRowFunction = fn;
18700
18707
  const label2 = att(node, "totalsRowLabel");
@@ -19058,7 +19065,22 @@ function tableFilterRange(table2) {
19058
19065
  end: { ...table2.range.end, row: table2.range.end.row - (table2.totalsRow ? 1 : 0) }
19059
19066
  };
19060
19067
  }
19061
- function patchAutoFilter(doc, root, table2, before) {
19068
+ function sourceColumnsForPatch(root, table2, names2) {
19069
+ const list = xKid(root, "tableColumns");
19070
+ const source2 = list ? xKids(list, "tableColumn") : [];
19071
+ const byId = new Map(source2.map((c2) => [Number(c2.getAttribute("id")), c2]));
19072
+ const byName = new Map(source2.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2]));
19073
+ const tracked = table2.partName !== void 0 || table2.columns.some((c2) => c2.sourceId !== void 0);
19074
+ const used = /* @__PURE__ */ new Set();
19075
+ return names2.map((name, index2) => {
19076
+ const id = table2.columns[index2]?.sourceId;
19077
+ const match2 = id !== void 0 ? byId.get(id) : tracked ? void 0 : source2.length === names2.length ? source2[index2] : byName.get(name.toLowerCase());
19078
+ if (!match2 || used.has(match2)) return void 0;
19079
+ used.add(match2);
19080
+ return match2;
19081
+ });
19082
+ }
19083
+ function patchAutoFilter(doc, root, table2, before, names2) {
19062
19084
  const existing = xKid(root, "autoFilter");
19063
19085
  if (!table2.headerRow) {
19064
19086
  if (existing) root.removeChild(existing);
@@ -19067,10 +19089,14 @@ function patchAutoFilter(doc, root, table2, before) {
19067
19089
  const filter2 = existing ?? doc.createElementNS(NS.x, "autoFilter");
19068
19090
  const range = tableFilterRange(table2);
19069
19091
  filter2.setAttribute("ref", formatRange(range));
19070
- const width = range.end.col - range.start.col + 1;
19092
+ const list = xKid(root, "tableColumns");
19093
+ const original = list ? xKids(list, "tableColumn") : [];
19094
+ const current = new Map(sourceColumnsForPatch(root, table2, names2).map((c2, index2) => [c2, index2]));
19071
19095
  for (const column of xKids(filter2, "filterColumn")) {
19072
- const colId = Number(column.getAttribute("colId") ?? "0");
19073
- if (!(colId < width)) filter2.removeChild(column);
19096
+ const old = original[Number(column.getAttribute("colId") ?? "0")];
19097
+ const index2 = old ? current.get(old) : void 0;
19098
+ if (index2 === void 0) filter2.removeChild(column);
19099
+ else column.setAttribute("colId", num(index2));
19074
19100
  }
19075
19101
  if (!existing) insertBefore(root, filter2, ["sortState", "tableColumns"]);
19076
19102
  const sort2 = xKid(filter2, "sortState") ?? xKid(root, "sortState");
@@ -19103,18 +19129,11 @@ function patchColumns(doc, root, sheet, table2, names2) {
19103
19129
  insertBefore(root, list, ["tableStyleInfo", "extLst"]);
19104
19130
  }
19105
19131
  const sourceColumns = xKids(list, "tableColumn");
19106
- const byName = new Map(
19107
- sourceColumns.map((c2) => [(c2.getAttribute("name") ?? "").toLowerCase(), c2])
19108
- );
19109
- const sameCount = sourceColumns.length === names2.length;
19110
- const used = /* @__PURE__ */ new Set();
19111
19132
  const ids = /* @__PURE__ */ new Set();
19112
- const picked = names2.map((name, index2) => {
19113
- const match2 = sameCount ? sourceColumns[index2] : byName.get(name.toLowerCase());
19114
- if (!match2 || used.has(match2)) return void 0;
19115
- used.add(match2);
19133
+ const picked = sourceColumnsForPatch(root, table2, names2).map((match2) => {
19134
+ if (!match2) return void 0;
19116
19135
  const id = Number(match2.getAttribute("id"));
19117
- if (Number.isInteger(id) && id > 0 && !ids.has(id)) ids.add(id);
19136
+ if (Number.isInteger(id) && id >= 0 && !ids.has(id)) ids.add(id);
19118
19137
  else match2.removeAttribute("id");
19119
19138
  return match2;
19120
19139
  });
@@ -19187,7 +19206,7 @@ function patchTableXml(sourceXml, sheet, table2, id, names2) {
19187
19206
  root.removeAttribute("totalsRowCount");
19188
19207
  if (!root.hasAttribute("totalsRowShown")) root.setAttribute("totalsRowShown", "0");
19189
19208
  }
19190
- patchAutoFilter(doc, root, table2, before);
19209
+ patchAutoFilter(doc, root, table2, before, names2);
19191
19210
  patchColumns(doc, root, sheet, table2, names2);
19192
19211
  patchStyleInfo(doc, root, table2);
19193
19212
  return buildXml(doc);
@@ -0,0 +1,9 @@
1
+ /** Whether `family` has measured design advances (regular and bold upright faces). */
2
+ export declare const hasDesignAdvances: (family: string) => boolean;
3
+ /**
4
+ * The unhinted, unkerned width of `text` in em (multiply by the font size) from the font's own
5
+ * advance widths. `undefined` when the family was not measured or a character is outside
6
+ * printable ASCII: a caller that needs a width it can rely on must not get a guess.
7
+ */
8
+ export declare function designTextWidthEm(text: string, family: string, bold?: boolean): number | undefined;
9
+ //# sourceMappingURL=advance-width.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advance-width.d.ts","sourceRoot":"","sources":["../../../text/font-metrics/advance-width.ts"],"names":[],"mappings":"AAiBA,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,WAAY,MAAM,KAAG,OAAoC,CAAC;AAExF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,GAAG,SAAS,CAUhG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Unhinted glyph advances per 1000 em for printable ASCII (code points 32 to 126, in order),
3
+ * regular and bold, as Visio 16 measures them: `TEXTWIDTH` of a repeated character at 100 pt
4
+ * (`scripts/record-visio-glyph-advances.ps1`). They equal the font files' own advance widths
5
+ * (Calibri "P" is 1058/2048 em), so they suit any layout that does not hint or kern.
6
+ * GENERATED by `scripts/make-visio-advance-table.py`: do not edit by hand.
7
+ */
8
+ export declare const DESIGN_ADVANCES: Readonly<Record<string, {
9
+ readonly regular: string;
10
+ readonly bold: string;
11
+ }>>;
12
+ //# sourceMappingURL=design-advances.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-advances.generated.d.ts","sourceRoot":"","sources":["../../../text/font-metrics/design-advances.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CACrC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BnE,CAAC"}
@@ -314,15 +314,68 @@ function changeTextCaseRanges(text, mode, boundaries = []) {
314
314
  return ranges;
315
315
  }
316
316
 
317
+ // text/font-metrics/design-advances.generated.ts
318
+ var DESIGN_ADVANCES = {
319
+ arial: {
320
+ regular: "277.83 277.83 354.98 556.15 556.15 889.16 666.99 190.92 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 277.83 277.83 583.98 583.98 583.98 556.15 1015.14 666.99 666.99 722.17 722.17 666.99 610.84 777.83 722.17 277.83 500 666.99 556.15 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 277.83 277.83 277.83 469.24 556.15 333.01 556.15 556.15 500 556.15 556.15 277.83 556.15 556.15 222.17 222.17 500 222.17 833.01 556.15 556.15 556.15 556.15 333.01 500 277.83 556.15 500 722.17 500 500 500 333.98 259.77 333.98 583.98",
321
+ bold: "277.83 333.01 474.12 556.15 556.15 889.16 722.17 237.79 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 333.01 333.01 583.98 583.98 583.98 610.84 975.1 722.17 722.17 722.17 722.17 666.99 610.84 777.83 722.17 277.83 556.15 722.17 610.84 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 333.01 277.83 333.01 583.98 556.15 333.01 556.15 610.84 556.15 610.84 556.15 333.01 610.84 610.84 277.83 277.83 556.15 277.83 889.16 610.84 610.84 610.84 610.84 389.16 556.15 333.01 610.84 556.15 777.83 556.15 556.15 500 389.16 279.79 389.16 583.98"
322
+ },
323
+ calibri: {
324
+ regular: "226.07 325.68 400.88 498.05 506.83 714.85 682.13 220.7 303.22 303.22 498.05 498.05 249.51 306.15 252.44 386.23 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 267.58 267.58 498.05 498.05 498.05 463.38 894.04 578.61 543.95 533.2 615.23 488.28 459.47 630.86 623.05 251.95 318.85 519.53 420.41 854.98 645.51 662.11 516.6 672.85 542.97 459.47 487.3 641.6 567.38 889.65 519.04 487.3 468.26 306.64 386.23 306.64 498.05 498.05 291.02 479 525.39 422.85 525.39 497.56 305.18 470.7 525.39 229.49 239.26 454.59 229.49 798.83 525.39 527.34 525.39 525.39 348.63 391.11 334.96 525.39 451.66 714.85 433.11 452.64 395.02 314.45 460.45 314.45 498.05",
325
+ bold: "226.07 325.68 438.48 498.05 506.83 729 704.59 233.4 311.52 311.52 498.05 498.05 257.81 306.15 267.09 429.69 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 275.88 275.88 498.05 498.05 498.05 463.38 898.44 605.96 560.55 529.3 630.37 487.79 458.98 637.21 630.86 266.6 331.05 546.88 422.85 874.02 658.69 676.27 532.23 686.04 562.99 472.66 495.12 652.83 591.31 906.25 550.78 519.53 478.03 324.71 429.69 324.71 498.05 498.05 300.29 493.65 536.62 418.46 536.62 503.42 316.41 474.12 536.62 245.6 255.37 479.98 245.6 813.48 536.62 537.6 536.62 536.62 355.47 398.93 346.68 536.62 473.14 745.12 459.47 473.63 397.46 343.75 475.1 343.75 498.05"
326
+ },
327
+ "calibri light": {
328
+ regular: "226.07 325.68 380.37 498.05 506.83 707.03 669.92 213.87 298.83 298.83 498.05 498.05 244.63 306.15 244.63 362.3 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 262.69 262.69 498.05 498.05 498.05 463.38 891.6 563.48 535.16 535.16 606.93 488.77 459.96 627.44 619.14 244.14 312.5 504.4 418.94 844.73 638.18 654.3 507.81 666.02 532.23 452.64 483.4 635.74 554.2 880.86 501.46 469.24 463.38 296.88 362.3 296.88 498.05 498.05 286.13 470.7 519.53 425.29 519.53 494.14 298.83 468.75 519.53 220.7 229.98 440.92 220.7 791.02 519.53 521.49 519.53 519.53 344.73 386.72 328.61 519.53 439.94 698.73 418.46 440.92 393.56 298.83 452.64 298.83 498.05",
329
+ bold: "222.17 319.82 373.54 488.77 497.56 693.85 657.23 209.96 293.46 293.46 488.77 488.77 240.24 300.78 240.24 355.96 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 258.3 258.3 488.77 488.77 488.77 454.59 874.51 552.74 525.39 525.39 595.7 479.49 451.66 615.72 607.42 239.75 307.13 495.12 411.13 828.61 625.98 642.09 498.54 653.32 522.46 444.34 474.61 624.02 543.95 864.26 492.19 460.45 454.59 291.5 355.96 291.5 488.77 488.77 281.25 461.92 509.77 417.48 509.77 484.86 293.46 459.96 509.77 216.8 226.07 432.62 216.8 775.88 509.77 511.72 509.77 509.77 338.38 379.88 322.75 509.77 431.64 685.55 410.64 432.62 386.23 293.46 444.34 293.46 488.77"
330
+ },
331
+ "segoe ui": {
332
+ regular: "273.93 284.18 392.09 590.82 539.06 818.36 800.29 229.98 301.76 301.76 416.99 684.08 216.8 399.9 216.8 389.65 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 216.8 216.8 684.08 684.08 684.08 448.24 955.08 645.02 573.24 619.14 701.17 505.86 488.28 686.04 709.96 266.11 356.94 580.08 470.7 897.95 748.05 753.91 560.06 753.91 598.14 531.25 523.93 687.01 621.09 934.08 589.85 552.74 570.31 301.76 378.91 301.76 684.08 415.04 268.07 508.79 587.89 461.92 588.87 522.95 312.99 588.87 565.92 242.19 242.19 497.07 242.19 861.33 565.92 585.94 587.89 588.87 347.66 424.32 338.87 565.92 479 722.66 458.98 483.89 452.15 301.76 239.26 301.76 684.08",
333
+ bold: "275.88 327.15 493.17 592.29 575.2 867.19 849.61 292.97 369.14 369.14 455.08 707.03 271 404.3 271 443.36 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 271 271 707.03 707.03 707.03 437.99 954.1 703.12 641.11 624.02 737.31 532.23 520.02 710.94 766.11 316.89 445.31 648.93 511.23 957.03 790.04 758.3 614.26 758.3 652.83 560.55 585.94 723.14 666.99 1004.88 655.27 606.93 606.93 369.14 436.04 369.14 707.03 415.04 313.96 538.09 620.12 479.98 619.14 541.02 383.3 619.14 602.05 284.18 284.18 559.08 284.18 916.01 604.98 611.33 620.12 619.14 397.95 439.94 389.16 604.98 541.99 797.36 552.25 538.09 479 369.14 326.17 369.14 707.03"
334
+ },
335
+ "times new roman": {
336
+ regular: "250 333.01 408.2 500 500 833.01 777.83 180.18 333.01 333.01 500 563.96 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 277.83 277.83 563.96 563.96 563.96 443.85 920.9 722.17 666.99 666.99 722.17 610.84 556.15 722.17 722.17 333.01 389.16 722.17 610.84 889.16 722.17 722.17 556.15 722.17 666.99 556.15 610.84 722.17 722.17 943.85 722.17 722.17 610.84 333.01 277.83 333.01 469.24 500 333.01 443.85 500 443.85 500 443.85 333.01 500 500 277.83 277.83 500 277.83 777.83 500 500 500 500 333.01 389.16 277.83 500 500 722.17 500 500 443.85 479.98 200.2 479.98 541.02",
337
+ bold: "250 333.01 555.17 500 500 1000 833.01 277.83 333.01 333.01 500 569.83 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 333.01 333.01 569.83 569.83 569.83 500 930.18 722.17 666.99 722.17 722.17 666.99 610.84 777.83 777.83 389.16 500 777.83 666.99 943.85 722.17 777.83 610.84 777.83 722.17 556.15 666.99 722.17 722.17 1000 722.17 722.17 666.99 333.01 277.83 333.01 581.06 500 333.01 500 556.15 443.85 556.15 443.85 333.01 500 556.15 277.83 333.01 556.15 277.83 833.01 556.15 500 556.15 556.15 443.85 389.16 333.01 556.15 500 722.17 500 500 443.85 394.04 220.22 394.04 520.02"
338
+ }
339
+ };
340
+
341
+ // text/font-metrics/advance-width.ts
342
+ var FIRST = 32;
343
+ var decoded = /* @__PURE__ */ new Map();
344
+ function advances(family, bold) {
345
+ const name = family.trim().toLowerCase();
346
+ const key = `${name}|${bold ? "b" : "r"}`;
347
+ const known = decoded.get(key);
348
+ if (known) return known;
349
+ const table = Object.hasOwn(DESIGN_ADVANCES, name) ? DESIGN_ADVANCES[name] : void 0;
350
+ if (!table) return void 0;
351
+ const values = (bold ? table.bold : table.regular).split(" ").map(Number);
352
+ decoded.set(key, values);
353
+ return values;
354
+ }
355
+ var hasDesignAdvances = (family) => !!advances(family, false);
356
+ function designTextWidthEm(text, family, bold = false) {
357
+ const table = advances(family, bold);
358
+ if (!table) return void 0;
359
+ let units = 0;
360
+ for (let index = 0; index < text.length; ++index) {
361
+ const advance = table[text.charCodeAt(index) - FIRST];
362
+ if (advance === void 0 || Number.isNaN(advance)) return void 0;
363
+ units += advance;
364
+ }
365
+ return units / 1e3;
366
+ }
367
+
317
368
  exports.TEXT_CASE_MODES = TEXT_CASE_MODES;
318
369
  exports.buildLeaderString = buildLeaderString;
319
370
  exports.changeTextCase = changeTextCase;
320
371
  exports.changeTextCaseRanges = changeTextCaseRanges;
321
372
  exports.decimalAnchorIndex = decimalAnchorIndex;
322
373
  exports.decimalSeparatorForLanguage = decimalSeparatorForLanguage;
374
+ exports.designTextWidthEm = designTextWidthEm;
323
375
  exports.detectFontScript = detectFontScript;
324
376
  exports.getLeaderCharacter = getLeaderCharacter;
325
377
  exports.getLeaderStyles = getLeaderStyles;
378
+ exports.hasDesignAdvances = hasDesignAdvances;
326
379
  exports.hasDistinctScriptFonts = hasDistinctScriptFonts;
327
380
  exports.resolveFontForScript = resolveFontForScript;
328
381
  exports.segmentByScript = segmentByScript;
@@ -4,4 +4,5 @@ export * from './tab-leader.js';
4
4
  export * from './decimal-tab.js';
5
5
  export * from './wrap-styled-runs.js';
6
6
  export * from './change-case.js';
7
+ export * from './font-metrics/advance-width.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../text/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACd,MAAM,4BAA4B,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../text/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,SAAS,GACd,MAAM,4BAA4B,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC"}
@@ -312,4 +312,55 @@ function changeTextCaseRanges(text, mode, boundaries = []) {
312
312
  return ranges;
313
313
  }
314
314
 
315
- export { TEXT_CASE_MODES, buildLeaderString, changeTextCase, changeTextCaseRanges, decimalAnchorIndex, decimalSeparatorForLanguage, detectFontScript, getLeaderCharacter, getLeaderStyles, hasDistinctScriptFonts, resolveFontForScript, segmentByScript, wrapStyledRuns };
315
+ // text/font-metrics/design-advances.generated.ts
316
+ var DESIGN_ADVANCES = {
317
+ arial: {
318
+ regular: "277.83 277.83 354.98 556.15 556.15 889.16 666.99 190.92 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 277.83 277.83 583.98 583.98 583.98 556.15 1015.14 666.99 666.99 722.17 722.17 666.99 610.84 777.83 722.17 277.83 500 666.99 556.15 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 277.83 277.83 277.83 469.24 556.15 333.01 556.15 556.15 500 556.15 556.15 277.83 556.15 556.15 222.17 222.17 500 222.17 833.01 556.15 556.15 556.15 556.15 333.01 500 277.83 556.15 500 722.17 500 500 500 333.98 259.77 333.98 583.98",
319
+ bold: "277.83 333.01 474.12 556.15 556.15 889.16 722.17 237.79 333.01 333.01 389.16 583.98 277.83 333.01 277.83 277.83 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 556.15 333.01 333.01 583.98 583.98 583.98 610.84 975.1 722.17 722.17 722.17 722.17 666.99 610.84 777.83 722.17 277.83 556.15 722.17 610.84 833.01 722.17 777.83 666.99 777.83 722.17 666.99 610.84 722.17 666.99 943.85 666.99 666.99 610.84 333.01 277.83 333.01 583.98 556.15 333.01 556.15 610.84 556.15 610.84 556.15 333.01 610.84 610.84 277.83 277.83 556.15 277.83 889.16 610.84 610.84 610.84 610.84 389.16 556.15 333.01 610.84 556.15 777.83 556.15 556.15 500 389.16 279.79 389.16 583.98"
320
+ },
321
+ calibri: {
322
+ regular: "226.07 325.68 400.88 498.05 506.83 714.85 682.13 220.7 303.22 303.22 498.05 498.05 249.51 306.15 252.44 386.23 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 267.58 267.58 498.05 498.05 498.05 463.38 894.04 578.61 543.95 533.2 615.23 488.28 459.47 630.86 623.05 251.95 318.85 519.53 420.41 854.98 645.51 662.11 516.6 672.85 542.97 459.47 487.3 641.6 567.38 889.65 519.04 487.3 468.26 306.64 386.23 306.64 498.05 498.05 291.02 479 525.39 422.85 525.39 497.56 305.18 470.7 525.39 229.49 239.26 454.59 229.49 798.83 525.39 527.34 525.39 525.39 348.63 391.11 334.96 525.39 451.66 714.85 433.11 452.64 395.02 314.45 460.45 314.45 498.05",
323
+ bold: "226.07 325.68 438.48 498.05 506.83 729 704.59 233.4 311.52 311.52 498.05 498.05 257.81 306.15 267.09 429.69 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 275.88 275.88 498.05 498.05 498.05 463.38 898.44 605.96 560.55 529.3 630.37 487.79 458.98 637.21 630.86 266.6 331.05 546.88 422.85 874.02 658.69 676.27 532.23 686.04 562.99 472.66 495.12 652.83 591.31 906.25 550.78 519.53 478.03 324.71 429.69 324.71 498.05 498.05 300.29 493.65 536.62 418.46 536.62 503.42 316.41 474.12 536.62 245.6 255.37 479.98 245.6 813.48 536.62 537.6 536.62 536.62 355.47 398.93 346.68 536.62 473.14 745.12 459.47 473.63 397.46 343.75 475.1 343.75 498.05"
324
+ },
325
+ "calibri light": {
326
+ regular: "226.07 325.68 380.37 498.05 506.83 707.03 669.92 213.87 298.83 298.83 498.05 498.05 244.63 306.15 244.63 362.3 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 506.83 262.69 262.69 498.05 498.05 498.05 463.38 891.6 563.48 535.16 535.16 606.93 488.77 459.96 627.44 619.14 244.14 312.5 504.4 418.94 844.73 638.18 654.3 507.81 666.02 532.23 452.64 483.4 635.74 554.2 880.86 501.46 469.24 463.38 296.88 362.3 296.88 498.05 498.05 286.13 470.7 519.53 425.29 519.53 494.14 298.83 468.75 519.53 220.7 229.98 440.92 220.7 791.02 519.53 521.49 519.53 519.53 344.73 386.72 328.61 519.53 439.94 698.73 418.46 440.92 393.56 298.83 452.64 298.83 498.05",
327
+ bold: "222.17 319.82 373.54 488.77 497.56 693.85 657.23 209.96 293.46 293.46 488.77 488.77 240.24 300.78 240.24 355.96 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 497.56 258.3 258.3 488.77 488.77 488.77 454.59 874.51 552.74 525.39 525.39 595.7 479.49 451.66 615.72 607.42 239.75 307.13 495.12 411.13 828.61 625.98 642.09 498.54 653.32 522.46 444.34 474.61 624.02 543.95 864.26 492.19 460.45 454.59 291.5 355.96 291.5 488.77 488.77 281.25 461.92 509.77 417.48 509.77 484.86 293.46 459.96 509.77 216.8 226.07 432.62 216.8 775.88 509.77 511.72 509.77 509.77 338.38 379.88 322.75 509.77 431.64 685.55 410.64 432.62 386.23 293.46 444.34 293.46 488.77"
328
+ },
329
+ "segoe ui": {
330
+ regular: "273.93 284.18 392.09 590.82 539.06 818.36 800.29 229.98 301.76 301.76 416.99 684.08 216.8 399.9 216.8 389.65 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 539.06 216.8 216.8 684.08 684.08 684.08 448.24 955.08 645.02 573.24 619.14 701.17 505.86 488.28 686.04 709.96 266.11 356.94 580.08 470.7 897.95 748.05 753.91 560.06 753.91 598.14 531.25 523.93 687.01 621.09 934.08 589.85 552.74 570.31 301.76 378.91 301.76 684.08 415.04 268.07 508.79 587.89 461.92 588.87 522.95 312.99 588.87 565.92 242.19 242.19 497.07 242.19 861.33 565.92 585.94 587.89 588.87 347.66 424.32 338.87 565.92 479 722.66 458.98 483.89 452.15 301.76 239.26 301.76 684.08",
331
+ bold: "275.88 327.15 493.17 592.29 575.2 867.19 849.61 292.97 369.14 369.14 455.08 707.03 271 404.3 271 443.36 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 575.2 271 271 707.03 707.03 707.03 437.99 954.1 703.12 641.11 624.02 737.31 532.23 520.02 710.94 766.11 316.89 445.31 648.93 511.23 957.03 790.04 758.3 614.26 758.3 652.83 560.55 585.94 723.14 666.99 1004.88 655.27 606.93 606.93 369.14 436.04 369.14 707.03 415.04 313.96 538.09 620.12 479.98 619.14 541.02 383.3 619.14 602.05 284.18 284.18 559.08 284.18 916.01 604.98 611.33 620.12 619.14 397.95 439.94 389.16 604.98 541.99 797.36 552.25 538.09 479 369.14 326.17 369.14 707.03"
332
+ },
333
+ "times new roman": {
334
+ regular: "250 333.01 408.2 500 500 833.01 777.83 180.18 333.01 333.01 500 563.96 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 277.83 277.83 563.96 563.96 563.96 443.85 920.9 722.17 666.99 666.99 722.17 610.84 556.15 722.17 722.17 333.01 389.16 722.17 610.84 889.16 722.17 722.17 556.15 722.17 666.99 556.15 610.84 722.17 722.17 943.85 722.17 722.17 610.84 333.01 277.83 333.01 469.24 500 333.01 443.85 500 443.85 500 443.85 333.01 500 500 277.83 277.83 500 277.83 777.83 500 500 500 500 333.01 389.16 277.83 500 500 722.17 500 500 443.85 479.98 200.2 479.98 541.02",
335
+ bold: "250 333.01 555.17 500 500 1000 833.01 277.83 333.01 333.01 500 569.83 250 333.01 250 277.83 500 500 500 500 500 500 500 500 500 500 333.01 333.01 569.83 569.83 569.83 500 930.18 722.17 666.99 722.17 722.17 666.99 610.84 777.83 777.83 389.16 500 777.83 666.99 943.85 722.17 777.83 610.84 777.83 722.17 556.15 666.99 722.17 722.17 1000 722.17 722.17 666.99 333.01 277.83 333.01 581.06 500 333.01 500 556.15 443.85 556.15 443.85 333.01 500 556.15 277.83 333.01 556.15 277.83 833.01 556.15 500 556.15 556.15 443.85 389.16 333.01 556.15 500 722.17 500 500 443.85 394.04 220.22 394.04 520.02"
336
+ }
337
+ };
338
+
339
+ // text/font-metrics/advance-width.ts
340
+ var FIRST = 32;
341
+ var decoded = /* @__PURE__ */ new Map();
342
+ function advances(family, bold) {
343
+ const name = family.trim().toLowerCase();
344
+ const key = `${name}|${bold ? "b" : "r"}`;
345
+ const known = decoded.get(key);
346
+ if (known) return known;
347
+ const table = Object.hasOwn(DESIGN_ADVANCES, name) ? DESIGN_ADVANCES[name] : void 0;
348
+ if (!table) return void 0;
349
+ const values = (bold ? table.bold : table.regular).split(" ").map(Number);
350
+ decoded.set(key, values);
351
+ return values;
352
+ }
353
+ var hasDesignAdvances = (family) => !!advances(family, false);
354
+ function designTextWidthEm(text, family, bold = false) {
355
+ const table = advances(family, bold);
356
+ if (!table) return void 0;
357
+ let units = 0;
358
+ for (let index = 0; index < text.length; ++index) {
359
+ const advance = table[text.charCodeAt(index) - FIRST];
360
+ if (advance === void 0 || Number.isNaN(advance)) return void 0;
361
+ units += advance;
362
+ }
363
+ return units / 1e3;
364
+ }
365
+
366
+ export { TEXT_CASE_MODES, buildLeaderString, changeTextCase, changeTextCaseRanges, decimalAnchorIndex, decimalSeparatorForLanguage, designTextWidthEm, detectFontScript, getLeaderCharacter, getLeaderStyles, hasDesignAdvances, hasDistinctScriptFonts, resolveFontForScript, segmentByScript, wrapStyledRuns };