ducjs 2.3.0 → 3.0.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 (529) hide show
  1. package/README.md +2 -2
  2. package/dist/enums.d.ts +135 -0
  3. package/dist/enums.js +155 -0
  4. package/dist/index.d.ts +8 -4
  5. package/dist/index.js +8 -4
  6. package/dist/lazy-files.d.ts +44 -0
  7. package/dist/lazy-files.js +129 -0
  8. package/dist/parse.d.ts +21 -55
  9. package/dist/parse.js +58 -1445
  10. package/dist/restore/index.d.ts +0 -1
  11. package/dist/restore/index.js +0 -1
  12. package/dist/restore/restoreDataState.d.ts +6 -10
  13. package/dist/restore/restoreDataState.js +117 -127
  14. package/dist/restore/restoreElements.d.ts +1 -1
  15. package/dist/restore/restoreElements.js +37 -494
  16. package/dist/serialize.d.ts +11 -4
  17. package/dist/serialize.js +58 -2545
  18. package/dist/technical/index.d.ts +0 -1
  19. package/dist/technical/index.js +0 -1
  20. package/dist/technical/scopes.d.ts +1 -1
  21. package/dist/technical/scopes.js +1 -1
  22. package/dist/transform.d.ts +12 -0
  23. package/dist/transform.js +442 -0
  24. package/dist/types/elements/index.d.ts +120 -693
  25. package/dist/types/elements/typeChecks.d.ts +6 -3
  26. package/dist/types/elements/typeChecks.js +9 -8
  27. package/dist/types/geometryTypes.d.ts +1 -1
  28. package/dist/types/index.d.ts +38 -305
  29. package/dist/utils/constants.d.ts +21 -100
  30. package/dist/utils/constants.js +29 -212
  31. package/dist/utils/elements/freedrawElement.d.ts +6 -0
  32. package/dist/utils/elements/freedrawElement.js +28 -11
  33. package/dist/utils/elements/index.d.ts +3 -14
  34. package/dist/utils/elements/index.js +7 -99
  35. package/dist/utils/elements/linearElement.d.ts +2 -2
  36. package/dist/utils/elements/newElement.d.ts +2 -12
  37. package/dist/utils/elements/newElement.js +32 -52
  38. package/dist/utils/elements/textElement.d.ts +3 -3
  39. package/dist/utils/elements/textElement.js +44 -17
  40. package/dist/utils/math/index.d.ts +5 -4
  41. package/dist/utils/math/index.js +3 -3
  42. package/dist/utils/shape.js +2 -2
  43. package/dist/utils/state/index.d.ts +0 -1
  44. package/dist/utils/state/index.js +5 -71
  45. package/dist/utils/traverse.d.ts +8 -0
  46. package/dist/utils/traverse.js +37 -0
  47. package/dist/version-control.d.ts +61 -0
  48. package/dist/version-control.js +84 -0
  49. package/dist/wasm.d.ts +20 -0
  50. package/dist/wasm.js +52 -0
  51. package/package.json +2 -2
  52. package/dist/flatbuffers/duc/alternate-units.d.ts +0 -21
  53. package/dist/flatbuffers/duc/alternate-units.js +0 -66
  54. package/dist/flatbuffers/duc/angular-unit-system.d.ts +0 -17
  55. package/dist/flatbuffers/duc/angular-unit-system.js +0 -50
  56. package/dist/flatbuffers/duc/angular-units-format.d.ts +0 -7
  57. package/dist/flatbuffers/duc/angular-units-format.js +0 -10
  58. package/dist/flatbuffers/duc/axis.d.ts +0 -5
  59. package/dist/flatbuffers/duc/axis.js +0 -8
  60. package/dist/flatbuffers/duc/bezier-mirroring.d.ts +0 -5
  61. package/dist/flatbuffers/duc/bezier-mirroring.js +0 -8
  62. package/dist/flatbuffers/duc/blending.d.ts +0 -9
  63. package/dist/flatbuffers/duc/blending.js +0 -12
  64. package/dist/flatbuffers/duc/block-attachment.d.ts +0 -4
  65. package/dist/flatbuffers/duc/block-attachment.js +0 -7
  66. package/dist/flatbuffers/duc/boolean-operation.d.ts +0 -6
  67. package/dist/flatbuffers/duc/boolean-operation.js +0 -9
  68. package/dist/flatbuffers/duc/bound-element.d.ts +0 -17
  69. package/dist/flatbuffers/duc/bound-element.js +0 -48
  70. package/dist/flatbuffers/duc/checkpoint.d.ts +0 -22
  71. package/dist/flatbuffers/duc/checkpoint.js +0 -75
  72. package/dist/flatbuffers/duc/column-layout.d.ts +0 -22
  73. package/dist/flatbuffers/duc/column-layout.js +0 -72
  74. package/dist/flatbuffers/duc/column-type.d.ts +0 -5
  75. package/dist/flatbuffers/duc/column-type.js +0 -8
  76. package/dist/flatbuffers/duc/custom-hatch-pattern.d.ts +0 -23
  77. package/dist/flatbuffers/duc/custom-hatch-pattern.js +0 -71
  78. package/dist/flatbuffers/duc/datum-bracket-style.d.ts +0 -5
  79. package/dist/flatbuffers/duc/datum-bracket-style.js +0 -8
  80. package/dist/flatbuffers/duc/datum-reference.d.ts +0 -17
  81. package/dist/flatbuffers/duc/datum-reference.js +0 -49
  82. package/dist/flatbuffers/duc/datum-target-type.d.ts +0 -6
  83. package/dist/flatbuffers/duc/datum-target-type.js +0 -9
  84. package/dist/flatbuffers/duc/decimal-separator.d.ts +0 -4
  85. package/dist/flatbuffers/duc/decimal-separator.js +0 -7
  86. package/dist/flatbuffers/duc/delta.d.ts +0 -22
  87. package/dist/flatbuffers/duc/delta.js +0 -75
  88. package/dist/flatbuffers/duc/dictionary-entry.d.ts +0 -17
  89. package/dist/flatbuffers/duc/dictionary-entry.js +0 -49
  90. package/dist/flatbuffers/duc/dimension-baseline-data.d.ts +0 -14
  91. package/dist/flatbuffers/duc/dimension-baseline-data.js +0 -40
  92. package/dist/flatbuffers/duc/dimension-bindings.d.ts +0 -17
  93. package/dist/flatbuffers/duc/dimension-bindings.js +0 -50
  94. package/dist/flatbuffers/duc/dimension-continue-data.d.ts +0 -14
  95. package/dist/flatbuffers/duc/dimension-continue-data.js +0 -40
  96. package/dist/flatbuffers/duc/dimension-definition-points.d.ts +0 -21
  97. package/dist/flatbuffers/duc/dimension-definition-points.js +0 -64
  98. package/dist/flatbuffers/duc/dimension-ext-line-style.d.ts +0 -18
  99. package/dist/flatbuffers/duc/dimension-ext-line-style.js +0 -57
  100. package/dist/flatbuffers/duc/dimension-fit-rule.d.ts +0 -6
  101. package/dist/flatbuffers/duc/dimension-fit-rule.js +0 -9
  102. package/dist/flatbuffers/duc/dimension-fit-style.d.ts +0 -19
  103. package/dist/flatbuffers/duc/dimension-fit-style.js +0 -58
  104. package/dist/flatbuffers/duc/dimension-line-style.d.ts +0 -16
  105. package/dist/flatbuffers/duc/dimension-line-style.js +0 -49
  106. package/dist/flatbuffers/duc/dimension-symbol-style.d.ts +0 -22
  107. package/dist/flatbuffers/duc/dimension-symbol-style.js +0 -72
  108. package/dist/flatbuffers/duc/dimension-text-placement.d.ts +0 -5
  109. package/dist/flatbuffers/duc/dimension-text-placement.js +0 -8
  110. package/dist/flatbuffers/duc/dimension-tolerance-style.d.ts +0 -24
  111. package/dist/flatbuffers/duc/dimension-tolerance-style.js +0 -71
  112. package/dist/flatbuffers/duc/dimension-type.d.ts +0 -15
  113. package/dist/flatbuffers/duc/dimension-type.js +0 -18
  114. package/dist/flatbuffers/duc/dimension-units-format.d.ts +0 -7
  115. package/dist/flatbuffers/duc/dimension-units-format.js +0 -10
  116. package/dist/flatbuffers/duc/dimension-validation-rules.d.ts +0 -25
  117. package/dist/flatbuffers/duc/dimension-validation-rules.js +0 -74
  118. package/dist/flatbuffers/duc/document-grid-align-items.d.ts +0 -5
  119. package/dist/flatbuffers/duc/document-grid-align-items.js +0 -8
  120. package/dist/flatbuffers/duc/document-grid-config.d.ts +0 -22
  121. package/dist/flatbuffers/duc/document-grid-config.js +0 -73
  122. package/dist/flatbuffers/duc/duc-arrow-element.d.ts +0 -16
  123. package/dist/flatbuffers/duc/duc-arrow-element.js +0 -49
  124. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.d.ts +0 -16
  125. package/dist/flatbuffers/duc/duc-block-attribute-definition-entry.js +0 -44
  126. package/dist/flatbuffers/duc/duc-block-attribute-definition.d.ts +0 -22
  127. package/dist/flatbuffers/duc/duc-block-attribute-definition.js +0 -64
  128. package/dist/flatbuffers/duc/duc-block-collection-entry.d.ts +0 -16
  129. package/dist/flatbuffers/duc/duc-block-collection-entry.js +0 -48
  130. package/dist/flatbuffers/duc/duc-block-collection.d.ts +0 -31
  131. package/dist/flatbuffers/duc/duc-block-collection.js +0 -97
  132. package/dist/flatbuffers/duc/duc-block-duplication-array.d.ts +0 -19
  133. package/dist/flatbuffers/duc/duc-block-duplication-array.js +0 -64
  134. package/dist/flatbuffers/duc/duc-block-instance-element.d.ts +0 -10
  135. package/dist/flatbuffers/duc/duc-block-instance-element.js +0 -28
  136. package/dist/flatbuffers/duc/duc-block-instance.d.ts +0 -32
  137. package/dist/flatbuffers/duc/duc-block-instance.js +0 -100
  138. package/dist/flatbuffers/duc/duc-block-metadata.d.ts +0 -26
  139. package/dist/flatbuffers/duc/duc-block-metadata.js +0 -90
  140. package/dist/flatbuffers/duc/duc-block.d.ts +0 -36
  141. package/dist/flatbuffers/duc/duc-block.js +0 -112
  142. package/dist/flatbuffers/duc/duc-common-style.d.ts +0 -16
  143. package/dist/flatbuffers/duc/duc-common-style.js +0 -44
  144. package/dist/flatbuffers/duc/duc-dimension-element.d.ts +0 -45
  145. package/dist/flatbuffers/duc/duc-dimension-element.js +0 -120
  146. package/dist/flatbuffers/duc/duc-dimension-style.d.ts +0 -28
  147. package/dist/flatbuffers/duc/duc-dimension-style.js +0 -76
  148. package/dist/flatbuffers/duc/duc-doc-element.d.ts +0 -39
  149. package/dist/flatbuffers/duc/duc-doc-element.js +0 -110
  150. package/dist/flatbuffers/duc/duc-doc-style.d.ts +0 -19
  151. package/dist/flatbuffers/duc/duc-doc-style.js +0 -52
  152. package/dist/flatbuffers/duc/duc-element-base.d.ts +0 -100
  153. package/dist/flatbuffers/duc/duc-element-base.js +0 -315
  154. package/dist/flatbuffers/duc/duc-element-styles-base.d.ts +0 -30
  155. package/dist/flatbuffers/duc/duc-element-styles-base.js +0 -103
  156. package/dist/flatbuffers/duc/duc-ellipse-element.d.ts +0 -22
  157. package/dist/flatbuffers/duc/duc-ellipse-element.js +0 -73
  158. package/dist/flatbuffers/duc/duc-embeddable-element.d.ts +0 -14
  159. package/dist/flatbuffers/duc/duc-embeddable-element.js +0 -41
  160. package/dist/flatbuffers/duc/duc-external-file-data.d.ts +0 -27
  161. package/dist/flatbuffers/duc/duc-external-file-data.js +0 -92
  162. package/dist/flatbuffers/duc/duc-external-file-entry.d.ts +0 -16
  163. package/dist/flatbuffers/duc/duc-external-file-entry.js +0 -44
  164. package/dist/flatbuffers/duc/duc-feature-control-frame-element.d.ts +0 -31
  165. package/dist/flatbuffers/duc/duc-feature-control-frame-element.js +0 -89
  166. package/dist/flatbuffers/duc/duc-feature-control-frame-style.d.ts +0 -22
  167. package/dist/flatbuffers/duc/duc-feature-control-frame-style.js +0 -60
  168. package/dist/flatbuffers/duc/duc-frame-element.d.ts +0 -14
  169. package/dist/flatbuffers/duc/duc-frame-element.js +0 -41
  170. package/dist/flatbuffers/duc/duc-free-draw-element.d.ts +0 -52
  171. package/dist/flatbuffers/duc/duc-free-draw-element.js +0 -154
  172. package/dist/flatbuffers/duc/duc-free-draw-ends.d.ts +0 -18
  173. package/dist/flatbuffers/duc/duc-free-draw-ends.js +0 -56
  174. package/dist/flatbuffers/duc/duc-global-state.d.ts +0 -37
  175. package/dist/flatbuffers/duc/duc-global-state.js +0 -121
  176. package/dist/flatbuffers/duc/duc-group.d.ts +0 -16
  177. package/dist/flatbuffers/duc/duc-group.js +0 -44
  178. package/dist/flatbuffers/duc/duc-hatch-style.d.ts +0 -28
  179. package/dist/flatbuffers/duc/duc-hatch-style.js +0 -79
  180. package/dist/flatbuffers/duc/duc-head.d.ts +0 -19
  181. package/dist/flatbuffers/duc/duc-head.js +0 -57
  182. package/dist/flatbuffers/duc/duc-image-element.d.ts +0 -35
  183. package/dist/flatbuffers/duc/duc-image-element.js +0 -91
  184. package/dist/flatbuffers/duc/duc-image-filter.d.ts +0 -15
  185. package/dist/flatbuffers/duc/duc-image-filter.js +0 -48
  186. package/dist/flatbuffers/duc/duc-layer-overrides.d.ts +0 -16
  187. package/dist/flatbuffers/duc/duc-layer-overrides.js +0 -44
  188. package/dist/flatbuffers/duc/duc-layer.d.ts +0 -21
  189. package/dist/flatbuffers/duc/duc-layer.js +0 -59
  190. package/dist/flatbuffers/duc/duc-leader-element.d.ts +0 -22
  191. package/dist/flatbuffers/duc/duc-leader-element.js +0 -60
  192. package/dist/flatbuffers/duc/duc-leader-style.d.ts +0 -27
  193. package/dist/flatbuffers/duc/duc-leader-style.js +0 -79
  194. package/dist/flatbuffers/duc/duc-line-reference.d.ts +0 -15
  195. package/dist/flatbuffers/duc/duc-line-reference.js +0 -43
  196. package/dist/flatbuffers/duc/duc-line.d.ts +0 -15
  197. package/dist/flatbuffers/duc/duc-line.js +0 -43
  198. package/dist/flatbuffers/duc/duc-linear-element-base.d.ts +0 -38
  199. package/dist/flatbuffers/duc/duc-linear-element-base.js +0 -124
  200. package/dist/flatbuffers/duc/duc-linear-element.d.ts +0 -16
  201. package/dist/flatbuffers/duc/duc-linear-element.js +0 -49
  202. package/dist/flatbuffers/duc/duc-local-state.d.ts +0 -68
  203. package/dist/flatbuffers/duc/duc-local-state.js +0 -206
  204. package/dist/flatbuffers/duc/duc-mermaid-element.d.ts +0 -23
  205. package/dist/flatbuffers/duc/duc-mermaid-element.js +0 -65
  206. package/dist/flatbuffers/duc/duc-model-element.d.ts +0 -26
  207. package/dist/flatbuffers/duc/duc-model-element.js +0 -79
  208. package/dist/flatbuffers/duc/duc-parametric-element.d.ts +0 -16
  209. package/dist/flatbuffers/duc/duc-parametric-element.js +0 -44
  210. package/dist/flatbuffers/duc/duc-path.d.ts +0 -26
  211. package/dist/flatbuffers/duc/duc-path.js +0 -69
  212. package/dist/flatbuffers/duc/duc-pdf-element.d.ts +0 -19
  213. package/dist/flatbuffers/duc/duc-pdf-element.js +0 -51
  214. package/dist/flatbuffers/duc/duc-plot-element.d.ts +0 -19
  215. package/dist/flatbuffers/duc/duc-plot-element.js +0 -52
  216. package/dist/flatbuffers/duc/duc-plot-style.d.ts +0 -11
  217. package/dist/flatbuffers/duc/duc-plot-style.js +0 -32
  218. package/dist/flatbuffers/duc/duc-point-binding.d.ts +0 -26
  219. package/dist/flatbuffers/duc/duc-point-binding.js +0 -73
  220. package/dist/flatbuffers/duc/duc-point.d.ts +0 -18
  221. package/dist/flatbuffers/duc/duc-point.js +0 -57
  222. package/dist/flatbuffers/duc/duc-polygon-element.d.ts +0 -16
  223. package/dist/flatbuffers/duc/duc-polygon-element.js +0 -49
  224. package/dist/flatbuffers/duc/duc-rectangle-element.d.ts +0 -14
  225. package/dist/flatbuffers/duc/duc-rectangle-element.js +0 -41
  226. package/dist/flatbuffers/duc/duc-region.d.ts +0 -19
  227. package/dist/flatbuffers/duc/duc-region.js +0 -51
  228. package/dist/flatbuffers/duc/duc-stack-base.d.ts +0 -27
  229. package/dist/flatbuffers/duc/duc-stack-base.js +0 -78
  230. package/dist/flatbuffers/duc/duc-stack-element-base.d.ts +0 -23
  231. package/dist/flatbuffers/duc/duc-stack-element-base.js +0 -65
  232. package/dist/flatbuffers/duc/duc-stack-like-styles.d.ts +0 -16
  233. package/dist/flatbuffers/duc/duc-stack-like-styles.js +0 -48
  234. package/dist/flatbuffers/duc/duc-table-auto-size.d.ts +0 -15
  235. package/dist/flatbuffers/duc/duc-table-auto-size.js +0 -48
  236. package/dist/flatbuffers/duc/duc-table-cell-entry.d.ts +0 -16
  237. package/dist/flatbuffers/duc/duc-table-cell-entry.js +0 -44
  238. package/dist/flatbuffers/duc/duc-table-cell-span.d.ts +0 -15
  239. package/dist/flatbuffers/duc/duc-table-cell-span.js +0 -48
  240. package/dist/flatbuffers/duc/duc-table-cell-style.d.ts +0 -22
  241. package/dist/flatbuffers/duc/duc-table-cell-style.js +0 -59
  242. package/dist/flatbuffers/duc/duc-table-cell.d.ts +0 -27
  243. package/dist/flatbuffers/duc/duc-table-cell.js +0 -72
  244. package/dist/flatbuffers/duc/duc-table-column-entry.d.ts +0 -16
  245. package/dist/flatbuffers/duc/duc-table-column-entry.js +0 -44
  246. package/dist/flatbuffers/duc/duc-table-column.d.ts +0 -18
  247. package/dist/flatbuffers/duc/duc-table-column.js +0 -51
  248. package/dist/flatbuffers/duc/duc-table-element.d.ts +0 -51
  249. package/dist/flatbuffers/duc/duc-table-element.js +0 -167
  250. package/dist/flatbuffers/duc/duc-table-row-entry.d.ts +0 -16
  251. package/dist/flatbuffers/duc/duc-table-row-entry.js +0 -44
  252. package/dist/flatbuffers/duc/duc-table-row.d.ts +0 -18
  253. package/dist/flatbuffers/duc/duc-table-row.js +0 -51
  254. package/dist/flatbuffers/duc/duc-table-style.d.ts +0 -20
  255. package/dist/flatbuffers/duc/duc-table-style.js +0 -57
  256. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.d.ts +0 -14
  257. package/dist/flatbuffers/duc/duc-text-dynamic-dictionary-source.js +0 -40
  258. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.d.ts +0 -17
  259. package/dist/flatbuffers/duc/duc-text-dynamic-element-source.js +0 -49
  260. package/dist/flatbuffers/duc/duc-text-dynamic-part.d.ts +0 -22
  261. package/dist/flatbuffers/duc/duc-text-dynamic-part.js +0 -58
  262. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.d.ts +0 -9
  263. package/dist/flatbuffers/duc/duc-text-dynamic-source-data.js +0 -26
  264. package/dist/flatbuffers/duc/duc-text-dynamic-source.d.ts +0 -19
  265. package/dist/flatbuffers/duc/duc-text-dynamic-source.js +0 -58
  266. package/dist/flatbuffers/duc/duc-text-element.d.ts +0 -33
  267. package/dist/flatbuffers/duc/duc-text-element.js +0 -94
  268. package/dist/flatbuffers/duc/duc-text-style.d.ts +0 -41
  269. package/dist/flatbuffers/duc/duc-text-style.js +0 -120
  270. package/dist/flatbuffers/duc/duc-ucs.d.ts +0 -16
  271. package/dist/flatbuffers/duc/duc-ucs.js +0 -49
  272. package/dist/flatbuffers/duc/duc-view.d.ts +0 -24
  273. package/dist/flatbuffers/duc/duc-view.js +0 -71
  274. package/dist/flatbuffers/duc/duc-viewport-element.d.ts +0 -36
  275. package/dist/flatbuffers/duc/duc-viewport-element.js +0 -102
  276. package/dist/flatbuffers/duc/duc-viewport-style.d.ts +0 -13
  277. package/dist/flatbuffers/duc/duc-viewport-style.js +0 -40
  278. package/dist/flatbuffers/duc/duc-xray-element.d.ts +0 -23
  279. package/dist/flatbuffers/duc/duc-xray-element.js +0 -66
  280. package/dist/flatbuffers/duc/duc-xray-style.d.ts +0 -14
  281. package/dist/flatbuffers/duc/duc-xray-style.js +0 -40
  282. package/dist/flatbuffers/duc/dynamic-snap-settings.d.ts +0 -17
  283. package/dist/flatbuffers/duc/dynamic-snap-settings.js +0 -56
  284. package/dist/flatbuffers/duc/element-background.d.ts +0 -14
  285. package/dist/flatbuffers/duc/element-background.js +0 -41
  286. package/dist/flatbuffers/duc/element-content-base.d.ts +0 -29
  287. package/dist/flatbuffers/duc/element-content-base.js +0 -80
  288. package/dist/flatbuffers/duc/element-content-preference.d.ts +0 -8
  289. package/dist/flatbuffers/duc/element-content-preference.js +0 -11
  290. package/dist/flatbuffers/duc/element-stroke.d.ts +0 -24
  291. package/dist/flatbuffers/duc/element-stroke.js +0 -66
  292. package/dist/flatbuffers/duc/element-wrapper.d.ts +0 -16
  293. package/dist/flatbuffers/duc/element-wrapper.js +0 -49
  294. package/dist/flatbuffers/duc/element.d.ts +0 -51
  295. package/dist/flatbuffers/duc/element.js +0 -110
  296. package/dist/flatbuffers/duc/exported-data-state.d.ts +0 -102
  297. package/dist/flatbuffers/duc/exported-data-state.js +0 -341
  298. package/dist/flatbuffers/duc/fcfbetween-modifier.d.ts +0 -17
  299. package/dist/flatbuffers/duc/fcfbetween-modifier.js +0 -48
  300. package/dist/flatbuffers/duc/fcfdatum-definition.d.ts +0 -16
  301. package/dist/flatbuffers/duc/fcfdatum-definition.js +0 -43
  302. package/dist/flatbuffers/duc/fcfdatum-style.d.ts +0 -14
  303. package/dist/flatbuffers/duc/fcfdatum-style.js +0 -41
  304. package/dist/flatbuffers/duc/fcfframe-modifiers.d.ts +0 -22
  305. package/dist/flatbuffers/duc/fcfframe-modifiers.js +0 -65
  306. package/dist/flatbuffers/duc/fcflayout-style.d.ts +0 -17
  307. package/dist/flatbuffers/duc/fcflayout-style.js +0 -56
  308. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.d.ts +0 -13
  309. package/dist/flatbuffers/duc/fcfprojected-zone-modifier.js +0 -40
  310. package/dist/flatbuffers/duc/fcfsegment-row.d.ts +0 -17
  311. package/dist/flatbuffers/duc/fcfsegment-row.js +0 -55
  312. package/dist/flatbuffers/duc/fcfsymbol-style.d.ts +0 -13
  313. package/dist/flatbuffers/duc/fcfsymbol-style.js +0 -40
  314. package/dist/flatbuffers/duc/feature-control-frame-segment.d.ts +0 -22
  315. package/dist/flatbuffers/duc/feature-control-frame-segment.js +0 -65
  316. package/dist/flatbuffers/duc/feature-modifier.d.ts +0 -18
  317. package/dist/flatbuffers/duc/feature-modifier.js +0 -21
  318. package/dist/flatbuffers/duc/gdt-symbol.d.ts +0 -22
  319. package/dist/flatbuffers/duc/gdt-symbol.js +0 -25
  320. package/dist/flatbuffers/duc/geometric-point.d.ts +0 -10
  321. package/dist/flatbuffers/duc/geometric-point.js +0 -27
  322. package/dist/flatbuffers/duc/grid-display-type.d.ts +0 -6
  323. package/dist/flatbuffers/duc/grid-display-type.js +0 -9
  324. package/dist/flatbuffers/duc/grid-settings.d.ts +0 -54
  325. package/dist/flatbuffers/duc/grid-settings.js +0 -165
  326. package/dist/flatbuffers/duc/grid-style.d.ts +0 -26
  327. package/dist/flatbuffers/duc/grid-style.js +0 -74
  328. package/dist/flatbuffers/duc/grid-type.d.ts +0 -7
  329. package/dist/flatbuffers/duc/grid-type.js +0 -10
  330. package/dist/flatbuffers/duc/handle-type.d.ts +0 -4
  331. package/dist/flatbuffers/duc/handle-type.js +0 -7
  332. package/dist/flatbuffers/duc/hatch-pattern-line.d.ts +0 -35
  333. package/dist/flatbuffers/duc/hatch-pattern-line.js +0 -93
  334. package/dist/flatbuffers/duc/hatch-style.d.ts +0 -5
  335. package/dist/flatbuffers/duc/hatch-style.js +0 -8
  336. package/dist/flatbuffers/duc/identified-common-style.d.ts +0 -16
  337. package/dist/flatbuffers/duc/identified-common-style.js +0 -44
  338. package/dist/flatbuffers/duc/identified-dimension-style.d.ts +0 -16
  339. package/dist/flatbuffers/duc/identified-dimension-style.js +0 -44
  340. package/dist/flatbuffers/duc/identified-doc-style.d.ts +0 -16
  341. package/dist/flatbuffers/duc/identified-doc-style.js +0 -44
  342. package/dist/flatbuffers/duc/identified-fcfstyle.d.ts +0 -16
  343. package/dist/flatbuffers/duc/identified-fcfstyle.js +0 -44
  344. package/dist/flatbuffers/duc/identified-grid-settings.d.ts +0 -16
  345. package/dist/flatbuffers/duc/identified-grid-settings.js +0 -44
  346. package/dist/flatbuffers/duc/identified-hatch-style.d.ts +0 -16
  347. package/dist/flatbuffers/duc/identified-hatch-style.js +0 -44
  348. package/dist/flatbuffers/duc/identified-leader-style.d.ts +0 -16
  349. package/dist/flatbuffers/duc/identified-leader-style.js +0 -44
  350. package/dist/flatbuffers/duc/identified-snap-settings.d.ts +0 -16
  351. package/dist/flatbuffers/duc/identified-snap-settings.js +0 -44
  352. package/dist/flatbuffers/duc/identified-stack-like-style.d.ts +0 -16
  353. package/dist/flatbuffers/duc/identified-stack-like-style.js +0 -44
  354. package/dist/flatbuffers/duc/identified-table-style.d.ts +0 -16
  355. package/dist/flatbuffers/duc/identified-table-style.js +0 -44
  356. package/dist/flatbuffers/duc/identified-text-style.d.ts +0 -16
  357. package/dist/flatbuffers/duc/identified-text-style.js +0 -44
  358. package/dist/flatbuffers/duc/identified-ucs.d.ts +0 -16
  359. package/dist/flatbuffers/duc/identified-ucs.js +0 -44
  360. package/dist/flatbuffers/duc/identified-view.d.ts +0 -16
  361. package/dist/flatbuffers/duc/identified-view.js +0 -44
  362. package/dist/flatbuffers/duc/identified-viewport-style.d.ts +0 -16
  363. package/dist/flatbuffers/duc/identified-viewport-style.js +0 -44
  364. package/dist/flatbuffers/duc/identified-xray-style.d.ts +0 -16
  365. package/dist/flatbuffers/duc/identified-xray-style.js +0 -44
  366. package/dist/flatbuffers/duc/identifier.d.ts +0 -20
  367. package/dist/flatbuffers/duc/identifier.js +0 -57
  368. package/dist/flatbuffers/duc/image-crop.d.ts +0 -23
  369. package/dist/flatbuffers/duc/image-crop.js +0 -80
  370. package/dist/flatbuffers/duc/image-status.d.ts +0 -5
  371. package/dist/flatbuffers/duc/image-status.js +0 -8
  372. package/dist/flatbuffers/duc/isometric-grid-settings.d.ts +0 -15
  373. package/dist/flatbuffers/duc/isometric-grid-settings.js +0 -48
  374. package/dist/flatbuffers/duc/jsonpatch-operation.d.ts +0 -23
  375. package/dist/flatbuffers/duc/jsonpatch-operation.js +0 -64
  376. package/dist/flatbuffers/duc/layer-snap-filters.d.ts +0 -23
  377. package/dist/flatbuffers/duc/layer-snap-filters.js +0 -76
  378. package/dist/flatbuffers/duc/layer-validation-rules.d.ts +0 -17
  379. package/dist/flatbuffers/duc/layer-validation-rules.js +0 -54
  380. package/dist/flatbuffers/duc/leader-block-content.d.ts +0 -25
  381. package/dist/flatbuffers/duc/leader-block-content.js +0 -85
  382. package/dist/flatbuffers/duc/leader-content-data.d.ts +0 -9
  383. package/dist/flatbuffers/duc/leader-content-data.js +0 -26
  384. package/dist/flatbuffers/duc/leader-content-type.d.ts +0 -4
  385. package/dist/flatbuffers/duc/leader-content-type.js +0 -7
  386. package/dist/flatbuffers/duc/leader-content.d.ts +0 -19
  387. package/dist/flatbuffers/duc/leader-content.js +0 -58
  388. package/dist/flatbuffers/duc/leader-text-block-content.d.ts +0 -14
  389. package/dist/flatbuffers/duc/leader-text-block-content.js +0 -40
  390. package/dist/flatbuffers/duc/line-head.d.ts +0 -17
  391. package/dist/flatbuffers/duc/line-head.js +0 -20
  392. package/dist/flatbuffers/duc/line-spacing-type.d.ts +0 -5
  393. package/dist/flatbuffers/duc/line-spacing-type.js +0 -8
  394. package/dist/flatbuffers/duc/line-spacing.d.ts +0 -16
  395. package/dist/flatbuffers/duc/line-spacing.js +0 -49
  396. package/dist/flatbuffers/duc/linear-unit-system.d.ts +0 -24
  397. package/dist/flatbuffers/duc/linear-unit-system.js +0 -75
  398. package/dist/flatbuffers/duc/margins.d.ts +0 -19
  399. package/dist/flatbuffers/duc/margins.js +0 -64
  400. package/dist/flatbuffers/duc/mark-ellipse-center.d.ts +0 -4
  401. package/dist/flatbuffers/duc/mark-ellipse-center.js +0 -7
  402. package/dist/flatbuffers/duc/material-condition.d.ts +0 -5
  403. package/dist/flatbuffers/duc/material-condition.js +0 -8
  404. package/dist/flatbuffers/duc/object-snap-mode.d.ts +0 -22
  405. package/dist/flatbuffers/duc/object-snap-mode.js +0 -25
  406. package/dist/flatbuffers/duc/paragraph-formatting.d.ts +0 -33
  407. package/dist/flatbuffers/duc/paragraph-formatting.js +0 -106
  408. package/dist/flatbuffers/duc/parametric-source-type.d.ts +0 -4
  409. package/dist/flatbuffers/duc/parametric-source-type.js +0 -7
  410. package/dist/flatbuffers/duc/parametric-source.d.ts +0 -20
  411. package/dist/flatbuffers/duc/parametric-source.js +0 -57
  412. package/dist/flatbuffers/duc/plot-layout.d.ts +0 -14
  413. package/dist/flatbuffers/duc/plot-layout.js +0 -41
  414. package/dist/flatbuffers/duc/point-binding-point.d.ts +0 -15
  415. package/dist/flatbuffers/duc/point-binding-point.js +0 -48
  416. package/dist/flatbuffers/duc/polar-grid-settings.d.ts +0 -17
  417. package/dist/flatbuffers/duc/polar-grid-settings.js +0 -56
  418. package/dist/flatbuffers/duc/polar-tracking-settings.d.ts +0 -29
  419. package/dist/flatbuffers/duc/polar-tracking-settings.js +0 -90
  420. package/dist/flatbuffers/duc/primary-units.d.ts +0 -16
  421. package/dist/flatbuffers/duc/primary-units.js +0 -44
  422. package/dist/flatbuffers/duc/pruning-level.d.ts +0 -5
  423. package/dist/flatbuffers/duc/pruning-level.js +0 -8
  424. package/dist/flatbuffers/duc/snap-marker-settings.d.ts +0 -23
  425. package/dist/flatbuffers/duc/snap-marker-settings.js +0 -79
  426. package/dist/flatbuffers/duc/snap-marker-shape.d.ts +0 -6
  427. package/dist/flatbuffers/duc/snap-marker-shape.js +0 -9
  428. package/dist/flatbuffers/duc/snap-marker-style-entry.d.ts +0 -16
  429. package/dist/flatbuffers/duc/snap-marker-style-entry.js +0 -43
  430. package/dist/flatbuffers/duc/snap-marker-style.d.ts +0 -17
  431. package/dist/flatbuffers/duc/snap-marker-style.js +0 -49
  432. package/dist/flatbuffers/duc/snap-mode.d.ts +0 -4
  433. package/dist/flatbuffers/duc/snap-mode.js +0 -7
  434. package/dist/flatbuffers/duc/snap-override-behavior.d.ts +0 -5
  435. package/dist/flatbuffers/duc/snap-override-behavior.js +0 -8
  436. package/dist/flatbuffers/duc/snap-override.d.ts +0 -17
  437. package/dist/flatbuffers/duc/snap-override.js +0 -49
  438. package/dist/flatbuffers/duc/snap-settings.d.ts +0 -75
  439. package/dist/flatbuffers/duc/snap-settings.js +0 -245
  440. package/dist/flatbuffers/duc/stack-format-properties.d.ts +0 -18
  441. package/dist/flatbuffers/duc/stack-format-properties.js +0 -57
  442. package/dist/flatbuffers/duc/stack-format.d.ts +0 -21
  443. package/dist/flatbuffers/duc/stack-format.js +0 -64
  444. package/dist/flatbuffers/duc/stacked-text-align.d.ts +0 -5
  445. package/dist/flatbuffers/duc/stacked-text-align.js +0 -8
  446. package/dist/flatbuffers/duc/standard-overrides.d.ts +0 -63
  447. package/dist/flatbuffers/duc/standard-overrides.js +0 -162
  448. package/dist/flatbuffers/duc/standard-styles.d.ts +0 -77
  449. package/dist/flatbuffers/duc/standard-styles.js +0 -285
  450. package/dist/flatbuffers/duc/standard-units.d.ts +0 -16
  451. package/dist/flatbuffers/duc/standard-units.js +0 -44
  452. package/dist/flatbuffers/duc/standard-validation.d.ts +0 -16
  453. package/dist/flatbuffers/duc/standard-validation.js +0 -44
  454. package/dist/flatbuffers/duc/standard-view-settings.d.ts +0 -35
  455. package/dist/flatbuffers/duc/standard-view-settings.js +0 -124
  456. package/dist/flatbuffers/duc/standard.d.ts +0 -33
  457. package/dist/flatbuffers/duc/standard.js +0 -90
  458. package/dist/flatbuffers/duc/string-value-entry.d.ts +0 -17
  459. package/dist/flatbuffers/duc/string-value-entry.js +0 -49
  460. package/dist/flatbuffers/duc/stroke-cap.d.ts +0 -5
  461. package/dist/flatbuffers/duc/stroke-cap.js +0 -8
  462. package/dist/flatbuffers/duc/stroke-join.d.ts +0 -5
  463. package/dist/flatbuffers/duc/stroke-join.js +0 -8
  464. package/dist/flatbuffers/duc/stroke-placement.d.ts +0 -5
  465. package/dist/flatbuffers/duc/stroke-placement.js +0 -8
  466. package/dist/flatbuffers/duc/stroke-preference.d.ts +0 -6
  467. package/dist/flatbuffers/duc/stroke-preference.js +0 -9
  468. package/dist/flatbuffers/duc/stroke-side-preference.d.ts +0 -8
  469. package/dist/flatbuffers/duc/stroke-side-preference.js +0 -11
  470. package/dist/flatbuffers/duc/stroke-sides.d.ts +0 -24
  471. package/dist/flatbuffers/duc/stroke-sides.js +0 -67
  472. package/dist/flatbuffers/duc/stroke-style.d.ts +0 -37
  473. package/dist/flatbuffers/duc/stroke-style.js +0 -111
  474. package/dist/flatbuffers/duc/stroke-width.d.ts +0 -5
  475. package/dist/flatbuffers/duc/stroke-width.js +0 -8
  476. package/dist/flatbuffers/duc/table-cell-alignment.d.ts +0 -11
  477. package/dist/flatbuffers/duc/table-cell-alignment.js +0 -14
  478. package/dist/flatbuffers/duc/table-flow-direction.d.ts +0 -4
  479. package/dist/flatbuffers/duc/table-flow-direction.js +0 -7
  480. package/dist/flatbuffers/duc/text-align.d.ts +0 -5
  481. package/dist/flatbuffers/duc/text-align.js +0 -8
  482. package/dist/flatbuffers/duc/text-column.d.ts +0 -15
  483. package/dist/flatbuffers/duc/text-column.js +0 -48
  484. package/dist/flatbuffers/duc/text-field-source-property.d.ts +0 -13
  485. package/dist/flatbuffers/duc/text-field-source-property.js +0 -16
  486. package/dist/flatbuffers/duc/text-field-source-type.d.ts +0 -4
  487. package/dist/flatbuffers/duc/text-field-source-type.js +0 -7
  488. package/dist/flatbuffers/duc/text-flow-direction.d.ts +0 -6
  489. package/dist/flatbuffers/duc/text-flow-direction.js +0 -9
  490. package/dist/flatbuffers/duc/tiling-properties.d.ts +0 -21
  491. package/dist/flatbuffers/duc/tiling-properties.js +0 -75
  492. package/dist/flatbuffers/duc/tolerance-clause.d.ts +0 -27
  493. package/dist/flatbuffers/duc/tolerance-clause.js +0 -84
  494. package/dist/flatbuffers/duc/tolerance-display.d.ts +0 -7
  495. package/dist/flatbuffers/duc/tolerance-display.js +0 -10
  496. package/dist/flatbuffers/duc/tolerance-type.d.ts +0 -5
  497. package/dist/flatbuffers/duc/tolerance-type.js +0 -8
  498. package/dist/flatbuffers/duc/tolerance-zone-type.d.ts +0 -7
  499. package/dist/flatbuffers/duc/tolerance-zone-type.js +0 -10
  500. package/dist/flatbuffers/duc/tracking-line-style.d.ts +0 -26
  501. package/dist/flatbuffers/duc/tracking-line-style.js +0 -74
  502. package/dist/flatbuffers/duc/unit-precision.d.ts +0 -19
  503. package/dist/flatbuffers/duc/unit-precision.js +0 -64
  504. package/dist/flatbuffers/duc/unit-system-base.d.ts +0 -20
  505. package/dist/flatbuffers/duc/unit-system-base.js +0 -65
  506. package/dist/flatbuffers/duc/unit-system.d.ts +0 -4
  507. package/dist/flatbuffers/duc/unit-system.js +0 -7
  508. package/dist/flatbuffers/duc/version-base.d.ts +0 -27
  509. package/dist/flatbuffers/duc/version-base.js +0 -80
  510. package/dist/flatbuffers/duc/version-graph-metadata.d.ts +0 -15
  511. package/dist/flatbuffers/duc/version-graph-metadata.js +0 -48
  512. package/dist/flatbuffers/duc/version-graph.d.ts +0 -31
  513. package/dist/flatbuffers/duc/version-graph.js +0 -94
  514. package/dist/flatbuffers/duc/vertical-align.d.ts +0 -5
  515. package/dist/flatbuffers/duc/vertical-align.js +0 -8
  516. package/dist/flatbuffers/duc/viewport-shade-plot.d.ts +0 -6
  517. package/dist/flatbuffers/duc/viewport-shade-plot.js +0 -9
  518. package/dist/flatbuffers/duc/youtube-states.d.ts +0 -8
  519. package/dist/flatbuffers/duc/youtube-states.js +0 -11
  520. package/dist/flatbuffers/duc.d.ts +0 -234
  521. package/dist/flatbuffers/duc.js +0 -236
  522. package/dist/restore/restoreStandards.d.ts +0 -8
  523. package/dist/restore/restoreStandards.js +0 -224
  524. package/dist/technical/standards.d.ts +0 -124
  525. package/dist/technical/standards.js +0 -10
  526. package/dist/utils/elements/viewportElement.d.ts +0 -6
  527. package/dist/utils/elements/viewportElement.js +0 -9
  528. package/dist/utils/state/grid.d.ts +0 -7
  529. package/dist/utils/state/grid.js +0 -25
@@ -9,13 +9,13 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import { getUpdatedTimestamp, getZoom } from "..";
13
- import { BLOCK_ATTACHMENT, COLUMN_TYPE, DATUM_BRACKET_STYLE, IMAGE_STATUS, LINE_SPACING_TYPE, STACKED_TEXT_ALIGN, TEXT_FLOW_DIRECTION, VERTICAL_ALIGN, VIEWPORT_SHADE_PLOT } from "../../flatbuffers/duc";
12
+ import { getUpdatedTimestamp } from "..";
13
+ import { IMAGE_STATUS, LINE_SPACING_TYPE, } from "../../enums";
14
14
  import { getPrecisionValueFromRaw } from "../../technical/scopes";
15
15
  import { DEFAULT_ELEMENT_PROPS, DEFAULT_ELLIPSE_ELEMENT, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FREEDRAW_ELEMENT, DEFAULT_POLYGON_SIDES, DEFAULT_TEXT_ALIGN, DEFAULT_VERTICAL_ALIGN } from "../constants";
16
16
  import { randomId, randomInteger } from "../math/random";
17
17
  import { normalizeText } from "../normalize";
18
- import { getDefaultStackProperties, getDefaultTableData, getDefaultTextStyle } from "./";
18
+ import { getDefaultStackProperties } from "./";
19
19
  import { getFontString, getTextElementPositionOffsets, measureText, } from "./textElement";
20
20
  export const newElementWith = (element, updates,
21
21
  /** pass `true` to always regenerate */
@@ -39,7 +39,7 @@ force = false) => {
39
39
  };
40
40
  const _newElementBase = (type, currentScope, _a) => {
41
41
  var _b, _c;
42
- var { x, y, scope = currentScope, zIndex, index = DEFAULT_ELEMENT_PROPS.index, label, isVisible = DEFAULT_ELEMENT_PROPS.isVisible, isPlot = DEFAULT_ELEMENT_PROPS.isPlot, isAnnotative = DEFAULT_ELEMENT_PROPS.isAnnotative, stroke = [DEFAULT_ELEMENT_PROPS.stroke], background = [DEFAULT_ELEMENT_PROPS.background], opacity = DEFAULT_ELEMENT_PROPS.opacity, width = DEFAULT_ELEMENT_PROPS.width, height = DEFAULT_ELEMENT_PROPS.height, angle = DEFAULT_ELEMENT_PROPS.angle, groupIds = DEFAULT_ELEMENT_PROPS.groupIds, blockIds = [], instanceId = null, regionIds = [], frameId = DEFAULT_ELEMENT_PROPS.frameId, layerId = null, roundness = DEFAULT_ELEMENT_PROPS.roundness, boundElements = DEFAULT_ELEMENT_PROPS.boundElements, link = DEFAULT_ELEMENT_PROPS.link, locked = DEFAULT_ELEMENT_PROPS.locked, description = null } = _a, rest = __rest(_a, ["x", "y", "scope", "zIndex", "index", "label", "isVisible", "isPlot", "isAnnotative", "stroke", "background", "opacity", "width", "height", "angle", "groupIds", "blockIds", "instanceId", "regionIds", "frameId", "layerId", "roundness", "boundElements", "link", "locked", "description"]);
42
+ var { x, y, scope = currentScope, zIndex, index = DEFAULT_ELEMENT_PROPS.index, label, isVisible = DEFAULT_ELEMENT_PROPS.isVisible, isPlot = DEFAULT_ELEMENT_PROPS.isPlot, stroke = [DEFAULT_ELEMENT_PROPS.stroke], background = [DEFAULT_ELEMENT_PROPS.background], opacity = DEFAULT_ELEMENT_PROPS.opacity, width = DEFAULT_ELEMENT_PROPS.width, height = DEFAULT_ELEMENT_PROPS.height, angle = DEFAULT_ELEMENT_PROPS.angle, groupIds = DEFAULT_ELEMENT_PROPS.groupIds, blockIds = [], instanceId = null, regionIds = [], frameId = DEFAULT_ELEMENT_PROPS.frameId, layerId = null, roundness = DEFAULT_ELEMENT_PROPS.roundness, boundElements = DEFAULT_ELEMENT_PROPS.boundElements, link = DEFAULT_ELEMENT_PROPS.link, locked = DEFAULT_ELEMENT_PROPS.locked, description = null } = _a, rest = __rest(_a, ["x", "y", "scope", "zIndex", "index", "label", "isVisible", "isPlot", "stroke", "background", "opacity", "width", "height", "angle", "groupIds", "blockIds", "instanceId", "regionIds", "frameId", "layerId", "roundness", "boundElements", "link", "locked", "description"]);
43
43
  // assign type to guard against excess properties
44
44
  const element = {
45
45
  id: rest.id || randomId(),
@@ -73,7 +73,6 @@ const _newElementBase = (type, currentScope, _a) => {
73
73
  description,
74
74
  customData: rest.customData,
75
75
  isPlot,
76
- isAnnotative,
77
76
  regionIds,
78
77
  layerId,
79
78
  };
@@ -83,8 +82,8 @@ export const newElement = (currentScope, opts) => _newElementBase(opts.type, cur
83
82
  export const newEmbeddableElement = (currentScope, opts) => {
84
83
  return Object.assign(Object.assign({}, opts), _newElementBase(opts.type, currentScope, opts));
85
84
  };
86
- export const newFrameElement = (currentScope, opts) => (Object.assign(Object.assign(Object.assign(Object.assign({}, getDefaultStackProperties()), { clip: false, labelVisible: true, standardOverride: null }), _newElementBase("frame", currentScope, opts)), { type: "frame" }));
87
- export const newPlotElement = (currentScope, opts) => (Object.assign(Object.assign(Object.assign(Object.assign({}, getDefaultStackProperties()), { clip: false, labelVisible: true, standardOverride: null, layout: {
85
+ export const newFrameElement = (currentScope, opts) => (Object.assign(Object.assign(Object.assign(Object.assign({}, getDefaultStackProperties()), { clip: false, labelVisible: true }), _newElementBase("frame", currentScope, opts)), { type: "frame" }));
86
+ export const newPlotElement = (currentScope, opts) => (Object.assign(Object.assign(Object.assign(Object.assign({}, getDefaultStackProperties()), { clip: false, labelVisible: true, layout: {
88
87
  margins: {
89
88
  top: getPrecisionValueFromRaw(0, currentScope, currentScope),
90
89
  right: getPrecisionValueFromRaw(0, currentScope, currentScope),
@@ -92,20 +91,6 @@ export const newPlotElement = (currentScope, opts) => (Object.assign(Object.assi
92
91
  left: getPrecisionValueFromRaw(0, currentScope, currentScope),
93
92
  }
94
93
  } }), _newElementBase("plot", currentScope, opts)), { type: "plot" }));
95
- export const newViewportElement = (currentScope, opts) => {
96
- var _a, _b, _c;
97
- return (Object.assign(Object.assign(Object.assign(Object.assign({}, getDefaultStackProperties()), { points: [], lines: [], pathOverrides: [], lastCommittedPoint: null, startBinding: null, endBinding: null, standardOverride: null, view: {
98
- scrollX: getPrecisionValueFromRaw(0, currentScope, currentScope),
99
- scrollY: getPrecisionValueFromRaw(0, currentScope, currentScope),
100
- zoom: getZoom((_a = opts.zoom) !== null && _a !== void 0 ? _a : 1, (_b = opts.mainScope) !== null && _b !== void 0 ? _b : currentScope, (_c = opts.scopeExponentThreshold) !== null && _c !== void 0 ? _c : 2),
101
- twistAngle: 0,
102
- centerPoint: {
103
- x: getPrecisionValueFromRaw(0, currentScope, currentScope),
104
- y: getPrecisionValueFromRaw(0, currentScope, currentScope),
105
- },
106
- scope: currentScope,
107
- }, scale: 1, shadePlot: VIEWPORT_SHADE_PLOT.AS_DISPLAYED, frozenGroupIds: [], scaleIndicatorVisible: true }), _newElementBase("viewport", currentScope, opts)), { type: "viewport" }));
108
- };
109
94
  export const newEllipseElement = (currentScope, opts) => {
110
95
  return Object.assign(Object.assign({}, _newElementBase(opts.type, currentScope, opts)), { ratio: opts.ratio || DEFAULT_ELLIPSE_ELEMENT.ratio, startAngle: opts.startAngle || DEFAULT_ELLIPSE_ELEMENT.startAngle, endAngle: opts.endAngle || DEFAULT_ELLIPSE_ELEMENT.endAngle, showAuxCrosshair: opts.showAuxCrosshair || DEFAULT_ELLIPSE_ELEMENT.showAuxCrosshair });
111
96
  };
@@ -123,15 +108,24 @@ export const newTextElement = (currentScope, opts) => {
123
108
  const textAlign = opts.textAlign || DEFAULT_TEXT_ALIGN;
124
109
  const verticalAlign = opts.verticalAlign || DEFAULT_VERTICAL_ALIGN;
125
110
  const offsets = getTextElementPositionOffsets({ textAlign, verticalAlign }, metrics);
111
+ // Minimum dimensions: at least 1px wide, at least one line high (NaN-safe)
112
+ const rawMinLineHeight = fontSize.value * lineHeight;
113
+ const minLineHeight = (Number.isFinite(rawMinLineHeight) && rawMinLineHeight > 0)
114
+ ? rawMinLineHeight
115
+ : DEFAULT_FONT_SIZE * lineHeight;
116
+ const finalWidth = (Number.isFinite(metrics.width) && metrics.width > 0) ? metrics.width : 1;
117
+ const finalHeight = (Number.isFinite(metrics.height) && metrics.height > 0)
118
+ ? Math.max(metrics.height, minLineHeight)
119
+ : minLineHeight;
126
120
  const x = getPrecisionValueFromRaw(opts.x.value - offsets.x, scope, currentScope);
127
121
  const y = getPrecisionValueFromRaw(opts.y.value - offsets.y, scope, currentScope);
128
122
  return Object.assign(Object.assign({}, _newElementBase("text", currentScope, Object.assign(Object.assign({}, opts), { x, y }))), { type: "text", text,
129
123
  fontSize,
130
124
  fontFamily,
131
125
  textAlign,
132
- verticalAlign, width: getPrecisionValueFromRaw(metrics.width, scope, currentScope), height: getPrecisionValueFromRaw(metrics.height, scope, currentScope), containerId: opts.containerId || null, originalText: (_b = opts.originalText) !== null && _b !== void 0 ? _b : text, autoResize: (_c = opts.autoResize) !== null && _c !== void 0 ? _c : true, lineHeight,
126
+ verticalAlign, width: getPrecisionValueFromRaw(finalWidth, scope, currentScope), height: getPrecisionValueFromRaw(finalHeight, scope, currentScope), containerId: opts.containerId || null, originalText: (_b = opts.originalText) !== null && _b !== void 0 ? _b : text, autoResize: (_c = opts.autoResize) !== null && _c !== void 0 ? _c : true, lineHeight,
133
127
  // DucTextStyle properties
134
- isLtr: (_d = opts.isLtr) !== null && _d !== void 0 ? _d : true, bigFontFamily: opts.bigFontFamily || "sans-serif", lineSpacing: opts.lineSpacing || { type: LINE_SPACING_TYPE.MULTIPLE, value: lineHeight }, obliqueAngle: opts.obliqueAngle || 0, paperTextHeight: opts.paperTextHeight, widthFactor: opts.widthFactor || 1, isUpsideDown: (_e = opts.isUpsideDown) !== null && _e !== void 0 ? _e : false, isBackwards: (_f = opts.isBackwards) !== null && _f !== void 0 ? _f : false, dynamic: opts.dynamic || [] });
128
+ isLtr: (_d = opts.isLtr) !== null && _d !== void 0 ? _d : true, bigFontFamily: opts.bigFontFamily || "sans-serif", lineSpacing: opts.lineSpacing || { type: LINE_SPACING_TYPE.MULTIPLE, value: lineHeight }, obliqueAngle: opts.obliqueAngle || 0, widthFactor: opts.widthFactor || 1, isUpsideDown: (_e = opts.isUpsideDown) !== null && _e !== void 0 ? _e : false, isBackwards: (_f = opts.isBackwards) !== null && _f !== void 0 ? _f : false });
135
129
  };
136
130
  export const newFreeDrawElement = (currentScope, opts) => {
137
131
  var _a, _b, _c, _d;
@@ -150,36 +144,22 @@ export const newImageElement = (currentScope, opts) => {
150
144
  var _a, _b, _c;
151
145
  return (Object.assign(Object.assign({}, _newElementBase("image", currentScope, opts)), { type: "image", status: (_a = opts.status) !== null && _a !== void 0 ? _a : IMAGE_STATUS.PENDING, fileId: (_b = opts.fileId) !== null && _b !== void 0 ? _b : null, scaleFlip: (_c = opts.scaleFlip) !== null && _c !== void 0 ? _c : [1, 1], crop: null, filter: null }));
152
146
  };
153
- export const newTableElement = (currentScope, opts) => (Object.assign(Object.assign(Object.assign({}, _newElementBase("table", currentScope, opts)), getDefaultTableData(currentScope)), { type: "table" }));
154
- export const newDocElement = (currentScope, opts) => {
155
- var _a, _b, _c, _d;
156
- return (Object.assign(Object.assign({}, _newElementBase("doc", currentScope, opts)), { type: "doc", text: opts.text || "", dynamic: opts.dynamic || [], flowDirection: opts.flowDirection || TEXT_FLOW_DIRECTION.TOP_TO_BOTTOM, columns: opts.columns || { type: COLUMN_TYPE.NO_COLUMNS, definitions: [], autoHeight: true }, autoResize: (_a = opts.autoResize) !== null && _a !== void 0 ? _a : true, fileId: null, gridConfig: { columns: 1, gapX: 0, gapY: 0, alignItems: 'start', firstPageAlone: false },
157
- // DucDocStyle properties
158
- isLtr: (_b = opts.isLtr) !== null && _b !== void 0 ? _b : true, fontFamily: opts.fontFamily || DEFAULT_FONT_FAMILY, bigFontFamily: opts.bigFontFamily || "sans-serif", textAlign: opts.textAlign || DEFAULT_TEXT_ALIGN, verticalAlign: opts.verticalAlign || DEFAULT_VERTICAL_ALIGN, lineHeight: opts.lineHeight || 1.2, lineSpacing: opts.lineSpacing || { type: LINE_SPACING_TYPE.MULTIPLE, value: 1.2 }, obliqueAngle: opts.obliqueAngle || 0, fontSize: opts.fontSize || getPrecisionValueFromRaw(DEFAULT_FONT_SIZE, currentScope, currentScope), paperTextHeight: opts.paperTextHeight, widthFactor: opts.widthFactor || 1, isUpsideDown: (_c = opts.isUpsideDown) !== null && _c !== void 0 ? _c : false, isBackwards: (_d = opts.isBackwards) !== null && _d !== void 0 ? _d : false, paragraph: opts.paragraph || { firstLineIndent: getPrecisionValueFromRaw(0, currentScope, currentScope), hangingIndent: getPrecisionValueFromRaw(0, currentScope, currentScope), leftIndent: getPrecisionValueFromRaw(0, currentScope, currentScope), rightIndent: getPrecisionValueFromRaw(0, currentScope, currentScope), spaceBefore: getPrecisionValueFromRaw(0, currentScope, currentScope), spaceAfter: getPrecisionValueFromRaw(0, currentScope, currentScope), tabStops: [] }, stackFormat: opts.stackFormat || { autoStack: false, stackChars: [], properties: { upperScale: 0.7, lowerScale: 0.7, alignment: STACKED_TEXT_ALIGN.CENTER } } }));
159
- };
160
- export const newPdfElement = (currentScope, opts) => (Object.assign(Object.assign({ fileId: null, gridConfig: { columns: 1, gapX: 0, gapY: 0, alignItems: 'start', firstPageAlone: false } }, _newElementBase("pdf", currentScope, opts)), { type: "pdf" }));
161
- export const newMermaidElement = (currentScope, opts) => (Object.assign(Object.assign({ source: "", theme: undefined, svgPath: null }, _newElementBase("mermaid", currentScope, opts)), { type: "mermaid" }));
162
- export const newXRayElement = (currentScope, opts) => (Object.assign(Object.assign({ origin: { x: getPrecisionValueFromRaw(0, currentScope, currentScope), y: getPrecisionValueFromRaw(0, currentScope, currentScope) }, direction: { x: getPrecisionValueFromRaw(1, currentScope, currentScope), y: getPrecisionValueFromRaw(0, currentScope, currentScope) }, startFromOrigin: false, color: '#FF00FF' }, _newElementBase("xray", currentScope, opts)), { type: "xray" }));
163
- export const newLeaderElement = (currentScope, opts) => {
164
- var _a, _b;
165
- return Object.assign(Object.assign({ points: [], lines: [], pathOverrides: [], lastCommittedPoint: null, startBinding: null, endBinding: null, headsOverride: undefined, dogleg: getPrecisionValueFromRaw(10, currentScope, currentScope), textStyle: opts.textStyle || getDefaultTextStyle(currentScope), textAttachment: opts.textAttachment || VERTICAL_ALIGN.TOP, blockAttachment: opts.blockAttachment || BLOCK_ATTACHMENT.CENTER_EXTENTS, leaderContent: (_a = opts.leaderContent) !== null && _a !== void 0 ? _a : null, contentAnchor: (_b = opts.contentAnchor) !== null && _b !== void 0 ? _b : {
166
- x: 0,
167
- y: 0,
168
- } }, _newElementBase("leader", currentScope, opts)), { type: "leader" });
169
- };
170
- export const newDimensionElement = (currentScope, opts) => (Object.assign(Object.assign({}, _newElementBase("dimension", currentScope, opts)), { type: 'dimension' }));
171
- export const newFeatureControlFrameElement = (currentScope, opts) => {
172
- return Object.assign(Object.assign({ rows: [], leaderElementId: null, textStyle: getDefaultTextStyle(currentScope), layout: {
173
- padding: getPrecisionValueFromRaw(4, currentScope, currentScope),
174
- segmentSpacing: getPrecisionValueFromRaw(4, currentScope, currentScope),
175
- rowSpacing: getPrecisionValueFromRaw(2, currentScope, currentScope),
176
- }, symbols: {
177
- scale: 1,
178
- }, datumStyle: {
179
- bracketStyle: DATUM_BRACKET_STYLE.SQUARE
180
- } }, _newElementBase("featurecontrolframe", currentScope, opts)), { type: "featurecontrolframe" });
147
+ export const newTableElement = (currentScope, opts) => {
148
+ var _a;
149
+ return (Object.assign(Object.assign({}, _newElementBase("table", currentScope, opts)), { fileId: (_a = opts.fileId) !== null && _a !== void 0 ? _a : null, type: "table" }));
181
150
  };
182
- export const newParametricElement = (currentScope, opts) => (Object.assign(Object.assign({ source: "", svgPath: null, fileIds: [] }, _newElementBase("model", currentScope, opts)), { type: 'model' }));
151
+ export const newDocElement = (currentScope, opts) => {
152
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
153
+ return (Object.assign(Object.assign({}, _newElementBase("doc", currentScope, opts)), { type: "doc", text: opts.text || "", fileId: (_a = opts.fileId) !== null && _a !== void 0 ? _a : null, gridConfig: {
154
+ columns: (_c = (_b = opts.gridConfig) === null || _b === void 0 ? void 0 : _b.columns) !== null && _c !== void 0 ? _c : 1,
155
+ gapX: (_e = (_d = opts.gridConfig) === null || _d === void 0 ? void 0 : _d.gapX) !== null && _e !== void 0 ? _e : 0,
156
+ gapY: (_g = (_f = opts.gridConfig) === null || _f === void 0 ? void 0 : _f.gapY) !== null && _g !== void 0 ? _g : 0,
157
+ firstPageAlone: (_j = (_h = opts.gridConfig) === null || _h === void 0 ? void 0 : _h.firstPageAlone) !== null && _j !== void 0 ? _j : false,
158
+ scale: (_l = (_k = opts.gridConfig) === null || _k === void 0 ? void 0 : _k.scale) !== null && _l !== void 0 ? _l : 1,
159
+ } }));
160
+ };
161
+ export const newPdfElement = (currentScope, opts) => (Object.assign(Object.assign({ fileId: null, gridConfig: { columns: 1, gapX: 0, gapY: 0, firstPageAlone: false, scale: 1 } }, _newElementBase("pdf", currentScope, opts)), { type: "pdf" }));
162
+ export const newModelElement = (currentScope, opts) => (Object.assign(Object.assign({ modelType: null, code: null, svgPath: null, fileIds: [], viewerState: null }, _newElementBase("model", currentScope, opts)), { type: 'model' }));
183
163
  // Simplified deep clone for the purpose of cloning DucElement.
184
164
  //
185
165
  // Only clones plain objects and arrays. Doesn't clone Date, RegExp, Map, Set,
@@ -1,9 +1,9 @@
1
+ import { SupportedMeasures } from "../../technical/scopes";
1
2
  import { DucLocalState, RawValue, Scope, ScopedValue } from "../../types";
2
3
  import { DucElement, DucElementType, DucTextContainer, DucTextElement, DucTextElementWithContainer, ElementsMap, FontFamilyValues, FontString, NonDeletedDucElement } from "../../types/elements";
3
4
  import { GeometricPoint } from "../../types/geometryTypes";
4
5
  import { ExtractSetType } from "../../types/utility-types";
5
6
  import { getBoundTextElementPosition } from "./linearElement";
6
- import { SupportedMeasures } from "../../technical/scopes";
7
7
  export declare const computeBoundTextPosition: (container: DucElement, boundTextElement: DucTextElementWithContainer, elementsMap: ElementsMap, currentScope: SupportedMeasures) => {
8
8
  x: ScopedValue;
9
9
  y: ScopedValue;
@@ -49,12 +49,12 @@ export declare const getMinTextElementWidth: (font: FontString, lineHeight: DucT
49
49
  /** retrieves text from text elements and concatenates to a single string */
50
50
  export declare const getTextFromElements: (elements: readonly DucElement[], separator?: string) => string;
51
51
  export declare const getFontFamilyString: ({ fontFamily, }: {
52
- fontFamily: FontFamilyValues;
52
+ fontFamily: FontFamilyValues | string;
53
53
  }) => string;
54
54
  /** returns fontSize+fontFamily string for assignment to DOM elements */
55
55
  export declare const getFontString: ({ fontSize, fontFamily, }: {
56
56
  fontSize: DucTextElement["fontSize"];
57
- fontFamily: FontFamilyValues;
57
+ fontFamily: FontFamilyValues | string;
58
58
  }) => FontString;
59
59
  /** computes element x/y offset based on textAlign/verticalAlign */
60
60
  export declare const getTextElementPositionOffsets: (opts: {
@@ -1,11 +1,11 @@
1
- import { TEXT_ALIGN, VERTICAL_ALIGN } from "../../flatbuffers/duc";
1
+ import { TEXT_ALIGN, VERTICAL_ALIGN } from "../../enums";
2
+ import { getPrecisionValueFromRaw, getScopedBezierPointFromDucPoint } from "../../technical/scopes";
2
3
  import { isArrowElement, isBoundToContainer, isTextElement } from "../../types/elements/typeChecks";
3
4
  import { getContainerElement, getElementAbsoluteCoords, getResizedElementAbsoluteCoords } from "../bounds";
4
- import { ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO, ARROW_LABEL_WIDTH_FRACTION, BOUND_TEXT_PADDING, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, FONT_FAMILY, WINDOWS_EMOJI_FALLBACK_FONT } from "../constants";
5
- import { getBoundTextElementPosition, getPointGlobalCoordinates, getPointsGlobalCoordinates, getSegmentMidPoint } from "./linearElement";
5
+ import { ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO, ARROW_LABEL_WIDTH_FRACTION, BOUND_TEXT_PADDING, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, LEGACY_FONT_ID_TO_NAME, WINDOWS_EMOJI_FALLBACK_FONT } from "../constants";
6
6
  import { adjustXYWithRotation } from "../math";
7
7
  import { normalizeText } from "../normalize";
8
- import { getPrecisionValueFromRaw, getScopedBezierPointFromDucPoint } from "../../technical/scopes";
8
+ import { getBoundTextElementPosition, getPointGlobalCoordinates, getPointsGlobalCoordinates, getSegmentMidPoint } from "./linearElement";
9
9
  export const computeBoundTextPosition = (container, boundTextElement, elementsMap, currentScope) => {
10
10
  if (isArrowElement(container)) {
11
11
  const coords = getBoundTextElementPosition(container, boundTextElement, elementsMap, currentScope);
@@ -54,10 +54,19 @@ export const measureText = (text, font, lineHeight, currentScope) => {
54
54
  // lines would be stripped from computation
55
55
  .map((x) => x || " ")
56
56
  .join("\n");
57
- const fontSize = getPrecisionValueFromRaw(parseFloat(font), currentScope, currentScope);
57
+ const parsedFontSize = parseFloat(font);
58
+ // Guard: if font string produced an unparseable size (NaN) or zero,
59
+ // fall back to DEFAULT_FONT_SIZE so measurements are never degenerate.
60
+ const safeFontSize = (Number.isFinite(parsedFontSize) && parsedFontSize > 0)
61
+ ? parsedFontSize
62
+ : DEFAULT_FONT_SIZE;
63
+ const fontSize = getPrecisionValueFromRaw(safeFontSize, currentScope, currentScope);
58
64
  const height = getTextHeight(text, fontSize, lineHeight);
59
65
  const width = getTextWidth(text, font);
60
- return { width, height };
66
+ // Defensive: ensure we never return 0 or NaN dimensions
67
+ const safeWidth = (Number.isFinite(width) && width > 0) ? width : 1;
68
+ const safeHeight = (Number.isFinite(height) && height > 0) ? height : (safeFontSize * lineHeight);
69
+ return { width: safeWidth, height: safeHeight };
61
70
  };
62
71
  /**
63
72
  * We calculate the line height from the font size and the unitless line height,
@@ -104,15 +113,15 @@ const getLineWidth = (text, font, forceAdvanceWidth, isTestEnv) => {
104
113
  // fallback to advance width if the actual width is zero, i.e. on text editing start
105
114
  // or when actual width does not respect whitespace chars, i.e. spaces
106
115
  // otherwise actual width should always be bigger
107
- return Math.max(actualWidth, advanceWidth);
116
+ return Math.ceil(Math.max(actualWidth, advanceWidth));
108
117
  }
109
118
  // since in test env the canvas measureText algo
110
119
  // doesn't measure text and instead just returns number of
111
120
  // characters hence we assume that each letteris 10px
112
121
  if (isTestEnv) {
113
- return advanceWidth * 10;
122
+ return Math.ceil(advanceWidth * 10);
114
123
  }
115
- return advanceWidth;
124
+ return Math.ceil(advanceWidth);
116
125
  };
117
126
  export const getTextWidth = (text, font, forceAdvanceWidth) => {
118
127
  const lines = splitIntoLines(text);
@@ -470,14 +479,20 @@ export const getTextFromElements = (elements, separator = "\n\n") => {
470
479
  return text;
471
480
  };
472
481
  export const getFontFamilyString = ({ fontFamily, }) => {
473
- // Handle both number and string fontFamily values
474
- const fontFamilyNum = typeof fontFamily === 'string' ? parseInt(fontFamily, 10) : fontFamily;
475
- for (const [fontFamilyString, id] of Object.entries(FONT_FAMILY)) {
476
- if (id === fontFamilyNum) {
477
- return `${fontFamilyString}, ${WINDOWS_EMOJI_FALLBACK_FONT}`;
478
- }
479
- }
480
- return WINDOWS_EMOJI_FALLBACK_FONT;
482
+ // Handle legacy numeric font IDs from old files
483
+ if (typeof fontFamily === "number") {
484
+ const name = LEGACY_FONT_ID_TO_NAME[fontFamily];
485
+ if (name)
486
+ return `${name}, ${WINDOWS_EMOJI_FALLBACK_FONT}`;
487
+ return WINDOWS_EMOJI_FALLBACK_FONT;
488
+ }
489
+ // Handle stringified numeric IDs (e.g. "10")
490
+ const parsed = Number(fontFamily);
491
+ if (!Number.isNaN(parsed) && LEGACY_FONT_ID_TO_NAME[parsed]) {
492
+ return `${LEGACY_FONT_ID_TO_NAME[parsed]}, ${WINDOWS_EMOJI_FALLBACK_FONT}`;
493
+ }
494
+ // New path: fontFamily is already a string name
495
+ return `${fontFamily}, ${WINDOWS_EMOJI_FALLBACK_FONT}`;
481
496
  };
482
497
  /** returns fontSize+fontFamily string for assignment to DOM elements */
483
498
  export const getFontString = ({ fontSize, fontFamily, }) => {
@@ -504,6 +519,18 @@ export const refreshTextDimensions = (textElement, container, elementsMap, curre
504
519
  : textElement.width.scoped);
505
520
  }
506
521
  const dimensions = getAdjustedDimensions(textElement, elementsMap, text, currentScope);
522
+ // Defensive minimums — ensure height is always at least one line.
523
+ // Use negated >= to also catch NaN (NaN < x is always false).
524
+ const rawMinLineHeight = textElement.fontSize.value * textElement.lineHeight;
525
+ const minLineHeight = (Number.isFinite(rawMinLineHeight) && rawMinLineHeight > 0)
526
+ ? rawMinLineHeight
527
+ : DEFAULT_FONT_SIZE * textElement.lineHeight;
528
+ if (!(dimensions.height >= minLineHeight)) {
529
+ dimensions.height = minLineHeight;
530
+ }
531
+ if (!(dimensions.width > 0)) {
532
+ dimensions.width = (textElement.autoResize ? 1 : textElement.width.value);
533
+ }
507
534
  return Object.assign({ text }, dimensions);
508
535
  };
509
536
  export const splitIntoLines = (text) => {
@@ -1,13 +1,14 @@
1
- export * from "./geometry";
2
- export * from "./bbox";
3
1
  export * from "./algebra";
2
+ export * from "./bbox";
3
+ export * from "./geometry";
4
4
  export * from "./random";
5
- import type { NullableGridSize, Zoom } from "../../types";
5
+ import { SupportedMeasures } from "../../technical/scopes";
6
+ import type { Zoom } from "../../types";
6
7
  import { Scope, ScopedValue } from "../../types";
7
8
  import type { DucElement, DucLine, DucLinearElement, DucLinearLikeElement, DucPoint, NonDeleted } from "../../types/elements";
8
9
  import type { Bounds, GeometricPoint, GeometricVector, Percentage, Radian } from "../../types/geometryTypes";
9
10
  import { Heading } from "../../types/geometryTypes";
10
- import { SupportedMeasures } from "../../technical/scopes";
11
+ export type NullableGridSize = number | null;
11
12
  export declare const getRadianFromDegrees: (degrees: number) => Radian;
12
13
  export declare const getDegreesFromRadian: (radian: Radian) => number;
13
14
  export declare const getPercentageValueFromPercentage: (value: number) => Percentage;
@@ -1,10 +1,10 @@
1
- export * from "./geometry";
2
- export * from "./bbox";
3
1
  export * from "./algebra";
2
+ export * from "./bbox";
3
+ export * from "./geometry";
4
4
  export * from "./random";
5
+ import { getPrecisionValueFromRaw, getPrecisionValueFromScoped, getScopedBezierPointFromDucPoint } from "../../technical/scopes";
5
6
  import { LINE_CONFIRM_THRESHOLD } from "../constants";
6
7
  import { pointFrom } from "./geometry";
7
- import { getPrecisionValueFromRaw, getPrecisionValueFromScoped, getScopedBezierPointFromDucPoint } from "../../technical/scopes";
8
8
  export const getRadianFromDegrees = (degrees) => {
9
9
  return degrees * (Math.PI / 180);
10
10
  };
@@ -1,11 +1,11 @@
1
- import { BEZIER_MIRRORING } from "../flatbuffers/duc";
1
+ import { BEZIER_MIRRORING } from "../enums";
2
+ import { getPrecisionValueFromRaw, getPrecisionValueFromScoped } from "../technical/scopes";
2
3
  import { isArrowElement, isEllipseElement, isFreeDrawElement, isLinearElement, isPolygonElement } from "../types/elements/typeChecks";
3
4
  import { calculateShapeBounds } from "./bounds";
4
5
  import { getBaseElementProps } from "./elements";
5
6
  import { getNormalizedPoints, mergeOverlappingPoints } from "./elements/linearElement";
6
7
  import { newLinearElement } from "./elements/newElement";
7
8
  import { rotatePoint } from "./math";
8
- import { getPrecisionValueFromRaw, getPrecisionValueFromScoped } from "../technical/scopes";
9
9
  /**
10
10
  * Converts a shape (rectangle, polygon, ellipse) to a linear element
11
11
  */
@@ -1,4 +1,3 @@
1
- export * from "./grid";
2
1
  import { DucGlobalState, DucLocalState, Scope, Zoom } from "../../types";
3
2
  /**
4
3
  * Returns the zoom object with value, scoped, and scaled properties,
@@ -1,63 +1,9 @@
1
- export * from "./grid";
2
- import { PRUNING_LEVEL, TEXT_ALIGN } from "../../flatbuffers/duc";
3
- import { PREDEFINED_STANDARDS } from "../../technical";
1
+ import { isFiniteNumber } from "..";
2
+ import { PRUNING_LEVEL, TEXT_ALIGN } from "../../enums";
3
+ import { isValidPrecisionScopeValue } from "../../restore/restoreDataState";
4
4
  import { getPrecisionValueFromRaw, getScaledZoomValueForScope, getScopedZoomValue, NEUTRAL_SCOPE, } from "../../technical/scopes";
5
5
  import { COLOR_PALETTE, DEFAULT_ELEMENT_PROPS, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, } from "../constants";
6
6
  import { getNormalizedZoom } from "../normalize";
7
- import { isFiniteNumber } from "..";
8
- import { isValidPrecisionScopeValue } from "../../restore/restoreDataState";
9
- // appState
10
- // export const updateActiveTool = (
11
- // appState: Pick<DucLocalState, "activeTool">,
12
- // data: ((
13
- // | {
14
- // type: ToolType;
15
- // }
16
- // | { type: "custom"; customType: string }
17
- // ) & { locked?: boolean; fromSelection?: boolean }) & {
18
- // lastActiveToolBeforeEraser?: ActiveTool | null;
19
- // },
20
- // ): DucLocalState["activeTool"] => {
21
- // if (data.type === "custom") {
22
- // return {
23
- // ...appState.activeTool,
24
- // type: "custom",
25
- // customType: data.customType,
26
- // locked: data.locked ?? appState.activeTool.locked,
27
- // };
28
- // }
29
- // return {
30
- // ...appState.activeTool,
31
- // lastActiveTool:
32
- // data.lastActiveToolBeforeEraser === undefined
33
- // ? appState.activeTool.lastActiveTool
34
- // : data.lastActiveToolBeforeEraser,
35
- // type: data.type,
36
- // customType: null,
37
- // locked: data.locked ?? appState.activeTool.locked,
38
- // fromSelection: data.fromSelection ?? false,
39
- // };
40
- // };
41
- // activeTool: {
42
- // type: "selection",
43
- // customType: null,
44
- // locked: DEFAULT_ELEMENT_PROPS.locked,
45
- // fromSelection: false,
46
- // lastActiveTool: null,
47
- // },
48
- // duconfig
49
- // displayAllPointDistances: false,
50
- // displayDistanceOnDrawing: true,
51
- // displayAllPointInfoSelected: false,
52
- // displayAllPointCoordinates: false,
53
- // displayRootAxis: false,
54
- // showHyperlinkPopup: false,
55
- // antiAliasing: ANTI_ALIASING.ANALYTIC,
56
- // vSync: true,
57
- // zoomStep: 0,
58
- // scaleRatioLocked: false,
59
- // theme: THEME.LIGHT,
60
- // debugRendering: false,
61
7
  /**
62
8
  * Returns the zoom object with value, scoped, and scaled properties,
63
9
  * using importedState, restoredGlobalState, and defaults.
@@ -78,16 +24,8 @@ export const getDefaultGlobalState = () => {
78
24
  return {
79
25
  name: null,
80
26
  viewBackgroundColor: typeof window !== "undefined" ? (window.matchMedia("(prefers-color-scheme: dark)").matches ? COLOR_PALETTE.night : COLOR_PALETTE.white) : COLOR_PALETTE.white,
81
- scopeExponentThreshold: 2,
27
+ scopeExponentThreshold: 3,
82
28
  mainScope: NEUTRAL_SCOPE,
83
- dashSpacingScale: 1,
84
- isDashSpacingAffectedByViewportScale: false,
85
- dimensionsAssociativeByDefault: false,
86
- useAnnotativeScaling: false,
87
- displayPrecision: {
88
- linear: 2,
89
- angular: 1,
90
- },
91
29
  pruningLevel: PRUNING_LEVEL.BALANCED,
92
30
  };
93
31
  };
@@ -99,7 +37,6 @@ export const getDefaultLocalState = () => {
99
37
  const scopedZoom = getScopedZoomValue(zoom, scope);
100
38
  return {
101
39
  scope,
102
- activeStandardId: PREDEFINED_STANDARDS.DUC,
103
40
  isBindingEnabled: true,
104
41
  scrollX: getPrecisionValueFromRaw(scrollX, NEUTRAL_SCOPE, scope),
105
42
  scrollY: getPrecisionValueFromRaw(scrollY, NEUTRAL_SCOPE, scope),
@@ -117,15 +54,12 @@ export const getDefaultLocalState = () => {
117
54
  currentItemFontSize: getPrecisionValueFromRaw(DEFAULT_FONT_SIZE, scope, scope),
118
55
  currentItemOpacity: DEFAULT_ELEMENT_PROPS.opacity,
119
56
  currentItemRoundness: getPrecisionValueFromRaw(0, scope, scope),
120
- activeGridSettings: [],
121
- activeSnapSettings: "",
122
57
  penMode: false,
123
58
  viewModeEnabled: false,
124
59
  objectsSnapModeEnabled: true,
125
60
  gridModeEnabled: false,
126
61
  outlineModeEnabled: false,
127
62
  manualSaveMode: false,
128
- gridSize: 10,
129
- gridStep: 10,
63
+ decimalPlaces: 2,
130
64
  };
131
65
  };
@@ -20,3 +20,11 @@ import { Scope } from "../types";
20
20
  * @param detectedScope - Internally tracked scope for the current level
21
21
  */
22
22
  export declare const traverseAndUpdatePrecisionValues: (obj: any, targetScope: Scope, providedScope?: Scope, visited?: WeakSet<WeakKey>, detectedScope?: Scope) => any;
23
+ /**
24
+ * Traverses an object and normalizes it for serialization in `targetScope`.
25
+ *
26
+ * - Converts all PrecisionValue fields so `scoped` is in `targetScope`
27
+ * - Rewrites PrecisionValue `value` from the computed `scoped` value
28
+ * - Rewrites `scope` / `mainScope` string fields to `targetScope`
29
+ */
30
+ export declare const normalizeForSerializationScope: <T>(obj: T, targetScope: Scope, providedScope?: Scope) => T;
@@ -85,3 +85,40 @@ export const traverseAndUpdatePrecisionValues = (obj, targetScope, providedScope
85
85
  }
86
86
  return result;
87
87
  };
88
+ /**
89
+ * Traverses an object and normalizes it for serialization in `targetScope`.
90
+ *
91
+ * - Converts all PrecisionValue fields so `scoped` is in `targetScope`
92
+ * - Rewrites PrecisionValue `value` from the computed `scoped` value
93
+ * - Rewrites `scope` / `mainScope` string fields to `targetScope`
94
+ */
95
+ export const normalizeForSerializationScope = (obj, targetScope, providedScope) => {
96
+ const converted = traverseAndUpdatePrecisionValues(obj, targetScope, providedScope);
97
+ return rewriteScopeAndPrecisionValues(converted, targetScope);
98
+ };
99
+ const rewriteScopeAndPrecisionValues = (obj, targetScope, visited = new WeakSet()) => {
100
+ if (obj == null || typeof obj !== "object")
101
+ return obj;
102
+ if (isPrecisionValue(obj)) {
103
+ return Object.assign(Object.assign({}, obj), { value: obj.scoped });
104
+ }
105
+ if (Array.isArray(obj)) {
106
+ return obj.map((item) => rewriteScopeAndPrecisionValues(item, targetScope, visited));
107
+ }
108
+ if (visited.has(obj))
109
+ return obj;
110
+ visited.add(obj);
111
+ if (obj.constructor !== Object) {
112
+ return obj;
113
+ }
114
+ const result = {};
115
+ for (const [key, value] of Object.entries(obj)) {
116
+ if ((key === "scope" || key === "mainScope") &&
117
+ typeof value === "string") {
118
+ result[key] = targetScope;
119
+ continue;
120
+ }
121
+ result[key] = rewriteScopeAndPrecisionValues(value, targetScope, visited);
122
+ }
123
+ return result;
124
+ };
@@ -0,0 +1,61 @@
1
+ import type { VersionGraph } from "./types";
2
+ export interface RestoredVersion {
3
+ versionNumber: number;
4
+ schemaVersion: number;
5
+ data: Uint8Array;
6
+ fromCheckpoint: boolean;
7
+ }
8
+ export interface VersionEntry {
9
+ id: string;
10
+ versionNumber: number;
11
+ schemaVersion: number;
12
+ timestamp: number;
13
+ description?: string;
14
+ isManualSave: boolean;
15
+ userId?: string;
16
+ versionType: "checkpoint" | "delta";
17
+ sizeBytes: number;
18
+ }
19
+ /**
20
+ * Restore the full document state at a specific version number.
21
+ *
22
+ * If the version corresponds to a checkpoint, the raw data is returned directly.
23
+ * Otherwise, the nearest preceding checkpoint is loaded and deltas are replayed
24
+ * on top of it to reconstruct the state.
25
+ *
26
+ * All heavy lifting (SQLite access, decompression, delta replay) happens in
27
+ * Rust/WASM.
28
+ */
29
+ export declare const restoreVersion: (ducBuffer: Uint8Array, versionNumber: number) => Promise<RestoredVersion>;
30
+ /**
31
+ * Restore a specific checkpoint by its ID.
32
+ */
33
+ export declare const restoreCheckpoint: (ducBuffer: Uint8Array, checkpointId: string) => Promise<RestoredVersion>;
34
+ /**
35
+ * List all versions (checkpoints and deltas) in the .duc file,
36
+ * ordered by version number descending. Does not load data blobs.
37
+ */
38
+ export declare const listVersions: (ducBuffer: Uint8Array) => Promise<VersionEntry[]>;
39
+ /**
40
+ * Read the full version graph from the .duc file, including all
41
+ * checkpoints, deltas, chains, and metadata.
42
+ */
43
+ export declare const readVersionGraph: (ducBuffer: Uint8Array) => Promise<VersionGraph | undefined>;
44
+ /**
45
+ * Revert the document to a specific version, deleting all versions
46
+ * newer than the target. Returns the restored state at that version.
47
+ *
48
+ * **Warning**: This mutates the .duc buffer in-place (via the WASM
49
+ * SQLite connection). The returned `RestoredVersion.data` contains the
50
+ * full document state at the target version.
51
+ */
52
+ export declare const revertToVersion: (ducBuffer: Uint8Array, targetVersion: number) => Promise<RestoredVersion>;
53
+ /**
54
+ * Returns the current version-control schema version from Rust.
55
+ *
56
+ * This is the single source of truth for the schema version number,
57
+ * generated from `schema/duc.sql` (`PRAGMA user_version`) at build time.
58
+ * The version control system handles migration bookkeeping automatically
59
+ * on the next checkpoint or delta creation.
60
+ */
61
+ export declare const getCurrentSchemaVersion: () => Promise<number>;