@hatiolab/figure-model 0.1.92 → 0.1.93

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 (296) 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} +67 -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 +8 -0
  8. package/dist/asset.d.ts.map +1 -0
  9. package/dist/{v3-asset.js → asset.js} +23 -23
  10. package/dist/asset.js.map +1 -0
  11. package/dist/{v3-authoring-actions.d.ts → authoring-actions.d.ts} +66 -66
  12. package/dist/authoring-actions.d.ts.map +1 -0
  13. package/dist/{v3-authoring-actions.js → authoring-actions.js} +77 -77
  14. package/dist/authoring-actions.js.map +1 -0
  15. package/dist/{v3-authoring-session.d.ts → authoring-session.d.ts} +21 -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/contract.d.ts +7 -0
  24. package/dist/contract.d.ts.map +1 -0
  25. package/dist/contract.js +12 -0
  26. package/dist/contract.js.map +1 -0
  27. package/dist/{v3-cost.d.ts → cost.d.ts} +5 -5
  28. package/dist/cost.d.ts.map +1 -0
  29. package/dist/{v3-cost.js → cost.js} +11 -11
  30. package/dist/cost.js.map +1 -0
  31. package/dist/{v3-create.d.ts → create.d.ts} +8 -8
  32. package/dist/{v3-create.d.ts.map → create.d.ts.map} +1 -1
  33. package/dist/{v3-create.js → create.js} +26 -26
  34. package/dist/create.js.map +1 -0
  35. package/dist/document.d.ts +5 -0
  36. package/dist/document.d.ts.map +1 -0
  37. package/dist/document.js +31 -0
  38. package/dist/document.js.map +1 -0
  39. package/dist/{v3-driver.d.ts → driver.d.ts} +10 -10
  40. package/dist/driver.d.ts.map +1 -0
  41. package/dist/{v3-driver.js → driver.js} +10 -10
  42. package/dist/driver.js.map +1 -0
  43. package/dist/{v3-editor-workspace.d.ts → editor-workspace.d.ts} +73 -73
  44. package/dist/editor-workspace.d.ts.map +1 -0
  45. package/dist/{v3-editor-workspace.js → editor-workspace.js} +29 -29
  46. package/dist/editor-workspace.js.map +1 -0
  47. package/dist/{v3-examples.d.ts → examples.d.ts} +5 -5
  48. package/dist/examples.d.ts.map +1 -0
  49. package/dist/{v3-examples.js → examples.js} +11 -11
  50. package/dist/examples.js.map +1 -0
  51. package/dist/{v3-follow.d.ts → follow.d.ts} +5 -5
  52. package/dist/follow.d.ts.map +1 -0
  53. package/dist/{v3-follow.js → follow.js} +2 -2
  54. package/dist/follow.js.map +1 -0
  55. package/dist/{v3-gate.d.ts → gate.d.ts} +28 -28
  56. package/dist/gate.d.ts.map +1 -0
  57. package/dist/{v3-gate.js → gate.js} +42 -42
  58. package/dist/gate.js.map +1 -0
  59. package/dist/{v3-graph-types.d.ts → graph-types.d.ts} +33 -33
  60. package/dist/graph-types.d.ts.map +1 -0
  61. package/dist/graph-types.js +2 -0
  62. package/dist/graph-types.js.map +1 -0
  63. package/dist/{v3-graph.d.ts → graph.d.ts} +14 -14
  64. package/dist/graph.d.ts.map +1 -0
  65. package/dist/{v3-graph.js → graph.js} +16 -16
  66. package/dist/graph.js.map +1 -0
  67. package/dist/index.d.ts +33 -33
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +33 -33
  70. package/dist/index.js.map +1 -1
  71. package/dist/{v3-instance-size.d.ts → instance-size.d.ts} +14 -14
  72. package/dist/instance-size.d.ts.map +1 -0
  73. package/dist/{v3-instance-size.js → instance-size.js} +13 -13
  74. package/dist/instance-size.js.map +1 -0
  75. package/dist/json.d.ts +12 -0
  76. package/dist/json.d.ts.map +1 -0
  77. package/dist/{v3-json.js → json.js} +13 -13
  78. package/dist/json.js.map +1 -0
  79. package/dist/kernel-version.d.ts +8 -0
  80. package/dist/kernel-version.d.ts.map +1 -0
  81. package/dist/{v3-kernel-version.js → kernel-version.js} +4 -4
  82. package/dist/kernel-version.js.map +1 -0
  83. package/dist/{v3-part-edit.d.ts → part-edit.d.ts} +10 -10
  84. package/dist/part-edit.d.ts.map +1 -0
  85. package/dist/{v3-part-edit.js → part-edit.js} +65 -65
  86. package/dist/part-edit.js.map +1 -0
  87. package/dist/proposal.d.ts +42 -0
  88. package/dist/proposal.d.ts.map +1 -0
  89. package/dist/{v3-proposal.js → proposal.js} +21 -21
  90. package/dist/proposal.js.map +1 -0
  91. package/dist/{v3-public-inputs.d.ts → public-inputs.d.ts} +4 -4
  92. package/dist/public-inputs.d.ts.map +1 -0
  93. package/dist/{v3-public-inputs.js → public-inputs.js} +3 -3
  94. package/dist/public-inputs.js.map +1 -0
  95. package/dist/recipe-build.d.ts +27 -0
  96. package/dist/recipe-build.d.ts.map +1 -0
  97. package/dist/{v3-recipe-build.js → recipe-build.js} +9 -9
  98. package/dist/recipe-build.js.map +1 -0
  99. package/dist/recipe-from-parts.d.ts +8 -0
  100. package/dist/recipe-from-parts.d.ts.map +1 -0
  101. package/dist/{v3-recipe-from-parts.js → recipe-from-parts.js} +9 -9
  102. package/dist/recipe-from-parts.js.map +1 -0
  103. package/dist/{v3-recipe.d.ts → recipe.d.ts} +25 -25
  104. package/dist/recipe.d.ts.map +1 -0
  105. package/dist/{v3-recipe.js → recipe.js} +30 -30
  106. package/dist/recipe.js.map +1 -0
  107. package/dist/release-contract.d.ts +19 -0
  108. package/dist/release-contract.d.ts.map +1 -0
  109. package/dist/{v3-release-contract.js → release-contract.js} +5 -5
  110. package/dist/release-contract.js.map +1 -0
  111. package/dist/{v3-render-batches.d.ts → render-batches.d.ts} +8 -8
  112. package/dist/render-batches.d.ts.map +1 -0
  113. package/dist/{v3-render-batches.js → render-batches.js} +4 -4
  114. package/dist/render-batches.js.map +1 -0
  115. package/dist/{v3-score.d.ts → score.d.ts} +19 -19
  116. package/dist/score.d.ts.map +1 -0
  117. package/dist/{v3-score.js → score.js} +32 -32
  118. package/dist/score.js.map +1 -0
  119. package/dist/{v3-shape-sampling.d.ts → shape-sampling.d.ts} +4 -4
  120. package/dist/shape-sampling.d.ts.map +1 -0
  121. package/dist/{v3-shape-sampling.js → shape-sampling.js} +3 -3
  122. package/dist/shape-sampling.js.map +1 -0
  123. package/dist/{v3-surface.d.ts → surface.d.ts} +5 -5
  124. package/dist/surface.d.ts.map +1 -0
  125. package/dist/{v3-surface.js → surface.js} +7 -7
  126. package/dist/surface.js.map +1 -0
  127. package/dist/{v3-words.d.ts → words.d.ts} +3 -3
  128. package/dist/words.d.ts.map +1 -0
  129. package/dist/{v3-words.js → words.js} +3 -3
  130. package/dist/words.js.map +1 -0
  131. package/docs/{assembly-constraints-v3.md → assembly-constraints.md} +1 -1
  132. package/docs/{v3-asset-persistence.md → asset-persistence.md} +8 -8
  133. package/docs/{v3-authoring-transactions.md → authoring-transactions.md} +2 -2
  134. package/docs/{v3-capability-bindings.md → capability-bindings.md} +8 -8
  135. package/docs/{v3-common-kernel-experiment.md → common-kernel-experiment.md} +4 -4
  136. package/docs/{v3-core-semantics.md → core-semantics.md} +5 -5
  137. package/docs/{v3-cutover.md → cutover.md} +4 -4
  138. package/docs/{v3-design.md → design.md} +11 -11
  139. package/docs/{v3-document-contract.md → document-contract.md} +9 -9
  140. package/docs/{v3-dryroom-profile-validation.md → dryroom-profile-validation.md} +4 -4
  141. package/docs/{v3-editor-integration.md → editor-integration.md} +6 -6
  142. package/docs/{v3-full-conveyor-validation.md → full-conveyor-validation.md} +4 -4
  143. package/docs/{v3-full-dryroom-validation.md → full-dryroom-validation.md} +4 -4
  144. package/docs/{v3-full-forklift-validation.md → full-forklift-validation.md} +5 -5
  145. package/docs/{v3-full-robot-validation.md → full-robot-validation.md} +4 -4
  146. package/docs/{v3-layout-system.md → layout-system.md} +4 -4
  147. package/docs/{v3-legacy-risk-audit-2026-09-23.md → legacy-risk-audit-2026-09-23.md} +5 -5
  148. package/docs/{v3-minimal-model.md → minimal-model.md} +6 -6
  149. package/docs/{v3-motion-contract.md → motion-contract.md} +3 -3
  150. package/docs/{v3-openusd-review.md → openusd-review.md} +8 -8
  151. package/docs/{v3-operator-contracts.md → operator-contracts.md} +6 -6
  152. package/docs/{v3-payload-collision-validation.md → payload-collision-validation.md} +4 -4
  153. package/docs/{v3-payload-contact-validation.md → payload-contact-validation.md} +5 -5
  154. package/docs/prototypes/README.md +10 -10
  155. package/docs/prototypes/{v3-asset-samples.mjs → asset-samples.mjs} +6 -6
  156. package/docs/prototypes/{v3-asset-store.mjs → asset-store.mjs} +3 -3
  157. package/docs/prototypes/{v3-asset-store.test.mjs → asset-store.test.mjs} +6 -6
  158. package/docs/prototypes/asset.mjs +1 -0
  159. package/docs/prototypes/{v3-asset.schema.json → asset.schema.json} +2 -2
  160. package/docs/prototypes/{v3-asset.test.mjs → asset.test.mjs} +10 -10
  161. package/docs/prototypes/authoring-session.mjs +1 -0
  162. package/docs/prototypes/{v3-authoring-session.test.mjs → authoring-session.test.mjs} +6 -6
  163. package/docs/prototypes/capability-plan.mjs +1 -0
  164. package/docs/prototypes/{v3-capability-plan.test.mjs → capability-plan.test.mjs} +5 -5
  165. package/docs/prototypes/{v3-capability-samples.mjs → capability-samples.mjs} +2 -2
  166. package/docs/prototypes/document.mjs +2 -0
  167. package/docs/prototypes/{v3-document.schema.json → document.schema.json} +1 -1
  168. package/docs/prototypes/{v3-document.test.mjs → document.test.mjs} +7 -7
  169. package/docs/prototypes/{v3-dryroom-mesh.mjs → dryroom-mesh.mjs} +1 -1
  170. package/docs/prototypes/{v3-dryroom-mesh.test.mjs → dryroom-mesh.test.mjs} +1 -1
  171. package/docs/prototypes/{v3-editor-browser.mjs → editor-browser.mjs} +13 -13
  172. package/docs/prototypes/editor-workspace.mjs +1 -0
  173. package/docs/prototypes/{v3-editor-workspace.test.mjs → editor-workspace.test.mjs} +3 -3
  174. package/docs/prototypes/{v3-feature-pattern.test.mjs → feature-pattern.test.mjs} +1 -1
  175. package/docs/prototypes/{v3-full-conveyor.mjs → full-conveyor.mjs} +2 -2
  176. package/docs/prototypes/{v3-full-conveyor.test.mjs → full-conveyor.test.mjs} +3 -3
  177. package/docs/prototypes/{v3-full-dryroom.mjs → full-dryroom.mjs} +2 -2
  178. package/docs/prototypes/{v3-full-dryroom.test.mjs → full-dryroom.test.mjs} +3 -3
  179. package/docs/prototypes/{v3-full-forklift.mjs → full-forklift.mjs} +2 -2
  180. package/docs/prototypes/{v3-full-forklift.test.mjs → full-forklift.test.mjs} +3 -3
  181. package/docs/prototypes/{v3-full-robot.mjs → full-robot.mjs} +2 -2
  182. package/docs/prototypes/{v3-full-robot.test.mjs → full-robot.test.mjs} +4 -4
  183. package/docs/prototypes/{v3-kernel.test.mjs → kernel.test.mjs} +1 -1
  184. package/docs/prototypes/{v3-layout.test.mjs → layout.test.mjs} +1 -1
  185. package/docs/prototypes/{v3-more-samples.test.mjs → more-samples.test.mjs} +2 -2
  186. package/docs/prototypes/{v3-payload-collision.mjs → payload-collision.mjs} +2 -2
  187. package/docs/prototypes/{v3-payload-collision.test.mjs → payload-collision.test.mjs} +3 -3
  188. package/docs/prototypes/{v3-payload-fit.mjs → payload-fit.mjs} +2 -2
  189. package/docs/prototypes/{v3-payload-fit.test.mjs → payload-fit.test.mjs} +4 -4
  190. package/docs/prototypes/render-full-dryroom.mjs +12 -12
  191. package/docs/prototypes/{v3-repeated-binding.mjs → repeated-binding.mjs} +1 -1
  192. package/docs/prototypes/{v3-repeated-binding.test.mjs → repeated-binding.test.mjs} +6 -6
  193. package/docs/prototypes/{v3-runtime-browser.mjs → runtime-browser.mjs} +26 -26
  194. package/docs/prototypes/{v3-samples.test.mjs → samples.test.mjs} +1 -1
  195. package/docs/prototypes/{v3-spatial-plan.test.mjs → spatial-plan.test.mjs} +1 -1
  196. package/docs/prototypes/typed-plan.mjs +3 -0
  197. package/docs/prototypes/{v3-typed-plan.test.mjs → typed-plan.test.mjs} +1 -1
  198. package/docs/prototypes/{v3-typed-repeat.test.mjs → typed-repeat.test.mjs} +2 -2
  199. package/docs/{v3-repeated-binding-validation.md → repeated-binding-validation.md} +4 -4
  200. package/docs/{v3-research-review.md → research-review.md} +2 -2
  201. package/docs/{v3-review-2026-09-22.md → review-2026-09-22.md} +10 -10
  202. package/docs/{v3-runtime-extraction.md → runtime-extraction.md} +16 -16
  203. package/docs/{v3-sample-validation-expanded.md → sample-validation-expanded.md} +5 -5
  204. package/docs/{v3-sample-validation.md → sample-validation.md} +3 -3
  205. package/docs/{v3-shape-dimension-contract.md → shape-dimension-contract.md} +12 -12
  206. package/docs/{v3-shapeassembly-reproduction.md → shapeassembly-reproduction.md} +4 -4
  207. package/docs/{v3-spatial-contracts.md → spatial-contracts.md} +5 -5
  208. package/docs/status.md +12 -0
  209. package/docs/{v3-storage-integration.md → storage-integration.md} +5 -5
  210. package/docs/{v3-typed-repeat-contracts.md → typed-repeat-contracts.md} +3 -3
  211. package/package.json +3 -3
  212. package/dist/v3-asset-types.d.ts.map +0 -1
  213. package/dist/v3-asset-types.js +0 -2
  214. package/dist/v3-asset-types.js.map +0 -1
  215. package/dist/v3-asset.d.ts +0 -8
  216. package/dist/v3-asset.d.ts.map +0 -1
  217. package/dist/v3-asset.js.map +0 -1
  218. package/dist/v3-authoring-actions.d.ts.map +0 -1
  219. package/dist/v3-authoring-actions.js.map +0 -1
  220. package/dist/v3-authoring-session.d.ts.map +0 -1
  221. package/dist/v3-authoring-session.js.map +0 -1
  222. package/dist/v3-capabilities.d.ts +0 -3
  223. package/dist/v3-capabilities.d.ts.map +0 -1
  224. package/dist/v3-capabilities.js.map +0 -1
  225. package/dist/v3-contract.d.ts +0 -7
  226. package/dist/v3-contract.d.ts.map +0 -1
  227. package/dist/v3-contract.js +0 -12
  228. package/dist/v3-contract.js.map +0 -1
  229. package/dist/v3-cost.d.ts.map +0 -1
  230. package/dist/v3-cost.js.map +0 -1
  231. package/dist/v3-create.js.map +0 -1
  232. package/dist/v3-document.d.ts +0 -5
  233. package/dist/v3-document.d.ts.map +0 -1
  234. package/dist/v3-document.js +0 -31
  235. package/dist/v3-document.js.map +0 -1
  236. package/dist/v3-driver.d.ts.map +0 -1
  237. package/dist/v3-driver.js.map +0 -1
  238. package/dist/v3-editor-workspace.d.ts.map +0 -1
  239. package/dist/v3-editor-workspace.js.map +0 -1
  240. package/dist/v3-examples.d.ts.map +0 -1
  241. package/dist/v3-examples.js.map +0 -1
  242. package/dist/v3-follow.d.ts.map +0 -1
  243. package/dist/v3-follow.js.map +0 -1
  244. package/dist/v3-gate.d.ts.map +0 -1
  245. package/dist/v3-gate.js.map +0 -1
  246. package/dist/v3-graph-types.d.ts.map +0 -1
  247. package/dist/v3-graph-types.js +0 -2
  248. package/dist/v3-graph-types.js.map +0 -1
  249. package/dist/v3-graph.d.ts.map +0 -1
  250. package/dist/v3-graph.js.map +0 -1
  251. package/dist/v3-instance-size.d.ts.map +0 -1
  252. package/dist/v3-instance-size.js.map +0 -1
  253. package/dist/v3-json.d.ts +0 -12
  254. package/dist/v3-json.d.ts.map +0 -1
  255. package/dist/v3-json.js.map +0 -1
  256. package/dist/v3-kernel-version.d.ts +0 -8
  257. package/dist/v3-kernel-version.d.ts.map +0 -1
  258. package/dist/v3-kernel-version.js.map +0 -1
  259. package/dist/v3-part-edit.d.ts.map +0 -1
  260. package/dist/v3-part-edit.js.map +0 -1
  261. package/dist/v3-proposal.d.ts +0 -42
  262. package/dist/v3-proposal.d.ts.map +0 -1
  263. package/dist/v3-proposal.js.map +0 -1
  264. package/dist/v3-public-inputs.d.ts.map +0 -1
  265. package/dist/v3-public-inputs.js.map +0 -1
  266. package/dist/v3-recipe-build.d.ts +0 -27
  267. package/dist/v3-recipe-build.d.ts.map +0 -1
  268. package/dist/v3-recipe-build.js.map +0 -1
  269. package/dist/v3-recipe-from-parts.d.ts +0 -8
  270. package/dist/v3-recipe-from-parts.d.ts.map +0 -1
  271. package/dist/v3-recipe-from-parts.js.map +0 -1
  272. package/dist/v3-recipe.d.ts.map +0 -1
  273. package/dist/v3-recipe.js.map +0 -1
  274. package/dist/v3-release-contract.d.ts +0 -19
  275. package/dist/v3-release-contract.d.ts.map +0 -1
  276. package/dist/v3-release-contract.js.map +0 -1
  277. package/dist/v3-render-batches.d.ts.map +0 -1
  278. package/dist/v3-render-batches.js.map +0 -1
  279. package/dist/v3-score.d.ts.map +0 -1
  280. package/dist/v3-score.js.map +0 -1
  281. package/dist/v3-shape-sampling.d.ts.map +0 -1
  282. package/dist/v3-shape-sampling.js.map +0 -1
  283. package/dist/v3-surface.d.ts.map +0 -1
  284. package/dist/v3-surface.js.map +0 -1
  285. package/dist/v3-words.d.ts.map +0 -1
  286. package/dist/v3-words.js.map +0 -1
  287. package/docs/prototypes/v3-asset.mjs +0 -1
  288. package/docs/prototypes/v3-authoring-session.mjs +0 -1
  289. package/docs/prototypes/v3-capability-plan.mjs +0 -1
  290. package/docs/prototypes/v3-document.mjs +0 -2
  291. package/docs/prototypes/v3-editor-workspace.mjs +0 -1
  292. package/docs/prototypes/v3-typed-plan.mjs +0 -3
  293. package/docs/v3-status.md +0 -50
  294. /package/docs/prototypes/{v3-kernel.mjs → kernel.mjs} +0 -0
  295. /package/docs/prototypes/{v3-linear-comparison.py → linear-comparison.py} +0 -0
  296. /package/docs/prototypes/{v3-semantics.test.mjs → semantics.test.mjs} +0 -0
@@ -1,7 +1,7 @@
1
- import type { Axis } from './v3-words.ts';
2
- import type { V3Asset, V3Placement } from './v3-asset-types.ts';
1
+ import type { Axis } from './words.ts';
2
+ import type { FigureAsset, FigurePlacement } from './asset-types.ts';
3
3
  /** The six faces of a box-shaped part, and the axis each one faces along. */
4
- export declare const V3_FACES: {
4
+ export declare const FIGURE_FACES: {
5
5
  readonly left: "x";
6
6
  readonly right: "x";
7
7
  readonly bottom: "y";
@@ -9,22 +9,22 @@ export declare const V3_FACES: {
9
9
  readonly back: "z";
10
10
  readonly front: "z";
11
11
  };
12
- export type V3Face = keyof typeof V3_FACES;
12
+ export type FigureFace = keyof typeof FIGURE_FACES;
13
13
  /**
14
14
  * The face a part is fastened by: one of its six, or `centre` -- its own middle, which every shape has (ADR-0093,
15
15
  * 2026-09-26). Fastened by its centre, the part's middle is on the target's face (plus the gap), and a turn there
16
16
  * turns it about its middle: a roller spinning in place.
17
17
  */
18
- export type V3ChildFace = V3Face | 'centre';
18
+ export type FigureChildFace = FigureFace | 'centre';
19
19
  /**
20
20
  * UsdPhysics's joint types (ADR-0093, amended 2026-09-25: the joint follows USD). A `fixed` joint is a fastening; a
21
21
  * `revolute` joint turns -- with no limits it turns without end, its value a phase (-180..180), as USD's revolute
22
22
  * joint without limits does; a `prismatic` joint slides.
23
23
  */
24
- export declare const V3_JOINT_TYPES: readonly ["fixed", "revolute", "prismatic"];
25
- export type V3JointType = (typeof V3_JOINT_TYPES)[number];
24
+ export declare const FIGURE_JOINT_TYPES: readonly ["fixed", "revolute", "prismatic"];
25
+ export type FigureJointType = (typeof FIGURE_JOINT_TYPES)[number];
26
26
  /** UsdPhysics's axis tokens. */
27
- export type V3JointAxis = 'X' | 'Y' | 'Z';
27
+ export type FigureJointAxis = 'X' | 'Y' | 'Z';
28
28
  /**
29
29
  * A joint, in UsdPhysics's words (ADR-0093): `body0` is what it hangs from -- a part's face, or the plane the figure is
30
30
  * mounted on -- and `body1` the part it carries, by one of its faces. The joint frame is on body0's face (USD's
@@ -32,28 +32,28 @@ export type V3JointAxis = 'X' | 'Y' | 'Z';
32
32
  * Angles are degrees and lengths millimetres, as in a USD stage with `metersPerUnit = 0.001`. The rest pose is every
33
33
  * joint at 0.
34
34
  *
35
- * V3 extensions, which USD has no field for: every length may be an expression of the figure's design inputs (a
35
+ * extensions, which USD has no field for: every length may be an expression of the figure's design inputs (a
36
36
  * joint on a link moves when the link grows); the faces are named features; `mimic` (URDF's, and PhysX's and Newton's
37
37
  * extensions); `travel`, a slide whose length follows a part's size.
38
38
  */
39
- export interface V3Joint {
39
+ export interface FigureJoint {
40
40
  id: string;
41
- type: V3JointType;
41
+ type: FigureJointType;
42
42
  body0: {
43
43
  part: string;
44
- face: V3Face;
44
+ face: FigureFace;
45
45
  } | {
46
46
  plane: 'mounting-plane';
47
47
  };
48
48
  body1: {
49
49
  part: string;
50
- face: V3ChildFace;
50
+ face: FigureChildFace;
51
51
  };
52
52
  /** Where on body0's face, and how body1 stands in the joint frame (quarter turns only, in degrees). */
53
53
  origin?: {
54
54
  facing?: 'meet' | 'flush';
55
- gap?: V3Measure;
56
- align?: Partial<Record<Axis, V3FaceAlignment>>;
55
+ gap?: FigureMeasure;
56
+ align?: Partial<Record<Axis, FigureFaceAlignment>>;
57
57
  turn?: Partial<Record<Axis, number>>;
58
58
  /**
59
59
  * Degrees about the normal of the face the child is fastened by (r3 §6's twist): the faces still meet, so any
@@ -64,16 +64,16 @@ export interface V3Joint {
64
64
  twist?: number;
65
65
  };
66
66
  /** The axis a moving joint turns about or slides along, in the joint frame (USD `physics:axis`). */
67
- axis?: V3JointAxis;
67
+ axis?: FigureJointAxis;
68
68
  /** USD `physics:lowerLimit` / `physics:upperLimit`: degrees for revolute, millimetres for prismatic. */
69
69
  lowerLimit?: number;
70
70
  upperLimit?: number;
71
71
  /**
72
- * V3 extension: a prismatic joint whose distance follows the figure -- its value is a share (0..1 unless the limits
72
+ * extension: a prismatic joint whose distance follows the figure -- its value is a share (0..1 unless the limits
73
73
  * say otherwise) of this length: a part's width, the instance's, times and plus.
74
74
  */
75
75
  travel?: {
76
- source?: V3DimensionSource;
76
+ source?: FigureDimensionSource;
77
77
  times?: number;
78
78
  plus?: number;
79
79
  };
@@ -84,14 +84,14 @@ export interface V3Joint {
84
84
  start?: number;
85
85
  sweep?: number;
86
86
  };
87
- /** V3 extension (URDF's mimic): the value is the leader's times `multiplier` plus `offset`, in this joint's unit. */
87
+ /** extension (URDF's mimic): the value is the leader's times `multiplier` plus `offset`, in this joint's unit. */
88
88
  mimic?: {
89
89
  joint: string;
90
90
  multiplier: number;
91
91
  offset?: number;
92
92
  };
93
93
  /**
94
- * V3 extension (r3 §8, a row of copies -- USD's PointInstancer, URDF has none): the part fastened is repeated along
94
+ * extension (r3 §8, a row of copies -- USD's PointInstancer, URDF has none): the part fastened is repeated along
95
95
  * `axis` across the parent's face, from the parent's one edge to the other. Without `count` the row fills that
96
96
  * length, as many copies as fit at `pitch`, and so follows the parent's size; with `count`, that many spread evenly
97
97
  * over it. Only a fastening repeats. What is fastened to the part is on every copy, and every copy moves on the part's
@@ -99,11 +99,11 @@ export interface V3Joint {
99
99
  * `rise`: each copy stands `mm` further along a second axis than the one before -- a stair's steps (G2).
100
100
  */
101
101
  repeat?: {
102
- axis: V3JointAxis;
103
- pitch: V3Measure;
102
+ axis: FigureJointAxis;
103
+ pitch: FigureMeasure;
104
104
  count?: number;
105
105
  rise?: {
106
- axis: V3JointAxis;
106
+ axis: FigureJointAxis;
107
107
  mm: number;
108
108
  };
109
109
  };
@@ -112,7 +112,7 @@ export interface V3Joint {
112
112
  * What a dimension follows. Named rather than implied, because "as wide as the gate" and "as wide as the
113
113
  * opening" and "as wide as the rail" are three different intentions that happen to agree at one size.
114
114
  */
115
- export type V3DimensionSource =
115
+ export type FigureDimensionSource =
116
116
  /** The instance's own size on an axis, as a board scales it. */
117
117
  {
118
118
  of: 'instance';
@@ -134,16 +134,16 @@ export type V3DimensionSource =
134
134
  * keeps up when the instance is resized. `{ from: ..., times, plus }` reads the same sources a dimension link
135
135
  * does, which is why an opening can be "the instance's width" in a gap as well as in a dimension.
136
136
  */
137
- export type V3Measure = number | {
138
- from: V3DimensionSource;
137
+ export type FigureMeasure = number | {
138
+ from: FigureDimensionSource;
139
139
  times?: number;
140
140
  plus?: number;
141
141
  };
142
142
  /** Where a part sits inside the face it is fastened to, on one of that face's two axes. */
143
- export type V3FaceAlignment = 'centre' | 'min' | 'max' | {
144
- mm: V3Measure;
143
+ export type FigureFaceAlignment = 'centre' | 'min' | 'max' | {
144
+ mm: FigureMeasure;
145
145
  };
146
- export type V3AuthoringAction =
146
+ export type FigureAuthoringAction =
147
147
  /**
148
148
  * "This side of this part follows that." The value becomes `source × times + plus`, as graph nodes, so it
149
149
  * keeps following after the instance is resized. An axis that already follows something is refused unless
@@ -153,7 +153,7 @@ export type V3AuthoringAction =
153
153
  kind: 'link-dimension';
154
154
  part: string;
155
155
  axis: Axis;
156
- source: V3DimensionSource;
156
+ source: FigureDimensionSource;
157
157
  times?: number;
158
158
  plus?: number;
159
159
  replace?: boolean;
@@ -201,17 +201,17 @@ export type V3AuthoringAction =
201
201
  | {
202
202
  kind: 'attach';
203
203
  part: string;
204
- face: V3ChildFace;
204
+ face: FigureChildFace;
205
205
  /** The face of another part, or the plane the figure is mounted on, which is a thing a part can stand on. */
206
206
  to: {
207
207
  part: string;
208
- face: V3Face;
208
+ face: FigureFace;
209
209
  } | {
210
210
  plane: 'mounting-plane';
211
211
  };
212
212
  facing?: 'meet' | 'flush';
213
- gap?: V3Measure;
214
- align?: Partial<Record<Axis, V3FaceAlignment>>;
213
+ gap?: FigureMeasure;
214
+ align?: Partial<Record<Axis, FigureFaceAlignment>>;
215
215
  /** Degrees about the face's normal (the record's `origin.twist`). */
216
216
  twist?: number;
217
217
  replace?: boolean;
@@ -222,14 +222,14 @@ export type V3AuthoringAction =
222
222
  part: string;
223
223
  }
224
224
  /**
225
- * "This is a joint" -- URDF's joint record, with V3 values (ADR-0093): which face of the child sits on which face
225
+ * "This is a joint" -- URDF's joint record, with values (ADR-0093): which face of the child sits on which face
226
226
  * of the parent, and whether it stays fixed, turns (revolute, continuous) or slides (prismatic). The record is the
227
227
  * canon; the joint's graph nodes are made from it. `id` names it; a record with an id already there replaces it.
228
228
  */
229
229
  /** `narrowRange` as for `link-dimension`: a joint that rows its part makes the largest size finite. */
230
230
  | {
231
231
  kind: 'set-joint';
232
- joint: V3Joint;
232
+ joint: FigureJoint;
233
233
  narrowRange?: boolean;
234
234
  }
235
235
  /** "This joint is gone." Its child stays where it stands, fastened to nothing. */
@@ -245,8 +245,8 @@ export type V3AuthoringAction =
245
245
  */
246
246
  | {
247
247
  kind: 'declare-occupancy';
248
- proposal: V3OccupancyProposal;
249
- placement: V3Placement;
248
+ proposal: FigureOccupancyProposal;
249
+ placement: FigurePlacement;
250
250
  padding?: Partial<Record<Axis, number>>;
251
251
  }
252
252
  /**
@@ -254,7 +254,7 @@ export type V3AuthoringAction =
254
254
  * inputs `size.x · size.y · size.z` a part can then follow (`link-dimension` with `of: 'instance'`). Without them
255
255
  * a board draws the figure at its authored size whatever box it is placed in. `at` is the authored size; absent,
256
256
  * it is what the parts take up now. The range is the author's; the command refuses only a size the figure cannot
257
- * take, found by `v3InstanceSizeLimitsOf` and folded by `foldInstanceSizeRange`
257
+ * take, found by `figureInstanceSizeLimitsOf` and folded by `foldInstanceSizeRange`
258
258
  * (chief architect's ruling 2026-09-24). `replace` changes the range of sizes already declared.
259
259
  */
260
260
  | {
@@ -270,7 +270,7 @@ export type V3AuthoringAction =
270
270
  | {
271
271
  kind: 'set-mounting-face';
272
272
  part: string;
273
- face: V3Face;
273
+ face: FigureFace;
274
274
  }
275
275
  /** "It is not mounted on anything in particular." */
276
276
  | {
@@ -314,7 +314,7 @@ export type V3AuthoringAction =
314
314
  * own measure, each fastening's offset and gap in millimetres, and each row's pitch become their value now over the
315
315
  * size the figure is at now, times that size -- written as the links a person would write one by one, so any part
316
316
  * can be given its own number again (`unlink-dimension`). A measure that already follows something is left, and
317
- * named (`proposeV3Proportion`). Angles, ratios and counts are not lengths (chief architect's ruling 2026-09-25).
317
+ * named (`proposeFigureProportion`). Angles, ratios and counts are not lengths (chief architect's ruling 2026-09-25).
318
318
  */
319
319
  | {
320
320
  kind: 'follow-size-in-proportion';
@@ -333,7 +333,7 @@ export type V3AuthoringAction =
333
333
  | {
334
334
  kind: 'set-repeat';
335
335
  part: string;
336
- pitch: number | V3Measure;
336
+ pitch: number | FigureMeasure;
337
337
  }
338
338
  /**
339
339
  * "The figure has this design value" -- a number of its own, in a unit, held to a range (ADR-0096): what a row's pitch
@@ -423,7 +423,7 @@ export type V3AuthoringAction =
423
423
  label: string;
424
424
  role: 'seat' | 'grip';
425
425
  part: string;
426
- face: V3Face;
426
+ face: FigureFace;
427
427
  accepts: readonly string[];
428
428
  capacity: number;
429
429
  region?: Record<Axis, number>;
@@ -443,16 +443,16 @@ export type V3AuthoringAction =
443
443
  name: string;
444
444
  };
445
445
  /** Apply one authoring command. Throws on any refusal, leaving the asset it was given untouched. */
446
- export declare function applyV3Authoring(source: V3Asset, action: V3AuthoringAction): V3Asset;
446
+ export declare function applyFigureAuthoring(source: FigureAsset, action: FigureAuthoringAction): FigureAsset;
447
447
  /** What each part is fastened to, for a reader that wants the structure rather than the graph. */
448
- export declare function v3AttachmentsOf(asset: V3Asset): Record<string, string | null>;
448
+ export declare function figureAttachmentsOf(asset: FigureAsset): Record<string, string | null>;
449
449
  /** The records follow a part's new name -- as a joint's parent, as its child, and as the joint a follower follows -- and the nodes are made again from them. */
450
- export declare function renameV3PartInJoints(asset: V3Asset, from: string, to: string): void;
450
+ export declare function renameFigurePartInJoints(asset: FigureAsset, from: string, to: string): void;
451
451
  /**
452
452
  * A copied part is fastened as the original is: its own record, the same faces and place, so it is not held by nodes
453
453
  * no record makes. A moving joint gets its own control -- a copy is a second thing, not the original's shadow.
454
454
  */
455
- export declare function copyV3PartJoint(asset: V3Asset, from: string, to: string): void;
455
+ export declare function copyFigurePartJoint(asset: FigureAsset, from: string, to: string): void;
456
456
  /**
457
457
  * What taking a part away changed besides the part (chief architect's ruling 2026-09-27, ADR-0093): nothing the author
458
458
  * did not pick goes with it; what hung from it, moved with it or followed it is let go, and named here, and one undo
@@ -493,7 +493,7 @@ export interface RemovalNotice {
493
493
  * size or place becomes the number it is now. One thing is refused, by name: a row laid along it, or hanging in it --
494
494
  * a row is made from its record, and a record needs the part (ADR-0093).
495
495
  */
496
- export declare function releaseV3PartJoints(asset: V3Asset, part: string, options?: {
496
+ export declare function releaseFigurePartJoints(asset: FigureAsset, part: string, options?: {
497
497
  spaceFittedAgain?: boolean;
498
498
  }): RemovalNotice;
499
499
  /**
@@ -502,26 +502,26 @@ export declare function releaseV3PartJoints(asset: V3Asset, part: string, option
502
502
  * (FORKLIFT), a still older one left some the declaration no longer reaches (WALL_LAMP), and a part's own chain the
503
503
  * space also reads is the part's (2026-09-27).
504
504
  */
505
- export declare function spaceOnlyNodesOf(asset: V3Asset): Set<string>;
505
+ export declare function spaceOnlyNodesOf(asset: FigureAsset): Set<string>;
506
506
  /**
507
507
  * A node no drawn body, declaration or record reaches, reading a value that is gone: an earlier fitting's space left
508
508
  * reading a joint's node that went with its part (WALL_LAMP's shade, 2026-09-27). It was read by nothing before, and it
509
509
  * goes with what it read. A node something does reach is left, and the figure is refused as broken.
510
510
  */
511
- export declare function dropDeadDanglers(asset: V3Asset): void;
511
+ export declare function dropDeadDanglers(asset: FigureAsset): void;
512
512
  /** Every value a drawn body, a declaration or a record reaches, however far up. */
513
- export declare function liveRefsOf(asset: V3Asset): Set<string>;
513
+ export declare function liveRefsOf(asset: FigureAsset): Set<string>;
514
514
  /**
515
515
  * The records are the canon: made again from them, the joints' nodes must be the nodes the asset holds. An asset
516
516
  * whose nodes or records were edited apart is refused, not quietly rebuilt (ADR-0093, chief architect's condition).
517
517
  */
518
- export declare function checkV3Joints(asset: V3Asset): void;
518
+ export declare function checkFigureJoints(asset: FigureAsset): void;
519
519
  /**
520
520
  * "This part moves like this."
521
521
  *
522
522
  * Added on top of whatever the part is fastened to, never instead of it: the motion becomes its own node between
523
523
  * the part's pose and the frame it is fastened into, so the fastening is still there and still holds when the
524
- * parent is resized (V3 designer's ruling 2026-09-23 — attachment and motion may not overwrite one pose).
524
+ * parent is resized (designer's ruling 2026-09-23 — attachment and motion may not overwrite one pose).
525
525
  *
526
526
  * Named rather than assumed:
527
527
  * - `frame`: which frame the axis is measured in. `attachment`, the default, is the frame the part is fastened
@@ -535,7 +535,7 @@ export declare function checkV3Joints(asset: V3Asset): void;
535
535
  * distance.
536
536
  * - `clip`: optional, and named. A clip is declared, never inferred from an id.
537
537
  */
538
- export interface V3MotionRequest {
538
+ export interface FigureMotionRequest {
539
539
  kind: 'add-motion';
540
540
  part: string;
541
541
  motion: {
@@ -553,7 +553,7 @@ export interface V3MotionRequest {
553
553
  sweep?: number;
554
554
  };
555
555
  travel?: {
556
- source?: V3DimensionSource;
556
+ source?: FigureDimensionSource;
557
557
  times?: number;
558
558
  plus?: number;
559
559
  };
@@ -572,7 +572,7 @@ export interface V3MotionRequest {
572
572
  /**
573
573
  * The room a figure takes up, worked out from its parts.
574
574
  *
575
- * Proposing and declaring are two steps on purpose (V3 designer's ruling 2026-09-23). What the parts come to is
575
+ * Proposing and declaring are two steps on purpose (designer's ruling 2026-09-23). What the parts come to is
576
576
  * a candidate; the author confirms it. Nothing here ever widens a declaration that is already in the asset
577
577
  * because the model changed — a figure that has outgrown its declared volume is something the gate reports, not
578
578
  * something an authoring command papers over. Re-propose and confirm again.
@@ -584,7 +584,7 @@ export interface V3MotionRequest {
584
584
  * Naming the face the figure is mounted on is a separate command. It is a different claim from how much room
585
585
  * the figure takes up, and an author may want one without the other.
586
586
  */
587
- export interface V3OccupancyProposal {
587
+ export interface FigureOccupancyProposal {
588
588
  over: 'rest' | 'range';
589
589
  /** What the bounds come to at the asset's current design inputs, so a person sees what they are confirming. */
590
590
  at: Record<Axis, {
@@ -601,28 +601,28 @@ export interface V3OccupancyProposal {
601
601
  /**
602
602
  * The figure this was read from, as one value. Confirming a proposal against a different figure is refused:
603
603
  * comparing the list of parts was not enough, because widening a part keeps the list and changes the answer
604
- * (V3 designer's counterexample 2026-09-23 — a 100 mm part grown to 300 mm slipped an unseen volume through).
604
+ * (designer's counterexample 2026-09-23 — a 100 mm part grown to 300 mm slipped an unseen volume through).
605
605
  */
606
606
  basis: string;
607
607
  }
608
608
  /** What the parts come to, and what a person is being asked to confirm. Reads the asset; changes nothing. */
609
- export declare function proposeV3Occupancy(asset: V3Asset, options?: {
609
+ export declare function proposeFigureOccupancy(asset: FigureAsset, options?: {
610
610
  over?: 'rest' | 'range';
611
- }): V3OccupancyProposal;
611
+ }): FigureOccupancyProposal;
612
612
  /** The places things are held, with the part and face each sits on -- what a screen lists. */
613
- export interface V3BindingPlace {
613
+ export interface FigureBindingPlace {
614
614
  id: string;
615
615
  label: string;
616
616
  role: 'seat' | 'grip';
617
617
  part: string | null;
618
- face: V3Face | null;
618
+ face: FigureFace | null;
619
619
  accepts: string[];
620
620
  capacity: number;
621
621
  region: Record<Axis, number> | null;
622
622
  }
623
- export declare function v3BindingsOf(asset: V3Asset): V3BindingPlace[];
623
+ export declare function figureBindingsOf(asset: FigureAsset): FigureBindingPlace[];
624
624
  /** What 「every length follows the one ratio」 changes, and what it leaves and why. */
625
- export interface V3ProportionPlan {
625
+ export interface FigureProportionPlan {
626
626
  /** A part's own measure on a shape axis, and the share of the figure's size on that axis it becomes. */
627
627
  dimensions: Array<{
628
628
  part: string;
@@ -647,5 +647,5 @@ export interface V3ProportionPlan {
647
647
  }>;
648
648
  }
649
649
  /** Reads the asset; changes nothing. Refused for a figure that does not grow by one ratio. */
650
- export declare function proposeV3Proportion(asset: V3Asset): V3ProportionPlan;
651
- //# sourceMappingURL=v3-authoring-actions.d.ts.map
650
+ export declare function proposeFigureProportion(asset: FigureAsset): FigureProportionPlan;
651
+ //# sourceMappingURL=authoring-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-actions.d.ts","sourceRoot":"","sources":["../src/authoring-actions.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAqB,MAAM,kBAAkB,CAAA;AAQvF,6EAA6E;AAC7E,eAAO,MAAM,YAAY;;;;;;;CAAmF,CAAA;AAC5G,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,YAAY,CAAA;AAClD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEnD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,6CAA8C,CAAA;AAC7E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AACjE,gCAAgC;AAChC,MAAM,MAAM,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,eAAe,CAAA;IACrB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,CAAA;IACvE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,eAAe,CAAA;KAAE,CAAA;IAC9C,uGAAuG;IACvG,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;QACzB,GAAG,CAAC,EAAE,aAAa,CAAA;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAA;QAClD,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QACpC;;;;;WAKG;QACH,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,CAAA;IACD,oGAAoG;IACpG,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,wGAAwG;IACxG,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,qBAAqB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1E,mHAAmH;IACnH,KAAK,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,kHAAkH;IAClH,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,eAAe,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CACvH;AAID;;;GAGG;AACH,MAAM,MAAM,qBAAqB;AAC/B,gEAAgE;AAC9D;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE;AAChC,yGAAyG;GACvG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAChC,2CAA2C;GACzC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAA;AAE5C;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnG,2FAA2F;AAC3F,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG;IAAE,EAAE,EAAE,aAAa,CAAA;CAAE,CAAA;AAElF,MAAM,MAAM,qBAAqB;AAC/B;;;;GAIG;AACD;IACE,IAAI,EAAE,gBAAgB,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AACH;;;;;GAKG;GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;CAAE;AACtD,4FAA4F;GAC1F;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACpE;;;;;;;;;;;;;;GAcG;GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,eAAe,CAAA;IACrB,6GAA6G;IAC7G,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,gBAAgB,CAAA;KAAE,CAAA;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACzB,GAAG,CAAC,EAAE,aAAa,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAA;IAClD,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AACH,sGAAsG;GACpG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAClC;;;;GAIG;AACH,uGAAuG;GACrG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;AAClE,kFAAkF;GAChF;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACtC;;;;;GAKG;GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,eAAe,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE;AACvI;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;AAC7I,yFAAyF;GACvF;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE;AAC/D,qDAAqD;GACnD;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE;AACjC;;;;GAIG;GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE;AACpD;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE;AACtD;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE;AAC7B;;;;;;GAMG;GACD;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE;AACvC,uHAAuH;GACrH;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA;CAAE;AAC7D;;;;;GAKG;GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE;AACrE;;;GAGG;GACD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC3H,wHAAwH;GACtH;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AACtE,sHAAsH;GACpH;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AACxE,kDAAkD;GAChD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC5C;;;;GAIG;AACH;;;;GAIG;GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE;AACtJ,kEAAkE;GAChE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACzC;;;;;;;;GAQG;GACD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE;AACtJ;;;;;;;GAOG;GACD;IACE,IAAI,EAAE,aAAa,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AACH,uCAAuC;GACrC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACxC;;;GAGG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AA+vBpC,oGAAoG;AACpG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB,GAAG,WAAW,CA4IpG;AAsID,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAKrF;AAqgBD,gKAAgK;AAChK,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAgC3F;AAsBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAiBtF;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,sIAAsI;IACtI,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACnD,yEAAyE;IACzE,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3D,kGAAkG;IAClG,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5E,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD;AAsBD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CA2JrI;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAsBhE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CA2BzD;AAED,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAqB1D;AAgFD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAa1D;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAA;KAAE,CAAA;IAC9E,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7H,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,qBAAqB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1E,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACpI,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAoID;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,+GAA+G;IAC/G,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9C,2CAA2C;IAC3C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,0FAA0F;IAC1F,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AA0hBD,6GAA6G;AAC7G,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAO,GAAG,uBAAuB,CAgB7H;AAoKD,8FAA8F;AAC9F,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;CACpC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,kBAAkB,EAAE,CAmBzE;AAiLD,qFAAqF;AACrF,MAAM,WAAW,oBAAoB;IACnC,wGAAwG;IACxG,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9D,mGAAmG;IACnG,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxF;;;OAGG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;CACjE;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAEhF"}