@things-factory/figure-ui 10.1.83 → 10.1.85

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 (89) hide show
  1. package/client/modeller/command-preview.ts +4 -2
  2. package/client/modeller/drawn-shapes.ts +29 -0
  3. package/client/modeller/editor.ts +17 -1
  4. package/client/modeller/figure-material-panel.ts +2 -3
  5. package/client/modeller/figure-parts.ts +13 -15
  6. package/client/modeller/figure-section-panel.ts +304 -0
  7. package/client/modeller/gizmo.ts +26 -16
  8. package/client/modeller/joint-fan.ts +4 -3
  9. package/client/modeller/links.ts +24 -24
  10. package/client/modeller/live.ts +8 -4
  11. package/client/modeller/maturity.ts +12 -6
  12. package/client/modeller/motion-ends.ts +2 -1
  13. package/client/modeller/refusals.ts +20 -0
  14. package/client/modeller/renderer.ts +3 -2
  15. package/client/modeller/section-controls.ts +115 -0
  16. package/client/modeller/starting-shape.ts +34 -0
  17. package/dist-client/modeller/command-preview.js +4 -2
  18. package/dist-client/modeller/command-preview.js.map +1 -1
  19. package/dist-client/modeller/drawn-shapes.d.ts +44 -0
  20. package/dist-client/modeller/drawn-shapes.js +12 -0
  21. package/dist-client/modeller/drawn-shapes.js.map +1 -0
  22. package/dist-client/modeller/editor.d.ts +3 -0
  23. package/dist-client/modeller/editor.js +16 -1
  24. package/dist-client/modeller/editor.js.map +1 -1
  25. package/dist-client/modeller/figure-capability-panel.d.ts +1 -1
  26. package/dist-client/modeller/figure-clips.d.ts +1 -1
  27. package/dist-client/modeller/figure-controls.d.ts +1 -1
  28. package/dist-client/modeller/figure-links.d.ts +1 -1
  29. package/dist-client/modeller/figure-material-panel.d.ts +1 -1
  30. package/dist-client/modeller/figure-material-panel.js +2 -3
  31. package/dist-client/modeller/figure-material-panel.js.map +1 -1
  32. package/dist-client/modeller/figure-parts.d.ts +3 -2
  33. package/dist-client/modeller/figure-parts.js +7 -12
  34. package/dist-client/modeller/figure-parts.js.map +1 -1
  35. package/dist-client/modeller/figure-properties.d.ts +1 -1
  36. package/dist-client/modeller/figure-section-panel.d.ts +42 -0
  37. package/dist-client/modeller/figure-section-panel.js +289 -0
  38. package/dist-client/modeller/figure-section-panel.js.map +1 -0
  39. package/dist-client/modeller/gizmo.d.ts +3 -3
  40. package/dist-client/modeller/gizmo.js +24 -11
  41. package/dist-client/modeller/gizmo.js.map +1 -1
  42. package/dist-client/modeller/joint-fan.js +4 -3
  43. package/dist-client/modeller/joint-fan.js.map +1 -1
  44. package/dist-client/modeller/links.d.ts +4 -1
  45. package/dist-client/modeller/links.js +23 -25
  46. package/dist-client/modeller/links.js.map +1 -1
  47. package/dist-client/modeller/live.d.ts +3 -1
  48. package/dist-client/modeller/live.js +6 -3
  49. package/dist-client/modeller/live.js.map +1 -1
  50. package/dist-client/modeller/maturity.d.ts +3 -2
  51. package/dist-client/modeller/maturity.js +9 -6
  52. package/dist-client/modeller/maturity.js.map +1 -1
  53. package/dist-client/modeller/motion-ends.js +2 -1
  54. package/dist-client/modeller/motion-ends.js.map +1 -1
  55. package/dist-client/modeller/refusals.d.ts +0 -5
  56. package/dist-client/modeller/refusals.js +25 -0
  57. package/dist-client/modeller/refusals.js.map +1 -1
  58. package/dist-client/modeller/renderer.d.ts +3 -4
  59. package/dist-client/modeller/renderer.js +3 -2
  60. package/dist-client/modeller/renderer.js.map +1 -1
  61. package/dist-client/modeller/section-controls.d.ts +44 -0
  62. package/dist-client/modeller/section-controls.js +91 -0
  63. package/dist-client/modeller/section-controls.js.map +1 -0
  64. package/dist-client/modeller/starting-shape.d.ts +32 -0
  65. package/dist-client/modeller/starting-shape.js +37 -0
  66. package/dist-client/modeller/starting-shape.js.map +1 -0
  67. package/dist-client/tsconfig.tsbuildinfo +1 -1
  68. package/dist-server/tsconfig.tsbuildinfo +1 -1
  69. package/package.json +5 -5
  70. package/test/browser/acceptance-page.js +8 -0
  71. package/test/command-preview.test.ts +3 -2
  72. package/test/fixtures/joint-column.json +110 -15
  73. package/test/fixtures/joint-roller.json +66 -9
  74. package/test/fixtures/robot-arm-6dof.json +203 -27
  75. package/test/joint-fan.test.ts +10 -7
  76. package/test/links.test.ts +4 -4
  77. package/test/material.test.ts +7 -2
  78. package/test/palette-icons.test.ts +1 -1
  79. package/test/parts-wiring.test.ts +6 -2
  80. package/test/renderer.test.ts +2 -1
  81. package/test/resize-with-placement.test.ts +3 -3
  82. package/test/scene-canvas.test.ts +2 -1
  83. package/test/section-panel.test.ts +192 -0
  84. package/translations/en.json +24 -0
  85. package/translations/ja.json +24 -0
  86. package/translations/ko.json +24 -0
  87. package/translations/ms.json +24 -0
  88. package/translations/zh.json +24 -0
  89. package/dist-client/tsconfig.localkernel.tsbuildinfo +0 -1
@@ -14,6 +14,7 @@ import { drawableFigureParts } from './renderer.js';
14
14
  import './canvas.js';
15
15
  import './figure-parts.js';
16
16
  import './figure-material-panel.js';
17
+ import './figure-section-panel.js';
17
18
  import { faceHighlightOf, ghostPartsOf, previewWordsOf, rowWordsOf } from './command-preview.js';
18
19
  import { motionEndsOf } from './motion-ends.js';
19
20
  import './figure-links.js';
@@ -37,6 +38,7 @@ import { fieldWordsOf, followOf, measureNow, partSummaryOf, instanceRangeOf, ins
37
38
  import { jointFanOf } from './joint-fan.js';
38
39
  import { jointDragOf } from './joint-drag.js';
39
40
  import { liveOverSession, NOTHING_LIVE, scrubbed, scrubStep } from './live.js';
41
+ import { startingShapeKindOfBody } from './starting-shape.js';
40
42
  /** Product editor surface. The injected session is shared by page persistence and AI commands. */
41
43
  let FigureEditor = class FigureEditor extends LitElement {
42
44
  constructor() {
@@ -691,6 +693,11 @@ let FigureEditor = class FigureEditor extends LitElement {
691
693
  hold(values, edit) {
692
694
  this.live = { values: { ...this.live.values, ...values }, ...(edit ? { edit } : this.live.edit ? { edit: this.live.edit } : {}) };
693
695
  }
696
+ /** A command in hand, drawn and not run; `null` lets go of it and the figure as it stands is drawn again. */
697
+ holdAction(action) {
698
+ const { action: _, ...rest } = this.live;
699
+ this.live = action ? { ...rest, action } : rest;
700
+ }
694
701
  changed() {
695
702
  this.requestUpdate();
696
703
  this.dispatchEvent(new CustomEvent('changed', { bubbles: true, composed: true }));
@@ -1162,6 +1169,8 @@ let FigureEditor = class FigureEditor extends LitElement {
1162
1169
  }
1163
1170
  /** One command, one step of the history. A refusal a person can meet here is said in their words. */
1164
1171
  linkCommand(action) {
1172
+ /* Committed or refused, a command in hand is let go of: the figure as it stands is drawn again. */
1173
+ this.holdAction(null);
1165
1174
  this.retry = undefined;
1166
1175
  this.notice = '';
1167
1176
  const hadSize = this.hasSize();
@@ -1368,7 +1377,7 @@ let FigureEditor = class FigureEditor extends LitElement {
1368
1377
  }
1369
1378
  rows.set(id, {
1370
1379
  id,
1371
- provider: g.shape?.provider ?? '',
1380
+ kind: startingShapeKindOfBody(g.shape) ?? '',
1372
1381
  hidden: this.hiddenParts.has(id),
1373
1382
  invisible: g.visible === false,
1374
1383
  ...(id !== g.id ? { copies: 1 } : {}),
@@ -2047,6 +2056,12 @@ let FigureEditor = class FigureEditor extends LitElement {
2047
2056
  ${this.renderGroups(this.withSizeRow(groupFields(partFields, this.selected), held), 'figure.label.group-placement-size', 'figure.label.group-shape', unavailable, this.renderTools(unavailable), held)}
2048
2057
  ${roomFields.length ? this.renderRoomOnly(roomFields, unavailable) : nothing}
2049
2058
  ${this.renderLinks(unavailable, 'shape')}
2059
+ <figure-section-panel
2060
+ .body=${{ ...part, id: this.selected }}
2061
+ ?locked=${unavailable}
2062
+ @command=${(e) => this.linkCommand(e.detail.action)}
2063
+ @command-live=${(e) => this.holdAction(e.detail.action)}
2064
+ ></figure-section-panel>
2050
2065
  <figure-material-panel
2051
2066
  .body=${{ ...part, id: this.selected }}
2052
2067
  .palette=${view.palette ?? {}}