@reekon-tools/boldr-cad 1.4.0 → 1.6.0

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 (311) hide show
  1. package/README.md +13 -3
  2. package/dist/app/edit.d.ts +3 -3
  3. package/dist/app/edit.js +26 -1
  4. package/dist/app/edit.js.map +1 -1
  5. package/dist/app/state.d.ts +6 -8
  6. package/dist/app/state.js +0 -1
  7. package/dist/app/state.js.map +1 -1
  8. package/dist/data/sync.d.ts +1 -1
  9. package/dist/data/sync.js +7 -2
  10. package/dist/data/sync.js.map +1 -1
  11. package/dist/editor/actions.d.ts +8 -0
  12. package/dist/editor/actions.js +255 -181
  13. package/dist/editor/actions.js.map +1 -1
  14. package/dist/editor/elevation.d.ts +4 -1
  15. package/dist/editor/elevation.js +16 -17
  16. package/dist/editor/elevation.js.map +1 -1
  17. package/dist/editor/gestures.d.ts +21 -0
  18. package/dist/editor/gestures.js +92 -14
  19. package/dist/editor/gestures.js.map +1 -1
  20. package/dist/editor/keys.js +4 -3
  21. package/dist/editor/keys.js.map +1 -1
  22. package/dist/editor/laser.d.ts +4 -2
  23. package/dist/editor/laser.js +4 -2
  24. package/dist/editor/laser.js.map +1 -1
  25. package/dist/editor/linkActions.d.ts +49 -12
  26. package/dist/editor/linkActions.js +164 -35
  27. package/dist/editor/linkActions.js.map +1 -1
  28. package/dist/editor/links.d.ts +13 -0
  29. package/dist/editor/links.js +7 -1
  30. package/dist/editor/links.js.map +1 -1
  31. package/dist/editor/mode.d.ts +2 -1
  32. package/dist/editor/mode.js +8 -5
  33. package/dist/editor/mode.js.map +1 -1
  34. package/dist/editor/project.js +1 -2
  35. package/dist/editor/project.js.map +1 -1
  36. package/dist/editor/scaleGate.d.ts +13 -0
  37. package/dist/editor/scaleGate.js +27 -0
  38. package/dist/editor/scaleGate.js.map +1 -0
  39. package/dist/editor/selection.js +13 -9
  40. package/dist/editor/selection.js.map +1 -1
  41. package/dist/editor/tooltips.js +10 -0
  42. package/dist/editor/tooltips.js.map +1 -1
  43. package/dist/editor/view3d.d.ts +4 -1
  44. package/dist/editor/view3d.js +6 -2
  45. package/dist/editor/view3d.js.map +1 -1
  46. package/dist/export/pdf.d.ts +5 -2
  47. package/dist/export/pdf.js +12 -8
  48. package/dist/export/pdf.js.map +1 -1
  49. package/dist/export/plan.d.ts +1 -1
  50. package/dist/export/plan.js +14 -9
  51. package/dist/export/plan.js.map +1 -1
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.js +1 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/model/constraints.js +2 -0
  56. package/dist/model/constraints.js.map +1 -1
  57. package/dist/model/demo.d.ts +1 -0
  58. package/dist/model/demo.js +2 -1
  59. package/dist/model/demo.js.map +1 -1
  60. package/dist/model/elevation.d.ts +1 -1
  61. package/dist/model/elevation.js +3 -3
  62. package/dist/model/elevation.js.map +1 -1
  63. package/dist/model/geom.d.ts +2 -0
  64. package/dist/model/geom.js +11 -0
  65. package/dist/model/geom.js.map +1 -1
  66. package/dist/model/history.js +4 -1
  67. package/dist/model/history.js.map +1 -1
  68. package/dist/model/links.d.ts +10 -2
  69. package/dist/model/links.js +15 -3
  70. package/dist/model/links.js.map +1 -1
  71. package/dist/model/measurement.d.ts +2 -2
  72. package/dist/model/measurement.js +3 -3
  73. package/dist/model/measurement.js.map +1 -1
  74. package/dist/model/openings.d.ts +10 -0
  75. package/dist/model/openings.js +18 -0
  76. package/dist/model/openings.js.map +1 -1
  77. package/dist/model/planGeom.d.ts +37 -2
  78. package/dist/model/planGeom.js +72 -9
  79. package/dist/model/planGeom.js.map +1 -1
  80. package/dist/model/project.js +5 -2
  81. package/dist/model/project.js.map +1 -1
  82. package/dist/model/rooms.d.ts +18 -5
  83. package/dist/model/rooms.js +178 -73
  84. package/dist/model/rooms.js.map +1 -1
  85. package/dist/model/scale.d.ts +30 -0
  86. package/dist/model/scale.js +123 -0
  87. package/dist/model/scale.js.map +1 -0
  88. package/dist/model/settings.d.ts +0 -1
  89. package/dist/model/settings.js +1 -1
  90. package/dist/model/settings.js.map +1 -1
  91. package/dist/model/sketch.d.ts +26 -2
  92. package/dist/model/sketch.js +77 -22
  93. package/dist/model/sketch.js.map +1 -1
  94. package/dist/model/stroke.js +2 -2
  95. package/dist/model/trim.d.ts +54 -0
  96. package/dist/model/trim.js +219 -0
  97. package/dist/model/trim.js.map +1 -0
  98. package/dist/model/types.d.ts +62 -9
  99. package/dist/react/BottomBar.d.ts +2 -1
  100. package/dist/react/BottomBar.js +144 -46
  101. package/dist/react/BottomBar.js.map +1 -1
  102. package/dist/react/CadEditor.js +18 -9
  103. package/dist/react/CadEditor.js.map +1 -1
  104. package/dist/react/Drawer.js +6 -4
  105. package/dist/react/Drawer.js.map +1 -1
  106. package/dist/react/Duck.js.map +1 -1
  107. package/dist/react/KeypadSheet.js.map +1 -1
  108. package/dist/react/MarkupPanel.js +1 -1
  109. package/dist/react/PlanCanvas.native.js +54 -7
  110. package/dist/react/PlanCanvas.native.js.map +1 -1
  111. package/dist/react/PlanCanvas.web.js +17 -5
  112. package/dist/react/PlanCanvas.web.js.map +1 -1
  113. package/dist/react/Popovers.js +14 -3
  114. package/dist/react/Popovers.js.map +1 -1
  115. package/dist/react/Rail.js +1 -1
  116. package/dist/react/ShapeMenu.js +3 -2
  117. package/dist/react/ShapeMenu.js.map +1 -1
  118. package/dist/react/Sheet.d.ts +2 -2
  119. package/dist/react/Sheet.js.map +1 -1
  120. package/dist/react/ToolTip.js +3 -2
  121. package/dist/react/ToolTip.js.map +1 -1
  122. package/dist/react/TopBar.js +4 -3
  123. package/dist/react/TopBar.js.map +1 -1
  124. package/dist/react/barScroll.d.ts +23 -0
  125. package/dist/react/barScroll.js +47 -0
  126. package/dist/react/barScroll.js.map +1 -0
  127. package/dist/react/corners.d.ts +6 -2
  128. package/dist/react/corners.js.map +1 -1
  129. package/dist/react/editorBox.d.ts +8 -0
  130. package/dist/react/editorBox.js +10 -0
  131. package/dist/react/editorBox.js.map +1 -0
  132. package/dist/react/host.d.ts +1 -1
  133. package/dist/react/host.js +1 -1
  134. package/dist/react/host.js.map +1 -1
  135. package/dist/react/motion.d.ts +1 -1
  136. package/dist/react/motion.js +1 -1
  137. package/dist/react/motion.js.map +1 -1
  138. package/dist/react/pageLock.native.d.ts +2 -0
  139. package/dist/react/pageLock.native.js +2 -0
  140. package/dist/react/pageLock.native.js.map +1 -1
  141. package/dist/react/pageLock.web.d.ts +6 -0
  142. package/dist/react/pageLock.web.js +12 -3
  143. package/dist/react/pageLock.web.js.map +1 -1
  144. package/dist/react/ports.js +8 -3
  145. package/dist/react/ports.js.map +1 -1
  146. package/dist/react/saving.d.ts +7 -1
  147. package/dist/react/saving.js +10 -2
  148. package/dist/react/saving.js.map +1 -1
  149. package/dist/react/store.d.ts +5 -2
  150. package/dist/react/store.js +4 -1
  151. package/dist/react/store.js.map +1 -1
  152. package/dist/render/draw.d.ts +21 -4
  153. package/dist/render/draw.js +203 -151
  154. package/dist/render/draw.js.map +1 -1
  155. package/dist/render/elevation.js +3 -3
  156. package/dist/render/elevation.js.map +1 -1
  157. package/dist/render/figmaIcons.d.ts +6 -0
  158. package/dist/render/figmaIcons.js +16 -1
  159. package/dist/render/figmaIcons.js.map +1 -1
  160. package/dist/render/hit.d.ts +8 -1
  161. package/dist/render/hit.js +23 -4
  162. package/dist/render/hit.js.map +1 -1
  163. package/dist/render/icons.js +27 -20
  164. package/dist/render/icons.js.map +1 -1
  165. package/dist/render/lens.d.ts +27 -0
  166. package/dist/render/lens.js +41 -0
  167. package/dist/render/lens.js.map +1 -0
  168. package/dist/render/linkTile.d.ts +20 -2
  169. package/dist/render/linkTile.js +476 -246
  170. package/dist/render/linkTile.js.map +1 -1
  171. package/dist/render/snap.d.ts +10 -1
  172. package/dist/render/snap.js +87 -15
  173. package/dist/render/snap.js.map +1 -1
  174. package/dist/render/svgPath.d.ts +29 -0
  175. package/dist/render/svgPath.js +114 -0
  176. package/dist/render/svgPath.js.map +1 -0
  177. package/dist/render/tileIcons.d.ts +18 -0
  178. package/dist/render/tileIcons.js +67 -0
  179. package/dist/render/tileIcons.js.map +1 -0
  180. package/dist/render/view.d.ts +18 -1
  181. package/dist/render/view.js +38 -6
  182. package/dist/render/view.js.map +1 -1
  183. package/dist/skia/SkiaDrawCtx.d.ts +8 -0
  184. package/dist/skia/SkiaDrawCtx.js +27 -5
  185. package/dist/skia/SkiaDrawCtx.js.map +1 -1
  186. package/dist/solver/equations.d.ts +6 -0
  187. package/dist/solver/equations.js +53 -22
  188. package/dist/solver/equations.js.map +1 -1
  189. package/dist/solver/gauss-newton.js +6 -1
  190. package/dist/solver/gauss-newton.js.map +1 -1
  191. package/dist/tools/annotate.d.ts +0 -2
  192. package/dist/tools/annotate.js +1 -22
  193. package/dist/tools/annotate.js.map +1 -1
  194. package/dist/tools/chamfer.js +4 -0
  195. package/dist/tools/chamfer.js.map +1 -1
  196. package/dist/tools/dim.d.ts +3 -3
  197. package/dist/tools/dim.js +26 -65
  198. package/dist/tools/dim.js.map +1 -1
  199. package/dist/tools/fillet.js +4 -0
  200. package/dist/tools/fillet.js.map +1 -1
  201. package/dist/tools/freehand.js +1 -4
  202. package/dist/tools/freehand.js.map +1 -1
  203. package/dist/tools/line.js +15 -11
  204. package/dist/tools/line.js.map +1 -1
  205. package/dist/tools/modify.d.ts +32 -4
  206. package/dist/tools/modify.js +253 -98
  207. package/dist/tools/modify.js.map +1 -1
  208. package/dist/tools/registry.d.ts +7 -0
  209. package/dist/tools/registry.js +14 -1
  210. package/dist/tools/registry.js.map +1 -1
  211. package/dist/tools/select.d.ts +30 -8
  212. package/dist/tools/select.js +165 -34
  213. package/dist/tools/select.js.map +1 -1
  214. package/dist/tools/shapes.d.ts +1 -1
  215. package/dist/tools/shapes.js +12 -5
  216. package/dist/tools/shapes.js.map +1 -1
  217. package/dist/view3d/build.js +9 -8
  218. package/dist/view3d/build.js.map +1 -1
  219. package/package.json +9 -9
  220. package/src/app/edit.ts +25 -1
  221. package/src/app/state.ts +6 -8
  222. package/src/data/sync.ts +7 -2
  223. package/src/editor/actions.ts +213 -122
  224. package/src/editor/elevation.ts +13 -16
  225. package/src/editor/gestures.ts +83 -13
  226. package/src/editor/keys.ts +3 -2
  227. package/src/editor/laser.ts +7 -4
  228. package/src/editor/linkActions.ts +169 -31
  229. package/src/editor/links.ts +17 -1
  230. package/src/editor/mode.ts +8 -5
  231. package/src/editor/project.ts +1 -2
  232. package/src/editor/scaleGate.ts +32 -0
  233. package/src/editor/selection.ts +13 -7
  234. package/src/editor/tooltips.ts +9 -0
  235. package/src/editor/view3d.ts +6 -2
  236. package/src/export/pdf.ts +7 -4
  237. package/src/export/plan.ts +14 -10
  238. package/src/index.ts +1 -0
  239. package/src/model/constraints.ts +1 -0
  240. package/src/model/demo.ts +2 -1
  241. package/src/model/elevation.ts +4 -4
  242. package/src/model/geom.ts +10 -0
  243. package/src/model/history.ts +4 -1
  244. package/src/model/links.ts +14 -3
  245. package/src/model/measurement.ts +3 -3
  246. package/src/model/openings.ts +18 -0
  247. package/src/model/planGeom.ts +70 -10
  248. package/src/model/project.ts +6 -2
  249. package/src/model/rooms.ts +151 -63
  250. package/src/model/scale.ts +107 -0
  251. package/src/model/settings.ts +1 -2
  252. package/src/model/sketch.ts +62 -11
  253. package/src/model/stroke.ts +2 -2
  254. package/src/model/trim.ts +188 -0
  255. package/src/model/types.ts +57 -9
  256. package/src/react/BottomBar.tsx +177 -52
  257. package/src/react/CadEditor.tsx +19 -9
  258. package/src/react/Drawer.tsx +17 -12
  259. package/src/react/Duck.tsx +3 -3
  260. package/src/react/KeypadSheet.tsx +2 -2
  261. package/src/react/MarkupPanel.tsx +1 -1
  262. package/src/react/PlanCanvas.native.tsx +60 -6
  263. package/src/react/PlanCanvas.web.tsx +17 -5
  264. package/src/react/Popovers.tsx +24 -9
  265. package/src/react/Rail.tsx +1 -1
  266. package/src/react/ShapeMenu.tsx +3 -2
  267. package/src/react/Sheet.tsx +3 -3
  268. package/src/react/ToolTip.tsx +3 -2
  269. package/src/react/TopBar.tsx +4 -3
  270. package/src/react/barScroll.ts +57 -0
  271. package/src/react/corners.ts +6 -3
  272. package/src/react/editorBox.ts +20 -0
  273. package/src/react/host.ts +1 -1
  274. package/src/react/motion.tsx +6 -6
  275. package/src/react/pageLock.native.ts +2 -0
  276. package/src/react/pageLock.web.ts +12 -3
  277. package/src/react/ports.ts +7 -2
  278. package/src/react/saving.ts +10 -2
  279. package/src/react/store.ts +5 -2
  280. package/src/render/draw.ts +169 -118
  281. package/src/render/elevation.ts +5 -4
  282. package/src/render/figmaIcons.ts +17 -1
  283. package/src/render/hit.ts +21 -4
  284. package/src/render/icons.ts +27 -20
  285. package/src/render/lens.ts +52 -0
  286. package/src/render/linkTile.ts +436 -190
  287. package/src/render/snap.ts +87 -17
  288. package/src/render/svgPath.ts +95 -0
  289. package/src/render/tileIcons.ts +75 -0
  290. package/src/render/view.ts +43 -7
  291. package/src/skia/SkiaDrawCtx.ts +26 -4
  292. package/src/solver/equations.ts +52 -22
  293. package/src/solver/gauss-newton.ts +4 -1
  294. package/src/styles.css +3 -2
  295. package/src/tools/annotate.ts +1 -18
  296. package/src/tools/chamfer.ts +3 -0
  297. package/src/tools/dim.ts +26 -52
  298. package/src/tools/fillet.ts +3 -0
  299. package/src/tools/freehand.ts +1 -3
  300. package/src/tools/line.ts +12 -11
  301. package/src/tools/modify.ts +210 -70
  302. package/src/tools/registry.ts +18 -1
  303. package/src/tools/select.ts +144 -36
  304. package/src/tools/shapes.ts +9 -4
  305. package/src/ui/ctx.ts +4 -3
  306. package/src/ui/drawer.ts +8 -2
  307. package/src/view3d/build.ts +11 -10
  308. package/dist/react/LaserTray.d.ts +0 -4
  309. package/dist/react/LaserTray.js +0 -26
  310. package/dist/react/LaserTray.js.map +0 -1
  311. package/src/react/LaserTray.tsx +0 -42
@@ -3,16 +3,19 @@ import { ed } from '../app/state';
3
3
  import { clamp } from '../model/geom';
4
4
  import { pushHistory } from '../model/history';
5
5
  import { uid } from '../model/ids';
6
- import { isLink, LINK_COLOR, LINK_MAX_IN, LINK_MIN_IN, LINK_TILE_PX, linkInfoOf, linkName, linkSide, linkSnapshot } from '../model/links';
6
+ import { isLink, LINK_COLOR, LINK_HARD_MAX_IN, LINK_HARD_MIN_IN, LINK_MAX_IN, LINK_MIN_IN, LINK_SIDE_IN, LINK_TILE_PX, linkInfoOf, linkName, linkSide, linkSnapshot } from '../model/links';
7
7
  import { dimMeasurement } from '../model/measurement';
8
- import { linkAt } from '../render/hit';
8
+ import { imageLinkAt, linkAt } from '../render/hit';
9
9
  import { askConfirm } from './confirm';
10
- import { SK, store } from '../model/store';
11
- import { cvs, linkBox, mainT, requestDraw, s2w } from '../render/view';
10
+ import { imageById } from '../model/images';
11
+ import { settings } from '../model/settings';
12
+ import { page, SK, store } from '../model/store';
13
+ import { tileTypeOf } from '../render/linkTile';
14
+ import { cvs, linkBox, linkThumb, mainT, requestDraw, s2w, underlayMid } from '../render/view';
12
15
  import { setTool } from '../tools/registry';
13
16
  import { elevOpen } from './elevation';
14
17
  import { is3d } from './view3dState';
15
- import { canLink, linksHost, openLink, pickLinks } from './links';
18
+ import { besideOpen, canLink, canOpenBeside, linksHost, openLink, openLinkBeside, pickLinks } from './links';
16
19
  import { toast } from './ports';
17
20
  /*
18
21
  Linking. In Annotate the + puts the job's files the person picks on the plan as tiles (selected, to move them where
@@ -65,6 +68,9 @@ export async function addLinks() {
65
68
  while (k < 40 && spots.some(([x, y]) => taken(x + k * step, y - k * step)))
66
69
  k++;
67
70
  pushHistory();
71
+ // (the page's first tiles: the size they're placed at is their 100%)
72
+ if (pageLinkSize(sk) == null)
73
+ sk.tileRef = ts;
68
74
  const ids = picked.map((t, i) => {
69
75
  const n = { id: uid('lk'), type: 'link', x: spots[i][0] + k * step, y: spots[i][1] - k * step, ts, color: LINK_COLOR, link: linkSnapshot(t) };
70
76
  sk.notes.push(n);
@@ -78,7 +84,9 @@ export async function addLinks() {
78
84
  const LINK_GAP_PX = 16;
79
85
  /*
80
86
  Every tile on a page is one size, on the drawing (so it zooms with the plan and prints at that size): the Tile size
81
- slider above the bar, shown while a tile is selected, sizes them all together.
87
+ slider above the bar, shown while a tile is selected, sizes them all together. It says how big in percent of the size
88
+ they were first placed at (the user's call, 2026-11-03): a tile has no real size, and before the page's first length
89
+ its inches are only placeholders, so feet and metres said nothing true.
82
90
  */
83
91
  /** The size of the page's tiles, inches on the drawing (null: it has none). */
84
92
  export function pageLinkSize(sk = SK()) {
@@ -92,22 +100,43 @@ export function linkSizeVisible() {
92
100
  const sk = SK();
93
101
  return ed.sel.some(x => x.type === 'note' && sk.notes.find(n => n.id === x.id)?.type === 'link');
94
102
  }
103
+ /** What the page's tiles call 100%, inches on the drawing: the size they were first placed at (a page from before: theirs now). */
104
+ const tileRef = (sk) => sk.tileRef ?? pageLinkSize(sk) ?? LINK_SIDE_IN;
105
+ /** How big the page's tiles are, in percent of the size they were first placed at (null: it has none). */
106
+ export function pageTilePct(sk = SK()) {
107
+ const s = pageLinkSize(sk);
108
+ return s == null ? null : Math.round((s / tileRef(sk)) * 100);
109
+ }
110
+ /** The slider's range, percent. */
111
+ export const TILE_PCT_MIN = 10, TILE_PCT_MAX = 1000;
95
112
  /**
96
- * Size every tile on the page (inches, to the quarter, from LINK_MIN_IN to LINK_MAX_IN), drawn at once — for the slider
97
- * as it moves. The caller makes the undo step before, and finishes the edit after.
113
+ * Size every tile on the page to `pct` percent (TILE_PCT_MIN to TILE_PCT_MAX; and never past LINK_HARD_MIN_IN to
114
+ * LINK_HARD_MAX_IN on the drawing — placing's 6"–40' bounds would cut the range short), drawn at once — for the slider as
115
+ * it moves. The caller makes the undo step before, and finishes the edit after. (A page from before keeps its 100% from
116
+ * here on.)
98
117
  */
99
- export function setLinkSize(inches) {
100
- const v = Math.round(clamp(inches, LINK_MIN_IN, LINK_MAX_IN) * 4) / 4;
101
- for (const n of SK().notes)
118
+ export function setTilePct(pct) {
119
+ const sk = SK(), ref = tileRef(sk), v = clamp((ref * clamp(pct, TILE_PCT_MIN, TILE_PCT_MAX)) / 100, LINK_HARD_MIN_IN, LINK_HARD_MAX_IN);
120
+ sk.tileRef = ref;
121
+ for (const n of sk.notes)
102
122
  if (isLink(n))
103
123
  n.ts = v;
104
124
  requestDraw();
105
125
  }
106
- /** The slider runs along a log scale (a few inches to many feet, each step as noticeable as the last): 0 to SIZE_STEPS. */
126
+ /**
127
+ * The slider runs along a log scale (each step as noticeable as the last), 0 to SIZE_STEPS, 100% in the middle; it
128
+ * catches at 100%, so the size they came in at is easy to find again, and says round numbers: whole percents to 200%,
129
+ * then fives, then tens from 500%.
130
+ */
107
131
  export const SIZE_STEPS = 1000;
108
- const LOG_MIN = Math.log(LINK_MIN_IN), LOG_SPAN = Math.log(LINK_MAX_IN) - LOG_MIN;
109
- export const sizeToStep = (inches) => Math.round(((Math.log(clamp(inches, LINK_MIN_IN, LINK_MAX_IN)) - LOG_MIN) / LOG_SPAN) * SIZE_STEPS);
110
- export const stepToSize = (step) => Math.exp(LOG_MIN + (clamp(step, 0, SIZE_STEPS) / SIZE_STEPS) * LOG_SPAN);
132
+ const LOG_MIN = Math.log(TILE_PCT_MIN), LOG_SPAN = Math.log(TILE_PCT_MAX) - LOG_MIN;
133
+ export const pctToStep = (pct) => Math.round(((Math.log(clamp(pct, TILE_PCT_MIN, TILE_PCT_MAX)) - LOG_MIN) / LOG_SPAN) * SIZE_STEPS);
134
+ export function stepToPct(step) {
135
+ const p = Math.exp(LOG_MIN + (clamp(step, 0, SIZE_STEPS) / SIZE_STEPS) * LOG_SPAN);
136
+ if (Math.abs(p - 100) < 4)
137
+ return 100;
138
+ return p >= 500 ? Math.round(p / 10) * 10 : p >= 200 ? Math.round(p / 5) * 5 : Math.round(p);
139
+ }
111
140
  /** A tile's leader on or off. On, it points out beside the tile (to the right, or the left near the screen's edge). */
112
141
  export function toggleLeader(id) {
113
142
  const n = SK().notes.find(x => x.id === id);
@@ -123,29 +152,134 @@ export function toggleLeader(id) {
123
152
  }
124
153
  afterEdit();
125
154
  }
126
- /** Open what the selected tile is for. */
127
- export function openSelectedLink() {
128
- const n = selectedLink();
129
- if (!n)
155
+ /** Open what the selected tile, or the selected expanded photo, is for. */
156
+ export function openSelectedLink(how = 'auto') {
157
+ const t = selectedLink()?.link ?? selectedLinkedImage()?.link;
158
+ if (t)
159
+ openLinkTarget(t, how);
160
+ }
161
+ /** What the bar's Open is for: the selected tile's or expanded photo's link, or the selected linked dimension's. */
162
+ export function selectedOpenTarget() {
163
+ const t = selectedLink()?.link ?? selectedLinkedImage()?.link;
164
+ if (t)
165
+ return t;
166
+ const s = ed.sel;
167
+ return s.length === 1 && s[0].type === 'dim' ? SK().cons[s[0].id]?.measurementRef ?? null : null;
168
+ }
169
+ /** Whether Open asks how to open `t`: the host can show it beside the drawing, and no pane's open yet. */
170
+ export function opensWithChoice(t) {
171
+ return canOpenLink(t) && canOpenBeside(t) && !besideOpen();
172
+ }
173
+ /** Open what `t` is for, `how` it's asked to (see OpenHow); one that's gone, or can't be, says so instead. */
174
+ export function openLinkTarget(t, how = 'auto') {
175
+ if (!canOpenLink(t)) {
176
+ const gone = linkInfoOf(t)?.exists === false;
177
+ toast(!gone ? 'That can’t be opened from here.'
178
+ : t.kind === 'measurement' ? 'That measurement has been removed from the job, so it can’t be opened.'
179
+ : 'That’s been removed from the job, so it can’t be opened.', { warn: true });
180
+ return;
181
+ }
182
+ if ((how === 'beside' || (how === 'auto' && besideOpen())) && canOpenBeside(t))
183
+ openLinkBeside(t);
184
+ else
185
+ openLink(t);
186
+ }
187
+ /** An expanded photo's badge, tapped: what it's for opens (beside the drawing, if a pane's open there). */
188
+ export function openImageLink(id) {
189
+ const t = imageById(id)?.link;
190
+ if (t)
191
+ openLinkTarget(t);
192
+ }
193
+ /*
194
+ A photo's tile expands into the photo whole, and back (the user's call, 2026-10-26: "for image objects … you should
195
+ be able to expand and condense the tile … this is how skia works, it expands the image to full size + shows a link
196
+ icon in the corner"). Expanded, it's one of the page's images — moved, sized, cropped, turned, faded and locked as
197
+ any is — with the link's badge in its corner; Expand in the bar (on) folds it back into its tile where it is. An image
198
+ from the computer has no link, so none of this. Each way is one undo step, and what was selected stays selected.
199
+ */
200
+ /** The one selected image, if it's a photo expanded from its tile and all that's selected. */
201
+ export function selectedLinkedImage() {
202
+ if (ed.sel.length !== 1 || ed.sel[0].type !== 'underlay')
203
+ return null;
204
+ const u = imageById(ed.sel[0].id);
205
+ return u?.link ? u : null;
206
+ }
207
+ /** Whether a tile can expand: a photo's (not a sketch's, a document's or a measurement's), and the photo still there. */
208
+ export function canExpand(n) {
209
+ const info = linkInfoOf(n.link);
210
+ return tileTypeOf(n, info) === 'image' && info?.exists !== false;
211
+ }
212
+ /**
213
+ * A photo's tile, expanded: the photo whole where the tile was, as big as it fits in 60% of the screen across and 80%
214
+ * down (an image from the computer is placed 60% across), at full strength, free to move.
215
+ */
216
+ export function expandLink(id) {
217
+ const sk = SK(), at = sk.notes.findIndex(x => x.id === id), n = sk.notes[at];
218
+ if (!n || !isLink(n) || !canExpand(n) || ed.readOnly)
219
+ return;
220
+ const url = linkInfoOf(n.link)?.thumbUrl, im = url ? linkThumb(url) : null;
221
+ if (!im?.complete || !im.naturalWidth) {
222
+ toast('The photo is still loading. Try again in a moment.', { warn: true });
223
+ return;
224
+ }
225
+ const T = mainT(), aspect = (im.naturalHeight || 1) / im.naturalWidth;
226
+ const w = Math.min(cvs.W * 0.6, (cvs.H * 0.8) / aspect) / T.s, h = w * aspect;
227
+ const { x = 0, y = 0, link, ...tile } = n;
228
+ pushHistory();
229
+ sk.notes.splice(at, 1);
230
+ const u = { id: uid('img'), src: '', x: x - w / 2, y: y + h / 2, w, h, opacity: 1, locked: false, link, tile };
231
+ page().underlays.push(u);
232
+ settings.layers.underlay = true;
233
+ ed.sel = [{ type: 'underlay', id: u.id }];
234
+ afterEdit();
235
+ }
236
+ /** An expanded photo, folded back into its tile: where the photo's middle is, the page's tiles' size, its leader back. */
237
+ export function collapseLink(id) {
238
+ const u = imageById(id);
239
+ if (!u?.link || ed.readOnly)
130
240
  return;
131
- if (!canOpenLink(n.link)) {
132
- toast(linkInfoOf(n.link)?.exists === false ? 'That’s been removed from the job, so it can’t be opened.' : 'That can’t be opened from here.', { warn: true });
241
+ if (u.locked) {
242
+ toast('This photo is locked. Unlock it to fold it back into its tile.', { warn: true });
133
243
  return;
134
244
  }
135
- openLink(n.link);
245
+ const sk = SK(), m = underlayMid(u), was = u.tile ? JSON.parse(JSON.stringify(u.tile)) : null;
246
+ const ts = pageLinkSize(sk) ?? was?.ts ?? Math.round(clamp(LINK_TILE_PX / mainT().s, LINK_MIN_IN, LINK_MAX_IN) * 4) / 4;
247
+ const n = { ...(was ?? { id: '', type: 'link', color: LINK_COLOR }), type: 'link', x: m.x, y: m.y, ts, link: u.link };
248
+ if (!n.id || sk.notes.some(x => x.id === n.id))
249
+ n.id = uid('lk');
250
+ pushHistory();
251
+ // (the page's only tile, back: its size is the 100%, unless the page already has one)
252
+ if (pageLinkSize(sk) == null && sk.tileRef == null)
253
+ sk.tileRef = ts;
254
+ page().underlays.splice(page().underlays.indexOf(u), 1);
255
+ sk.notes.push(n);
256
+ ed.sel = [{ type: 'note', id: n.id }];
257
+ afterEdit();
258
+ }
259
+ /** Expand in the bar: the selected photo's tile expanded, or the selected expanded photo folded back. */
260
+ export function toggleExpand() {
261
+ const n = selectedLink(), u = selectedLinkedImage();
262
+ if (n)
263
+ expandLink(n.id);
264
+ else if (u)
265
+ collapseLink(u.id);
136
266
  }
137
- /** A view-only tap on the plan: on a link's tile, the person is asked, then what it's for opens. */
267
+ /** A view-only tap on the plan: on a link's tile or an expanded photo's badge, the person is asked, then what it's for opens. */
138
268
  export function readOnlyTap(sx, sy, touch) {
139
269
  if (!ed.readOnly || !canLink())
140
270
  return;
141
- const n = linkAt(sx, sy, touch);
142
- if (!n || !canOpenLink(n.link))
271
+ const t = linkAt(sx, sy, touch)?.link ?? imageLinkAt(sx, sy, touch)?.link;
272
+ if (!t || !canOpenLink(t))
143
273
  return;
144
- const t = n.link, where = linkInfoOf(t)?.groupName ?? t.groupName;
274
+ const where = linkInfoOf(t)?.groupName ?? t.groupName;
145
275
  askConfirm({
146
276
  title: 'Open ' + linkName(t) + '?',
147
277
  msg: where ? 'It’s in ' + where + '.' : undefined,
148
- choices: [{ label: 'Open', run: () => openLink(t) }, { label: 'Cancel', run: () => { } }],
278
+ choices: [
279
+ { label: 'Open', run: () => openLinkTarget(t, 'here') },
280
+ ...(canOpenBeside(t) ? [{ label: 'Open side by side', run: () => openLinkTarget(t, 'beside') }] : []),
281
+ { label: 'Cancel', run: () => { } },
282
+ ],
149
283
  });
150
284
  }
151
285
  /** Let go of a dimension's link: its value stays, the drawing's alone now. */
@@ -158,15 +292,10 @@ export function unlinkDim(id) {
158
292
  afterEdit();
159
293
  }
160
294
  /** Open the measurement a dimension is linked to. */
161
- export function openDimLink(id) {
295
+ export function openDimLink(id, how = 'auto') {
162
296
  const t = SK().cons[id]?.measurementRef;
163
- if (!t)
164
- return;
165
- if (!canOpenLink(t)) {
166
- toast(linkInfoOf(t)?.exists === false ? 'That measurement has been removed from the job, so it can’t be opened.' : 'That can’t be opened from here.', { warn: true });
167
- return;
168
- }
169
- openLink(t);
297
+ if (t)
298
+ openLinkTarget(t, how);
170
299
  }
171
300
  /**
172
301
  * Whether a dimension can be saved to the drawing's group: one of the drawing's own driving dimensions with a value,
@@ -1 +1 @@
1
- {"version":3,"file":"linkActions.js","sourceRoot":"","sources":["../../src/editor/linkActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linkActions.js","sourceRoot":"","sources":["../../src/editor/linkActions.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,13 @@ export interface CadLinks {
48
48
  subscribe(targets: LinkTarget[], cb: (info: Record<string, LinkInfo>) => void): () => void;
49
49
  /** Open what `target` is for (another screen, or a sheet over the drawing). */
50
50
  open(target: LinkTarget): void;
51
+ /**
52
+ * Open what `target` is for in a pane beside the drawing (a split view), the drawing staying as it is. With this, the
53
+ * bar's Open asks how — Open, or Open side by side — until a pane is open (besideOpen), when Open goes to it.
54
+ */
55
+ openBeside?(target: LinkTarget): void;
56
+ /** Whether a pane is open beside the drawing now (with openBeside). */
57
+ besideOpen?(): boolean;
51
58
  /** Change a linked measurement (micrometres, or degrees), the person having said to; `capture` as saveMeasurement's. */
52
59
  update?(target: LinkTarget, value: number, capture?: unknown): void;
53
60
  /** Save a dimension as a new measurement in the drawing's own group; resolves with it (null: not saved). */
@@ -82,3 +89,9 @@ export declare function watchJobMeasurements(cb: (list: LinkTarget[]) => void):
82
89
  export declare function pickJobMeasurement(kind: MeasurementKind): Promise<LinkTarget | null>;
83
90
  /** Open what a link is for. */
84
91
  export declare function openLink(t: LinkTarget): void;
92
+ /** Open what a link is for in a pane beside the drawing (CadLinks.openBeside). */
93
+ export declare function openLinkBeside(t: LinkTarget): void;
94
+ /** Whether the host can show `t` in a pane beside the drawing. */
95
+ export declare function canOpenBeside(t: LinkTarget): boolean;
96
+ /** Whether a pane is open beside the drawing now. */
97
+ export declare function besideOpen(): boolean;
@@ -1,4 +1,4 @@
1
- import { linkInfo, linkKey, linkTargets } from '../model/links';
1
+ import { linkInfo, linkInfoOf, linkKey, linkTargets } from '../model/links';
2
2
  import { onSessionReset } from '../model/session';
3
3
  import { store } from '../model/store';
4
4
  import { requestDraw } from '../render/view';
@@ -127,4 +127,10 @@ export async function pickJobMeasurement(kind) {
127
127
  }
128
128
  /** Open what a link is for. */
129
129
  export function openLink(t) { host?.open(t); }
130
+ /** Open what a link is for in a pane beside the drawing (CadLinks.openBeside). */
131
+ export function openLinkBeside(t) { host?.openBeside?.(t); }
132
+ /** Whether the host can show `t` in a pane beside the drawing. */
133
+ export function canOpenBeside(t) { return !!host?.openBeside && linkInfoOf(t)?.canOpenBeside !== false; }
134
+ /** Whether a pane is open beside the drawing now. */
135
+ export function besideOpen() { return !!host?.besideOpen?.(); }
130
136
  //# sourceMappingURL=links.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/editor/links.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/editor/links.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,8 @@ export declare const RAIL: Record<Mode, RailItem[]>;
26
26
  /**
27
27
  * Tools that share one place on a phone's rail, which has no room for each: a tap draws with the one used last (the
28
28
  * place shows it), and a long press opens a menu of them all (react/ShapeMenu.tsx) — Draft's Line, Rectangle, Circle
29
- * and Arc, and Annotate's markup shapes. A tablet's or a browser's rail shows every one in its own place.
29
+ * and Arc, and Annotate's markup shapes. A tablet's or a browser's rail shows every one in its own place. (Trim isn't
30
+ * one of them: on a phone it has its own place, under Draw to shape — the user's call, 2026-11-03.)
30
31
  */
31
32
  export declare const SHAPE_TOOLS: string[];
32
33
  export declare const SHAPES_GROUP = "shapes";
@@ -52,12 +52,14 @@ export const railIcon = (id) => WALL_ICON[id] ?? id;
52
52
  /** The tool rail for each mode. 'toggle' items switch something on and off; 'act' items run an action. */
53
53
  export const RAIL = {
54
54
  draft: [
55
- // drawing; then the building (walls, what goes in them, spaces); then measuring and guides
56
- ['select', 'Select', 'V'], ['line', 'Line', 'L'], ['freehand', 'Draw to shape', 'S'], ['rect', 'Rectangle', 'R'], ['circle', 'Circle', 'C'], ['arc', 'Arc', 'A'], '|',
55
+ // drawing, and Trim last of it (the user's call, 2026-11-03); then the building (walls, what goes in them, spaces);
56
+ // then guides
57
+ ['select', 'Select', 'V'], ['line', 'Line', 'L'], ['freehand', 'Draw to shape', 'S'], ['rect', 'Rectangle', 'R'], ['circle', 'Circle', 'C'], ['arc', 'Arc', 'A'], ['trim', 'Trim', 'T'], '|',
57
58
  ['door', 'Door', 'B'], ['window', 'Window', 'N'], ['room', 'Space', 'M'], '|',
58
- // Trim (T) and Offset (O) stay on the keyboard; Offset is also in the bar for a selected line.
59
+ // Offset (O) and Dimension (D) stay on the keyboard; Offset is also in the bar for a selected line, and measuring is
60
+ // the yellow + for what's selected (the user's call, 2026-10-24: no Dimension on the rail).
59
61
  // The toggles together: what's drawn is walls, or guides (one or the other, never both)
60
- ['dim', 'Dimension', 'D'], ['wall', 'Walls', 'W', 'toggle'], ['constr', 'Construction lines', 'X', 'toggle'], '|',
62
+ ['wall', 'Walls', 'W', 'toggle'], ['constr', 'Construction lines', 'X', 'toggle'], '|',
61
63
  ['undo', 'Undo', '⌘Z', 'act'], ['redo', 'Redo', '⇧⌘Z', 'act'],
62
64
  ],
63
65
  annotate: [
@@ -71,7 +73,8 @@ export const RAIL = {
71
73
  /**
72
74
  * Tools that share one place on a phone's rail, which has no room for each: a tap draws with the one used last (the
73
75
  * place shows it), and a long press opens a menu of them all (react/ShapeMenu.tsx) — Draft's Line, Rectangle, Circle
74
- * and Arc, and Annotate's markup shapes. A tablet's or a browser's rail shows every one in its own place.
76
+ * and Arc, and Annotate's markup shapes. A tablet's or a browser's rail shows every one in its own place. (Trim isn't
77
+ * one of them: on a phone it has its own place, under Draw to shape — the user's call, 2026-11-03.)
75
78
  */
76
79
  export const SHAPE_TOOLS = ['line', 'rect', 'circle', 'arc'];
77
80
  export const SHAPES_GROUP = 'shapes';
@@ -1 +1 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/editor/mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/editor/mode.ts"],"names":[],"mappings":"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"}
@@ -85,11 +85,10 @@ export function renamePage(name) { page().name = name.trim() || 'Page'; updateTo
85
85
  export const LAYER_ROWS = [
86
86
  ['construction', 'Construction lines', 'Dashed guides'],
87
87
  ['dims', 'Driving dimensions', 'Blue chips that set sizes'],
88
- ['print', 'Print dimensions', 'Labels for the crew; never move geometry'],
89
88
  ['rooms', 'Spaces', 'Fill, name and area'],
90
89
  ['cabinets', 'Cabinets', 'Their footprints, from each wall’s view'],
91
90
  ['annot', 'Markup', 'Pen, arrows, shapes, clouds and notes'],
92
- ['showCons', 'Constraint icons', 'H, V, ∥, ⊥ badges'],
91
+ ['showCons', 'Constraint icons', 'H, V, ∥, ⊥ and lock badges'],
93
92
  ];
94
93
  export const layerOn = (k) => (k === 'showCons' ? settings.showCons : settings.layers[k]);
95
94
  export function toggleLayer(k) {
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/editor/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/editor/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** The page being drawn has no scale yet: its sizes are placeholders. */
2
+ export declare const noScaleYet: () => boolean;
3
+ export declare const NEEDS_SCALE = "Enter a length first: select a line and tap +. It sets the size of the whole drawing.";
4
+ /** What needs real sizes, asked for before the page has its scale: says what to do first, and true (wait). */
5
+ export declare function waitForScale(): boolean;
6
+ export declare const toolWaitsForScale: (t: string) => boolean;
7
+ /** A length being entered, as its label shows it: what's typed, else what it measures now — nothing while that's a placeholder. */
8
+ export declare const pendingLabel: (typed: number | null, now: number) => string;
9
+ /** A keypad's starting value: what it measures now, or nothing while that's only a placeholder. */
10
+ export declare const startingValue: (v: number) => {
11
+ initial: string;
12
+ value?: number;
13
+ };
@@ -0,0 +1,27 @@
1
+ import { isUnscaled } from '../model/scale';
2
+ import { planSK } from '../model/store';
3
+ import { fmtLen } from '../units';
4
+ import { toast } from './ports';
5
+ /*
6
+ Before a new page's first length (model/scale.ts), its sizes are placeholders. So nothing shows one as if it were
7
+ real, and what needs real sizes waits: the 3D view, the wall view, doors, windows and cabinets (the user's call,
8
+ 2026-10-29), and the tools whose typed size has nothing drawn to be compared with (offset, fillet, chamfer).
9
+ */
10
+ /** The page being drawn has no scale yet: its sizes are placeholders. */
11
+ export const noScaleYet = () => isUnscaled(planSK());
12
+ export const NEEDS_SCALE = 'Enter a length first: select a line and tap +. It sets the size of the whole drawing.';
13
+ /** What needs real sizes, asked for before the page has its scale: says what to do first, and true (wait). */
14
+ export function waitForScale() {
15
+ if (!noScaleYet())
16
+ return false;
17
+ toast(NEEDS_SCALE, { warn: true });
18
+ return true;
19
+ }
20
+ /** Tools that place something with a real size, or take one typed: doors, windows and cabinets (the plan's and the wall view's), offsets. */
21
+ const SIZED_TOOLS = new Set(['door', 'window', 'wdoor', 'wwindow', 'cabinet', 'height', 'offset']);
22
+ export const toolWaitsForScale = (t) => SIZED_TOOLS.has(t);
23
+ /** A length being entered, as its label shows it: what's typed, else what it measures now — nothing while that's a placeholder. */
24
+ export const pendingLabel = (typed, now) => (typed != null ? fmtLen(typed) : noScaleYet() ? '' : fmtLen(now));
25
+ /** A keypad's starting value: what it measures now, or nothing while that's only a placeholder. */
26
+ export const startingValue = (v) => (noScaleYet() ? { initial: '' } : { initial: fmtLen(v), value: v });
27
+ //# sourceMappingURL=scaleGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaleGate.js","sourceRoot":"","sources":["../../src/editor/scaleGate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;EAIE;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,UAAU,GAAG,GAAY,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,WAAW,GAAG,uFAAuF,CAAC;AAEnH,8GAA8G;AAC9G,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO,KAAK,CAAC;IAChC,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6IAA6I;AAC7I,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACnG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAW,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE5E,mIAAmI;AACnI,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAoB,EAAE,GAAW,EAAU,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAE7I,mGAAmG;AACnG,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAuC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC"}