@things-factory/figure-ui 10.1.204 → 10.1.206

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 (116) hide show
  1. package/client/modeller/canvas.ts +91 -9
  2. package/client/modeller/editor-styles.ts +23 -22
  3. package/client/modeller/editor.ts +217 -184
  4. package/client/modeller/fasten-form.ts +130 -12
  5. package/client/modeller/figure-fasten-dialog.ts +45 -11
  6. package/client/modeller/figure-fasten-drawing.ts +233 -12
  7. package/client/modeller/figure-links.ts +2 -2
  8. package/client/modeller/figure-preview.ts +6 -6
  9. package/client/modeller/figure-section-editor.ts +6 -6
  10. package/client/modeller/figure-slot-layout-panel.ts +1 -1
  11. package/client/modeller/gizmo.ts +22 -1
  12. package/client/modeller/keys.ts +10 -1
  13. package/client/modeller/links.ts +79 -46
  14. package/client/modeller/palette.ts +1 -1
  15. package/client/modeller/product-session.ts +16 -4
  16. package/client/modeller/refusal-teller.ts +3 -25
  17. package/client/modeller/refusals.ts +19 -26
  18. package/client/modeller/section-drawing.ts +7 -7
  19. package/client/modeller/size-drag.ts +112 -0
  20. package/client/modeller/slot-layout-host.ts +3 -3
  21. package/client/modeller/stage-model.ts +6 -9
  22. package/client/pages/figure-modeller-page.ts +1 -4
  23. package/dist-client/modeller/canvas.d.ts +24 -3
  24. package/dist-client/modeller/canvas.js +96 -11
  25. package/dist-client/modeller/canvas.js.map +1 -1
  26. package/dist-client/modeller/editor-styles.js +23 -22
  27. package/dist-client/modeller/editor-styles.js.map +1 -1
  28. package/dist-client/modeller/editor.d.ts +35 -35
  29. package/dist-client/modeller/editor.js +221 -193
  30. package/dist-client/modeller/editor.js.map +1 -1
  31. package/dist-client/modeller/fasten-form.d.ts +46 -4
  32. package/dist-client/modeller/fasten-form.js +120 -11
  33. package/dist-client/modeller/fasten-form.js.map +1 -1
  34. package/dist-client/modeller/figure-fasten-dialog.d.ts +18 -4
  35. package/dist-client/modeller/figure-fasten-dialog.js +49 -12
  36. package/dist-client/modeller/figure-fasten-dialog.js.map +1 -1
  37. package/dist-client/modeller/figure-fasten-drawing.d.ts +33 -1
  38. package/dist-client/modeller/figure-fasten-drawing.js +235 -11
  39. package/dist-client/modeller/figure-fasten-drawing.js.map +1 -1
  40. package/dist-client/modeller/figure-links.d.ts +1 -1
  41. package/dist-client/modeller/figure-links.js +2 -2
  42. package/dist-client/modeller/figure-links.js.map +1 -1
  43. package/dist-client/modeller/figure-preview.js +4 -4
  44. package/dist-client/modeller/figure-preview.js.map +1 -1
  45. package/dist-client/modeller/figure-section-editor.d.ts +3 -3
  46. package/dist-client/modeller/figure-section-editor.js +4 -4
  47. package/dist-client/modeller/figure-section-editor.js.map +1 -1
  48. package/dist-client/modeller/figure-slot-layout-panel.js +1 -1
  49. package/dist-client/modeller/figure-slot-layout-panel.js.map +1 -1
  50. package/dist-client/modeller/gizmo.d.ts +18 -1
  51. package/dist-client/modeller/gizmo.js +19 -0
  52. package/dist-client/modeller/gizmo.js.map +1 -1
  53. package/dist-client/modeller/keys.d.ts +1 -1
  54. package/dist-client/modeller/keys.js +6 -0
  55. package/dist-client/modeller/keys.js.map +1 -1
  56. package/dist-client/modeller/links.d.ts +30 -24
  57. package/dist-client/modeller/links.js +67 -42
  58. package/dist-client/modeller/links.js.map +1 -1
  59. package/dist-client/modeller/palette.js +1 -1
  60. package/dist-client/modeller/palette.js.map +1 -1
  61. package/dist-client/modeller/product-session.d.ts +15 -13
  62. package/dist-client/modeller/product-session.js +15 -5
  63. package/dist-client/modeller/product-session.js.map +1 -1
  64. package/dist-client/modeller/refusal-teller.d.ts +1 -12
  65. package/dist-client/modeller/refusal-teller.js +3 -22
  66. package/dist-client/modeller/refusal-teller.js.map +1 -1
  67. package/dist-client/modeller/refusals.d.ts +6 -14
  68. package/dist-client/modeller/refusals.js +16 -27
  69. package/dist-client/modeller/refusals.js.map +1 -1
  70. package/dist-client/modeller/section-drawing.d.ts +3 -4
  71. package/dist-client/modeller/section-drawing.js +10 -9
  72. package/dist-client/modeller/section-drawing.js.map +1 -1
  73. package/dist-client/modeller/size-drag.d.ts +38 -0
  74. package/dist-client/modeller/size-drag.js +85 -0
  75. package/dist-client/modeller/size-drag.js.map +1 -0
  76. package/dist-client/modeller/slot-layout-host.d.ts +1 -3
  77. package/dist-client/modeller/slot-layout-host.js +3 -3
  78. package/dist-client/modeller/slot-layout-host.js.map +1 -1
  79. package/dist-client/modeller/stage-model.d.ts +5 -7
  80. package/dist-client/modeller/stage-model.js +6 -6
  81. package/dist-client/modeller/stage-model.js.map +1 -1
  82. package/dist-client/pages/figure-modeller-page.d.ts +0 -2
  83. package/dist-client/pages/figure-modeller-page.js +1 -6
  84. package/dist-client/pages/figure-modeller-page.js.map +1 -1
  85. package/dist-client/route.d.ts +1 -1
  86. package/dist-client/tsconfig.tsbuildinfo +1 -1
  87. package/dist-server/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +7 -7
  89. package/test/align.test.ts +7 -11
  90. package/test/browser/acceptance-page.js +11 -1
  91. package/test/browser/editing.check.mjs +17 -13
  92. package/test/browser/links-page.js +2 -2
  93. package/test/browser/links.check.mjs +124 -69
  94. package/test/browser/modeller-page.js +30 -18
  95. package/test/browser/modeller-revision.check.mjs +39 -0
  96. package/test/browser/modeller.check.mjs +77 -26
  97. package/test/browser/parts.check.mjs +49 -0
  98. package/test/browser/screen-page.js +0 -2
  99. package/test/browser/screen.check.mjs +11 -13
  100. package/test/browser/section.check.mjs +29 -2
  101. package/test/fasten-form.test.ts +102 -1
  102. package/test/gizmo.test.ts +25 -16
  103. package/test/keys.test.ts +11 -0
  104. package/test/links.test.ts +46 -36
  105. package/test/refusals.test.ts +17 -21
  106. package/test/resize-with-placement.test.ts +14 -13
  107. package/test/revision.test.ts +3 -2
  108. package/test/section-editor.test.ts +9 -10
  109. package/test/size-drag.test.ts +114 -0
  110. package/test/slot-layout-host.test.ts +13 -8
  111. package/translations/en.json +32 -34
  112. package/translations/es.json +32 -34
  113. package/translations/ja.json +32 -34
  114. package/translations/ko.json +32 -34
  115. package/translations/ms.json +32 -34
  116. package/translations/zh.json +32 -34
@@ -45,8 +45,8 @@ export declare class FigureEditor extends LitElement {
45
45
  /** Why the last recipe was refused, in the kernel's words. */
46
46
  private recipeError;
47
47
  revision: number;
48
- /** The verdict's count, drawn on its tab so it stays in sight while another tab is open. */
49
- instances?: number;
48
+ /** The 「?」 beside a group's title and the sentence it opens. */
49
+ private readonly help;
50
50
  /** The cost line the parts list shows, from the maturity report. */
51
51
  budget?: FigureBudgetLine;
52
52
  /**
@@ -59,18 +59,18 @@ export declare class FigureEditor extends LitElement {
59
59
  /** How far the GLB being brought in has gone up (0‒1), while it does. */
60
60
  private meshProgress?;
61
61
  private faceMapping?;
62
- /** The same link offered again with the size range narrowed, after a link the declared range could not hold. */
63
- private retry?;
64
62
  private tab;
65
63
  /** The view settings or the release history, open over the work from the bar. */
66
64
  private overlay?;
67
65
  /**
68
- * The fastening window open for the selected part (user 2026-10-17): chosen there, applied once. It stands over the
69
- * side panel, not over the canvas, so what is chosen is seen in 3D as it is chosen (user 2026-10-19: the standard
70
- * popup, always modal, covered the preview). It closes with nothing written when the part, the tab, the middle or a
71
- * bar panel changes under it.
66
+ * The fastening window open for the selected part (user 2026-10-17), in the standard popup, moved by its head
67
+ * (2026-10-18; put back 2026-10-20 -- the side panel it was moved to could not be moved), with no backdrop, so the
68
+ * canvas can be pressed while it is open: chosen there, applied once. It closes with nothing written when the part,
69
+ * the tab or the middle changes under it.
72
70
  */
73
71
  private fastening;
72
+ private fastenPopup?;
73
+ private fastenWindow?;
74
74
  /** Why the window's 「적용」 was refused, said in it. */
75
75
  private fastenError;
76
76
  /** The face of the part a row of the window's list is on, lit on the canvas while the pointer or the arrows are there. */
@@ -103,6 +103,8 @@ export declare class FigureEditor extends LitElement {
103
103
  private hiddenParts;
104
104
  /** A value in hand -- typed, held on a spinner, scrubbed, dragged -- drawn at once and recorded on release. */
105
105
  private live;
106
+ /** A size drag in hand, drawn from figure-model each frame (ADR-0140 4.4); gone with the release. */
107
+ private sizing?;
106
108
  /** The part whose drawn section is open in the section editor (ADR-0100 §3.2), or null. */
107
109
  private sectionEditing;
108
110
  private lastContext;
@@ -114,6 +116,10 @@ export declare class FigureEditor extends LitElement {
114
116
  */
115
117
  private renderGizmoTools;
116
118
  private keys;
119
+ /** The part Ctrl+C took: pasted as the kernel's duplicate. Not kept past the editor, nor written anywhere. */
120
+ private copied;
121
+ /** A copied part still in the figure is duplicated -- a part of its own, named by figure-model; one gone, nothing. */
122
+ private pasteCopied;
117
123
  private keyAction;
118
124
  private paneFold;
119
125
  private refusals;
@@ -127,6 +133,8 @@ export declare class FigureEditor extends LitElement {
127
133
  * gone or another figure opened has nothing to go back to: the editor closes.
128
134
  */
129
135
  private leaveSectionEditor;
136
+ /** While the size tool is on a round part: which of its handles change the one diameter (ADR-0140 4.1). */
137
+ private renderSameMeasure;
130
138
  /** The scene toggles: the mode already shown takes the gizmo away. */
131
139
  private useGizmo;
132
140
  /**
@@ -184,23 +192,16 @@ export declare class FigureEditor extends LitElement {
184
192
  /** What the gizmo may write for the selected part — read off the asset being edited. */
185
193
  private reachOf;
186
194
  /**
187
- * Whether this part's size is its own to drag but the drag is withheld because it is turned: then the size fields are
188
- * the way, and the notice says so. A part whose size is worked out from another part or from the figure's size is not
189
- * its own to drag at all; it is not told it is attached turned, nor sent to fields it cannot type in (:3300,
190
- * 2026-10-19, the fan's blade-2). Its tool says it is placed by something else, as before.
195
+ * A size drag in hand, a frame of it: the sizes the handle comes to, through figure-model's size function and the
196
+ * evaluator stepped to them, drawn and written nowhere (ADR-0140 4.4). Begun at the first frame, from the figure as it
197
+ * is drawn and the handle the scene says was held; the release writes the last frame's changes.
191
198
  */
192
- private sizeDragTurned;
193
- /** Whether a size drag on this part could not show what is written: figure-model gives no face it keeps. */
194
- private sizeDragUnsure;
199
+ private resizing;
195
200
  /**
196
- * Why this part's size is not dragged, in one line (user 2026-10-19: the reason told the faces kept, and was not
197
- * understood): attached turned or twisted, or turned off its upright.
201
+ * A free part a size change takes past the mounting plane: said, with 「…에 붙이기」 to fasten it there (ADR-0140 5). The
202
+ * size rule is not changed for it: what the author picks is the fastening, one step of the history.
198
203
  */
199
- private sizeDragRefusalOf;
200
- /** The size drag refused, said as a notice with the way to the part's size fields. */
201
- private tellSizeByFields;
202
- /** To the part's first size field it takes typed, on the properties tab, ready to type over. */
203
- private toSizeFields;
204
+ private tellThroughPlane;
204
205
  /** A drag, written back as the part's own inputs — one step of the history, like typing the numbers. */
205
206
  private transformed;
206
207
  /** 맞추기 — one tool, one step of the history, through the same inputs as the gizmo. */
@@ -251,13 +252,6 @@ export declare class FigureEditor extends LitElement {
251
252
  * history keeps what it read, as the tabs kept it. Esc closes it.
252
253
  */
253
254
  private renderOverlay;
254
- /**
255
- * The face a size drag keeps for the selected part, figure-model's rule (`figureScaleAnchorOf`): the gizmo shows it
256
- * while dragging and the commit keeps it, so nothing jumps on release. A part whose fastening is turned has none the
257
- * rule can say, and the gizmo keeps its own (the face across from the handle).
258
- */
259
- private anchorsOf;
260
- private lastAnchors;
261
255
  /** Data tried in the data tab, given to the preview's figures as their `data`; null when none is (ADR-0051 §8). */
262
256
  private dataSample;
263
257
  /** The figure's controls: try a value, name it, set its range and travel time, keep the pose. */
@@ -270,12 +264,17 @@ export declare class FigureEditor extends LitElement {
270
264
  private changeField;
271
265
  /** Typing or a held spinner: each number on the way is drawn; the field's change records it. */
272
266
  private typing;
267
+ /**
268
+ * The values in hand for a number typed or scrubbed: what its release writes -- a size with the part's middle kept,
269
+ * or its fastening (figure-model's one size function, ADR-0140 4.1), so the figure does not jump on the release.
270
+ */
271
+ private heldOf;
273
272
  /**
274
273
  * Drag a field's label (or an axis letter) sideways to scrub its value, as vector tools do: the figure follows the
275
274
  * pointer, and the release records one step. The field's number follows too, so the value in hand is always read.
276
275
  */
277
276
  private scrub;
278
- /** The sizes a board may give the figure, and the way to measure them again after its parts changed. */
277
+ /** The sizes a board may give the figure: the ends the author typed, and the rest as far as its parts allow. */
279
278
  private renderInstanceRange;
280
279
  /**
281
280
  * How the figure grows. One ratio (`sizing: 'uniform'`) is said as it is; a figure with joints that has not declared
@@ -322,11 +321,10 @@ export declare class FigureEditor extends LitElement {
322
321
  private goFasten;
323
322
  private openFastening;
324
323
  private closeFastening;
325
- /**
326
- * The fastening window over the side panel, as the bar's panels stand there: the figure on screen, the part, and what
327
- * the preview and a refusal said are the editor's. Its own Esc and 「취소」 close it, as its X does.
328
- */
329
- private renderFastening;
324
+ private fastenClosed;
325
+ /** What the window shows is the editor's: the figure on screen, the part, and what the preview and a refusal said. */
326
+ private tellFastening;
327
+ disconnectedCallback(): void;
330
328
  /** 「적용」: the command, one step; refused, the window stays open and says why. */
331
329
  private applyFastening;
332
330
  /** A row of the window's list under the pointer or the arrows: the face of that part it would be fastened on, lit. */
@@ -394,6 +392,8 @@ export declare class FigureEditor extends LitElement {
394
392
  * rule" named nothing): a fastened part's place and turn are its fastening's; other numbers are worked out from
395
393
  * something else. A size that follows something is said at the panel's head, so not again here.
396
394
  */
395
+ /** What a size typed keeps, under the size fields: the part's middle, where it is fastened, or only its size (ADR-0140 4.1). */
396
+ private renderSizeKeeps;
397
397
  private renderHeldAxes;
398
398
  /**
399
399
  * A part's fields only the declared room still reads (ADR-0097, designer 2026-09-27): shown as what they are and not