@oh-just-another/state 0.60.0 → 0.61.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 (62) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/README.md +4 -4
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/actions/actionKeyboard.js +2 -2
  5. package/dist/actions/actionKeyboard.js.map +1 -1
  6. package/dist/actions/actionMode.d.ts +0 -2
  7. package/dist/actions/actionMode.d.ts.map +1 -1
  8. package/dist/actions/actionMode.js +37 -37
  9. package/dist/actions/actionMode.js.map +1 -1
  10. package/dist/actions/types.d.ts +1 -1
  11. package/dist/built-in-handlers.d.ts +8 -0
  12. package/dist/built-in-handlers.d.ts.map +1 -1
  13. package/dist/built-in-handlers.js +31 -16
  14. package/dist/built-in-handlers.js.map +1 -1
  15. package/dist/constants.d.ts +93 -0
  16. package/dist/constants.d.ts.map +1 -1
  17. package/dist/constants.js +93 -0
  18. package/dist/constants.js.map +1 -1
  19. package/dist/editor/animation-scene.d.ts.map +1 -1
  20. package/dist/editor/animation-scene.js +37 -1
  21. package/dist/editor/animation-scene.js.map +1 -1
  22. package/dist/editor/event-fanout.d.ts +6 -6
  23. package/dist/editor/event-fanout.d.ts.map +1 -1
  24. package/dist/editor/event-fanout.js +8 -8
  25. package/dist/editor/event-fanout.js.map +1 -1
  26. package/dist/editor/hit-test.d.ts +8 -0
  27. package/dist/editor/hit-test.d.ts.map +1 -1
  28. package/dist/editor/hit-test.js +31 -16
  29. package/dist/editor/hit-test.js.map +1 -1
  30. package/dist/editor/link-handle-drag.d.ts +20 -0
  31. package/dist/editor/link-handle-drag.d.ts.map +1 -1
  32. package/dist/editor/link-handle-drag.js +71 -2
  33. package/dist/editor/link-handle-drag.js.map +1 -1
  34. package/dist/editor/pointer-binding.d.ts.map +1 -1
  35. package/dist/editor/pointer-binding.js +93 -39
  36. package/dist/editor/pointer-binding.js.map +1 -1
  37. package/dist/editor/public/brush.d.ts +69 -8
  38. package/dist/editor/public/brush.d.ts.map +1 -1
  39. package/dist/editor/public/brush.js +189 -20
  40. package/dist/editor/public/brush.js.map +1 -1
  41. package/dist/editor/public/cursor.js +4 -5
  42. package/dist/editor/public/cursor.js.map +1 -1
  43. package/dist/editor/render-orchestrator.d.ts +9 -6
  44. package/dist/editor/render-orchestrator.d.ts.map +1 -1
  45. package/dist/editor/render-orchestrator.js +25 -28
  46. package/dist/editor/render-orchestrator.js.map +1 -1
  47. package/dist/editor-events.d.ts +5 -5
  48. package/dist/editor-events.d.ts.map +1 -1
  49. package/dist/editor.d.ts +64 -19
  50. package/dist/editor.d.ts.map +1 -1
  51. package/dist/editor.js +116 -60
  52. package/dist/editor.js.map +1 -1
  53. package/dist/index.d.ts +1 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/modes.d.ts +24 -5
  56. package/dist/modes.d.ts.map +1 -1
  57. package/dist/modes.js.map +1 -1
  58. package/dist/overlay.d.ts +7 -19
  59. package/dist/overlay.d.ts.map +1 -1
  60. package/dist/overlay.js +11 -42
  61. package/dist/overlay.js.map +1 -1
  62. package/package.json +5 -4
@@ -4,159 +4,159 @@
4
4
  export const actionModeSelect = {
5
5
  id: "mode-select",
6
6
  label: "Select tool",
7
- category: "mode",
7
+ category: "tool",
8
8
  viewMode: true,
9
9
  hotkey: { key: "v" },
10
10
  iconId: "mode-select",
11
11
  uiKind: "toggle",
12
- checked: ({ editor }) => editor.mode === "select",
12
+ checked: ({ editor }) => editor.activeTool.type === "select",
13
13
  perform: ({ editor }) => {
14
- editor.setMode("select");
14
+ editor.setActiveTool("select");
15
15
  },
16
16
  };
17
17
  export const actionModeHand = {
18
18
  id: "mode-hand",
19
19
  label: "Hand tool",
20
- category: "mode",
20
+ category: "tool",
21
21
  viewMode: true,
22
22
  hotkey: { key: "h" },
23
23
  iconId: "mode-hand",
24
24
  uiKind: "toggle",
25
- checked: ({ editor }) => editor.mode === "hand",
25
+ checked: ({ editor }) => editor.activeTool.type === "hand",
26
26
  perform: ({ editor }) => {
27
- editor.setMode("hand");
27
+ editor.setActiveTool("hand");
28
28
  },
29
29
  };
30
30
  export const actionModeRect = {
31
31
  id: "mode-rect",
32
32
  label: "Rectangle tool",
33
- category: "mode",
33
+ category: "tool",
34
34
  hotkey: { key: "r" },
35
35
  iconId: "mode-rect",
36
36
  uiKind: "toggle",
37
- checked: ({ editor }) => editor.mode === "draw-rect",
37
+ checked: ({ editor }) => editor.activeTool.type === "draw-rect",
38
38
  perform: ({ editor }) => {
39
- editor.setMode("draw-rect");
39
+ editor.setActiveTool("draw-rect");
40
40
  },
41
41
  };
42
42
  export const actionModeEllipse = {
43
43
  id: "mode-ellipse",
44
44
  label: "Ellipse tool",
45
- category: "mode",
45
+ category: "tool",
46
46
  // `O` (standard "Oval").
47
47
  hotkey: { key: "o" },
48
48
  iconId: "mode-ellipse",
49
49
  uiKind: "toggle",
50
- checked: ({ editor }) => editor.mode === "draw-ellipse",
50
+ checked: ({ editor }) => editor.activeTool.type === "draw-ellipse",
51
51
  perform: ({ editor }) => {
52
- editor.setMode("draw-ellipse");
52
+ editor.setActiveTool("draw-ellipse");
53
53
  },
54
54
  };
55
55
  export const actionModeText = {
56
56
  id: "mode-text",
57
57
  label: "Text tool",
58
- category: "mode",
58
+ category: "tool",
59
59
  hotkey: { key: "t" },
60
60
  iconId: "mode-text",
61
61
  uiKind: "toggle",
62
- checked: ({ editor }) => editor.mode === "draw-text",
62
+ checked: ({ editor }) => editor.activeTool.type === "draw-text",
63
63
  perform: ({ editor }) => {
64
- editor.setMode("draw-text");
64
+ editor.setActiveTool("draw-text");
65
65
  },
66
66
  };
67
67
  export const actionModeLink = {
68
68
  id: "mode-edge",
69
69
  label: "Link tool",
70
- category: "mode",
70
+ category: "tool",
71
71
  hotkey: { key: "l" },
72
72
  iconId: "mode-edge",
73
73
  uiKind: "toggle",
74
- checked: ({ editor }) => editor.mode === "draw-edge",
74
+ checked: ({ editor }) => editor.activeTool.type === "draw-edge",
75
75
  perform: ({ editor }) => {
76
- editor.setMode("draw-edge");
76
+ editor.setActiveTool("draw-edge");
77
77
  },
78
78
  };
79
79
  export const actionModeBrush = {
80
80
  id: "mode-brush",
81
81
  label: "Brush tool",
82
- category: "mode",
82
+ category: "tool",
83
83
  hotkey: { key: "b" },
84
84
  iconId: "mode-brush",
85
85
  uiKind: "toggle",
86
- checked: ({ editor }) => editor.mode === "brush",
86
+ checked: ({ editor }) => editor.activeTool.type === "brush",
87
87
  perform: ({ editor }) => {
88
- editor.setMode("brush");
88
+ editor.setActiveTool("brush");
89
89
  },
90
90
  };
91
91
  export const actionModeErase = {
92
92
  id: "mode-erase",
93
93
  label: "Eraser tool",
94
- category: "mode",
94
+ category: "tool",
95
95
  hotkey: { key: "e" },
96
96
  iconId: "mode-erase",
97
97
  uiKind: "toggle",
98
- checked: ({ editor }) => editor.mode === "erase",
98
+ checked: ({ editor }) => editor.activeTool.type === "erase",
99
99
  perform: ({ editor }) => {
100
- editor.setMode("erase");
100
+ editor.setActiveTool("erase");
101
101
  },
102
102
  };
103
103
  export const actionModeLaser = {
104
104
  id: "mode-laser",
105
105
  label: "Laser pointer",
106
- category: "mode",
106
+ category: "tool",
107
107
  // Laser is presentation-only (no scene mutation) → available in read-only.
108
108
  viewMode: true,
109
109
  hotkey: { key: "k" },
110
110
  iconId: "mode-laser",
111
111
  uiKind: "toggle",
112
- checked: ({ editor }) => editor.mode === "laser",
112
+ checked: ({ editor }) => editor.activeTool.type === "laser",
113
113
  perform: ({ editor }) => {
114
- editor.setMode("laser");
114
+ editor.setActiveTool("laser");
115
115
  },
116
116
  };
117
117
  export const actionModeFrame = {
118
118
  id: "mode-frame",
119
119
  label: "Frame tool",
120
- category: "mode",
120
+ category: "tool",
121
121
  hotkey: { key: "f" },
122
122
  iconId: "mode-frame",
123
123
  uiKind: "toggle",
124
- checked: ({ editor }) => editor.mode === "draw-frame",
124
+ checked: ({ editor }) => editor.activeTool.type === "draw-frame",
125
125
  perform: ({ editor }) => {
126
- editor.setMode("draw-frame");
126
+ editor.setActiveTool("draw-frame");
127
127
  },
128
128
  };
129
129
  export const actionToggleToolLock = {
130
130
  id: "toggle-tool-lock",
131
131
  label: "Toggle tool lock",
132
- category: "mode",
132
+ category: "tool",
133
133
  iconId: "tool-lock",
134
134
  uiKind: "toggle",
135
- checked: ({ editor }) => editor.toolLocked,
135
+ checked: ({ editor }) => editor.activeTool.locked,
136
136
  // No default hotkey — toolbar button only. Hosts can register one
137
137
  // via `defaultActionRegistry.replace({...actionToggleToolLock,
138
138
  // hotkey: ...})` if needed.
139
139
  perform: ({ editor }) => {
140
- editor.setToolLocked(!editor.toolLocked);
140
+ editor.setToolLocked(!editor.activeTool.locked);
141
141
  },
142
142
  };
143
- export const actionCommitCrop = {
143
+ const actionCommitCrop = {
144
144
  id: "commit-image-crop",
145
145
  label: "Apply crop",
146
146
  category: "edit",
147
147
  hotkey: { key: "Enter" },
148
- predicate: ({ editor }) => editor.mode === "crop",
148
+ predicate: ({ editor }) => editor.activeTool.type === "crop",
149
149
  perform: ({ editor }) => {
150
150
  editor.commitImageCrop();
151
151
  },
152
152
  };
153
- export const actionCancelCrop = {
153
+ const actionCancelCrop = {
154
154
  id: "cancel-image-crop",
155
155
  label: "Cancel crop",
156
156
  category: "edit",
157
157
  viewMode: true,
158
158
  hotkey: { key: "Escape" },
159
- predicate: ({ editor }) => editor.mode === "crop",
159
+ predicate: ({ editor }) => editor.activeTool.type === "crop",
160
160
  perform: ({ editor }) => {
161
161
  editor.cancelImageCrop();
162
162
  },
@@ -1 +1 @@
1
- {"version":3,"file":"actionMode.js","sourceRoot":"","sources":["../../src/actions/actionMode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actionMode.js","sourceRoot":"","sources":["../../src/actions/actionMode.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export interface HotkeyMatcher {
39
39
  /**
40
40
  * Category groups Actions in the help dialog / menus.
41
41
  */
42
- export type ActionCategory = "history" | "selection" | "clipboard" | "z-order" | "grouping" | "zoom" | "mode" | "layout" | "arrange" | "edit" | "other";
42
+ export type ActionCategory = "history" | "selection" | "clipboard" | "z-order" | "grouping" | "zoom" | "tool" | "layout" | "arrange" | "edit" | "other";
43
43
  export interface Action {
44
44
  /** Stable identifier — used by context menu / hotkey routing. */
45
45
  readonly id: string;
@@ -10,6 +10,14 @@ import { type FileDropHandler } from "./file-drop.js";
10
10
  * and supply their own.
11
11
  */
12
12
  export declare const imageFileDropHandler: FileDropHandler;
13
+ /**
14
+ * Build the hidden, muted, looping `<video>` element both the drop handler
15
+ * and scene rehydration attach for an mp4/webm shape. The element is parked
16
+ * in the animated-image sink (1px, off to the side) so it keeps decoding
17
+ * frames; the canvas reads the current frame every animation tick. The
18
+ * caller decides when to await `loadedmetadata` / call `play()`.
19
+ */
20
+ export declare const createHiddenLoopingVideo: (src: string) => HTMLVideoElement;
13
21
  /**
14
22
  * Built-in video file-drop handler. Drops a `<video>` element into
15
23
  * the hidden sink (autoplay + muted + loop so it advances frames
@@ -1 +1 @@
1
- {"version":3,"file":"built-in-handlers.d.ts","sourceRoot":"","sources":["../src/built-in-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+C,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAsBnG;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,eA8GlC,CAAC;AAiCF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAkDlC,CAAC"}
1
+ {"version":3,"file":"built-in-handlers.d.ts","sourceRoot":"","sources":["../src/built-in-handlers.ts"],"names":[],"mappings":"AAMA,OAAO,EAA+C,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAsBnG;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,eA8GlC,CAAC;AAiCF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GAAI,KAAK,MAAM,KAAG,gBActD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,eA2ClC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DEFAULT_IMAGE_MAX_EDGE_PX } from "./constants.js";
1
+ import { DEFAULT_IMAGE_MAX_EDGE_PX, VIDEO_FALLBACK_WIDTH_PX, VIDEO_FALLBACK_HEIGHT_PX, } from "./constants.js";
2
2
  import { isImageFile, isVideoFile, readFileAsDataURL } from "./file-drop.js";
3
3
  /**
4
4
  * Read an image data URL and return its natural pixel dimensions
@@ -168,6 +168,28 @@ const ensureAnimatedImageSink = () => {
168
168
  document.body.appendChild(div);
169
169
  return div;
170
170
  };
171
+ /**
172
+ * Build the hidden, muted, looping `<video>` element both the drop handler
173
+ * and scene rehydration attach for an mp4/webm shape. The element is parked
174
+ * in the animated-image sink (1px, off to the side) so it keeps decoding
175
+ * frames; the canvas reads the current frame every animation tick. The
176
+ * caller decides when to await `loadedmetadata` / call `play()`.
177
+ */
178
+ export const createHiddenLoopingVideo = (src) => {
179
+ const video = document.createElement("video");
180
+ video.src = src;
181
+ video.muted = true;
182
+ video.loop = true;
183
+ video.playsInline = true;
184
+ video.autoplay = true;
185
+ video.style.position = "absolute";
186
+ video.style.left = "-99999px";
187
+ video.style.top = "-99999px";
188
+ video.style.width = "1px";
189
+ video.style.height = "1px";
190
+ ensureAnimatedImageSink().appendChild(video);
191
+ return video;
192
+ };
171
193
  /**
172
194
  * Built-in video file-drop handler. Drops a `<video>` element into
173
195
  * the hidden sink (autoplay + muted + loop so it advances frames
@@ -184,20 +206,12 @@ export const videoFileDropHandler = {
184
206
  handle: async (file, { editor, worldPoint }) => {
185
207
  if (typeof document === "undefined")
186
208
  return;
209
+ // Persist the bytes in Scene.files FIRST — the live <video> handle and
210
+ // its blob: URL die with the page, so without a `fileId` a reloaded
211
+ // scene has nothing to rehydrate the video from.
212
+ const fileId = await editor.addBinaryFile(file, file.name);
187
213
  const url = URL.createObjectURL(file);
188
- const video = document.createElement("video");
189
- video.src = url;
190
- video.muted = true;
191
- video.loop = true;
192
- video.playsInline = true;
193
- video.autoplay = true;
194
- const sink = ensureAnimatedImageSink();
195
- video.style.position = "absolute";
196
- video.style.left = "-99999px";
197
- video.style.top = "-99999px";
198
- video.style.width = "1px";
199
- video.style.height = "1px";
200
- sink.appendChild(video);
214
+ const video = createHiddenLoopingVideo(url);
201
215
  await new Promise((resolve) => {
202
216
  const done = () => {
203
217
  resolve();
@@ -205,8 +219,8 @@ export const videoFileDropHandler = {
205
219
  video.onloadedmetadata = done;
206
220
  video.onerror = done;
207
221
  });
208
- const nW = video.videoWidth || 480;
209
- const nH = video.videoHeight || 270;
222
+ const nW = video.videoWidth || VIDEO_FALLBACK_WIDTH_PX;
223
+ const nH = video.videoHeight || VIDEO_FALLBACK_HEIGHT_PX;
210
224
  const max = DEFAULT_IMAGE_MAX_EDGE_PX;
211
225
  const scale = Math.max(nW, nH) > max ? max / Math.max(nW, nH) : 1;
212
226
  const width = Math.round(nW * scale);
@@ -227,6 +241,7 @@ export const videoFileDropHandler = {
227
241
  position: topLeft,
228
242
  image: video,
229
243
  animated: true,
244
+ fileId,
230
245
  });
231
246
  },
232
247
  };
@@ -1 +1 @@
1
- {"version":3,"file":"built-in-handlers.js","sourceRoot":"","sources":["../src/built-in-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"built-in-handlers.js","sourceRoot":"","sources":["../src/built-in-handlers.ts"],"names":[],"mappings":"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"}
@@ -463,6 +463,85 @@ export declare const DEFAULT_BRUSH_OPACITY = 1;
463
463
  * vertices per stroke. Range: 2–8.
464
464
  */
465
465
  export declare const BRUSH_SMOOTH_SEGMENTS = 4;
466
+ /**
467
+ * Input-time low-pass (streamline) strength for brush capture, 0-0.9. Each
468
+ * pointer-move stores a point pulled only `1 - BRUSH_STREAMLINE` of the way
469
+ * from the previous stored point toward the raw sample, filtering hand jitter
470
+ * and sensor noise into a steady line. 0 = raw input (off); higher = steadier
471
+ * but laggier (the commit-time catch-up point hides the lag at the stroke
472
+ * end). Range: 0.3-0.7.
473
+ */
474
+ export declare const BRUSH_STREAMLINE = 0.5;
475
+ /**
476
+ * Per-sample lerp rate (0-1) toward the target pressure while capturing a
477
+ * brush stroke — rate-limits pressure changes so a single outlier sample (pen
478
+ * lift-off spike, sudden speed jump on mouse) can't kink the width profile.
479
+ * 1 = follow instantly (off); lower = smoother but slower to adapt. 0.3 keeps
480
+ * the width felt-tip steady. Range: 0.2-0.7.
481
+ */
482
+ export declare const BRUSH_PRESSURE_SMOOTHING = 0.3;
483
+ /**
484
+ * Screen-pixel distance per pointer sample at which SIMULATED pressure (mouse /
485
+ * touch — no real pressure channel) bottoms out. Standing still targets full
486
+ * pressure (thick); moving this fast per sample targets the minimum (thin) —
487
+ * the "slower = thicker" response. Measured in screen px so the feel is
488
+ * zoom-independent. 32 keeps the speed response gentle (marker-like); halve it
489
+ * for a livelier calligraphic feel. Range: 8-48.
490
+ */
491
+ export declare const BRUSH_SIM_THIN_DIST_PX = 32;
492
+ /**
493
+ * Floor for simulated brush pressure (0-1) — the width multiplier a fast
494
+ * mouse / touch stroke converges to (`× base width`). Together with
495
+ * BRUSH_SIM_PRESSURE_MAX it sets the width band of a simulated stroke: a
496
+ * narrow band (0.55-0.7, the default) reads as a felt-tip marker; widen it
497
+ * (e.g. 0.25-0.8) for a pen-like thin-thick response. Range: 0.15-0.7.
498
+ */
499
+ export declare const BRUSH_SIM_PRESSURE_MIN = 0.55;
500
+ /**
501
+ * Ceiling for simulated brush pressure (0-1) — the width multiplier a slow /
502
+ * stationary mouse or touch stroke converges to (`× base width`). Without a
503
+ * ceiling a slow stroke fattens all the way to the full base width, which
504
+ * reads too thick next to the medium-speed line. See BRUSH_SIM_PRESSURE_MIN
505
+ * for the band the two clamps form. Real pen pressure is not clamped.
506
+ * Range: 0.6-1.
507
+ */
508
+ export declare const BRUSH_SIM_PRESSURE_MAX = 0.7;
509
+ /**
510
+ * Initial simulated pressure (0-1) for the first sample of a mouse / touch
511
+ * stroke. A felt-tip touches the paper at full width, so it starts at the
512
+ * BRUSH_SIM_PRESSURE_MAX ceiling and thins as the stroke speeds up. Keep
513
+ * within the [MIN, MAX] clamp band. Range: 0.4-0.7.
514
+ */
515
+ export declare const BRUSH_SIM_PRESSURE_START = 0.7;
516
+ /**
517
+ * Minimum SCREEN-pixel displacement of the raw input before a new brush point
518
+ * is stored — decimation of near-duplicate pointer samples (120 Hz devices
519
+ * emit far more moves than a stroke needs). Skipped samples still update the
520
+ * commit catch-up point. Smaller = denser capture; larger = coarser but
521
+ * cheaper strokes. Range: 1-4.
522
+ */
523
+ export declare const BRUSH_MIN_POINT_DIST_PX = 1.5;
524
+ /**
525
+ * Soft cap on captured brush points per stroke. When capture exceeds it, the
526
+ * stroke's interior points are halved (endpoints kept), bounding memory and
527
+ * render cost on very long strokes — each halving doubles the remaining
528
+ * capacity instead of stopping the stroke. Range: 1024-8192.
529
+ */
530
+ export declare const MAX_BRUSH_POINTS = 2048;
531
+ /**
532
+ * Length of the end taper of a brush stroke, as a multiple of the base
533
+ * half-width — arc length from each tip over which the width eases down.
534
+ * Capped at half the stroke length so short strokes stay symmetric. 0 (the
535
+ * default) disables tapering: blunt round caps, the felt-tip marker look.
536
+ * Set 2-5 for pen-like ends that trail off to a point. Range: 0-5.
537
+ */
538
+ export declare const BRUSH_TAPER_LENGTH_FACTOR = 0;
539
+ /**
540
+ * Width factor at the very tip of a tapered brush stroke (0-1 of the captured
541
+ * width) — the tip converges to this instead of a full-width round cap,
542
+ * mimicking a pen lifting off. Range: 0.05-0.3.
543
+ */
544
+ export declare const BRUSH_TAPER_MIN = 0.1;
466
545
  /**
467
546
  * World-pixel distance under which a brush stroke's last point is treated as
468
547
  * meeting its first — the trigger for auto-closing (and filling) a stroke on
@@ -561,6 +640,13 @@ export declare const LASER_SMOOTH_SEGMENTS = 8;
561
640
  * register their own.
562
641
  */
563
642
  export declare const DEFAULT_IMAGE_MAX_EDGE_PX = 480;
643
+ /**
644
+ * Placeholder size (world px, 16:9) for a dropped video whose metadata never
645
+ * loads (`videoWidth`/`videoHeight` = 0 — unsupported codec, aborted load).
646
+ * Only affects the created element's initial box. Range: 160×90 – 960×540.
647
+ */
648
+ export declare const VIDEO_FALLBACK_WIDTH_PX = 480;
649
+ export declare const VIDEO_FALLBACK_HEIGHT_PX = 270;
564
650
  /**
565
651
  * Adaptive animation-tick throttling (GIF / video playback). The tick
566
652
  * drives a full re-render every frame while an animated shape is
@@ -708,4 +794,11 @@ export declare const CROP_HANDLE_HIT_RADIUS = 11;
708
794
  export declare const CROP_GHOST_OPACITY = 0.12;
709
795
  export declare const CROP_BRACKET_LEN = 14;
710
796
  export declare const CROP_BRACKET_WIDTH = 3;
797
+ /**
798
+ * Snap radius (screen px) of the caption drag: while the pill's arc-length
799
+ * position is within this distance of the path middle, the explicit
800
+ * `label.position` is dropped and the label returns to its default placement
801
+ * (midpoint / elbow longest-segment). Range: 4–16.
802
+ */
803
+ export declare const LINK_LABEL_DRAG_SNAP_PX = 8;
711
804
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -474,6 +474,85 @@ export const DEFAULT_BRUSH_OPACITY = 1;
474
474
  * vertices per stroke. Range: 2–8.
475
475
  */
476
476
  export const BRUSH_SMOOTH_SEGMENTS = 4;
477
+ /**
478
+ * Input-time low-pass (streamline) strength for brush capture, 0-0.9. Each
479
+ * pointer-move stores a point pulled only `1 - BRUSH_STREAMLINE` of the way
480
+ * from the previous stored point toward the raw sample, filtering hand jitter
481
+ * and sensor noise into a steady line. 0 = raw input (off); higher = steadier
482
+ * but laggier (the commit-time catch-up point hides the lag at the stroke
483
+ * end). Range: 0.3-0.7.
484
+ */
485
+ export const BRUSH_STREAMLINE = 0.5;
486
+ /**
487
+ * Per-sample lerp rate (0-1) toward the target pressure while capturing a
488
+ * brush stroke — rate-limits pressure changes so a single outlier sample (pen
489
+ * lift-off spike, sudden speed jump on mouse) can't kink the width profile.
490
+ * 1 = follow instantly (off); lower = smoother but slower to adapt. 0.3 keeps
491
+ * the width felt-tip steady. Range: 0.2-0.7.
492
+ */
493
+ export const BRUSH_PRESSURE_SMOOTHING = 0.3;
494
+ /**
495
+ * Screen-pixel distance per pointer sample at which SIMULATED pressure (mouse /
496
+ * touch — no real pressure channel) bottoms out. Standing still targets full
497
+ * pressure (thick); moving this fast per sample targets the minimum (thin) —
498
+ * the "slower = thicker" response. Measured in screen px so the feel is
499
+ * zoom-independent. 32 keeps the speed response gentle (marker-like); halve it
500
+ * for a livelier calligraphic feel. Range: 8-48.
501
+ */
502
+ export const BRUSH_SIM_THIN_DIST_PX = 32;
503
+ /**
504
+ * Floor for simulated brush pressure (0-1) — the width multiplier a fast
505
+ * mouse / touch stroke converges to (`× base width`). Together with
506
+ * BRUSH_SIM_PRESSURE_MAX it sets the width band of a simulated stroke: a
507
+ * narrow band (0.55-0.7, the default) reads as a felt-tip marker; widen it
508
+ * (e.g. 0.25-0.8) for a pen-like thin-thick response. Range: 0.15-0.7.
509
+ */
510
+ export const BRUSH_SIM_PRESSURE_MIN = 0.55;
511
+ /**
512
+ * Ceiling for simulated brush pressure (0-1) — the width multiplier a slow /
513
+ * stationary mouse or touch stroke converges to (`× base width`). Without a
514
+ * ceiling a slow stroke fattens all the way to the full base width, which
515
+ * reads too thick next to the medium-speed line. See BRUSH_SIM_PRESSURE_MIN
516
+ * for the band the two clamps form. Real pen pressure is not clamped.
517
+ * Range: 0.6-1.
518
+ */
519
+ export const BRUSH_SIM_PRESSURE_MAX = 0.7;
520
+ /**
521
+ * Initial simulated pressure (0-1) for the first sample of a mouse / touch
522
+ * stroke. A felt-tip touches the paper at full width, so it starts at the
523
+ * BRUSH_SIM_PRESSURE_MAX ceiling and thins as the stroke speeds up. Keep
524
+ * within the [MIN, MAX] clamp band. Range: 0.4-0.7.
525
+ */
526
+ export const BRUSH_SIM_PRESSURE_START = 0.7;
527
+ /**
528
+ * Minimum SCREEN-pixel displacement of the raw input before a new brush point
529
+ * is stored — decimation of near-duplicate pointer samples (120 Hz devices
530
+ * emit far more moves than a stroke needs). Skipped samples still update the
531
+ * commit catch-up point. Smaller = denser capture; larger = coarser but
532
+ * cheaper strokes. Range: 1-4.
533
+ */
534
+ export const BRUSH_MIN_POINT_DIST_PX = 1.5;
535
+ /**
536
+ * Soft cap on captured brush points per stroke. When capture exceeds it, the
537
+ * stroke's interior points are halved (endpoints kept), bounding memory and
538
+ * render cost on very long strokes — each halving doubles the remaining
539
+ * capacity instead of stopping the stroke. Range: 1024-8192.
540
+ */
541
+ export const MAX_BRUSH_POINTS = 2048;
542
+ /**
543
+ * Length of the end taper of a brush stroke, as a multiple of the base
544
+ * half-width — arc length from each tip over which the width eases down.
545
+ * Capped at half the stroke length so short strokes stay symmetric. 0 (the
546
+ * default) disables tapering: blunt round caps, the felt-tip marker look.
547
+ * Set 2-5 for pen-like ends that trail off to a point. Range: 0-5.
548
+ */
549
+ export const BRUSH_TAPER_LENGTH_FACTOR = 0;
550
+ /**
551
+ * Width factor at the very tip of a tapered brush stroke (0-1 of the captured
552
+ * width) — the tip converges to this instead of a full-width round cap,
553
+ * mimicking a pen lifting off. Range: 0.05-0.3.
554
+ */
555
+ export const BRUSH_TAPER_MIN = 0.1;
477
556
  /**
478
557
  * World-pixel distance under which a brush stroke's last point is treated as
479
558
  * meeting its first — the trigger for auto-closing (and filling) a stroke on
@@ -572,6 +651,13 @@ export const LASER_SMOOTH_SEGMENTS = 8;
572
651
  * register their own.
573
652
  */
574
653
  export const DEFAULT_IMAGE_MAX_EDGE_PX = 480;
654
+ /**
655
+ * Placeholder size (world px, 16:9) for a dropped video whose metadata never
656
+ * loads (`videoWidth`/`videoHeight` = 0 — unsupported codec, aborted load).
657
+ * Only affects the created element's initial box. Range: 160×90 – 960×540.
658
+ */
659
+ export const VIDEO_FALLBACK_WIDTH_PX = 480;
660
+ export const VIDEO_FALLBACK_HEIGHT_PX = 270;
575
661
  /**
576
662
  * Adaptive animation-tick throttling (GIF / video playback). The tick
577
663
  * drives a full re-render every frame while an animated shape is
@@ -719,4 +805,11 @@ export const CROP_HANDLE_HIT_RADIUS = 11;
719
805
  export const CROP_GHOST_OPACITY = 0.12;
720
806
  export const CROP_BRACKET_LEN = 14;
721
807
  export const CROP_BRACKET_WIDTH = 3;
808
+ /**
809
+ * Snap radius (screen px) of the caption drag: while the pill's arc-length
810
+ * position is within this distance of the path middle, the explicit
811
+ * `label.position` is dropped and the label returns to its default placement
812
+ * (midpoint / elbow longest-segment). Range: 4–16.
813
+ */
814
+ export const LINK_LABEL_DRAG_SNAP_PX = 8;
722
815
  //# sourceMappingURL=constants.js.map