@hatiolab/figure-model 0.4.6 → 0.5.1

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 (139) hide show
  1. package/dist/asset-types.d.ts +1 -1
  2. package/dist/asset-types.d.ts.map +1 -1
  3. package/dist/asset.d.ts +5 -0
  4. package/dist/asset.d.ts.map +1 -1
  5. package/dist/asset.js +11 -5
  6. package/dist/asset.js.map +1 -1
  7. package/dist/authoring-actions.d.ts +2 -795
  8. package/dist/authoring-actions.d.ts.map +1 -1
  9. package/dist/authoring-actions.js +66 -3748
  10. package/dist/authoring-actions.js.map +1 -1
  11. package/dist/authoring-bindings.d.ts +35 -0
  12. package/dist/authoring-bindings.d.ts.map +1 -0
  13. package/dist/authoring-bindings.js +241 -0
  14. package/dist/authoring-bindings.js.map +1 -0
  15. package/dist/authoring-dimensions.d.ts +10 -0
  16. package/dist/authoring-dimensions.d.ts.map +1 -0
  17. package/dist/authoring-dimensions.js +88 -0
  18. package/dist/authoring-dimensions.js.map +1 -0
  19. package/dist/authoring-fastening.d.ts +24 -0
  20. package/dist/authoring-fastening.d.ts.map +1 -0
  21. package/dist/authoring-fastening.js +562 -0
  22. package/dist/authoring-fastening.js.map +1 -0
  23. package/dist/authoring-geometry.d.ts +119 -0
  24. package/dist/authoring-geometry.d.ts.map +1 -0
  25. package/dist/authoring-geometry.js +419 -0
  26. package/dist/authoring-geometry.js.map +1 -0
  27. package/dist/authoring-nodes.d.ts +77 -0
  28. package/dist/authoring-nodes.d.ts.map +1 -0
  29. package/dist/authoring-nodes.js +310 -0
  30. package/dist/authoring-nodes.js.map +1 -0
  31. package/dist/authoring-occupancy.d.ts +28 -0
  32. package/dist/authoring-occupancy.d.ts.map +1 -0
  33. package/dist/authoring-occupancy.js +784 -0
  34. package/dist/authoring-occupancy.js.map +1 -0
  35. package/dist/authoring-proportion.d.ts +27 -0
  36. package/dist/authoring-proportion.d.ts.map +1 -0
  37. package/dist/authoring-proportion.js +378 -0
  38. package/dist/authoring-proportion.js.map +1 -0
  39. package/dist/authoring-size.d.ts +17 -0
  40. package/dist/authoring-size.d.ts.map +1 -0
  41. package/dist/authoring-size.js +140 -0
  42. package/dist/authoring-size.js.map +1 -0
  43. package/dist/authoring-types.d.ts +753 -0
  44. package/dist/authoring-types.d.ts.map +1 -0
  45. package/dist/authoring-types.js +42 -0
  46. package/dist/authoring-types.js.map +1 -0
  47. package/dist/command-preview.d.ts +5 -5
  48. package/dist/command-preview.d.ts.map +1 -1
  49. package/dist/command-preview.js +11 -5
  50. package/dist/command-preview.js.map +1 -1
  51. package/dist/contract.d.ts +129 -3
  52. package/dist/contract.d.ts.map +1 -1
  53. package/dist/contract.js +1 -1
  54. package/dist/contract.js.map +1 -1
  55. package/dist/cost.d.ts.map +1 -1
  56. package/dist/cost.js +3 -0
  57. package/dist/cost.js.map +1 -1
  58. package/dist/create.d.ts +36 -0
  59. package/dist/create.d.ts.map +1 -1
  60. package/dist/create.js +60 -0
  61. package/dist/create.js.map +1 -1
  62. package/dist/document.d.ts.map +1 -1
  63. package/dist/document.js +4 -3
  64. package/dist/document.js.map +1 -1
  65. package/dist/editor-workspace.d.ts +12 -3
  66. package/dist/editor-workspace.d.ts.map +1 -1
  67. package/dist/editor-workspace.js +40 -8
  68. package/dist/editor-workspace.js.map +1 -1
  69. package/dist/examples.d.ts.map +1 -1
  70. package/dist/examples.js +3 -1
  71. package/dist/examples.js.map +1 -1
  72. package/dist/gate.d.ts.map +1 -1
  73. package/dist/gate.js +2 -0
  74. package/dist/gate.js.map +1 -1
  75. package/dist/graph-types.d.ts +3 -2
  76. package/dist/graph-types.d.ts.map +1 -1
  77. package/dist/graph.d.ts.map +1 -1
  78. package/dist/graph.js +3 -3
  79. package/dist/graph.js.map +1 -1
  80. package/dist/index.d.ts +11 -5
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +9 -3
  83. package/dist/index.js.map +1 -1
  84. package/dist/joint-list.js +1 -1
  85. package/dist/joint-list.js.map +1 -1
  86. package/dist/joint-part-edits.d.ts +40 -0
  87. package/dist/joint-part-edits.d.ts.map +1 -0
  88. package/dist/joint-part-edits.js +488 -0
  89. package/dist/joint-part-edits.js.map +1 -0
  90. package/dist/joint-writing.d.ts +50 -0
  91. package/dist/joint-writing.d.ts.map +1 -0
  92. package/dist/joint-writing.js +847 -0
  93. package/dist/joint-writing.js.map +1 -0
  94. package/dist/json.d.ts.map +1 -1
  95. package/dist/json.js +11 -8
  96. package/dist/json.js.map +1 -1
  97. package/dist/kernel-version.d.ts +1 -1
  98. package/dist/kernel-version.js +1 -1
  99. package/dist/package.d.ts +15 -3
  100. package/dist/package.d.ts.map +1 -1
  101. package/dist/package.js +58 -0
  102. package/dist/package.js.map +1 -1
  103. package/dist/part-edit.d.ts +1 -1
  104. package/dist/part-edit.d.ts.map +1 -1
  105. package/dist/part-edit.js +7 -4
  106. package/dist/part-edit.js.map +1 -1
  107. package/dist/proposal.d.ts +1 -1
  108. package/dist/proposal.d.ts.map +1 -1
  109. package/dist/proposal.js +5 -2
  110. package/dist/proposal.js.map +1 -1
  111. package/dist/render-batches.d.ts +10 -2
  112. package/dist/render-batches.d.ts.map +1 -1
  113. package/dist/render-batches.js +19 -5
  114. package/dist/render-batches.js.map +1 -1
  115. package/dist/resize-plan.d.ts +1 -1
  116. package/dist/resize-plan.d.ts.map +1 -1
  117. package/dist/robots.d.ts.map +1 -1
  118. package/dist/robots.js +3 -1
  119. package/dist/robots.js.map +1 -1
  120. package/dist/room.d.ts +1 -1
  121. package/dist/room.d.ts.map +1 -1
  122. package/dist/room.js +2 -1
  123. package/dist/room.js.map +1 -1
  124. package/dist/shape-edit.js +4 -4
  125. package/dist/shape-edit.js.map +1 -1
  126. package/dist/shape-ops.d.ts +62 -7
  127. package/dist/shape-ops.d.ts.map +1 -1
  128. package/dist/shape-ops.js +117 -8
  129. package/dist/shape-ops.js.map +1 -1
  130. package/dist/slot-layout-presets.d.ts +102 -0
  131. package/dist/slot-layout-presets.d.ts.map +1 -0
  132. package/dist/slot-layout-presets.js +185 -0
  133. package/dist/slot-layout-presets.js.map +1 -0
  134. package/dist/slot-layout.d.ts +16 -1
  135. package/dist/slot-layout.d.ts.map +1 -1
  136. package/dist/slot-layout.js.map +1 -1
  137. package/docs/modeller-interaction-performance-2026-10-07.md +60 -8
  138. package/docs/shape-contract.md +46 -0
  139. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-occupancy.js","sourceRoot":"","sources":["../src/authoring-occupancy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type Axis } from './words.ts';
2
+ import type { FigureAsset } from './asset-types.ts';
3
+ import { type FigureProportionPlan } from './authoring-types.ts';
4
+ type Dynamic = any;
5
+ export declare function nudgePart(asset: Dynamic, a: {
6
+ kind: 'nudge-part';
7
+ part: string;
8
+ by?: Partial<Record<Axis, number>>;
9
+ turn?: Partial<Record<Axis, number>>;
10
+ grow?: Partial<Record<Axis, number>>;
11
+ }): Dynamic;
12
+ export declare function scaleUniformly(asset: Dynamic): Dynamic;
13
+ /** Reads the asset; changes nothing. Refused for a figure that does not grow by one ratio. */
14
+ export declare function proposeFigureProportion(asset: FigureAsset): FigureProportionPlan;
15
+ export declare function followSizeInProportion(asset: Dynamic): Dynamic;
16
+ export declare function scalePosition(asset: Dynamic, a: {
17
+ kind: 'scale-position';
18
+ part: string;
19
+ axis: Axis;
20
+ }): Dynamic;
21
+ export declare function fixPosition(asset: Dynamic, a: {
22
+ kind: 'fix-position';
23
+ part: string;
24
+ axis: Axis;
25
+ }): Dynamic;
26
+ export {};
27
+ //# sourceMappingURL=authoring-proportion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-proportion.d.ts","sourceRoot":"","sources":["../src/authoring-proportion.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,IAAI,EAAQ,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAKL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAqB7B,KAAK,OAAO,GAAG,GAAG,CAAA;AAElB,wBAAgB,SAAS,CACvB,KAAK,EAAE,OAAO,EACd,CAAC,EAAE;IACD,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;CACrC,GACA,OAAO,CA0FT;AAOD,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CA2EtD;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAGhF;AA2FD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAmB9D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAiC9G;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAuC1G"}
@@ -0,0 +1,378 @@
1
+ /*
2
+ * Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+ /*
5
+ * Commands that keep the figure in proportion: a uniform scale, positions that scale or stay, and a part nudged.
6
+ */
7
+ import { upgradeFigurePlacement } from "./asset.js";
8
+ import { compileFigureGraph } from "./graph.js";
9
+ import { figureFollowableAxesOf } from "./shape-provider.js";
10
+ import { figureShapeDescriptionOf } from "./shape-ops.js";
11
+ import { AXES } from "./words.js";
12
+ import { FIGURE_FACES } from "./authoring-types.js";
13
+ import { fail, nodeById, writerOf, partOf, namer, constantOf, scaled, uniformSizeOf, stableDimension, dimensionSource, ownInput, dropIfUnused, parentOf, round6 } from "./authoring-nodes.js";
14
+ import { childFaceOf } from "./authoring-geometry.js";
15
+ import { jointAbove } from "./joint-writing.js";
16
+ import { linkDimension } from "./authoring-dimensions.js";
17
+ export function nudgePart(asset, a) {
18
+ const m = asset.document.model;
19
+ const path = a.part;
20
+ const { pose } = partOf(m, a.part, path);
21
+ if (pose.op !== 'rigid@1')
22
+ fail('EDIT_TARGET', path, `${a.part} is not posed by a rigid@1 this command can move`);
23
+ if (pose.params?.to !== 'asset')
24
+ fail('EDIT_TARGET', path, `${a.part} is carried by a joint or a seat, which places it`, {
25
+ reason: 'placed-by-joint',
26
+ part: a.part
27
+ });
28
+ const parent = parentOf(m, a.part);
29
+ if (parent)
30
+ fail('EDIT_TARGET', path, `${a.part} is fastened to ${parent}, which places it; detach it first`, {
31
+ reason: 'placed-by-fastening',
32
+ part: a.part,
33
+ parent
34
+ });
35
+ const shift = (slot, by, unit, kind, axis) => {
36
+ if (!by)
37
+ return;
38
+ if (!Number.isFinite(by))
39
+ fail('SCHEMA', `${path}.${kind}.${axis}`, 'a finite amount required');
40
+ const was = pose.args[slot];
41
+ const own = `${a.part}.${kind}.${axis}`;
42
+ /* Already the part's own number: add to it. */
43
+ if (was === own && m.inputs.some((i) => i.id === own && i.role === 'design')) {
44
+ asset.designInputs[own] = round6(asset.designInputs[own] + by);
45
+ return;
46
+ }
47
+ const constant = m.constants.find((c) => c.id === was);
48
+ const free = (id) => !m.inputs.some((i) => i.id === id) &&
49
+ !m.nodes.some((n) => n.id === id || Object.values(n.outputs).includes(id));
50
+ const input = (id, value) => {
51
+ m.inputs.push({ id, unit, min: -Number.MAX_VALUE, max: Number.MAX_VALUE, role: 'design' });
52
+ asset.designInputs[id] = round6(value);
53
+ };
54
+ /* A plain number becomes the part's own, moved. */
55
+ if (constant && free(own)) {
56
+ input(own, constant.value + by);
57
+ pose.args = pose.args.map((r, k) => (k === slot ? own : r));
58
+ return;
59
+ }
60
+ /* A worked-out place keeps its rule and takes the drag beside it. */
61
+ const nudge = `${a.part}.${kind}.nudge.${axis}`;
62
+ if (m.inputs.some((i) => i.id === nudge)) {
63
+ asset.designInputs[nudge] = round6(asset.designInputs[nudge] + by);
64
+ return;
65
+ }
66
+ input(nudge, by);
67
+ const id = namer(m, `${a.part}.${kind}`)(`nudged.${axis}`);
68
+ m.nodes.push({ id, op: 'add@1', args: [was, nudge], outputs: { value: `${id}.value` } });
69
+ pose.args = pose.args.map((r, k) => (k === slot ? `${id}.value` : r));
70
+ };
71
+ AXES.forEach((axis, i) => shift(i, a.by?.[axis] ?? 0, 'mm', 'position', axis));
72
+ AXES.forEach((axis, i) => shift(3 + i, a.turn?.[axis] ?? 0, 'deg', 'rotation', axis));
73
+ /* Sizes: the measure's own node carries a factor beside its rule (`stableDimension` routes every measure through one). */
74
+ const shape = partOf(m, a.part, path).shape;
75
+ const described = figureShapeDescriptionOf(shape);
76
+ const edits = described?.edit;
77
+ if (!edits)
78
+ fail('EDIT_TARGET', path, `${a.part} is a ${shape.op}; it is not a shape with measures`);
79
+ const measures = AXES.filter(axis => !('refused' in edits[axis]) && !edits[axis].sameAs);
80
+ for (const axis of measures) {
81
+ /* A round section's one value answers to the cross axis the drag moved more. */
82
+ const partner = AXES.find(b => edits[b].sameAs === axis);
83
+ const factor = partner ? mostChanged(a.grow?.[axis], a.grow?.[partner]) : a.grow?.[axis];
84
+ if (factor === undefined || factor === 1)
85
+ continue;
86
+ if (!(Number.isFinite(factor) && factor > 0))
87
+ fail('GEOMETRY_DOMAIN', `${path}.dimension.${axis}`, 'a positive factor required');
88
+ stableDimension(m, a.part, axis, `${path}.dimension.${axis}`);
89
+ const node = nodeById(m, `${a.part}.dimension.${axis}`);
90
+ const id = `${a.part}.dimension.scale.${axis}`;
91
+ if (node.args[1] === id)
92
+ asset.designInputs[id] = round6(asset.designInputs[id] * factor);
93
+ else {
94
+ if (m.inputs.some((i) => i.id === id))
95
+ fail('DUPLICATE_WRITER', path, `${id} already exists`);
96
+ m.inputs.push({ id, unit: 'ratio', min: Number.MIN_VALUE, max: Number.MAX_VALUE, role: 'design' });
97
+ const was = m.constants.find((c) => c.id === node.args[1])?.value ?? 1;
98
+ asset.designInputs[id] = round6(was * factor);
99
+ node.args = [node.args[0], id];
100
+ }
101
+ /* A taper's other end keeps its proportion: it is scaled by the same factor, through the same input. */
102
+ const e = edits?.[axis];
103
+ for (const i of e?.with ?? []) {
104
+ const own = `${a.part}.dimension.${axis}.with.${i}`;
105
+ if (!nodeById(m, own)) {
106
+ const ref = `${own}.value`;
107
+ m.nodes.push({ id: own, op: 'mul@1', args: [shape.args[i], id], outputs: { value: ref } });
108
+ shape.args = shape.args.map((r, k) => (k === i ? ref : r));
109
+ }
110
+ }
111
+ }
112
+ return asset;
113
+ }
114
+ const mostChanged = (a, b) => {
115
+ const pick = [a, b].filter((v) => v !== undefined);
116
+ return pick.length ? pick.reduce((x, y) => (Math.abs(y - 1) > Math.abs(x - 1) ? y : x), 1) : undefined;
117
+ };
118
+ export function scaleUniformly(asset) {
119
+ const m = asset.document.model;
120
+ if (asset.sizing === 'uniform')
121
+ return asset;
122
+ const authored = {};
123
+ for (const axis of AXES) {
124
+ const id = `size.${axis}`;
125
+ if (!m.inputs.some((i) => i.id === id && i.role === 'design'))
126
+ fail('TARGET_ABSENT', 'sizing', `the instance has no ${id}; declare the instance size first`);
127
+ const at = asset.designInputs[id];
128
+ if (!(Number.isFinite(at) && at > 0))
129
+ fail('GEOMETRY_DOMAIN', 'sizing', `${id} must be positive`);
130
+ authored[axis] = at;
131
+ }
132
+ /*
133
+ u = geomean(size.x, size.y, size.z) ÷ geomean(x₀, y₀, z₀) -- the same ratio as the mean of the three axes' ratios,
134
+ in two nodes; a figure near the document's node limit (ROBOT_ARM: 509 of 512) has little room.
135
+ */
136
+ const name = namer(m, 'sizing');
137
+ const mean = name('mean');
138
+ m.nodes.push({
139
+ id: mean,
140
+ op: 'geomean@1',
141
+ args: AXES.map(axis => `size.${axis}`),
142
+ outputs: { value: `${mean}.value` }
143
+ });
144
+ const u = name('u');
145
+ const g0 = round6(Math.cbrt(AXES.reduce((p, axis) => p * authored[axis], 1)));
146
+ m.nodes.push({
147
+ id: u,
148
+ op: 'div@1',
149
+ args: [`${mean}.value`, constantOf(m, 'mm', g0, 'd')],
150
+ outputs: { value: `${u}.value` }
151
+ });
152
+ const uniform = {};
153
+ for (const axis of AXES) {
154
+ const id = name(`size.${axis}`);
155
+ m.nodes.push({
156
+ id,
157
+ op: 'mul@1',
158
+ args: [`${u}.value`, constantOf(m, 'mm', authored[axis], 'd')],
159
+ outputs: { value: `${id}.value` }
160
+ });
161
+ uniform[`size.${axis}`] = `${id}.value`;
162
+ }
163
+ /* Every reader of the instance size reads the uniform size instead -- but the mean, which is what makes it. */
164
+ for (const n of m.nodes)
165
+ if (n.id !== mean)
166
+ n.args = n.args.map((a) => uniform[a] ?? a);
167
+ /*
168
+ A ratio of a size to its own authored length (`scale.x` · `scale.y` · `scale.z`) is now u itself:
169
+ its readers read u and it goes, which gives back the nodes the rule took.
170
+ */
171
+ const sameAsU = m.nodes.filter((n) => n.op === 'div@1' &&
172
+ AXES.some(axis => n.args[0] === uniform[`size.${axis}`] &&
173
+ m.constants.find((c) => c.id === n.args[1])?.value === authored[axis]));
174
+ for (const gone of sameAsU) {
175
+ const out = Object.values(gone.outputs)[0];
176
+ for (const n of m.nodes)
177
+ n.args = n.args.map((a) => (a === out ? `${u}.value` : a));
178
+ }
179
+ m.nodes = m.nodes.filter((n) => !sameAsU.includes(n));
180
+ const swap = (value) => typeof value === 'string'
181
+ ? (uniform[value] ?? value)
182
+ : Array.isArray(value)
183
+ ? value.map(swap)
184
+ : value && typeof value === 'object'
185
+ ? Object.fromEntries(Object.entries(value).map(([k, v]) => [k, swap(v)]))
186
+ : value;
187
+ if (asset.occupancy)
188
+ asset.occupancy = swap(asset.occupancy);
189
+ asset.document.capabilities = swap(asset.document.capabilities);
190
+ asset.sizing = 'uniform';
191
+ return asset;
192
+ }
193
+ /** Reads the asset; changes nothing. Refused for a figure that does not grow by one ratio. */
194
+ export function proposeFigureProportion(asset) {
195
+ asset = upgradeFigurePlacement(asset);
196
+ return proportionPlan(asset);
197
+ }
198
+ function proportionPlan(asset) {
199
+ const m = asset.document.model;
200
+ if (asset.sizing !== 'uniform')
201
+ fail('SIZING_UNDECLARED', 'sizing', 'the figure does not grow by one ratio; declare that first (scale-uniformly), then every length can follow it');
202
+ const values = compileFigureGraph(m).evaluate({ ...asset.designInputs, ...asset.stateDefaults }).values;
203
+ const sizeNow = Object.fromEntries(AXES.map(axis => [axis, values[uniformSizeOf(m, axis, 'sizing')]]));
204
+ const plan = { dimensions: [], lengths: [], skipped: [] };
205
+ /* To nine places: the ratio's own mean is kept to six, and its noise is not the author's (0.1, not 0.0999999999787). */
206
+ const share = (value, axis) => Math.round((value / sizeNow[axis]) * 1e9) / 1e9;
207
+ const describe = (ref) => {
208
+ const w = writerOf(m, ref);
209
+ return String(w?.args?.[0] ?? ref).replace(/\.value$/, '');
210
+ };
211
+ const parts = m.nodes
212
+ .filter((n) => n.op === 'place@1' || (n.op === 'member@1' && nodeById(m, `${n.id}.repeat`)))
213
+ .map((n) => n.id);
214
+ for (const part of parts) {
215
+ const shape = writerOf(m, nodeById(m, part).args[0]);
216
+ const described = shape && figureShapeDescriptionOf(shape);
217
+ const along = figureFollowableAxesOf(shape);
218
+ if (!described || !along.length) {
219
+ plan.skipped.push({
220
+ what: part,
221
+ reason: `a ${described?.kind ?? String(shape?.op ?? 'shape')}'s measures are not linked by this command`
222
+ });
223
+ continue;
224
+ }
225
+ for (const axis of along) {
226
+ const e = described.edit[axis];
227
+ const from = dimensionSource(m, part, axis) ?? shape.args[e.arg];
228
+ if (!ownInput(m, part, from)) {
229
+ plan.skipped.push({ what: `${part}.${axis}`, reason: `follows ${describe(from)}`, follows: true });
230
+ continue;
231
+ }
232
+ plan.dimensions.push({ part, axis, times: share(values[from], axis) });
233
+ }
234
+ }
235
+ /* A part standing by no record keeps its millimetres: said, not left behind without a word (the robot arm, 2026-09-25). */
236
+ for (const part of parts) {
237
+ if (jointAbove(asset, part) || nodeById(m, `${part}.repeat`))
238
+ continue;
239
+ const pose = nodeById(m, `${part}.pose`);
240
+ const moved = (pose?.args.slice(0, 3) ?? []).some((ref) => m.constants.find((c) => c.id === ref)?.value !== 0);
241
+ if (moved)
242
+ plan.skipped.push({ what: `${part}.place`, reason: 'stands by no fastening; fasten it for its place to follow' });
243
+ }
244
+ for (const j of (asset.joints ?? [])) {
245
+ const faceAxis = FIGURE_FACES[childFaceOf(m, j)];
246
+ const gap = j.origin?.gap;
247
+ if (typeof gap === 'number' && gap !== 0)
248
+ plan.lengths.push({ joint: j.id, at: 'gap', axis: faceAxis, times: share(gap, faceAxis) });
249
+ else if (gap && typeof gap === 'object')
250
+ plan.skipped.push({ what: `${j.id}.gap`, reason: 'follows a length already', follows: true });
251
+ for (const [axis, how] of Object.entries(j.origin?.align ?? {})) {
252
+ if (!how || typeof how !== 'object')
253
+ continue;
254
+ if (typeof how.mm === 'number') {
255
+ if (how.mm !== 0)
256
+ plan.lengths.push({ joint: j.id, at: axis, axis, times: share(how.mm, axis) });
257
+ }
258
+ else
259
+ plan.skipped.push({ what: `${j.id}.${axis}`, reason: 'follows a length already', follows: true });
260
+ }
261
+ if (j.repeat && j.repeat.count === undefined) {
262
+ const axis = j.repeat.axis.toLowerCase();
263
+ if (typeof j.repeat.pitch === 'number')
264
+ plan.lengths.push({ joint: j.id, at: 'pitch', axis, times: share(j.repeat.pitch, axis) });
265
+ else
266
+ plan.skipped.push({ what: `${j.id}.pitch`, reason: 'follows a length already', follows: true });
267
+ }
268
+ if (j.type === 'prismatic' && !j.travel && !j.mimic)
269
+ plan.skipped.push({
270
+ what: `${j.id}.motion`,
271
+ reason: 'a slide in millimetres; make its travel follow the size where the motion is changed'
272
+ });
273
+ if (j.type === 'prismatic' && j.mimic?.offset)
274
+ plan.skipped.push({ what: `${j.id}.offset`, reason: "a follower's offset in millimetres" });
275
+ }
276
+ return plan;
277
+ }
278
+ export function followSizeInProportion(asset) {
279
+ const plan = proportionPlan(asset);
280
+ for (const d of plan.dimensions)
281
+ linkDimension(asset, {
282
+ kind: 'link-dimension',
283
+ part: d.part,
284
+ axis: d.axis,
285
+ source: { of: 'instance', axis: d.axis },
286
+ times: d.times
287
+ });
288
+ const follows = (axis, times) => ({ from: { of: 'instance', axis }, times });
289
+ for (const l of plan.lengths) {
290
+ const j = asset.joints.find(o => o.id === l.joint);
291
+ if (l.at === 'gap')
292
+ j.origin = { ...j.origin, gap: follows(l.axis, l.times) };
293
+ else if (l.at === 'pitch')
294
+ j.repeat = { ...j.repeat, pitch: follows(l.axis, l.times) };
295
+ else
296
+ j.origin = { ...j.origin, align: { ...j.origin.align, [l.at]: { mm: follows(l.axis, l.times) } } };
297
+ }
298
+ // The joints' nodes are made again from these records after the command, as after every command.
299
+ return asset;
300
+ }
301
+ export function scalePosition(asset, a) {
302
+ const m = asset.document.model;
303
+ const path = `${a.part}.${a.axis}`;
304
+ if (!AXES.includes(a.axis))
305
+ fail('SCHEMA', path, `${String(a.axis)} is not an axis`);
306
+ const { pose } = partOf(m, a.part, path);
307
+ if (pose.op !== 'rigid@1')
308
+ fail('EDIT_TARGET', path, `${a.part} is not posed by a rigid@1 this command can read`);
309
+ const parent = parentOf(m, a.part);
310
+ if (parent)
311
+ fail('EDIT_TARGET', path, `${a.part} is fastened to ${parent}, which places it; detach it first`, {
312
+ reason: 'placed-by-fastening',
313
+ part: a.part,
314
+ parent
315
+ });
316
+ const size = `size.${a.axis}`;
317
+ if (!m.inputs.some((i) => i.id === size && i.role === 'design'))
318
+ fail('TARGET_ABSENT', path, `the instance has no ${size}; declare it before keeping a place in proportion to it`);
319
+ const i = AXES.indexOf(a.axis);
320
+ const was = pose.args[i];
321
+ const values = compileFigureGraph(m).evaluate({ ...asset.designInputs, ...asset.stateDefaults }).values;
322
+ const value = values[was];
323
+ const of = values[size];
324
+ if (!Number.isFinite(value))
325
+ fail('TARGET_ABSENT', path, `${was} has no value to keep`);
326
+ if (!(Number.isFinite(of) && of > 0))
327
+ fail('GEOMETRY_DOMAIN', path, `${size} must be positive to take a share of it`);
328
+ const share = round6(value / of);
329
+ const ref = share === 0 ? constantOf(m, 'mm', 0, 'd') : scaled(m, namer(m, `${a.part}.position`), size, share, 0, a.axis);
330
+ pose.args = pose.args.map((r, k) => (k === i ? ref : r));
331
+ // The part's own position number is read by nothing now; left behind it would be a field that moves nothing.
332
+ if (was !== ref)
333
+ dropIfUnused(asset, was, ownInput(m, a.part, was) ? was : undefined);
334
+ return asset;
335
+ }
336
+ export function fixPosition(asset, a) {
337
+ const m = asset.document.model;
338
+ const path = `${a.part}.${a.axis}`;
339
+ if (!AXES.includes(a.axis))
340
+ fail('SCHEMA', path, `${String(a.axis)} is not an axis`);
341
+ const { pose } = partOf(m, a.part, path);
342
+ if (pose.op !== 'rigid@1')
343
+ fail('EDIT_TARGET', path, `${a.part} is not posed by a rigid@1 this command can read`);
344
+ const parent = parentOf(m, a.part);
345
+ if (parent)
346
+ fail('EDIT_TARGET', path, `${a.part} is fastened to ${parent}, which places it; detach it first`, {
347
+ reason: 'placed-by-fastening',
348
+ part: a.part,
349
+ parent
350
+ });
351
+ const i = AXES.indexOf(a.axis);
352
+ const was = pose.args[i];
353
+ if (ownInput(m, a.part, was))
354
+ return asset;
355
+ const values = compileFigureGraph(m).evaluate({ ...asset.designInputs, ...asset.stateDefaults }).values;
356
+ const value = round6(values[was]);
357
+ if (!Number.isFinite(value))
358
+ fail('TARGET_ABSENT', path, `${was} has no value to keep`);
359
+ const id = `${a.part}.position.${a.axis}`;
360
+ /* The part's own position number, if it has one (an expression may read it), takes the value; else it is made. */
361
+ const own = m.inputs.find((input) => input.id === id && input.role === 'design' && input.unit === 'mm');
362
+ const taken = !own &&
363
+ (m.inputs.some((input) => input.id === id) ||
364
+ m.nodes.some((n) => n.id === id || Object.values(n.outputs).includes(id)));
365
+ let ref;
366
+ if (taken)
367
+ ref = constantOf(m, 'mm', value, 'd');
368
+ else {
369
+ if (!own)
370
+ m.inputs.push({ id, unit: 'mm', min: -Number.MAX_VALUE, max: Number.MAX_VALUE, role: 'design' });
371
+ asset.designInputs[id] = value;
372
+ ref = id;
373
+ }
374
+ pose.args = pose.args.map((r, k) => (k === i ? ref : r));
375
+ dropIfUnused(asset, was);
376
+ return asset;
377
+ }
378
+ //# sourceMappingURL=authoring-proportion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-proportion.js","sourceRoot":"","sources":["../src/authoring-proportion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { FigureAsset } from './asset-types.ts';
2
+ import type { FigureAuthoringAction } from './authoring-types.ts';
3
+ type Dynamic = any;
4
+ export declare function declareInstanceSize(asset: Dynamic, a: Extract<FigureAuthoringAction, {
5
+ kind: 'declare-instance-size';
6
+ }>): Dynamic;
7
+ /** The declared size range folded to what the figure allows, as asked; the authored size must stay inside. */
8
+ export declare function narrowDeclaredSize(asset: Dynamic): void;
9
+ /**
10
+ * After a command, the declared size range must still hold at its ends. A gap the figure already had before the
11
+ * command -- a range the conversion declared too wide (FORMATION_TRAY: X from 1 mm, its cells gone below 8.8 mm) -- is
12
+ * not the command's doing: it is refused only if it made a gap or widened one. Refusing every command for it had
13
+ * blocked even choosing a detail level (user, 2026-09-24).
14
+ */
15
+ export declare function holdsOverDeclaredSize(asset: FigureAsset, before?: FigureAsset): void;
16
+ export {};
17
+ //# sourceMappingURL=authoring-size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-size.d.ts","sourceRoot":"","sources":["../src/authoring-size.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAGjE,KAAK,OAAO,GAAG,GAAG,CAAA;AAElB,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,EACd,CAAC,EAAE,OAAO,CAAC,qBAAqB,EAAE;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,CAAC,GACnE,OAAO,CA6CT;AA8BD,8GAA8G;AAC9G,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,QAuBhD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAmCpF"}