@hatiolab/figure-model 0.1.88 → 0.1.90
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.
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/v3-asset-types.d.ts +18 -0
- package/dist/v3-asset-types.d.ts.map +1 -1
- package/dist/v3-asset.d.ts.map +1 -1
- package/dist/v3-asset.js +20 -1
- package/dist/v3-asset.js.map +1 -1
- package/dist/v3-authoring-actions.d.ts +32 -1
- package/dist/v3-authoring-actions.d.ts.map +1 -1
- package/dist/v3-authoring-actions.js +60 -4
- package/dist/v3-authoring-actions.js.map +1 -1
- package/dist/v3-capabilities.js +55 -46
- package/dist/v3-capabilities.js.map +1 -1
- package/dist/v3-cost.d.ts.map +1 -1
- package/dist/v3-cost.js +4 -1
- package/dist/v3-cost.js.map +1 -1
- package/dist/v3-gate.d.ts +8 -2
- package/dist/v3-gate.d.ts.map +1 -1
- package/dist/v3-gate.js +80 -9
- package/dist/v3-gate.js.map +1 -1
- package/dist/v3-graph-types.d.ts +5 -0
- package/dist/v3-graph-types.d.ts.map +1 -1
- package/dist/v3-graph.d.ts +2 -0
- package/dist/v3-graph.d.ts.map +1 -1
- package/dist/v3-graph.js +87 -24
- package/dist/v3-graph.js.map +1 -1
- package/dist/v3-kernel-version.d.ts +1 -1
- package/dist/v3-kernel-version.js +1 -1
- package/dist/v3-part-edit.d.ts.map +1 -1
- package/dist/v3-part-edit.js +6 -1
- package/dist/v3-part-edit.js.map +1 -1
- package/dist/v3-proposal.d.ts +1 -1
- package/dist/v3-proposal.d.ts.map +1 -1
- package/dist/v3-proposal.js +13 -1
- package/dist/v3-proposal.js.map +1 -1
- package/dist/v3-public-inputs.d.ts +27 -0
- package/dist/v3-public-inputs.d.ts.map +1 -0
- package/dist/v3-public-inputs.js +51 -0
- package/dist/v3-public-inputs.js.map +1 -0
- package/dist/v3-score.d.ts +2 -1
- package/dist/v3-score.d.ts.map +1 -1
- package/dist/v3-score.js +24 -6
- package/dist/v3-score.js.map +1 -1
- package/dist/v3-words.d.ts +10 -1
- package/dist/v3-words.d.ts.map +1 -1
- package/dist/v3-words.js +10 -1
- package/dist/v3-words.js.map +1 -1
- package/package.json +1 -1
package/dist/v3-proposal.d.ts
CHANGED
|
@@ -37,6 +37,6 @@ export declare const V3_PROPOSAL_GRAMMAR: readonly V3ProposalWord[];
|
|
|
37
37
|
/** Taken only through a word of its own (`fit-room` asks the kernel for the proposal it confirms). */
|
|
38
38
|
type LeftOut = 'declare-occupancy';
|
|
39
39
|
export type _GrammarComplete = Exhaustive<Exclude<V3AuthoringAction['kind'] | V3PartEdit['kind'], LeftOut | (typeof V3_PROPOSAL_KINDS)[number]>>;
|
|
40
|
-
export declare const V3_PROPOSAL_KINDS: readonly ["add-part", "attach", "set-joint", "declare-instance-size", "link-dimension", "follow-size", "unlink-dimension", "scale-uniformly", "follow-size-in-proportion", "scale-position", "fix-position", "nudge-part", "detach", "remove-joint", "make-repeat", "set-repeat", "remove-repeat", "add-binding", "remove-binding", "fit-room", "set-mounting-face", "clear-mounting-face", "set-detail-level", "rename", "set-material", "set-segments", "rename-part", "set-visibility", "remove-part", "duplicate-part", "move-part", "set-capabilities", "set-state-input", "set-state-defaults", "set-driver", "remove-driver", "set-clip"];
|
|
40
|
+
export declare const V3_PROPOSAL_KINDS: readonly ["add-part", "attach", "set-joint", "declare-instance-size", "link-dimension", "follow-size", "unlink-dimension", "scale-uniformly", "follow-size-in-proportion", "scale-position", "fix-position", "nudge-part", "detach", "remove-joint", "make-repeat", "set-repeat", "add-design-input", "set-input-range", "publish-input", "unpublish-input", "remove-repeat", "add-binding", "remove-binding", "fit-room", "set-mounting-face", "clear-mounting-face", "set-detail-level", "rename", "set-material", "set-segments", "rename-part", "set-visibility", "remove-part", "duplicate-part", "move-part", "set-capabilities", "set-state-input", "set-state-defaults", "set-driver", "remove-driver", "set-clip"];
|
|
41
41
|
export {};
|
|
42
42
|
//# sourceMappingURL=v3-proposal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3-proposal.d.ts","sourceRoot":"","sources":["../src/v3-proposal.ts"],"names":[],"mappings":"AAaA,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,EAAkE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClI,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAiB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGnF,qGAAqG;AACrG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;KAAE,CAAA;CAC7F;AACD,iGAAiG;AACjG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,WAAW,CAAA;CACvB;AACD,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,UAAU,CAAA;AAGnG,QAAA,MAAM,eAAe,kOAc6B,CAAA;AAClD,KAAK,UAAU,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAA;AACpC,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAE9G;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAwB1F;AAED,mGAAmG;AACnG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAQD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,
|
|
1
|
+
{"version":3,"file":"v3-proposal.d.ts","sourceRoot":"","sources":["../src/v3-proposal.ts"],"names":[],"mappings":"AAaA,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,EAAkE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClI,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAiB,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGnF,qGAAqG;AACrG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;KAAE,CAAA;CAC7F;AACD,iGAAiG;AACjG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,WAAW,CAAA;CACvB;AACD,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,UAAU,CAAA;AAGnG,QAAA,MAAM,eAAe,kOAc6B,CAAA;AAClD,KAAK,UAAU,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAA;AACpC,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAE9G;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAwB1F;AAED,mGAAmG;AACnG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAQD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAgFxD,CAAA;AAMD,sGAAsG;AACtG,KAAK,OAAO,GAAG,mBAAmB,CAAA;AAClC,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAChJ,eAAO,MAAM,iBAAiB,6rBA0CpB,CAAA"}
|
package/dist/v3-proposal.js
CHANGED
|
@@ -119,7 +119,15 @@ export const V3_PROPOSAL_GRAMMAR = [
|
|
|
119
119
|
shape: `{ kind: 'make-repeat', part, axis: ${axes}, pitch, count?: number | 'fills', rise?: { axis: ${axes}, mm }, narrowRange?: true }`,
|
|
120
120
|
means: "The fastened part is repeated across the face it is fastened to: as many as fit at pitch (mm) from the parent's one edge to the other, or count spread evenly. With rise, each copy stands mm further along the other axis than the one before (stairs). What is fastened to the part is on every copy, and every copy moves on the part's one control. A row on a part in a row is a grid; it runs along another axis."
|
|
121
121
|
},
|
|
122
|
-
{ kind: 'set-repeat', shape: `{ kind: 'set-repeat', part, pitch }`, means: "A row's pitch." },
|
|
122
|
+
{ kind: 'set-repeat', shape: `{ kind: 'set-repeat', part, pitch: mm | { from: { of: 'input', input } } }`, means: "A row's pitch: a number, or read from a design input (which a board may be given to set)." },
|
|
123
|
+
{
|
|
124
|
+
kind: 'add-design-input',
|
|
125
|
+
shape: `{ kind: 'add-design-input', id, unit: 'mm' | 'ratio' | 'deg' | 'count', min, max, value }`,
|
|
126
|
+
means: 'A design value of the figure, held to a range: what a measure can be read from, and what a board can be given to set.'
|
|
127
|
+
},
|
|
128
|
+
{ kind: 'set-input-range', shape: `{ kind: 'set-input-range', input, min, max }`, means: "A design input's range; its value must lie within it. Not the size, not a state input." },
|
|
129
|
+
{ kind: 'publish-input', shape: `{ kind: 'publish-input', input, label, hint? }`, means: 'A board may set this design input per instance, shown by this name (ADR-0096). Not the size, not a state input; the input needs a range.' },
|
|
130
|
+
{ kind: 'unpublish-input', shape: `{ kind: 'unpublish-input', input }`, means: 'A board no longer sets this design input.' },
|
|
123
131
|
{ kind: 'remove-repeat', shape: `{ kind: 'remove-repeat', part }`, means: 'The row goes back to one part.' },
|
|
124
132
|
{
|
|
125
133
|
kind: 'add-binding',
|
|
@@ -163,6 +171,10 @@ export const V3_PROPOSAL_KINDS = [
|
|
|
163
171
|
'remove-joint',
|
|
164
172
|
'make-repeat',
|
|
165
173
|
'set-repeat',
|
|
174
|
+
'add-design-input',
|
|
175
|
+
'set-input-range',
|
|
176
|
+
'publish-input',
|
|
177
|
+
'unpublish-input',
|
|
166
178
|
'remove-repeat',
|
|
167
179
|
'add-binding',
|
|
168
180
|
'remove-binding',
|
package/dist/v3-proposal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3-proposal.js","sourceRoot":"","sources":["../src/v3-proposal.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"v3-proposal.js","sourceRoot":"","sources":["../src/v3-proposal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { V3Asset } from './v3-asset-types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Why a board may not be given this input to set, or null when it may: it must be a design input of the model, not the
|
|
4
|
+
* size (a board sets that from the instance's bounds), with a range to hold a board's value to (ADR-0096). One rule for
|
|
5
|
+
* reading an asset and for the command that publishes an input, so a refused input is refused, never dropped quietly.
|
|
6
|
+
*/
|
|
7
|
+
export declare function publicInputRefusal(inputs: ReadonlyArray<{
|
|
8
|
+
id: string;
|
|
9
|
+
min: number;
|
|
10
|
+
max: number;
|
|
11
|
+
role?: string;
|
|
12
|
+
}>, id: string): {
|
|
13
|
+
code: string;
|
|
14
|
+
message: string;
|
|
15
|
+
} | null;
|
|
16
|
+
/** The refusal as the error it is. */
|
|
17
|
+
export declare function checkPublicInput(inputs: ReadonlyArray<{
|
|
18
|
+
id: string;
|
|
19
|
+
min: number;
|
|
20
|
+
max: number;
|
|
21
|
+
role?: string;
|
|
22
|
+
}>, id: string, path: string): void;
|
|
23
|
+
/** The list after a part was renamed: an input the part owned (`<part>.…`) is followed to its new name. */
|
|
24
|
+
export declare function renamePublicInputs(asset: V3Asset, from: string, to: string): void;
|
|
25
|
+
/** The list without entries whose input is no longer a design input of the model. */
|
|
26
|
+
export declare function keepPublicInputs(asset: V3Asset): void;
|
|
27
|
+
//# sourceMappingURL=v3-public-inputs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v3-public-inputs.d.ts","sourceRoot":"","sources":["../src/v3-public-inputs.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASvK;AAED,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAG/I;AAED,2GAA2G;AAC3G,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIjF;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAKrD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright © HatioLab Inc. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
/*
|
|
5
|
+
* The design inputs a board may set per instance (ADR-0096): which are listed, and the list kept with its inputs --
|
|
6
|
+
* renamed with them, and an entry whose input is gone dropped with it, as the joint records are kept with their parts
|
|
7
|
+
* (chief architect's condition, 2026-09-26).
|
|
8
|
+
*/
|
|
9
|
+
import { V3ContractError } from "./v3-contract.js";
|
|
10
|
+
/**
|
|
11
|
+
* Why a board may not be given this input to set, or null when it may: it must be a design input of the model, not the
|
|
12
|
+
* size (a board sets that from the instance's bounds), with a range to hold a board's value to (ADR-0096). One rule for
|
|
13
|
+
* reading an asset and for the command that publishes an input, so a refused input is refused, never dropped quietly.
|
|
14
|
+
*/
|
|
15
|
+
export function publicInputRefusal(inputs, id) {
|
|
16
|
+
const input = inputs.find(one => one.id === id);
|
|
17
|
+
if (!input)
|
|
18
|
+
return { code: 'TARGET_ABSENT', message: `${String(id)} is not an input of the figure` };
|
|
19
|
+
if (input.role === 'state')
|
|
20
|
+
return { code: 'PUBLIC_INPUT', message: `${id} is a state input; a board sets it as a parameter` };
|
|
21
|
+
if (/^(sizing\.)?size\.[xyz]$/.test(id))
|
|
22
|
+
return { code: 'PUBLIC_INPUT', message: `${id} is the figure's size; a board sets it from the instance's bounds` };
|
|
23
|
+
/* A number of its own with no range carries the placeholders: the smallest positive number, or the largest. */
|
|
24
|
+
const bounded = (v) => Number.isFinite(v) && Math.abs(v) < 1e12 && v !== Number.MIN_VALUE;
|
|
25
|
+
if (!bounded(input.min) || !bounded(input.max))
|
|
26
|
+
return { code: 'PUBLIC_INPUT', message: `${id} has no range to hold a board's value to; give it one first` };
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
/** The refusal as the error it is. */
|
|
30
|
+
export function checkPublicInput(inputs, id, path) {
|
|
31
|
+
const refusal = publicInputRefusal(inputs, id);
|
|
32
|
+
if (refusal)
|
|
33
|
+
throw new V3ContractError(refusal.code, path, refusal.message);
|
|
34
|
+
}
|
|
35
|
+
/** The list after a part was renamed: an input the part owned (`<part>.…`) is followed to its new name. */
|
|
36
|
+
export function renamePublicInputs(asset, from, to) {
|
|
37
|
+
if (!asset.publicInputs?.length)
|
|
38
|
+
return;
|
|
39
|
+
const moved = (id) => (id === from ? to : id.startsWith(`${from}.`) ? to + id.slice(from.length) : id);
|
|
40
|
+
asset.publicInputs = asset.publicInputs.map(p => ({ ...p, input: moved(p.input) }));
|
|
41
|
+
}
|
|
42
|
+
/** The list without entries whose input is no longer a design input of the model. */
|
|
43
|
+
export function keepPublicInputs(asset) {
|
|
44
|
+
if (!asset.publicInputs)
|
|
45
|
+
return;
|
|
46
|
+
const design = new Set(asset.document.model.inputs.filter(i => i.role !== 'state').map(i => i.id));
|
|
47
|
+
asset.publicInputs = asset.publicInputs.filter(p => design.has(p.input));
|
|
48
|
+
if (!asset.publicInputs.length)
|
|
49
|
+
delete asset.publicInputs;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=v3-public-inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v3-public-inputs.js","sourceRoot":"","sources":["../src/v3-public-inputs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA8E,EAAE,EAAU;IAC3H,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,gCAAgC,EAAE,CAAA;IACpG,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,mDAAmD,EAAE,CAAA;IAC9H,IAAI,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,mEAAmE,EAAE,CAAA;IAC3J,+GAA+G;IAC/G,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS,CAAA;IACjG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,6DAA6D,EAAE,CAAA;IAC5J,OAAO,IAAI,CAAA;AACb,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,gBAAgB,CAAC,MAA8E,EAAE,EAAU,EAAE,IAAY;IACvI,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9C,IAAI,OAAO;QAAE,MAAM,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;AAC7E,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,kBAAkB,CAAC,KAAc,EAAE,IAAY,EAAE,EAAU;IACzE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM;QAAE,OAAM;IACvC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC9G,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;AACrF,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,CAAC,YAAY;QAAE,OAAM;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACxE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC,YAAY,CAAA;AAC3D,CAAC"}
|
package/dist/v3-score.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FigureGrade } from './v3-words.ts';
|
|
2
2
|
import type { V3Asset, V3AssetGeometry } from './v3-asset-types.ts';
|
|
3
|
-
export type V3BudgetKey = 'groups' | 'triangles' | 'independent' | 'transparent' | 'parts';
|
|
3
|
+
export type V3BudgetKey = 'groups' | 'triangles' | 'independent' | 'moving' | 'transparent' | 'parts';
|
|
4
4
|
/** Every budget, in the order a screen draws them. */
|
|
5
5
|
export declare const V3_BUDGET_KEYS: readonly V3BudgetKey[];
|
|
6
6
|
/**
|
|
@@ -36,6 +36,7 @@ export declare function v3GradeOf(ratio: number): FigureGrade;
|
|
|
36
36
|
export declare const V3_PER_INSTANCE: {
|
|
37
37
|
readonly groups: number;
|
|
38
38
|
readonly triangles: number;
|
|
39
|
+
readonly moving: number;
|
|
39
40
|
};
|
|
40
41
|
/** The key a body's material is shared by: token, preset, transparency and glow. */
|
|
41
42
|
export declare function v3MaterialKeyOf(body: V3AssetGeometry): string;
|
package/dist/v3-score.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3-score.d.ts","sourceRoot":"","sources":["../src/v3-score.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"v3-score.d.ts","sourceRoot":"","sources":["../src/v3-score.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAMhD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAA;AAErG,sDAAsD;AACtD,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAA6E,CAAA;AAE9H;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAGlH;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,WAAW,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,mHAAmH;IACnH,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,OAAO;IACtB,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,CAAA;IAClB,sFAAsF;IACtF,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB;AAED,6FAA6F;AAC7F,eAAO,MAAM,cAAc,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAIrE,CAAA;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAGpD;AAED,6FAA6F;AAC7F,eAAO,MAAM,eAAe;;;;CAIlB,CAAA;AAEV,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAI7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAG/F;AAaD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAqC7D"}
|
package/dist/v3-score.js
CHANGED
|
@@ -23,8 +23,9 @@ import { compileV3Asset } from "./v3-asset.js";
|
|
|
23
23
|
import { compileV3Document } from "./v3-document.js";
|
|
24
24
|
import { v3WritersOf } from "./v3-gate.js";
|
|
25
25
|
import { v3TrianglesOf } from "./v3-cost.js";
|
|
26
|
+
import { v3RenderBatchesOf } from "./v3-render-batches.js";
|
|
26
27
|
/** Every budget, in the order a screen draws them. */
|
|
27
|
-
export const V3_BUDGET_KEYS = ['groups', 'triangles', 'independent', 'transparent', 'parts'];
|
|
28
|
+
export const V3_BUDGET_KEYS = ['groups', 'triangles', 'independent', 'moving', 'transparent', 'parts'];
|
|
28
29
|
/**
|
|
29
30
|
* How many parts the figure is authored with: one per authored part, a repeat once however many copies it makes. The number the detail level's limit (`PART_LIMIT`) is held against.
|
|
30
31
|
*/
|
|
@@ -52,7 +53,8 @@ export function v3GradeOf(ratio) {
|
|
|
52
53
|
/** What one instance may draw so that `LIMITS.screenInstances` of them fit on one screen. */
|
|
53
54
|
export const V3_PER_INSTANCE = {
|
|
54
55
|
groups: LIMITS.groupsOnScreen / LIMITS.screenInstances,
|
|
55
|
-
triangles: LIMITS.trianglesOnScreen / LIMITS.screenInstances
|
|
56
|
+
triangles: LIMITS.trianglesOnScreen / LIMITS.screenInstances,
|
|
57
|
+
moving: LIMITS.movingBodiesOnScreen / LIMITS.screenInstances
|
|
56
58
|
};
|
|
57
59
|
/** The key a body's material is shared by: token, preset, transparency and glow. */
|
|
58
60
|
export function v3MaterialKeyOf(body) {
|
|
@@ -66,13 +68,18 @@ export function v3MaterialKeyOf(body) {
|
|
|
66
68
|
* A visibility flag is not a placement, so a lamp that only switches on does not count.
|
|
67
69
|
*/
|
|
68
70
|
export function v3IndependentBodiesOf(asset, drawn) {
|
|
71
|
+
const moves = movingOf(asset);
|
|
72
|
+
return drawn.filter(moves).length;
|
|
73
|
+
}
|
|
74
|
+
/** Whether a drawn body moves with a state input: the value that places it depends on one. */
|
|
75
|
+
function movingOf(asset) {
|
|
69
76
|
const plan = compileV3Document(asset.document);
|
|
70
77
|
const writers = v3WritersOf(asset);
|
|
71
78
|
const nodes = new Map(asset.document.model.nodes.map(node => [node.id, node]));
|
|
72
|
-
return
|
|
79
|
+
return body => {
|
|
73
80
|
const node = nodes.get(('key' in body && body.key ? writers.get(body.key) : body.id) ?? '');
|
|
74
81
|
return !!node && Object.values(node.outputs).some(ref => (plan.dependence[ref]?.length ?? 0) > 0);
|
|
75
|
-
}
|
|
82
|
+
};
|
|
76
83
|
}
|
|
77
84
|
/**
|
|
78
85
|
* The grade of one asset, evaluated at its own design and state defaults as `v3CostOf` is. Nothing when no body is
|
|
@@ -86,12 +93,23 @@ export function v3ScoreOf(asset) {
|
|
|
86
93
|
return undefined;
|
|
87
94
|
const triangles = drawn.reduce((sum, body) => sum + v3TrianglesOf(body), 0);
|
|
88
95
|
const transparent = new Set(drawn.filter(body => body.material.transparent).map(v3MaterialKeyOf)).size;
|
|
89
|
-
|
|
96
|
+
/*
|
|
97
|
+
As the renderer draws them (v3RenderBatchesOf, the rule it draws by -- ADR-0087 amended 2026-09-26): a draw group per
|
|
98
|
+
batch of a row's copies and per body drawn alone; what moves on its own counted once a batch; and every body that
|
|
99
|
+
moves re-evaluated and moved each frame.
|
|
100
|
+
*/
|
|
101
|
+
const moves = movingOf(asset);
|
|
102
|
+
const plan = v3RenderBatchesOf(drawn);
|
|
103
|
+
const byId = new Map(drawn.map(body => [body.id, body]));
|
|
104
|
+
const groups = plan.batches.length + plan.alone.length;
|
|
105
|
+
const independent = plan.batches.filter(b => b.ids.some(id => moves(byId.get(id)))).length + plan.alone.filter(id => moves(byId.get(id))).length;
|
|
106
|
+
const moving = drawn.filter(moves).length;
|
|
90
107
|
const budget = (key, used, limit) => ({ key, used, limit, ratio: used / limit });
|
|
91
108
|
const budgets = [
|
|
92
|
-
budget('groups',
|
|
109
|
+
budget('groups', groups, V3_PER_INSTANCE.groups),
|
|
93
110
|
budget('triangles', triangles, V3_PER_INSTANCE.triangles),
|
|
94
111
|
budget('independent', independent, LIMITS.independentParts),
|
|
112
|
+
budget('moving', moving, V3_PER_INSTANCE.moving),
|
|
95
113
|
budget('transparent', transparent, LIMITS.transparentMaterials),
|
|
96
114
|
/* The detail level's part budget, when the figure declares a level. */
|
|
97
115
|
...(asset.detailLevel ? [budget('parts', v3PartCountOf(asset), PART_LIMIT[asset.detailLevel])] : [])
|
package/dist/v3-score.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3-score.js","sourceRoot":"","sources":["../src/v3-score.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"v3-score.js","sourceRoot":"","sources":["../src/v3-score.ts"],"names":[],"mappings":"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"}
|
package/dist/v3-words.d.ts
CHANGED
|
@@ -67,8 +67,17 @@ export declare const LIMITS: {
|
|
|
67
67
|
* limit (C), twice as many is A.
|
|
68
68
|
*/
|
|
69
69
|
readonly screenInstances: 166;
|
|
70
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Things that move on their own: each carries its own transform and so its own draw group (ADR-0051 ③). Measured. A
|
|
72
|
+
* row's moving copies drawn as one batch count once (2026-09-26, ADR-0087 amended).
|
|
73
|
+
*/
|
|
71
74
|
readonly independentParts: 12;
|
|
75
|
+
/**
|
|
76
|
+
* Bodies re-evaluated and moved every frame their controls move, one screen's worth (ADR-0087 amended, 2026-09-26).
|
|
77
|
+
* Measured: 0.56 us a moving body -- the instance's own evaluator and its matrix -- on an Apple M5 (Metal),
|
|
78
|
+
* check-figure-rows, sixty turning roller rows. Half a frame (8.3 ms) is given to them: 8300 / 0.56.
|
|
79
|
+
*/
|
|
80
|
+
readonly movingBodiesOnScreen: 14800;
|
|
72
81
|
/** Transparent materials: sorting is expensive. */
|
|
73
82
|
readonly transparentMaterials: 1;
|
|
74
83
|
/** Surfaces outside the palette (patterns, gradients): one, for the place that really needs it. */
|
package/dist/v3-words.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3-words.d.ts","sourceRoot":"","sources":["../src/v3-words.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,IAAI,0BAA2B,CAAA;AAC5C,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAExC,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,+DAAgE,CAAA;AAChG,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC,CAEjF,CAAA;AAEF,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,gFAAiF,CAAA;AAC9G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,0BAA2B,CAAA;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,2CAA2C;AAC3C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAyB,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,IAAI,MAAM,CAAA;AAEvB,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,MAAM;IACjB,2GAA2G;;IAE3G,qEAAqE;;IAErE,0EAA0E;;IAE1E;;;;OAIG;;IAEH
|
|
1
|
+
{"version":3,"file":"v3-words.d.ts","sourceRoot":"","sources":["../src/v3-words.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,IAAI,0BAA2B,CAAA;AAC5C,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAExC,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,+DAAgE,CAAA;AAChG,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC,CAEjF,CAAA;AAEF,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,gFAAiF,CAAA;AAC9G,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9D;;;GAGG;AACH,eAAO,MAAM,YAAY,MAAM,CAAA;AAE/B;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,0BAA2B,CAAA;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAA;AAExD,2CAA2C;AAC3C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAyB,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,IAAI,MAAM,CAAA;AAEvB,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,MAAM;IACjB,2GAA2G;;IAE3G,qEAAqE;;IAErE,0EAA0E;;IAE1E;;;;OAIG;;IAEH;;;OAGG;;IAEH;;;;OAIG;;IAEH,mDAAmD;;IAEnD,mGAAmG;;IAEnG,iDAAiD;;CAEzC,CAAA;AAEV;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA4B,CAAA;AAEzE,iEAAiE;AACjE,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4D,CAAA;AAEtH;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAkC,CAAA;AAC3D,eAAO,MAAM,WAAW;;;CAA+B,CAAA;AAEvD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAmB,GAAG,MAAM,CAEhE;AAID,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD"}
|
package/dist/v3-words.js
CHANGED
|
@@ -67,8 +67,17 @@ export const LIMITS = {
|
|
|
67
67
|
* limit (C), twice as many is A.
|
|
68
68
|
*/
|
|
69
69
|
screenInstances: 166,
|
|
70
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Things that move on their own: each carries its own transform and so its own draw group (ADR-0051 ③). Measured. A
|
|
72
|
+
* row's moving copies drawn as one batch count once (2026-09-26, ADR-0087 amended).
|
|
73
|
+
*/
|
|
71
74
|
independentParts: 12,
|
|
75
|
+
/**
|
|
76
|
+
* Bodies re-evaluated and moved every frame their controls move, one screen's worth (ADR-0087 amended, 2026-09-26).
|
|
77
|
+
* Measured: 0.56 us a moving body -- the instance's own evaluator and its matrix -- on an Apple M5 (Metal),
|
|
78
|
+
* check-figure-rows, sixty turning roller rows. Half a frame (8.3 ms) is given to them: 8300 / 0.56.
|
|
79
|
+
*/
|
|
80
|
+
movingBodiesOnScreen: 14_800,
|
|
72
81
|
/** Transparent materials: sorting is expensive. */
|
|
73
82
|
transparentMaterials: 1,
|
|
74
83
|
/** Surfaces outside the palette (patterns, gradients): one, for the place that really needs it. */
|
package/dist/v3-words.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v3-words.js","sourceRoot":"","sources":["../src/v3-words.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAS5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAU,CAAA;AAGhG;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0D,MAAM,CAAC,MAAM,CAAC;IACnG,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;CACvC,CAAC,CAAA;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG9G;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAE/B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAGrD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAgC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAA;AAIvB;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,2GAA2G;IAC3G,iBAAiB,EAAE,CAAC;IACpB,qEAAqE;IACrE,cAAc,EAAE,IAAI;IACpB,0EAA0E;IAC1E,iBAAiB,EAAE,OAAO;IAC1B;;;;OAIG;IACH,eAAe,EAAE,GAAG;IACpB
|
|
1
|
+
{"version":3,"file":"v3-words.js","sourceRoot":"","sources":["../src/v3-words.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAS5C;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,CAAU,CAAA;AAGhG;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0D,MAAM,CAAC,MAAM,CAAC;IACnG,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;CACvC,CAAC,CAAA;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAG9G;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;AAE/B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAA;AAGrD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAgC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAA;AAIvB;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,2GAA2G;IAC3G,iBAAiB,EAAE,CAAC;IACpB,qEAAqE;IACrE,cAAc,EAAE,IAAI;IACpB,0EAA0E;IAC1E,iBAAiB,EAAE,OAAO;IAC1B;;;;OAIG;IACH,eAAe,EAAE,GAAG;IACpB;;;OAGG;IACH,gBAAgB,EAAE,EAAE;IACpB;;;;OAIG;IACH,oBAAoB,EAAE,MAAM;IAC5B,mDAAmD;IACnD,oBAAoB,EAAE,CAAC;IACvB,mGAAmG;IACnG,eAAe,EAAE,CAAC;IAClB,iDAAiD;IACjD,WAAW,EAAE,CAAC;CACN,CAAA;AAEV;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAEzE,iEAAiE;AACjE,MAAM,CAAC,MAAM,cAAc,GAAmC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;AAEtH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,+BAA+B,CAAA;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAW,CAAA;AAEvD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,IAAI,CAAC,GAAG,EAAE;IACtD,OAAO,UAAU,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;AACnD,CAAC;AAED,MAAM,gBAAgB,GAAG,sBAAsB,CAAA;AAE/C,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hatiolab/figure-model",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.90",
|
|
4
4
|
"description": "The figure format (figure-v3-asset-1): a kernel that evaluates a figure from its declared relations, the authoring commands a modeller and an AI share, the release gate and the score.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"figure",
|