@hatiolab/figure-model 0.1.92 → 0.1.94

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 (320) hide show
  1. package/CHANGELOG.md +12 -12
  2. package/README.md +25 -25
  3. package/dist/{v3-asset-types.d.ts → asset-types.d.ts} +73 -67
  4. package/dist/asset-types.d.ts.map +1 -0
  5. package/dist/asset-types.js +2 -0
  6. package/dist/asset-types.js.map +1 -0
  7. package/dist/asset.d.ts +20 -0
  8. package/dist/asset.d.ts.map +1 -0
  9. package/dist/{v3-asset.js → asset.js} +49 -28
  10. package/dist/asset.js.map +1 -0
  11. package/dist/{v3-authoring-actions.d.ts → authoring-actions.d.ts} +77 -66
  12. package/dist/authoring-actions.d.ts.map +1 -0
  13. package/dist/{v3-authoring-actions.js → authoring-actions.js} +129 -104
  14. package/dist/authoring-actions.js.map +1 -0
  15. package/dist/{v3-authoring-session.d.ts → authoring-session.d.ts} +23 -21
  16. package/dist/authoring-session.d.ts.map +1 -0
  17. package/dist/{v3-authoring-session.js → authoring-session.js} +4 -4
  18. package/dist/authoring-session.js.map +1 -0
  19. package/dist/capabilities.d.ts +3 -0
  20. package/dist/capabilities.d.ts.map +1 -0
  21. package/dist/{v3-capabilities.js → capabilities.js} +8 -8
  22. package/dist/capabilities.js.map +1 -0
  23. package/dist/clip-keeping.d.ts +30 -0
  24. package/dist/clip-keeping.d.ts.map +1 -0
  25. package/dist/clip-keeping.js +77 -0
  26. package/dist/clip-keeping.js.map +1 -0
  27. package/dist/command-preview.d.ts +125 -0
  28. package/dist/command-preview.d.ts.map +1 -0
  29. package/dist/command-preview.js +246 -0
  30. package/dist/command-preview.js.map +1 -0
  31. package/dist/contract.d.ts +7 -0
  32. package/dist/contract.d.ts.map +1 -0
  33. package/dist/contract.js +12 -0
  34. package/dist/contract.js.map +1 -0
  35. package/dist/{v3-cost.d.ts → cost.d.ts} +5 -5
  36. package/dist/cost.d.ts.map +1 -0
  37. package/dist/{v3-cost.js → cost.js} +11 -11
  38. package/dist/cost.js.map +1 -0
  39. package/dist/{v3-create.d.ts → create.d.ts} +8 -8
  40. package/dist/{v3-create.d.ts.map → create.d.ts.map} +1 -1
  41. package/dist/{v3-create.js → create.js} +26 -26
  42. package/dist/create.js.map +1 -0
  43. package/dist/document.d.ts +5 -0
  44. package/dist/document.d.ts.map +1 -0
  45. package/dist/document.js +31 -0
  46. package/dist/document.js.map +1 -0
  47. package/dist/{v3-driver.d.ts → driver.d.ts} +10 -10
  48. package/dist/driver.d.ts.map +1 -0
  49. package/dist/{v3-driver.js → driver.js} +10 -10
  50. package/dist/driver.js.map +1 -0
  51. package/dist/{v3-editor-workspace.d.ts → editor-workspace.d.ts} +99 -73
  52. package/dist/editor-workspace.d.ts.map +1 -0
  53. package/dist/{v3-editor-workspace.js → editor-workspace.js} +48 -32
  54. package/dist/editor-workspace.js.map +1 -0
  55. package/dist/{v3-examples.d.ts → examples.d.ts} +5 -5
  56. package/dist/examples.d.ts.map +1 -0
  57. package/dist/{v3-examples.js → examples.js} +11 -11
  58. package/dist/examples.js.map +1 -0
  59. package/dist/{v3-follow.d.ts → follow.d.ts} +5 -5
  60. package/dist/follow.d.ts.map +1 -0
  61. package/dist/{v3-follow.js → follow.js} +2 -2
  62. package/dist/follow.js.map +1 -0
  63. package/dist/{v3-gate.d.ts → gate.d.ts} +36 -28
  64. package/dist/gate.d.ts.map +1 -0
  65. package/dist/{v3-gate.js → gate.js} +54 -48
  66. package/dist/gate.js.map +1 -0
  67. package/dist/{v3-graph-types.d.ts → graph-types.d.ts} +33 -33
  68. package/dist/graph-types.d.ts.map +1 -0
  69. package/dist/graph-types.js +2 -0
  70. package/dist/graph-types.js.map +1 -0
  71. package/dist/{v3-graph.d.ts → graph.d.ts} +14 -14
  72. package/dist/graph.d.ts.map +1 -0
  73. package/dist/{v3-graph.js → graph.js} +16 -16
  74. package/dist/graph.js.map +1 -0
  75. package/dist/index.d.ts +39 -33
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +39 -33
  78. package/dist/index.js.map +1 -1
  79. package/dist/{v3-instance-size.d.ts → instance-size.d.ts} +14 -14
  80. package/dist/instance-size.d.ts.map +1 -0
  81. package/dist/{v3-instance-size.js → instance-size.js} +13 -13
  82. package/dist/instance-size.js.map +1 -0
  83. package/dist/json.d.ts +12 -0
  84. package/dist/json.d.ts.map +1 -0
  85. package/dist/{v3-json.js → json.js} +13 -13
  86. package/dist/json.js.map +1 -0
  87. package/dist/kernel-version.d.ts +8 -0
  88. package/dist/kernel-version.d.ts.map +1 -0
  89. package/dist/{v3-kernel-version.js → kernel-version.js} +4 -4
  90. package/dist/kernel-version.js.map +1 -0
  91. package/dist/{v3-part-edit.d.ts → part-edit.d.ts} +12 -11
  92. package/dist/part-edit.d.ts.map +1 -0
  93. package/dist/{v3-part-edit.js → part-edit.js} +84 -68
  94. package/dist/part-edit.js.map +1 -0
  95. package/dist/proposal.d.ts +55 -0
  96. package/dist/proposal.d.ts.map +1 -0
  97. package/dist/{v3-proposal.js → proposal.js} +29 -21
  98. package/dist/proposal.js.map +1 -0
  99. package/dist/{v3-public-inputs.d.ts → public-inputs.d.ts} +4 -4
  100. package/dist/public-inputs.d.ts.map +1 -0
  101. package/dist/{v3-public-inputs.js → public-inputs.js} +3 -3
  102. package/dist/public-inputs.js.map +1 -0
  103. package/dist/recipe-build.d.ts +27 -0
  104. package/dist/recipe-build.d.ts.map +1 -0
  105. package/dist/{v3-recipe-build.js → recipe-build.js} +9 -9
  106. package/dist/recipe-build.js.map +1 -0
  107. package/dist/recipe-from-parts.d.ts +8 -0
  108. package/dist/recipe-from-parts.d.ts.map +1 -0
  109. package/dist/{v3-recipe-from-parts.js → recipe-from-parts.js} +9 -9
  110. package/dist/recipe-from-parts.js.map +1 -0
  111. package/dist/{v3-recipe.d.ts → recipe.d.ts} +25 -25
  112. package/dist/recipe.d.ts.map +1 -0
  113. package/dist/{v3-recipe.js → recipe.js} +30 -30
  114. package/dist/recipe.js.map +1 -0
  115. package/dist/release-contract.d.ts +19 -0
  116. package/dist/release-contract.d.ts.map +1 -0
  117. package/dist/{v3-release-contract.js → release-contract.js} +8 -7
  118. package/dist/release-contract.js.map +1 -0
  119. package/dist/{v3-render-batches.d.ts → render-batches.d.ts} +8 -8
  120. package/dist/render-batches.d.ts.map +1 -0
  121. package/dist/{v3-render-batches.js → render-batches.js} +4 -4
  122. package/dist/render-batches.js.map +1 -0
  123. package/dist/resize-plan.d.ts +61 -0
  124. package/dist/resize-plan.d.ts.map +1 -0
  125. package/dist/resize-plan.js +189 -0
  126. package/dist/resize-plan.js.map +1 -0
  127. package/dist/room.d.ts +53 -0
  128. package/dist/room.d.ts.map +1 -0
  129. package/dist/room.js +90 -0
  130. package/dist/room.js.map +1 -0
  131. package/dist/{v3-score.d.ts → score.d.ts} +19 -19
  132. package/dist/score.d.ts.map +1 -0
  133. package/dist/{v3-score.js → score.js} +32 -32
  134. package/dist/score.js.map +1 -0
  135. package/dist/shape-provider.d.ts +37 -0
  136. package/dist/shape-provider.d.ts.map +1 -0
  137. package/dist/shape-provider.js +69 -0
  138. package/dist/shape-provider.js.map +1 -0
  139. package/dist/{v3-shape-sampling.d.ts → shape-sampling.d.ts} +4 -4
  140. package/dist/shape-sampling.d.ts.map +1 -0
  141. package/dist/{v3-shape-sampling.js → shape-sampling.js} +3 -3
  142. package/dist/shape-sampling.js.map +1 -0
  143. package/dist/size-edit.d.ts +38 -0
  144. package/dist/size-edit.d.ts.map +1 -0
  145. package/dist/size-edit.js +178 -0
  146. package/dist/size-edit.js.map +1 -0
  147. package/dist/{v3-surface.d.ts → surface.d.ts} +5 -5
  148. package/dist/surface.d.ts.map +1 -0
  149. package/dist/{v3-surface.js → surface.js} +7 -7
  150. package/dist/surface.js.map +1 -0
  151. package/dist/{v3-words.d.ts → words.d.ts} +3 -3
  152. package/dist/words.d.ts.map +1 -0
  153. package/dist/{v3-words.js → words.js} +3 -3
  154. package/dist/words.js.map +1 -0
  155. package/docs/{assembly-constraints-v3.md → assembly-constraints.md} +1 -1
  156. package/docs/{v3-asset-persistence.md → asset-persistence.md} +8 -8
  157. package/docs/{v3-authoring-transactions.md → authoring-transactions.md} +2 -2
  158. package/docs/{v3-capability-bindings.md → capability-bindings.md} +8 -8
  159. package/docs/{v3-common-kernel-experiment.md → common-kernel-experiment.md} +4 -4
  160. package/docs/{v3-core-semantics.md → core-semantics.md} +5 -5
  161. package/docs/{v3-cutover.md → cutover.md} +4 -4
  162. package/docs/{v3-design.md → design.md} +11 -11
  163. package/docs/{v3-document-contract.md → document-contract.md} +9 -9
  164. package/docs/{v3-dryroom-profile-validation.md → dryroom-profile-validation.md} +4 -4
  165. package/docs/{v3-editor-integration.md → editor-integration.md} +6 -6
  166. package/docs/{v3-full-conveyor-validation.md → full-conveyor-validation.md} +4 -4
  167. package/docs/{v3-full-dryroom-validation.md → full-dryroom-validation.md} +4 -4
  168. package/docs/{v3-full-forklift-validation.md → full-forklift-validation.md} +5 -5
  169. package/docs/{v3-full-robot-validation.md → full-robot-validation.md} +4 -4
  170. package/docs/{v3-layout-system.md → layout-system.md} +4 -4
  171. package/docs/{v3-legacy-risk-audit-2026-09-23.md → legacy-risk-audit-2026-09-23.md} +5 -5
  172. package/docs/{v3-minimal-model.md → minimal-model.md} +6 -6
  173. package/docs/{v3-motion-contract.md → motion-contract.md} +3 -3
  174. package/docs/{v3-openusd-review.md → openusd-review.md} +8 -8
  175. package/docs/{v3-operator-contracts.md → operator-contracts.md} +6 -6
  176. package/docs/{v3-payload-collision-validation.md → payload-collision-validation.md} +4 -4
  177. package/docs/{v3-payload-contact-validation.md → payload-contact-validation.md} +5 -5
  178. package/docs/prototypes/README.md +10 -10
  179. package/docs/prototypes/{v3-asset-samples.mjs → asset-samples.mjs} +6 -6
  180. package/docs/prototypes/{v3-asset-store.mjs → asset-store.mjs} +3 -3
  181. package/docs/prototypes/{v3-asset-store.test.mjs → asset-store.test.mjs} +6 -6
  182. package/docs/prototypes/asset.mjs +1 -0
  183. package/docs/prototypes/{v3-asset.schema.json → asset.schema.json} +2 -2
  184. package/docs/prototypes/{v3-asset.test.mjs → asset.test.mjs} +10 -10
  185. package/docs/prototypes/authoring-session.mjs +1 -0
  186. package/docs/prototypes/{v3-authoring-session.test.mjs → authoring-session.test.mjs} +6 -6
  187. package/docs/prototypes/capability-plan.mjs +1 -0
  188. package/docs/prototypes/{v3-capability-plan.test.mjs → capability-plan.test.mjs} +5 -5
  189. package/docs/prototypes/{v3-capability-samples.mjs → capability-samples.mjs} +2 -2
  190. package/docs/prototypes/document.mjs +2 -0
  191. package/docs/prototypes/{v3-document.schema.json → document.schema.json} +1 -1
  192. package/docs/prototypes/{v3-document.test.mjs → document.test.mjs} +7 -7
  193. package/docs/prototypes/{v3-dryroom-mesh.mjs → dryroom-mesh.mjs} +1 -1
  194. package/docs/prototypes/{v3-dryroom-mesh.test.mjs → dryroom-mesh.test.mjs} +1 -1
  195. package/docs/prototypes/{v3-editor-browser.mjs → editor-browser.mjs} +13 -13
  196. package/docs/prototypes/editor-workspace.mjs +1 -0
  197. package/docs/prototypes/{v3-editor-workspace.test.mjs → editor-workspace.test.mjs} +3 -3
  198. package/docs/prototypes/{v3-feature-pattern.test.mjs → feature-pattern.test.mjs} +1 -1
  199. package/docs/prototypes/{v3-full-conveyor.mjs → full-conveyor.mjs} +2 -2
  200. package/docs/prototypes/{v3-full-conveyor.test.mjs → full-conveyor.test.mjs} +3 -3
  201. package/docs/prototypes/{v3-full-dryroom.mjs → full-dryroom.mjs} +2 -2
  202. package/docs/prototypes/{v3-full-dryroom.test.mjs → full-dryroom.test.mjs} +3 -3
  203. package/docs/prototypes/{v3-full-forklift.mjs → full-forklift.mjs} +2 -2
  204. package/docs/prototypes/{v3-full-forklift.test.mjs → full-forklift.test.mjs} +3 -3
  205. package/docs/prototypes/{v3-full-robot.mjs → full-robot.mjs} +2 -2
  206. package/docs/prototypes/{v3-full-robot.test.mjs → full-robot.test.mjs} +4 -4
  207. package/docs/prototypes/{v3-kernel.test.mjs → kernel.test.mjs} +1 -1
  208. package/docs/prototypes/{v3-layout.test.mjs → layout.test.mjs} +1 -1
  209. package/docs/prototypes/{v3-more-samples.test.mjs → more-samples.test.mjs} +2 -2
  210. package/docs/prototypes/{v3-payload-collision.mjs → payload-collision.mjs} +2 -2
  211. package/docs/prototypes/{v3-payload-collision.test.mjs → payload-collision.test.mjs} +3 -3
  212. package/docs/prototypes/{v3-payload-fit.mjs → payload-fit.mjs} +2 -2
  213. package/docs/prototypes/{v3-payload-fit.test.mjs → payload-fit.test.mjs} +4 -4
  214. package/docs/prototypes/render-full-dryroom.mjs +12 -12
  215. package/docs/prototypes/{v3-repeated-binding.mjs → repeated-binding.mjs} +1 -1
  216. package/docs/prototypes/{v3-repeated-binding.test.mjs → repeated-binding.test.mjs} +6 -6
  217. package/docs/prototypes/{v3-runtime-browser.mjs → runtime-browser.mjs} +26 -26
  218. package/docs/prototypes/{v3-samples.test.mjs → samples.test.mjs} +1 -1
  219. package/docs/prototypes/{v3-spatial-plan.test.mjs → spatial-plan.test.mjs} +1 -1
  220. package/docs/prototypes/typed-plan.mjs +3 -0
  221. package/docs/prototypes/{v3-typed-plan.test.mjs → typed-plan.test.mjs} +1 -1
  222. package/docs/prototypes/{v3-typed-repeat.test.mjs → typed-repeat.test.mjs} +2 -2
  223. package/docs/{v3-repeated-binding-validation.md → repeated-binding-validation.md} +4 -4
  224. package/docs/{v3-research-review.md → research-review.md} +2 -2
  225. package/docs/{v3-review-2026-09-22.md → review-2026-09-22.md} +10 -10
  226. package/docs/{v3-runtime-extraction.md → runtime-extraction.md} +16 -16
  227. package/docs/{v3-sample-validation-expanded.md → sample-validation-expanded.md} +5 -5
  228. package/docs/{v3-sample-validation.md → sample-validation.md} +3 -3
  229. package/docs/{v3-shape-dimension-contract.md → shape-dimension-contract.md} +12 -12
  230. package/docs/{v3-shapeassembly-reproduction.md → shapeassembly-reproduction.md} +4 -4
  231. package/docs/{v3-spatial-contracts.md → spatial-contracts.md} +5 -5
  232. package/docs/status.md +12 -0
  233. package/docs/{v3-storage-integration.md → storage-integration.md} +5 -5
  234. package/docs/{v3-typed-repeat-contracts.md → typed-repeat-contracts.md} +3 -3
  235. package/package.json +3 -3
  236. package/dist/v3-asset-types.d.ts.map +0 -1
  237. package/dist/v3-asset-types.js +0 -2
  238. package/dist/v3-asset-types.js.map +0 -1
  239. package/dist/v3-asset.d.ts +0 -8
  240. package/dist/v3-asset.d.ts.map +0 -1
  241. package/dist/v3-asset.js.map +0 -1
  242. package/dist/v3-authoring-actions.d.ts.map +0 -1
  243. package/dist/v3-authoring-actions.js.map +0 -1
  244. package/dist/v3-authoring-session.d.ts.map +0 -1
  245. package/dist/v3-authoring-session.js.map +0 -1
  246. package/dist/v3-capabilities.d.ts +0 -3
  247. package/dist/v3-capabilities.d.ts.map +0 -1
  248. package/dist/v3-capabilities.js.map +0 -1
  249. package/dist/v3-contract.d.ts +0 -7
  250. package/dist/v3-contract.d.ts.map +0 -1
  251. package/dist/v3-contract.js +0 -12
  252. package/dist/v3-contract.js.map +0 -1
  253. package/dist/v3-cost.d.ts.map +0 -1
  254. package/dist/v3-cost.js.map +0 -1
  255. package/dist/v3-create.js.map +0 -1
  256. package/dist/v3-document.d.ts +0 -5
  257. package/dist/v3-document.d.ts.map +0 -1
  258. package/dist/v3-document.js +0 -31
  259. package/dist/v3-document.js.map +0 -1
  260. package/dist/v3-driver.d.ts.map +0 -1
  261. package/dist/v3-driver.js.map +0 -1
  262. package/dist/v3-editor-workspace.d.ts.map +0 -1
  263. package/dist/v3-editor-workspace.js.map +0 -1
  264. package/dist/v3-examples.d.ts.map +0 -1
  265. package/dist/v3-examples.js.map +0 -1
  266. package/dist/v3-follow.d.ts.map +0 -1
  267. package/dist/v3-follow.js.map +0 -1
  268. package/dist/v3-gate.d.ts.map +0 -1
  269. package/dist/v3-gate.js.map +0 -1
  270. package/dist/v3-graph-types.d.ts.map +0 -1
  271. package/dist/v3-graph-types.js +0 -2
  272. package/dist/v3-graph-types.js.map +0 -1
  273. package/dist/v3-graph.d.ts.map +0 -1
  274. package/dist/v3-graph.js.map +0 -1
  275. package/dist/v3-instance-size.d.ts.map +0 -1
  276. package/dist/v3-instance-size.js.map +0 -1
  277. package/dist/v3-json.d.ts +0 -12
  278. package/dist/v3-json.d.ts.map +0 -1
  279. package/dist/v3-json.js.map +0 -1
  280. package/dist/v3-kernel-version.d.ts +0 -8
  281. package/dist/v3-kernel-version.d.ts.map +0 -1
  282. package/dist/v3-kernel-version.js.map +0 -1
  283. package/dist/v3-part-edit.d.ts.map +0 -1
  284. package/dist/v3-part-edit.js.map +0 -1
  285. package/dist/v3-proposal.d.ts +0 -42
  286. package/dist/v3-proposal.d.ts.map +0 -1
  287. package/dist/v3-proposal.js.map +0 -1
  288. package/dist/v3-public-inputs.d.ts.map +0 -1
  289. package/dist/v3-public-inputs.js.map +0 -1
  290. package/dist/v3-recipe-build.d.ts +0 -27
  291. package/dist/v3-recipe-build.d.ts.map +0 -1
  292. package/dist/v3-recipe-build.js.map +0 -1
  293. package/dist/v3-recipe-from-parts.d.ts +0 -8
  294. package/dist/v3-recipe-from-parts.d.ts.map +0 -1
  295. package/dist/v3-recipe-from-parts.js.map +0 -1
  296. package/dist/v3-recipe.d.ts.map +0 -1
  297. package/dist/v3-recipe.js.map +0 -1
  298. package/dist/v3-release-contract.d.ts +0 -19
  299. package/dist/v3-release-contract.d.ts.map +0 -1
  300. package/dist/v3-release-contract.js.map +0 -1
  301. package/dist/v3-render-batches.d.ts.map +0 -1
  302. package/dist/v3-render-batches.js.map +0 -1
  303. package/dist/v3-score.d.ts.map +0 -1
  304. package/dist/v3-score.js.map +0 -1
  305. package/dist/v3-shape-sampling.d.ts.map +0 -1
  306. package/dist/v3-shape-sampling.js.map +0 -1
  307. package/dist/v3-surface.d.ts.map +0 -1
  308. package/dist/v3-surface.js.map +0 -1
  309. package/dist/v3-words.d.ts.map +0 -1
  310. package/dist/v3-words.js.map +0 -1
  311. package/docs/prototypes/v3-asset.mjs +0 -1
  312. package/docs/prototypes/v3-authoring-session.mjs +0 -1
  313. package/docs/prototypes/v3-capability-plan.mjs +0 -1
  314. package/docs/prototypes/v3-document.mjs +0 -2
  315. package/docs/prototypes/v3-editor-workspace.mjs +0 -1
  316. package/docs/prototypes/v3-typed-plan.mjs +0 -3
  317. package/docs/v3-status.md +0 -50
  318. /package/docs/prototypes/{v3-kernel.mjs → kernel.mjs} +0 -0
  319. /package/docs/prototypes/{v3-linear-comparison.py → linear-comparison.py} +0 -0
  320. /package/docs/prototypes/{v3-semantics.test.mjs → semantics.test.mjs} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,34 +1,40 @@
1
- export * from './v3-words.ts';
2
- export { V3ContractError } from './v3-contract.ts';
3
- export { compileV3Graph } from './v3-graph.ts';
4
- export { editV3Part, removePart, type V3PartEdit } from './v3-part-edit.ts';
5
- export { createV3Asset, addV3Box, addV3Primitive, type V3BoxCreation, type V3PrimitiveCreation } from './v3-create.ts';
6
- export { createV3AuthoringSession, type V3AuthoringSession, type V3EditControl, type V3EditRequest, type V3InputChange } from './v3-authoring-session.ts';
7
- export { createV3EditorWorkspace, type V3EditorWorkspace, type V3WorkspaceView, type V3WorkspaceExport, type V3LeaveOptions } from './v3-editor-workspace.ts';
8
- export { compileV3Capabilities } from './v3-capabilities.ts';
9
- export { compileV3Document, parseV3Document, serializeV3Document } from './v3-document.ts';
10
- export { compileV3Asset, parseV3Asset, serializeV3Asset, captureV3AuthoredInputs } from './v3-asset.ts';
11
- export { publicInputRefusal } from './v3-public-inputs.ts';
12
- export { inspectV3Asset, cornerExtremalBasis, V3_DESIGN_EXTREME_BASIS, v3WorldBoxesOf, v3OccupiedBoxesOf, v3WritersOf, v3PartsExtentOf, type V3Inspection, type V3Violation, type V3Coverage, type V3InspectOptions, type V3WorldBox } from './v3-gate.ts';
13
- export { driverValue, driverStates, normalisePhase, validateV3Drivers, validateV3StateInputs, advanceStateValue, stateInputPolicy } from './v3-driver.ts';
14
- export { v3ShapePoints, transformPoints, type Point } from './v3-shape-sampling.ts';
15
- export { V3_OPERATORS, V3_NON_AFFINE_OPERATORS, V3_STATE_NON_AFFINE_OPERATORS, V3_OPERATOR_STATE_POLICY, V3_OPERATOR_PURITY, type V3StatePolicy, v3ShapeFaces, type V3ShapeFace } from './v3-graph.ts';
16
- export { V3_KERNEL_VERSION } from './v3-kernel-version.ts';
17
- export { V3_FACE_NORMALS } from './v3-surface.ts';
18
- export { v3CostOf, v3TrianglesOf, type V3Cost } from './v3-cost.ts';
19
- export { v3RenderBatchesOf, type V3RenderBatch, type V3RenderPlan, type V3UnbatchedReason } from './v3-render-batches.ts';
20
- export { v3ScoreOf, v3PartCountOf, v3PartBudgetOf, v3GradeOf, v3MaterialKeyOf, v3IndependentBodiesOf, V3_GRADE_SCALE, V3_BUDGET_KEYS, V3_PER_INSTANCE, type V3Score, type V3BudgetUse, type V3BudgetKey } from './v3-score.ts';
21
- export { applyV3Authoring, proposeV3Occupancy, proposeV3Proportion, type V3ProportionPlan, v3AttachmentsOf, v3BindingsOf, V3_FACES, type V3BindingPlace, type V3AuthoringAction, type V3DimensionSource, type V3Measure, type V3FaceAlignment, type V3Face, type V3MotionRequest, type V3OccupancyProposal, type RemovalNotice, type V3Joint, type V3JointType, type V3JointAxis, V3_JOINT_TYPES, checkV3Joints } from './v3-authoring-actions.ts';
22
- export type * from './v3-asset-types.ts';
23
- export { V3_PLACEMENTS } from './v3-asset-types.ts';
24
- export { applyV3Proposal, V3_PROPOSAL_GRAMMAR, V3_PROPOSAL_KINDS, type V3ProposalStep, type V3ProposalWord } from './v3-proposal.ts';
25
- export { v3FollowOf, type V3Follow } from './v3-follow.ts';
26
- export { v3RecipeFromParts } from './v3-recipe-from-parts.ts';
27
- export { buildV3Recipe, type V3RecipeBinding, type V3RecipeModel, type V3RecipeSpec } from './v3-recipe-build.ts';
28
- export { applyV3Recipe, checkV3Recipe, describeV3Recipe, holdsV3When, type V3RecipeDescription, parseV3Recipe, resolveV3Recipe, v3RecipeIdFor, v3RecipeTestRoom, type V3Recipe, type V3RecipeParam, type V3RecipeParamKind, type V3RecipeValue } from './v3-recipe.ts';
29
- export type { V3Unit, V3Dimensions, V3ValueType, V3GraphInput, V3GraphConstant, V3GraphNode, V3Graph, V3Pose, V3Shape, V3PlacedValue, V3PlacedGeometry, V3ScalarGeometry, V3Geometry, V3RuntimeValue, V3GraphEvaluation, V3CompiledGraph } from './v3-graph-types.ts';
30
- export { assertV3Json, parseV3Json, v3Utf8ByteLength, V3_JSON_MAX_BYTES, V3_JSON_MAX_DEPTH, type V3JsonValue } from './v3-json.ts';
31
- export { V3_INSTANCE_SIZE_DEFAULT, V3_INSTANCE_SIZE_INPUTS, V3_SIZE_POSITIVE_STEP, defaultInstanceSizeRange, foldInstanceSizeRange, v3InstanceSizeLimitsOf, type V3SizeLimit, type V3SizeRange, type V3SizeRangeMove } from './v3-instance-size.ts';
32
- export { v3ContractChanges, type V3ContractChange, type V3ContractChangeCode } from './v3-release-contract.ts';
33
- export { robotArmV3, ROBOT_ARM_CHAIN } from './v3-examples.ts';
1
+ export * from './words.ts';
2
+ export { FigureContractError } from './contract.ts';
3
+ export { compileFigureGraph } from './graph.ts';
4
+ export { editFigurePart, removePart, type FigurePartEdit } from './part-edit.ts';
5
+ export { createFigureAsset, addFigureBox, addFigurePrimitive, type FigureBoxCreation, type FigurePrimitiveCreation } from './create.ts';
6
+ export { createFigureAuthoringSession, type FigureAuthoringSession, type FigureEditControl, type FigureEditRequest, type FigureInputChange } from './authoring-session.ts';
7
+ export { createFigureEditorWorkspace, type FigureEditorWorkspace, type FigureWorkspaceView, type FigureWorkspaceExport, type FigureLeaveOptions, type FigureOpenOptions } from './editor-workspace.ts';
8
+ export { compileFigureCapabilities } from './capabilities.ts';
9
+ export { compileFigureDocument, parseFigureDocument, serializeFigureDocument } from './document.ts';
10
+ export { compileFigureAsset, parseFigureAsset, serializeFigureAsset, captureFigureAuthoredInputs, upgradeFigurePlacement, figurePlacementOf } from './asset.ts';
11
+ export { publicInputRefusal } from './public-inputs.ts';
12
+ export { inspectFigureAsset, cornerExtremalBasis, FIGURE_DESIGN_EXTREME_BASIS, figureWorldBoxesOf, figureOccupiedBoxesOf, figureWritersOf, figurePartsExtentOf, type FigureInspection, type FigureViolation, type FigureCoverage, type FigureInspectOptions, type FigureWorldBox } from './gate.ts';
13
+ export { driverValue, driverStates, normalisePhase, validateFigureDrivers, validateFigureStateInputs, advanceStateValue, stateInputPolicy } from './driver.ts';
14
+ export { figureShapePoints, transformPoints, type Point } from './shape-sampling.ts';
15
+ export { FIGURE_OPERATORS, FIGURE_NON_AFFINE_OPERATORS, FIGURE_STATE_NON_AFFINE_OPERATORS, FIGURE_OPERATOR_STATE_POLICY, FIGURE_OPERATOR_PURITY, type FigureStatePolicy, figureShapeFaces, type FigureShapeFace } from './graph.ts';
16
+ export { FIGURE_KERNEL_VERSION } from './kernel-version.ts';
17
+ export { FIGURE_FACE_NORMALS } from './surface.ts';
18
+ export { figureCostOf, figureTrianglesOf, type FigureCost } from './cost.ts';
19
+ export { figureRenderBatchesOf, type FigureRenderBatch, type FigureRenderPlan, type FigureUnbatchedReason } from './render-batches.ts';
20
+ export { figureScoreOf, figurePartCountOf, figurePartBudgetOf, figureGradeOf, figureMaterialKeyOf, figureIndependentBodiesOf, FIGURE_GRADE_SCALE, FIGURE_BUDGET_KEYS, FIGURE_PER_INSTANCE, type FigureScore, type FigureBudgetUse, type FigureBudgetKey } from './score.ts';
21
+ export { applyFigureAuthoring, proposeFigureOccupancy, proposeFigureProportion, type FigureProportionPlan, figureAttachmentsOf, figureBindingsOf, FIGURE_FACES, type FigureBindingPlace, type FigureAuthoringAction, type FigureDimensionSource, type FigureMeasure, type FigureFaceAlignment, type FigureFace, type FigureMotionRequest, type FigureOccupancyProposal, type RemovalNotice, type FigureJoint, type FigureJointType, type FigureJointAxis, FIGURE_JOINT_TYPES, checkFigureJoints } from './authoring-actions.ts';
22
+ export type * from './asset-types.ts';
23
+ export { FIGURE_PLACEMENTS } from './asset-types.ts';
24
+ export { applyFigureProposal, FIGURE_PROPOSAL_GRAMMAR, FIGURE_PROPOSAL_KINDS, type FigureProposalStep, type FigureProposalWord } from './proposal.ts';
25
+ export { figureFollowOf, type FigureFollow } from './follow.ts';
26
+ export { planFigureResize, type FigureResizePlan, type FigureResizeRequest, type FigureResizeRefusalCode } from './resize-plan.ts';
27
+ export { figureSizeEditChanges, figureScaleAnchorOf, figurePlaneAlignChanges, type FigurePlaneAlignRefusal, type FigurePlaneContact } from './size-edit.ts';
28
+ export { figureRoomOnlyInputsOf, figureRoomRefitOf, type FigureRoomRefit, type FigureRoomOutside, type FigureRoomFinding } from './room.ts';
29
+ export { figureShapeProviderOf, figureEditableAxesOf, figureFollowableAxesOf, type FigureShapeProvider, type FigureShapeEdit, type FigureShapeEditRefusal, type FigureShapeTerm } from './shape-provider.ts';
30
+ export { figureRecipeFromParts } from './recipe-from-parts.ts';
31
+ export { buildFigureRecipe, type FigureRecipeBinding, type FigureRecipeModel, type FigureRecipeSpec } from './recipe-build.ts';
32
+ export { applyFigureRecipe, checkFigureRecipe, describeFigureRecipe, holdsFigureWhen, type FigureRecipeDescription, parseFigureRecipe, resolveFigureRecipe, figureRecipeIdFor, figureRecipeTestRoom, type FigureRecipe, type FigureRecipeParam, type FigureRecipeParamKind, type FigureRecipeValue } from './recipe.ts';
33
+ export type { FigureUnit, FigureDimensions, FigureValueType, FigureGraphInput, FigureGraphConstant, FigureGraphNode, FigureGraph, FigurePose, FigureShape, FigurePlacedValue, FigurePlacedGeometry, FigureScalarGeometry, FigureGeometry, FigureRuntimeValue, FigureGraphEvaluation, FigureCompiledGraph } from './graph-types.ts';
34
+ export { assertFigureJson, parseFigureJson, figureUtf8ByteLength, FIGURE_JSON_MAX_BYTES, FIGURE_JSON_MAX_DEPTH, type FigureJsonValue } from './json.ts';
35
+ export { FIGURE_INSTANCE_SIZE_DEFAULT, FIGURE_INSTANCE_SIZE_INPUTS, FIGURE_SIZE_POSITIVE_STEP, defaultInstanceSizeRange, foldInstanceSizeRange, figureInstanceSizeLimitsOf, type FigureSizeLimit, type FigureSizeRange, type FigureSizeRangeMove } from './instance-size.ts';
36
+ export { figureContractChanges, type FigureContractChange, type FigureContractChangeCode } from './release-contract.ts';
37
+ export { robotArmFigure, ROBOT_ARM_CHAIN } from './examples.ts';
38
+ export { settleFigureClips, FigureClipsDroppedError, type FigureClipConsent, type FigureClipLoss, type FigurePartRenamed } from './clip-keeping.ts';
39
+ export { previewFigureCommand, figurePartFaceOf, figureBodyOwnerOf, figureRowOf, figureFaceOverhangOf, type FigureFaceOverhang, type FigureCommandPreview, type FigureBodyMove, type FigureFaceArea, type FigureRowReading } from './command-preview.ts';
34
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,38 +3,44 @@
3
3
  *
4
4
  * @hatiolab/figure-model
5
5
  *
6
- * The figure format (`figure-v3-asset-1`): its kernel, authoring commands, release gate and score. No dependencies --
7
- * the server judges with it, the modeller authors with it, the scene draws from it. Design: docs/v3-design.md.
6
+ * The figure format (`figure-asset-1`): its kernel, authoring commands, release gate and score. No dependencies --
7
+ * the server judges with it, the modeller authors with it, the scene draws from it. Design: docs/design.md.
8
8
  */
9
- export * from "./v3-words.js";
10
- export { V3ContractError } from "./v3-contract.js";
11
- export { compileV3Graph } from "./v3-graph.js";
12
- export { editV3Part, removePart } from "./v3-part-edit.js";
13
- export { createV3Asset, addV3Box, addV3Primitive } from "./v3-create.js";
14
- export { createV3AuthoringSession } from "./v3-authoring-session.js";
15
- export { createV3EditorWorkspace } from "./v3-editor-workspace.js";
16
- export { compileV3Capabilities } from "./v3-capabilities.js";
17
- export { compileV3Document, parseV3Document, serializeV3Document } from "./v3-document.js";
18
- export { compileV3Asset, parseV3Asset, serializeV3Asset, captureV3AuthoredInputs } from "./v3-asset.js";
19
- export { publicInputRefusal } from "./v3-public-inputs.js";
20
- export { inspectV3Asset, cornerExtremalBasis, V3_DESIGN_EXTREME_BASIS, v3WorldBoxesOf, v3OccupiedBoxesOf, v3WritersOf, v3PartsExtentOf } from "./v3-gate.js";
21
- export { driverValue, driverStates, normalisePhase, validateV3Drivers, validateV3StateInputs, advanceStateValue, stateInputPolicy } from "./v3-driver.js";
22
- export { v3ShapePoints, transformPoints } from "./v3-shape-sampling.js";
23
- export { V3_OPERATORS, V3_NON_AFFINE_OPERATORS, V3_STATE_NON_AFFINE_OPERATORS, V3_OPERATOR_STATE_POLICY, V3_OPERATOR_PURITY, v3ShapeFaces } from "./v3-graph.js";
24
- export { V3_KERNEL_VERSION } from "./v3-kernel-version.js";
25
- export { V3_FACE_NORMALS } from "./v3-surface.js";
26
- export { v3CostOf, v3TrianglesOf } from "./v3-cost.js";
27
- export { v3RenderBatchesOf } from "./v3-render-batches.js";
28
- export { v3ScoreOf, v3PartCountOf, v3PartBudgetOf, v3GradeOf, v3MaterialKeyOf, v3IndependentBodiesOf, V3_GRADE_SCALE, V3_BUDGET_KEYS, V3_PER_INSTANCE } from "./v3-score.js";
29
- export { applyV3Authoring, proposeV3Occupancy, proposeV3Proportion, v3AttachmentsOf, v3BindingsOf, V3_FACES, V3_JOINT_TYPES, checkV3Joints } from "./v3-authoring-actions.js";
30
- export { V3_PLACEMENTS } from "./v3-asset-types.js";
31
- export { applyV3Proposal, V3_PROPOSAL_GRAMMAR, V3_PROPOSAL_KINDS } from "./v3-proposal.js";
32
- export { v3FollowOf } from "./v3-follow.js";
33
- export { v3RecipeFromParts } from "./v3-recipe-from-parts.js";
34
- export { buildV3Recipe } from "./v3-recipe-build.js";
35
- export { applyV3Recipe, checkV3Recipe, describeV3Recipe, holdsV3When, parseV3Recipe, resolveV3Recipe, v3RecipeIdFor, v3RecipeTestRoom } from "./v3-recipe.js";
36
- export { assertV3Json, parseV3Json, v3Utf8ByteLength, V3_JSON_MAX_BYTES, V3_JSON_MAX_DEPTH } from "./v3-json.js";
37
- export { V3_INSTANCE_SIZE_DEFAULT, V3_INSTANCE_SIZE_INPUTS, V3_SIZE_POSITIVE_STEP, defaultInstanceSizeRange, foldInstanceSizeRange, v3InstanceSizeLimitsOf } from "./v3-instance-size.js";
38
- export { v3ContractChanges } from "./v3-release-contract.js";
39
- export { robotArmV3, ROBOT_ARM_CHAIN } from "./v3-examples.js";
9
+ export * from "./words.js";
10
+ export { FigureContractError } from "./contract.js";
11
+ export { compileFigureGraph } from "./graph.js";
12
+ export { editFigurePart, removePart } from "./part-edit.js";
13
+ export { createFigureAsset, addFigureBox, addFigurePrimitive } from "./create.js";
14
+ export { createFigureAuthoringSession } from "./authoring-session.js";
15
+ export { createFigureEditorWorkspace } from "./editor-workspace.js";
16
+ export { compileFigureCapabilities } from "./capabilities.js";
17
+ export { compileFigureDocument, parseFigureDocument, serializeFigureDocument } from "./document.js";
18
+ export { compileFigureAsset, parseFigureAsset, serializeFigureAsset, captureFigureAuthoredInputs, upgradeFigurePlacement, figurePlacementOf } from "./asset.js";
19
+ export { publicInputRefusal } from "./public-inputs.js";
20
+ export { inspectFigureAsset, cornerExtremalBasis, FIGURE_DESIGN_EXTREME_BASIS, figureWorldBoxesOf, figureOccupiedBoxesOf, figureWritersOf, figurePartsExtentOf } from "./gate.js";
21
+ export { driverValue, driverStates, normalisePhase, validateFigureDrivers, validateFigureStateInputs, advanceStateValue, stateInputPolicy } from "./driver.js";
22
+ export { figureShapePoints, transformPoints } from "./shape-sampling.js";
23
+ export { FIGURE_OPERATORS, FIGURE_NON_AFFINE_OPERATORS, FIGURE_STATE_NON_AFFINE_OPERATORS, FIGURE_OPERATOR_STATE_POLICY, FIGURE_OPERATOR_PURITY, figureShapeFaces } from "./graph.js";
24
+ export { FIGURE_KERNEL_VERSION } from "./kernel-version.js";
25
+ export { FIGURE_FACE_NORMALS } from "./surface.js";
26
+ export { figureCostOf, figureTrianglesOf } from "./cost.js";
27
+ export { figureRenderBatchesOf } from "./render-batches.js";
28
+ export { figureScoreOf, figurePartCountOf, figurePartBudgetOf, figureGradeOf, figureMaterialKeyOf, figureIndependentBodiesOf, FIGURE_GRADE_SCALE, FIGURE_BUDGET_KEYS, FIGURE_PER_INSTANCE } from "./score.js";
29
+ export { applyFigureAuthoring, proposeFigureOccupancy, proposeFigureProportion, figureAttachmentsOf, figureBindingsOf, FIGURE_FACES, FIGURE_JOINT_TYPES, checkFigureJoints } from "./authoring-actions.js";
30
+ export { FIGURE_PLACEMENTS } from "./asset-types.js";
31
+ export { applyFigureProposal, FIGURE_PROPOSAL_GRAMMAR, FIGURE_PROPOSAL_KINDS } from "./proposal.js";
32
+ export { figureFollowOf } from "./follow.js";
33
+ export { planFigureResize } from "./resize-plan.js";
34
+ export { figureSizeEditChanges, figureScaleAnchorOf, figurePlaneAlignChanges } from "./size-edit.js";
35
+ export { figureRoomOnlyInputsOf, figureRoomRefitOf } from "./room.js";
36
+ export { figureShapeProviderOf, figureEditableAxesOf, figureFollowableAxesOf } from "./shape-provider.js";
37
+ export { figureRecipeFromParts } from "./recipe-from-parts.js";
38
+ export { buildFigureRecipe } from "./recipe-build.js";
39
+ export { applyFigureRecipe, checkFigureRecipe, describeFigureRecipe, holdsFigureWhen, parseFigureRecipe, resolveFigureRecipe, figureRecipeIdFor, figureRecipeTestRoom } from "./recipe.js";
40
+ export { assertFigureJson, parseFigureJson, figureUtf8ByteLength, FIGURE_JSON_MAX_BYTES, FIGURE_JSON_MAX_DEPTH } from "./json.js";
41
+ export { FIGURE_INSTANCE_SIZE_DEFAULT, FIGURE_INSTANCE_SIZE_INPUTS, FIGURE_SIZE_POSITIVE_STEP, defaultInstanceSizeRange, foldInstanceSizeRange, figureInstanceSizeLimitsOf } from "./instance-size.js";
42
+ export { figureContractChanges } from "./release-contract.js";
43
+ export { robotArmFigure, ROBOT_ARM_CHAIN } from "./examples.js";
44
+ export { settleFigureClips, FigureClipsDroppedError } from "./clip-keeping.js";
45
+ export { previewFigureCommand, figurePartFaceOf, figureBodyOwnerOf, figureRowOf, figureFaceOverhangOf } from "./command-preview.js";
40
46
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import type { V3Asset } from './v3-asset-types.ts';
1
+ import type { FigureAsset } from './asset-types.ts';
2
2
  type Axis = 'x' | 'y' | 'z';
3
3
  /** The instance-size inputs, in mm. */
4
- export declare const V3_INSTANCE_SIZE_INPUTS: Readonly<Record<Axis, string>>;
4
+ export declare const FIGURE_INSTANCE_SIZE_INPUTS: Readonly<Record<Axis, string>>;
5
5
  /**
6
6
  * The default range: from 1 mm to ten times the authored size; the modeller prefills the same.
7
7
  */
8
- export declare const V3_INSTANCE_SIZE_DEFAULT: Readonly<{
8
+ export declare const FIGURE_INSTANCE_SIZE_DEFAULT: Readonly<{
9
9
  min: 1;
10
10
  times: 10;
11
11
  }>;
@@ -13,13 +13,13 @@ export declare const V3_INSTANCE_SIZE_DEFAULT: Readonly<{
13
13
  * The step above a spanned length's room at which the evaluated length is still positive in double precision at the
14
14
  * sizes figures have (mm, up to 10⁵). A numerical stability bound, not a minimum part size (designer's ruling 2).
15
15
  */
16
- export declare const V3_SIZE_POSITIVE_STEP = 0.000001;
17
- export type V3SizeRange = Record<Axis, {
16
+ export declare const FIGURE_SIZE_POSITIVE_STEP = 0.000001;
17
+ export type FigureSizeRange = Record<Axis, {
18
18
  min: number;
19
19
  max: number;
20
20
  }>;
21
21
  /** One edge a figure's size cannot cross, and on which axis. `part` names who sets it, when known. */
22
- export type V3SizeLimit = {
22
+ export type FigureSizeLimit = {
23
23
  axis: Axis;
24
24
  part?: string;
25
25
  } & (
@@ -40,8 +40,8 @@ export type V3SizeLimit = {
40
40
  max: number;
41
41
  });
42
42
  /** A bound the fold moved, with the range as it stood right after — what a report needs to say it. */
43
- export interface V3SizeRangeMove {
44
- limit: V3SizeLimit;
43
+ export interface FigureSizeRangeMove {
44
+ limit: FigureSizeLimit;
45
45
  bound: 'min' | 'max';
46
46
  range: {
47
47
  min: number;
@@ -49,14 +49,14 @@ export interface V3SizeRangeMove {
49
49
  };
50
50
  }
51
51
  /** The default range around an authored size. */
52
- export declare function defaultInstanceSizeRange(size: Record<Axis, number>): V3SizeRange;
52
+ export declare function defaultInstanceSizeRange(size: Record<Axis, number>): FigureSizeRange;
53
53
  /**
54
54
  * The range left once every limit is applied, in the order given, and each bound that moved. A repeat's floor at
55
55
  * one pitch is applied without a move: it is "at least one copy", not a narrowing.
56
56
  */
57
- export declare function foldInstanceSizeRange(start: V3SizeRange, limits: readonly V3SizeLimit[]): {
58
- range: V3SizeRange;
59
- moves: V3SizeRangeMove[];
57
+ export declare function foldInstanceSizeRange(start: FigureSizeRange, limits: readonly FigureSizeLimit[]): {
58
+ range: FigureSizeRange;
59
+ moves: FigureSizeRangeMove[];
60
60
  };
61
61
  /**
62
62
  * The edges of this asset's declared instance size, measured with the kernel: for each axis, the size below which
@@ -64,6 +64,6 @@ export declare function foldInstanceSizeRange(start: V3SizeRange, limits: readon
64
64
  * default. Only searched when the end of `within` fails, so a figure that holds over its range costs six
65
65
  * evaluations. `part` is read from the node the kernel refused.
66
66
  */
67
- export declare function v3InstanceSizeLimitsOf(asset: V3Asset, within: V3SizeRange): V3SizeLimit[];
67
+ export declare function figureInstanceSizeLimitsOf(asset: FigureAsset, within: FigureSizeRange): FigureSizeLimit[];
68
68
  export {};
69
- //# sourceMappingURL=v3-instance-size.d.ts.map
69
+ //# sourceMappingURL=instance-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-size.d.ts","sourceRoot":"","sources":["../src/instance-size.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAgBnD,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAG3B,uCAAuC;AACvC,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4D,CAAA;AAEnI;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;EAAuC,CAAA;AAEhF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,WAAO,CAAA;AAE7C,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAExE,sGAAsG;AACtG,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;AAC5D,oEAAoE;AAClE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAChC,mFAAmF;GACjF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAChD,uDAAuD;GACrD;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAC/B,CAAA;AAED,sGAAsG;AACtG,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,eAAe,CAAA;IACtB,KAAK,EAAE,KAAK,GAAG,KAAK,CAAA;IACpB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACpC;AAED,iDAAiD;AACjD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,eAAe,CAIpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAwB1J;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CAyDzG"}
@@ -1,21 +1,21 @@
1
- import { compileV3Graph } from "./v3-graph.js";
1
+ import { compileFigureGraph } from "./graph.js";
2
2
  const AXES = ['x', 'y', 'z'];
3
3
  /** The instance-size inputs, in mm. */
4
- export const V3_INSTANCE_SIZE_INPUTS = Object.freeze({ x: 'size.x', y: 'size.y', z: 'size.z' });
4
+ export const FIGURE_INSTANCE_SIZE_INPUTS = Object.freeze({ x: 'size.x', y: 'size.y', z: 'size.z' });
5
5
  /**
6
6
  * The default range: from 1 mm to ten times the authored size; the modeller prefills the same.
7
7
  */
8
- export const V3_INSTANCE_SIZE_DEFAULT = Object.freeze({ min: 1, times: 10 });
8
+ export const FIGURE_INSTANCE_SIZE_DEFAULT = Object.freeze({ min: 1, times: 10 });
9
9
  /**
10
10
  * The step above a spanned length's room at which the evaluated length is still positive in double precision at the
11
11
  * sizes figures have (mm, up to 10⁵). A numerical stability bound, not a minimum part size (designer's ruling 2).
12
12
  */
13
- export const V3_SIZE_POSITIVE_STEP = 1e-6;
13
+ export const FIGURE_SIZE_POSITIVE_STEP = 1e-6;
14
14
  /** The default range around an authored size. */
15
15
  export function defaultInstanceSizeRange(size) {
16
16
  const out = {};
17
17
  for (const a of AXES)
18
- out[a] = { min: V3_INSTANCE_SIZE_DEFAULT.min, max: size[a] * V3_INSTANCE_SIZE_DEFAULT.times };
18
+ out[a] = { min: FIGURE_INSTANCE_SIZE_DEFAULT.min, max: size[a] * FIGURE_INSTANCE_SIZE_DEFAULT.times };
19
19
  return out;
20
20
  }
21
21
  /**
@@ -30,7 +30,7 @@ export function foldInstanceSizeRange(start, limits) {
30
30
  for (const limit of limits) {
31
31
  const r = range[limit.axis];
32
32
  if (limit.kind === 'span') {
33
- const floor = limit.room + V3_SIZE_POSITIVE_STEP;
33
+ const floor = limit.room + FIGURE_SIZE_POSITIVE_STEP;
34
34
  if (floor > r.min) {
35
35
  r.min = floor;
36
36
  moves.push({ limit, bound: 'min', range: { ...r } });
@@ -56,17 +56,17 @@ export function foldInstanceSizeRange(start, limits) {
56
56
  * default. Only searched when the end of `within` fails, so a figure that holds over its range costs six
57
57
  * evaluations. `part` is read from the node the kernel refused.
58
58
  */
59
- export function v3InstanceSizeLimitsOf(asset, within) {
59
+ export function figureInstanceSizeLimitsOf(asset, within) {
60
60
  const model = structuredClone(asset.document.model);
61
- const ids = new Set(Object.values(V3_INSTANCE_SIZE_INPUTS));
61
+ const ids = new Set(Object.values(FIGURE_INSTANCE_SIZE_INPUTS));
62
62
  for (const input of model.inputs)
63
63
  if (ids.has(input.id))
64
64
  Object.assign(input, { min: Number.MIN_VALUE, max: Number.MAX_VALUE });
65
- const graph = compileV3Graph(model);
65
+ const graph = compileFigureGraph(model);
66
66
  const base = { ...asset.designInputs, ...asset.stateDefaults };
67
67
  const limits = [];
68
68
  for (const axis of AXES) {
69
- const id = V3_INSTANCE_SIZE_INPUTS[axis];
69
+ const id = FIGURE_INSTANCE_SIZE_INPUTS[axis];
70
70
  const authored = asset.designInputs[id];
71
71
  if (typeof authored !== 'number')
72
72
  continue;
@@ -85,7 +85,7 @@ export function v3InstanceSizeLimitsOf(asset, within) {
85
85
  let lo = Math.min(within[axis].min, authored);
86
86
  let hi = authored;
87
87
  let at = low;
88
- for (let i = 0; i < 80 && hi - lo > V3_SIZE_POSITIVE_STEP / 4; i++) {
88
+ for (let i = 0; i < 80 && hi - lo > FIGURE_SIZE_POSITIVE_STEP / 4; i++) {
89
89
  const mid = (lo + hi) / 2;
90
90
  const r = refusal(mid);
91
91
  if (r === null)
@@ -102,7 +102,7 @@ export function v3InstanceSizeLimitsOf(asset, within) {
102
102
  let lo = authored;
103
103
  let hi = Math.max(within[axis].max, authored);
104
104
  let at = high;
105
- for (let i = 0; i < 80 && hi - lo > V3_SIZE_POSITIVE_STEP / 4; i++) {
105
+ for (let i = 0; i < 80 && hi - lo > FIGURE_SIZE_POSITIVE_STEP / 4; i++) {
106
106
  const mid = (lo + hi) / 2;
107
107
  const r = refusal(mid);
108
108
  if (r === null)
@@ -117,4 +117,4 @@ export function v3InstanceSizeLimitsOf(asset, within) {
117
117
  }
118
118
  return limits;
119
119
  }
120
- //# sourceMappingURL=v3-instance-size.js.map
120
+ //# sourceMappingURL=instance-size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-size.js","sourceRoot":"","sources":["../src/instance-size.ts"],"names":[],"mappings":"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"}
package/dist/json.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export type FigureJsonValue = null | boolean | number | string | FigureJsonValue[] | {
2
+ [key: string]: FigureJsonValue;
3
+ };
4
+ /** Experimental resource limits, not a product storage quota. */
5
+ export declare const FIGURE_JSON_MAX_BYTES: number;
6
+ export declare const FIGURE_JSON_MAX_DEPTH = 64;
7
+ /** Identical UTF-8 accounting in browsers and Node, including lone surrogates. */
8
+ export declare function figureUtf8ByteLength(text: string): number;
9
+ export declare function assertFigureJson(value: unknown): asserts value is FigureJsonValue;
10
+ /** Strict JSON transport only; this is NOT model/asset semantic validation. */
11
+ export declare function parseFigureJson(text: string): FigureJsonValue;
12
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAAA;AAEvH,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,QAAc,CAAA;AAChD,eAAO,MAAM,qBAAqB,KAAK,CAAA;AAMvC,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAkBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,eAAe,CA+BjF;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CA0B7D"}
@@ -1,12 +1,12 @@
1
- import { V3ContractError } from "./v3-contract.js";
1
+ import { FigureContractError } from "./contract.js";
2
2
  /** Experimental resource limits, not a product storage quota. */
3
- export const V3_JSON_MAX_BYTES = 1024 * 1024;
4
- export const V3_JSON_MAX_DEPTH = 64;
3
+ export const FIGURE_JSON_MAX_BYTES = 1024 * 1024;
4
+ export const FIGURE_JSON_MAX_DEPTH = 64;
5
5
  function fail(code, detail) {
6
- throw new V3ContractError(code, 'document', detail);
6
+ throw new FigureContractError(code, 'document', detail);
7
7
  }
8
8
  /** Identical UTF-8 accounting in browsers and Node, including lone surrogates. */
9
- export function v3Utf8ByteLength(text) {
9
+ export function figureUtf8ByteLength(text) {
10
10
  return new TextEncoder().encode(text).byteLength;
11
11
  }
12
12
  /** Reject values JSON.stringify would silently discard or transform. Does not invoke getters. */
@@ -25,10 +25,10 @@ function isPlainObject(value) {
25
25
  return true;
26
26
  return Object.getPrototypeOf(proto) === null && typeof proto.hasOwnProperty === 'function';
27
27
  }
28
- export function assertV3Json(value) {
28
+ export function assertFigureJson(value) {
29
29
  const active = new Set();
30
30
  function visit(current, depth) {
31
- if (depth > V3_JSON_MAX_DEPTH)
31
+ if (depth > FIGURE_JSON_MAX_DEPTH)
32
32
  fail('DOCUMENT_LIMIT', 'nesting exceeds 64');
33
33
  if (current === null || typeof current === 'string' || typeof current === 'boolean')
34
34
  return;
@@ -66,12 +66,12 @@ export function assertV3Json(value) {
66
66
  }
67
67
  visit(value, 0);
68
68
  }
69
- /** Strict JSON transport only; this is NOT V3 model/asset semantic validation. */
70
- export function parseV3Json(text) {
69
+ /** Strict JSON transport only; this is NOT model/asset semantic validation. */
70
+ export function parseFigureJson(text) {
71
71
  if (typeof text !== 'string')
72
72
  fail('JSON_VALUE', 'text required');
73
73
  // Cheap UTF-16 length bound avoids allocating an encoded copy of huge requests.
74
- if (text.length > V3_JSON_MAX_BYTES || v3Utf8ByteLength(text) > V3_JSON_MAX_BYTES) {
74
+ if (text.length > FIGURE_JSON_MAX_BYTES || figureUtf8ByteLength(text) > FIGURE_JSON_MAX_BYTES) {
75
75
  fail('DOCUMENT_LIMIT', 'over 1 MiB');
76
76
  }
77
77
  let parsed;
@@ -100,10 +100,10 @@ export function parseV3Json(text) {
100
100
  top.keys.add(key);
101
101
  top.expectingKey = false;
102
102
  }
103
- if (stack.length > V3_JSON_MAX_DEPTH + 1)
103
+ if (stack.length > FIGURE_JSON_MAX_DEPTH + 1)
104
104
  fail('DOCUMENT_LIMIT', 'nesting exceeds 64');
105
105
  }
106
- assertV3Json(parsed);
106
+ assertFigureJson(parsed);
107
107
  return parsed;
108
108
  }
109
- //# sourceMappingURL=v3-json.js.map
109
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The version of the kernel a consumer compiled a asset with. A compile cache keys on the asset's content
3
+ * fingerprint **and** this (ADR-0087, designer's ruling 4): the same source compiled by a different kernel is a
4
+ * different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
5
+ * and by `kernel-version.test.ts`.
6
+ */
7
+ export declare const FIGURE_KERNEL_VERSION = "0.1.94";
8
+ //# sourceMappingURL=kernel-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-version.d.ts","sourceRoot":"","sources":["../src/kernel-version.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,WAAW,CAAA"}
@@ -2,10 +2,10 @@
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
4
  /**
5
- * The version of the kernel a consumer compiled a V3 asset with. A compile cache keys on the asset's content
5
+ * The version of the kernel a consumer compiled a asset with. A compile cache keys on the asset's content
6
6
  * fingerprint **and** this (ADR-0087, designer's ruling 4): the same source compiled by a different kernel is a
7
7
  * different result. Kept equal to package.json's version by `npm version` (the `version` script rewrites this file)
8
- * and by `v3-kernel-version.test.ts`.
8
+ * and by `kernel-version.test.ts`.
9
9
  */
10
- export const V3_KERNEL_VERSION = '0.1.92';
11
- //# sourceMappingURL=v3-kernel-version.js.map
10
+ export const FIGURE_KERNEL_VERSION = '0.1.94';
11
+ //# sourceMappingURL=kernel-version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel-version.js","sourceRoot":"","sources":["../src/kernel-version.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAA"}
@@ -1,6 +1,7 @@
1
- import type { V3Asset, V3Material } from './v3-asset-types.ts';
2
- import { type RemovalNotice } from './v3-authoring-actions.ts';
3
- export type V3PartEdit =
1
+ import { type FigureClipConsent } from './clip-keeping.ts';
2
+ import type { FigureAsset, FigureMaterial } from './asset-types.ts';
3
+ import { type RemovalNotice } from './authoring-actions.ts';
4
+ export type FigurePartEdit =
4
5
  /**
5
6
  * The part's material. `palette` adds the colours it names that the asset does not carry yet — a new asset carries
6
7
  * only its primary colour, and a role the palette lacks is refused. An entry never changes a colour the asset
@@ -9,7 +10,7 @@ export type V3PartEdit =
9
10
  {
10
11
  kind: 'set-material';
11
12
  target: string;
12
- material: V3Material;
13
+ material: FigureMaterial;
13
14
  palette?: Record<string, string>;
14
15
  }
15
16
  /** How finely a round body's rim is drawn. One of the presets the renderer draws; refused on a body with no rim. */
@@ -109,7 +110,7 @@ export type V3PartEdit =
109
110
  /**
110
111
  * "This part is shown while that control is at least so much" -- a lamp lit while a gate is open. The part keeps its
111
112
  * place, its size and every check; only whether it is drawn follows the control (the visibility contract,
112
- * `V3Appearance.visibility`). `null` shows it always. The comparison it had before, read by nothing else, goes.
113
+ * `FigureAppearance.visibility`). `null` shows it always. The comparison it had before, read by nothing else, goes.
113
114
  */
114
115
  | {
115
116
  kind: 'set-visibility';
@@ -120,17 +121,17 @@ export type V3PartEdit =
120
121
  } | null;
121
122
  };
122
123
  /** Pure, validated structural edit. References are never silently retargeted or cascaded. */
123
- export declare function editV3Part(source: V3Asset, edit: V3PartEdit): V3Asset;
124
+ export declare function editFigurePart(source: FigureAsset, edit: FigurePartEdit, consent?: FigureClipConsent): FigureAsset;
124
125
  /**
125
126
  * Takes a part away, and says what else that changed (`RemovalNotice`): the parts let go, the values fixed, the
126
- * controls made, the mounting face given up. `editV3Part` is this without the notice.
127
+ * controls made, the mounting face given up. `editFigurePart` is this without the notice.
127
128
  */
128
- export declare function removePart(source: V3Asset, edit: {
129
+ export declare function removePart(source: FigureAsset, edit: {
129
130
  kind: 'remove-part';
130
131
  target: string;
131
132
  refitRoom?: boolean;
132
- }): {
133
- asset: V3Asset;
133
+ }, consent?: FigureClipConsent): {
134
+ asset: FigureAsset;
134
135
  notice: RemovalNotice;
135
136
  };
136
- //# sourceMappingURL=v3-part-edit.d.ts.map
137
+ //# sourceMappingURL=part-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"part-edit.d.ts","sourceRoot":"","sources":["../src/part-edit.ts"],"names":[],"mappings":"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"}