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
@@ -945,6 +945,309 @@ function curvedElbowPathD(startX, startY, endX, endY, segments, adj1, adj2, adj3
945
945
  ].join(" ");
946
946
  }
947
947
 
948
+ // geometry/connector-router-types.ts
949
+ var PADDING_DEFAULT = 12;
950
+ var ROUTING_PADDING_DEFAULT = PADDING_DEFAULT;
951
+ var CANVAS_SENTINEL = 1e5;
952
+
953
+ // geometry/connector-router-graph.ts
954
+ function inflateRect(r, pad) {
955
+ return {
956
+ x: r.x - pad,
957
+ y: r.y - pad,
958
+ width: r.width + pad * 2,
959
+ height: r.height + pad * 2
960
+ };
961
+ }
962
+ function pointInRect(p, r) {
963
+ return p.x >= r.x && p.x <= r.x + r.width && p.y >= r.y && p.y <= r.y + r.height;
964
+ }
965
+ function segmentIntersectsRect(a, b, r) {
966
+ const minX = Math.min(a.x, b.x);
967
+ const maxX = Math.max(a.x, b.x);
968
+ const minY = Math.min(a.y, b.y);
969
+ const maxY = Math.max(a.y, b.y);
970
+ const rRight = r.x + r.width;
971
+ const rBottom = r.y + r.height;
972
+ if (maxX < r.x || minX > rRight || maxY < r.y || minY > rBottom) {
973
+ return false;
974
+ }
975
+ if (Math.abs(a.y - b.y) < 0.5) {
976
+ return a.y >= r.y && a.y <= rBottom && maxX >= r.x && minX <= rRight;
977
+ }
978
+ if (Math.abs(a.x - b.x) < 0.5) {
979
+ return a.x >= r.x && a.x <= rRight && maxY >= r.y && minY <= rBottom;
980
+ }
981
+ return true;
982
+ }
983
+ function directPathClear(start, end, inflated) {
984
+ for (const rect2 of inflated) {
985
+ if (segmentIntersectsRect(start, end, rect2)) {
986
+ return false;
987
+ }
988
+ }
989
+ return true;
990
+ }
991
+ function heuristic(a, b) {
992
+ return Math.abs(a.x - b.x) + Math.abs(a.y - b.y);
993
+ }
994
+ function pointKey(p) {
995
+ return `${Math.round(p.x)},${Math.round(p.y)}`;
996
+ }
997
+ function buildGraphNodes(start, end, inflated, canvasWidth, canvasHeight) {
998
+ const margin = 4;
999
+ const nodes = [start, end];
1000
+ for (const r of inflated) {
1001
+ const corners = [
1002
+ { x: r.x - margin, y: r.y - margin },
1003
+ { x: r.x + r.width + margin, y: r.y - margin },
1004
+ { x: r.x - margin, y: r.y + r.height + margin },
1005
+ { x: r.x + r.width + margin, y: r.y + r.height + margin }
1006
+ ];
1007
+ for (const c of corners) {
1008
+ if (c.x >= 0 && c.x <= canvasWidth && c.y >= 0 && c.y <= canvasHeight) {
1009
+ let blocked = false;
1010
+ for (const rect2 of inflated) {
1011
+ if (pointInRect(c, rect2)) {
1012
+ blocked = true;
1013
+ break;
1014
+ }
1015
+ }
1016
+ if (!blocked) {
1017
+ nodes.push(c);
1018
+ }
1019
+ }
1020
+ }
1021
+ }
1022
+ const projections = [];
1023
+ for (const node of nodes) {
1024
+ projections.push({ x: start.x, y: node.y });
1025
+ projections.push({ x: node.x, y: start.y });
1026
+ projections.push({ x: end.x, y: node.y });
1027
+ projections.push({ x: node.x, y: end.y });
1028
+ }
1029
+ for (const p of projections) {
1030
+ if (p.x >= 0 && p.x <= canvasWidth && p.y >= 0 && p.y <= canvasHeight) {
1031
+ let blocked = false;
1032
+ for (const rect2 of inflated) {
1033
+ if (pointInRect(p, rect2)) {
1034
+ blocked = true;
1035
+ break;
1036
+ }
1037
+ }
1038
+ if (!blocked) {
1039
+ nodes.push(p);
1040
+ }
1041
+ }
1042
+ }
1043
+ return nodes;
1044
+ }
1045
+
1046
+ // geometry/connector-router-astar.ts
1047
+ var MAX_ASTAR_ITERATIONS = 2e3;
1048
+ function aStarOrthogonal(nodes, start, end, inflated) {
1049
+ const startKey = pointKey(start);
1050
+ const endKey = pointKey(end);
1051
+ const canConnect = (a, b) => {
1052
+ const isHoriz = Math.abs(a.y - b.y) < 1;
1053
+ const isVert = Math.abs(a.x - b.x) < 1;
1054
+ if (isHoriz || isVert) {
1055
+ for (const rect2 of inflated) {
1056
+ if (segmentIntersectsRect(a, b, rect2)) {
1057
+ return false;
1058
+ }
1059
+ }
1060
+ return true;
1061
+ }
1062
+ const bend1 = { x: b.x, y: a.y };
1063
+ const bend2 = { x: a.x, y: b.y };
1064
+ let path1Clear = true;
1065
+ let path2Clear = true;
1066
+ for (const rect2 of inflated) {
1067
+ if (path1Clear && (segmentIntersectsRect(a, bend1, rect2) || segmentIntersectsRect(bend1, b, rect2))) {
1068
+ path1Clear = false;
1069
+ }
1070
+ if (path2Clear && (segmentIntersectsRect(a, bend2, rect2) || segmentIntersectsRect(bend2, b, rect2))) {
1071
+ path2Clear = false;
1072
+ }
1073
+ if (!path1Clear && !path2Clear) {
1074
+ break;
1075
+ }
1076
+ }
1077
+ return path1Clear || path2Clear;
1078
+ };
1079
+ const gScore = /* @__PURE__ */ new Map();
1080
+ const fScore = /* @__PURE__ */ new Map();
1081
+ const cameFrom = /* @__PURE__ */ new Map();
1082
+ const bendPoint = /* @__PURE__ */ new Map();
1083
+ gScore.set(startKey, 0);
1084
+ fScore.set(startKey, heuristic(start, end));
1085
+ const openSet = /* @__PURE__ */ new Set([startKey]);
1086
+ const nodeMap = /* @__PURE__ */ new Map();
1087
+ for (const n of nodes) {
1088
+ nodeMap.set(pointKey(n), n);
1089
+ }
1090
+ const getLowest = () => {
1091
+ let best;
1092
+ let bestScore = Infinity;
1093
+ for (const key of openSet) {
1094
+ const score = fScore.get(key) ?? Infinity;
1095
+ if (score < bestScore) {
1096
+ bestScore = score;
1097
+ best = key;
1098
+ }
1099
+ }
1100
+ return best;
1101
+ };
1102
+ let iterations = 0;
1103
+ while (openSet.size > 0 && iterations < MAX_ASTAR_ITERATIONS) {
1104
+ iterations++;
1105
+ const currentKey = getLowest();
1106
+ if (currentKey === void 0) {
1107
+ break;
1108
+ }
1109
+ if (currentKey === endKey) {
1110
+ const path = [];
1111
+ let key = endKey;
1112
+ while (key !== void 0) {
1113
+ const node = nodeMap.get(key);
1114
+ if (node !== void 0) {
1115
+ const bp = bendPoint.get(key);
1116
+ if (bp !== void 0 && bp !== null) {
1117
+ path.unshift(node);
1118
+ path.unshift(bp);
1119
+ } else {
1120
+ path.unshift(node);
1121
+ }
1122
+ }
1123
+ key = cameFrom.get(key);
1124
+ }
1125
+ return path;
1126
+ }
1127
+ openSet.delete(currentKey);
1128
+ const current = nodeMap.get(currentKey);
1129
+ if (current === void 0) {
1130
+ continue;
1131
+ }
1132
+ for (const neighbor of nodes) {
1133
+ const neighborKey = pointKey(neighbor);
1134
+ if (neighborKey === currentKey) {
1135
+ continue;
1136
+ }
1137
+ if (!canConnect(current, neighbor)) {
1138
+ continue;
1139
+ }
1140
+ const isHoriz = Math.abs(current.y - neighbor.y) < 1;
1141
+ const isVert = Math.abs(current.x - neighbor.x) < 1;
1142
+ let dist;
1143
+ let bp = null;
1144
+ if (isHoriz || isVert) {
1145
+ dist = heuristic(current, neighbor);
1146
+ } else {
1147
+ const bend1 = { x: neighbor.x, y: current.y };
1148
+ const bend2 = { x: current.x, y: neighbor.y };
1149
+ let use1 = true;
1150
+ for (const rect2 of inflated) {
1151
+ if (segmentIntersectsRect(current, bend1, rect2) || segmentIntersectsRect(bend1, neighbor, rect2)) {
1152
+ use1 = false;
1153
+ break;
1154
+ }
1155
+ }
1156
+ bp = use1 ? bend1 : bend2;
1157
+ dist = Math.abs(current.x - bp.x) + Math.abs(current.y - bp.y) + Math.abs(bp.x - neighbor.x) + Math.abs(bp.y - neighbor.y);
1158
+ }
1159
+ const tentativeG = (gScore.get(currentKey) ?? Infinity) + dist;
1160
+ if (tentativeG < (gScore.get(neighborKey) ?? Infinity)) {
1161
+ cameFrom.set(neighborKey, currentKey);
1162
+ bendPoint.set(neighborKey, bp);
1163
+ gScore.set(neighborKey, tentativeG);
1164
+ fScore.set(neighborKey, tentativeG + heuristic(neighbor, end));
1165
+ openSet.add(neighborKey);
1166
+ }
1167
+ }
1168
+ }
1169
+ return [start, end];
1170
+ }
1171
+ function simplifyPath(points) {
1172
+ if (points.length <= 2) {
1173
+ return [...points];
1174
+ }
1175
+ const result = [points[0]];
1176
+ for (let i = 1; i < points.length - 1; i++) {
1177
+ const prev = result[result.length - 1];
1178
+ const curr = points[i];
1179
+ const next = points[i + 1];
1180
+ const sameX = Math.abs(prev.x - curr.x) < 1 && Math.abs(curr.x - next.x) < 1;
1181
+ const sameY = Math.abs(prev.y - curr.y) < 1 && Math.abs(curr.y - next.y) < 1;
1182
+ if (!sameX && !sameY) {
1183
+ result.push(curr);
1184
+ } else if (!sameX || !sameY) {
1185
+ if (!(sameX || sameY)) {
1186
+ result.push(curr);
1187
+ }
1188
+ }
1189
+ }
1190
+ result.push(points[points.length - 1]);
1191
+ return result;
1192
+ }
1193
+
1194
+ // geometry/connector-router.ts
1195
+ function routeCore(start, end, obstacles, padding, canvasWidth, canvasHeight) {
1196
+ if (obstacles.length === 0) {
1197
+ return [start, end];
1198
+ }
1199
+ const inflated = obstacles.map((r) => inflateRect(r, padding));
1200
+ if (directPathClear(start, end, inflated)) {
1201
+ return [start, end];
1202
+ }
1203
+ const midH = { x: end.x, y: start.y };
1204
+ const midV = { x: start.x, y: end.y };
1205
+ let elbowHClear = true;
1206
+ let elbowVClear = true;
1207
+ for (const rect2 of inflated) {
1208
+ if (elbowHClear && (segmentIntersectsRect(start, midH, rect2) || segmentIntersectsRect(midH, end, rect2))) {
1209
+ elbowHClear = false;
1210
+ }
1211
+ if (elbowVClear && (segmentIntersectsRect(start, midV, rect2) || segmentIntersectsRect(midV, end, rect2))) {
1212
+ elbowVClear = false;
1213
+ }
1214
+ if (!elbowHClear && !elbowVClear) {
1215
+ break;
1216
+ }
1217
+ }
1218
+ if (elbowHClear) {
1219
+ return [start, midH, end];
1220
+ }
1221
+ if (elbowVClear) {
1222
+ return [start, midV, end];
1223
+ }
1224
+ const nodes = buildGraphNodes(start, end, inflated, canvasWidth, canvasHeight);
1225
+ const path = aStarOrthogonal(nodes, start, end, inflated);
1226
+ return simplifyPath(path);
1227
+ }
1228
+ function routeConnector(options) {
1229
+ const { start, end, obstacles, canvasWidth, canvasHeight, padding = PADDING_DEFAULT } = options;
1230
+ return routeCore(start, end, obstacles, padding, canvasWidth, canvasHeight);
1231
+ }
1232
+ function waypointsToPathData(waypoints) {
1233
+ if (waypoints.length === 0) {
1234
+ return "";
1235
+ }
1236
+ return waypoints.map((point, index) => `${index === 0 ? "M" : "L"} ${point.x} ${point.y}`).join(" ");
1237
+ }
1238
+ function routeOrthogonalConnector(start, end, obstacles, opts) {
1239
+ const padding = opts?.padding ?? PADDING_DEFAULT;
1240
+ const canvasWidth = opts?.canvasWidth ?? CANVAS_SENTINEL;
1241
+ const canvasHeight = opts?.canvasHeight ?? CANVAS_SENTINEL;
1242
+ return routeCore(start, end, obstacles, padding, canvasWidth, canvasHeight);
1243
+ }
1244
+ function waypointsToPathD(waypoints) {
1245
+ if (waypoints.length === 0) {
1246
+ return "";
1247
+ }
1248
+ return waypoints.map((point, index) => `${index === 0 ? "M" : "L"}${point.x},${point.y}`).join(" ");
1249
+ }
1250
+
948
1251
  // geometry/guide-formula-eval.ts
949
1252
  var ANGLE_SCALE = 6e4;
950
1253
  function angleToRadians(ooxmlAngle) {
@@ -15473,6 +15776,13 @@ function createRotationDrag(center, startPointer, startRotation, options = {}) {
15473
15776
  return rotation;
15474
15777
  };
15475
15778
  }
15779
+ function snapAngle(angleDeg, step = 15, tolerance = step / 2) {
15780
+ const nearest = Math.round(angleDeg / step) * step;
15781
+ if (Math.abs(angleDeg - nearest) <= tolerance) {
15782
+ return (nearest % 360 + 360) % 360;
15783
+ }
15784
+ return angleDeg;
15785
+ }
15476
15786
 
15477
15787
  // geometry/rotate-handle-placement.ts
15478
15788
  function resolveRotateHandlePlacement(input) {
@@ -15890,4 +16200,20 @@ function autoAlignBoxes(boxes, options = {}) {
15890
16200
  return result;
15891
16201
  }
15892
16202
 
15893
- export { ACTION_BUTTON_CONNECTION_SITES, ACTION_BUTTON_PRESET_DEFINITIONS, ACTION_BUTTON_TEXT_RECTS, ANGLE_SCALE, ARROW_CALLOUT_CONNECTION_SITES, ARROW_CALLOUT_PRESET_DEFINITIONS, ARROW_CONNECTION_SITES, ARROW_PRESET_DEFINITIONS, ARROW_TEXT_RECTS, BASIC_SHAPE_CONNECTION_SITES_A, BASIC_SHAPE_CONNECTION_SITES_B, BRACE_CONNECTION_SITES, BRACE_TEXT_RECTS, CALLOUT_CONNECTION_SITES, CALLOUT_TEXT_RECTS, CARDINAL_SITES, CHART_MARK_PRESET_DEFINITIONS, CIRCULAR_ARROW_CONNECTION_SITES, CIRCULAR_ARROW_TEXT_RECTS, CLIP_PATHS_CORE, CLIP_PATHS_EXTENDED, CLOUD_CALLOUT_PRESET_DEFINITIONS, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COM_AVLST_GROUND_TRUTH, CONNECTORS_BRACKETS_PRESET_DEFINITIONS, CURVED_ARROWS_CONNECTORS_PRESET_DEFINITIONS, CURVED_ARROW_CONNECTION_SITES, EPSILON, EXACT_CURVED_ARROW_PRESET_DEFINITIONS, EXTENDED_SHAPE_DEFINITIONS, FLOWCHART_CONNECTION_SITES, FLOWCHART_PRESET_DEFINITIONS, FLOWCHART_TEXT_RECTS, GEAR9_CONNECTION_SITES, GRAPH_LAYOUT_STYLES, IDENTITY_AFFINE, LEFT_CIRCULAR_ARROW_CONNECTION_SITES, LEFT_RIGHT_CIRCULAR_ARROW_CONNECTION_SITES, MATH_SYMBOL_CONNECTION_SITES, MISC_ARROW_CONNECTION_SITES, MISC_PRESET_DEFINITIONS, MISC_SHAPE_CONNECTION_SITES, MISC_TEXT_RECTS_A, MISC_TEXT_RECTS_B, POLYGON_CONNECTION_SITES, POLYGON_TEXT_RECTS, PRESET_GEOMETRY_ALIASES, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PRIMARY_SHAPE_DEFINITIONS, QUAD_CONNECTION_SITES, QUAD_TEXT_RECTS, RECTS_SNIPS_PRESET_DEFINITIONS, RECT_VARIANT_CONNECTION_SITES, REFINED_ARROW_PRESET_DEFINITIONS, RIBBON_CONNECTION_SITES, RIBBON_TEXT_RECTS, SCROLLS_ACCENT_CALLOUTS_PRESET_DEFINITIONS, SNAP_THRESHOLD, STAR_CONNECTION_SITES, STAR_TEXT_RECTS, ST_SHAPE_TYPE_VALUES, TABS_DECORATIONS_PRESET_DEFINITIONS, TAB_CONNECTION_SITES, TAB_TEXT_RECTS, _internalForTests, alignElements, angleToRadians, at, autoAlignBoxes, buildCalloutLeaderLineSvgPath, clipPolygons, combineShapes, composeAffine, computeAlign, computeDistribute, computeRotation, computeSnap, computeSnapToShape, computeUnionWalk, convexHull, createBuiltinVariables, createRotationDrag, cross2, curvedElbowPathD, cxn, dedupPoly, distributeElements, elbowCurveSegments, elbowSegmentCount, elbowWaypoints, ensureCCW, ensureCW, evaluateFormula, evaluateGuides, findAllIntersections, flattenSvgPath, fmtNum, fragmentShapes, gd, gear6, gear9, getAdjustmentAwareClipPath, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getPresetConnectionSites, getPresetShapeClipPath, getPresetTextRect, insertIntersections, intersectPolygons, intersectShapes, intersectSvgPaths, isCalloutShape, isConvex, isHorizontalPrimaryAxis, isStShapeType, layoutGraph, lineIntersection, lookupPresetConnectionSites, lookupPresetTextRectOverride, mergeOverlappingPolygons, mergeShapes, normalizeStShapeType, parseAdjustmentValues, parseFormula, parseGuideDefinitions, pointInPolygon, pointInTriangle, polygonArea, polygonsToSvgPath, resolveAlignReferenceBox, resolveCoordinate, resolveOperand, resolveRotateHandlePlacement, segmentIntersection, signedArea, snapBox, snapToGridStep, snapValue, subtractPolygons, subtractShapes, subtractSvgPaths, sutherlandHodgman, svgPathToPolygons, triangulate, unionPolygons, unionShapes, unionSvgPaths, usesSlideReference, vec2Eq };
16203
+ // geometry/nudge.ts
16204
+ function arrowKeyDelta(key, step) {
16205
+ switch (key) {
16206
+ case "ArrowLeft":
16207
+ return { dx: -step, dy: 0 };
16208
+ case "ArrowRight":
16209
+ return { dx: step, dy: 0 };
16210
+ case "ArrowUp":
16211
+ return { dx: 0, dy: -step };
16212
+ case "ArrowDown":
16213
+ return { dx: 0, dy: step };
16214
+ default:
16215
+ return null;
16216
+ }
16217
+ }
16218
+
16219
+ export { ACTION_BUTTON_CONNECTION_SITES, ACTION_BUTTON_PRESET_DEFINITIONS, ACTION_BUTTON_TEXT_RECTS, ANGLE_SCALE, ARROW_CALLOUT_CONNECTION_SITES, ARROW_CALLOUT_PRESET_DEFINITIONS, ARROW_CONNECTION_SITES, ARROW_PRESET_DEFINITIONS, ARROW_TEXT_RECTS, BASIC_SHAPE_CONNECTION_SITES_A, BASIC_SHAPE_CONNECTION_SITES_B, BRACE_CONNECTION_SITES, BRACE_TEXT_RECTS, CALLOUT_CONNECTION_SITES, CALLOUT_TEXT_RECTS, CANVAS_SENTINEL, CARDINAL_SITES, CHART_MARK_PRESET_DEFINITIONS, CIRCULAR_ARROW_CONNECTION_SITES, CIRCULAR_ARROW_TEXT_RECTS, CLIP_PATHS_CORE, CLIP_PATHS_EXTENDED, CLOUD_CALLOUT_PRESET_DEFINITIONS, CLOUD_CALLOUT_TAIL_COUNT, CLOUD_LOBE_COUNT, COM_AVLST_GROUND_TRUTH, CONNECTORS_BRACKETS_PRESET_DEFINITIONS, CURVED_ARROWS_CONNECTORS_PRESET_DEFINITIONS, CURVED_ARROW_CONNECTION_SITES, EPSILON, EXACT_CURVED_ARROW_PRESET_DEFINITIONS, EXTENDED_SHAPE_DEFINITIONS, FLOWCHART_CONNECTION_SITES, FLOWCHART_PRESET_DEFINITIONS, FLOWCHART_TEXT_RECTS, GEAR9_CONNECTION_SITES, GRAPH_LAYOUT_STYLES, IDENTITY_AFFINE, LEFT_CIRCULAR_ARROW_CONNECTION_SITES, LEFT_RIGHT_CIRCULAR_ARROW_CONNECTION_SITES, MATH_SYMBOL_CONNECTION_SITES, MISC_ARROW_CONNECTION_SITES, MISC_PRESET_DEFINITIONS, MISC_SHAPE_CONNECTION_SITES, MISC_TEXT_RECTS_A, MISC_TEXT_RECTS_B, PADDING_DEFAULT, POLYGON_CONNECTION_SITES, POLYGON_TEXT_RECTS, PRESET_GEOMETRY_ALIASES, PRESET_SHAPE_CATEGORY_LABELS, PRESET_SHAPE_CLIP_PATHS, PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_GEOMETRY_TABLE, PRIMARY_SHAPE_DEFINITIONS, QUAD_CONNECTION_SITES, QUAD_TEXT_RECTS, RECTS_SNIPS_PRESET_DEFINITIONS, RECT_VARIANT_CONNECTION_SITES, REFINED_ARROW_PRESET_DEFINITIONS, RIBBON_CONNECTION_SITES, RIBBON_TEXT_RECTS, ROUTING_PADDING_DEFAULT, SCROLLS_ACCENT_CALLOUTS_PRESET_DEFINITIONS, SNAP_THRESHOLD, STAR_CONNECTION_SITES, STAR_TEXT_RECTS, ST_SHAPE_TYPE_VALUES, TABS_DECORATIONS_PRESET_DEFINITIONS, TAB_CONNECTION_SITES, TAB_TEXT_RECTS, _internalForTests, aStarOrthogonal, alignElements, angleToRadians, arrowKeyDelta, at, autoAlignBoxes, buildCalloutLeaderLineSvgPath, buildGraphNodes, clipPolygons, combineShapes, composeAffine, computeAlign, computeDistribute, computeRotation, computeSnap, computeSnapToShape, computeUnionWalk, convexHull, createBuiltinVariables, createRotationDrag, cross2, curvedElbowPathD, cxn, dedupPoly, directPathClear, distributeElements, elbowCurveSegments, elbowSegmentCount, elbowWaypoints, ensureCCW, ensureCW, evaluateFormula, evaluateGuides, findAllIntersections, flattenSvgPath, fmtNum, fragmentShapes, gd, gear6, gear9, getAdjustmentAwareClipPath, getCalloutLeaderLineGeometry, getCalloutTier, getCalloutViewBoxBounds, getCloudCalloutClipPath, getCloudClipPath, getPresetConnectionSites, getPresetShapeClipPath, getPresetTextRect, heuristic, inflateRect, insertIntersections, intersectPolygons, intersectShapes, intersectSvgPaths, isCalloutShape, isConvex, isHorizontalPrimaryAxis, isStShapeType, layoutGraph, lineIntersection, lookupPresetConnectionSites, lookupPresetTextRectOverride, mergeOverlappingPolygons, mergeShapes, normalizeStShapeType, parseAdjustmentValues, parseFormula, parseGuideDefinitions, pointInPolygon, pointInRect, pointInTriangle, pointKey, polygonArea, polygonsToSvgPath, resolveAlignReferenceBox, resolveCoordinate, resolveOperand, resolveRotateHandlePlacement, routeConnector, routeOrthogonalConnector, segmentIntersection, segmentIntersectsRect, signedArea, simplifyPath, snapAngle, snapBox, snapToGridStep, snapValue, subtractPolygons, subtractShapes, subtractSvgPaths, sutherlandHodgman, svgPathToPolygons, triangulate, unionPolygons, unionShapes, unionSvgPaths, usesSlideReference, vec2Eq, waypointsToPathD, waypointsToPathData };
@@ -0,0 +1,12 @@
1
+ /** A selection move, in screen directions: x grows right and y grows down. */
2
+ export interface NudgeDelta {
3
+ dx: number;
4
+ dy: number;
5
+ }
6
+ /**
7
+ * The move an arrow key nudges a selection by, `step` units in the arrow's screen direction, or
8
+ * `null` for any other key. Each product picks its own units and steps (slide pixels in
9
+ * PowerPoint, page inches in Visio); a y-up product negates `dy`.
10
+ */
11
+ export declare function arrowKeyDelta(key: string, step: number): NudgeDelta | null;
12
+ //# sourceMappingURL=nudge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nudge.d.ts","sourceRoot":"","sources":["../../geometry/nudge.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAa1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"preset-shape-definitions-chart-marks.d.ts","sourceRoot":"","sources":["../../geometry/preset-shape-definitions-chart-marks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAEX,6BAA6B,EAC7B,MAAM,kCAAkC,CAAC;AAsF1C,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAIvF,CAAC"}
1
+ {"version":3,"file":"preset-shape-definitions-chart-marks.d.ts","sourceRoot":"","sources":["../../geometry/preset-shape-definitions-chart-marks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAc,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAsFlG,4EAA4E;AAC5E,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAIvF,CAAC"}
@@ -9,5 +9,5 @@
9
9
  */
10
10
  export { type PresetShapeDefinition, type PresetShapeCategory } from './preset-shape-types.js';
11
11
  export { PRESET_SHAPE_CLIP_PATHS, getPresetShapeClipPath } from './preset-shape-clip-paths.js';
12
- export { PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_CATEGORY_LABELS, } from './preset-shape-definitions.js';
12
+ export { PRESET_SHAPE_DEFINITIONS, PRESET_SHAPE_CATEGORY_LABELS } from './preset-shape-definitions.js';
13
13
  //# sourceMappingURL=preset-shape-paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preset-shape-paths.d.ts","sourceRoot":"","sources":["../../geometry/preset-shape-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EACN,wBAAwB,EACxB,4BAA4B,GAC5B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"preset-shape-paths.d.ts","sourceRoot":"","sources":["../../geometry/preset-shape-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -12,4 +12,10 @@ export declare function computeRotation(center: RotationPoint, pointer: Rotation
12
12
  export declare function createRotationDrag(center: RotationPoint, startPointer: RotationPoint, startRotation: number, options?: {
13
13
  unwrapped?: boolean;
14
14
  }): (pointer: RotationPoint) => number;
15
+ /**
16
+ * Snap an angle to the nearest `step` degrees when within `tolerance`, normalised to [0, 360).
17
+ * Office editors use it for Shift-drag rotation (step 15). Returns the original angle when no
18
+ * snap target is close enough.
19
+ */
20
+ export declare function snapAngle(angleDeg: number, step?: number, tolerance?: number): number;
15
21
  //# sourceMappingURL=rotation-drag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotation-drag.d.ts","sourceRoot":"","sources":["../../geometry/rotation-drag.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AACD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAGrF;AACD;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAyBpC"}
1
+ {"version":3,"file":"rotation-drag.d.ts","sourceRoot":"","sources":["../../geometry/rotation-drag.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACV;AACD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAGrF;AACD;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAyBpC;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,SAAK,EAAE,SAAS,SAAW,GAAG,MAAM,CAMnF"}