@docmentis/udoc-editor 0.8.4 → 0.8.6

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.
@@ -93,9 +93,10 @@ export declare class EditClient {
93
93
  */
94
94
  insertImage(bytes: Uint8Array, contentType: string): Promise<DocumentLayout>;
95
95
  /**
96
- * Where geometry handle `index` of the selection lands if dragged to
97
- * `(x, y)` — a point in that handle's **own local space** (the space the
98
- * streamed handle's `point` is in), not CSS px.
96
+ * Where handle `index` of the selection lands if dragged to `(x, y)` — the
97
+ * shape's text warp's handle when `textWarp`, as the streamed handle says,
98
+ * else its outline's — with `(x, y)` a point in that handle's **own local
99
+ * space** (the space the streamed handle's `point` is in), not CSS px.
99
100
  *
100
101
  * A handle travels the track its geometry describes and stops at the ends of
101
102
  * its range, so this is what a live drag draws: the position the release will
@@ -104,7 +105,7 @@ export declare class EditClient {
104
105
  * selection offers none. Cheap enough to call per pointer-move; the caller
105
106
  * coalesces it latest-wins, like the client's `hitTest`.
106
107
  */
107
- selectionHandlePreview(index: number, x: number, y: number): Promise<SelectionHandle | null>;
108
+ selectionHandlePreview(textWarp: boolean, index: number, x: number, y: number): Promise<SelectionHandle | null>;
108
109
  /**
109
110
  * Every slide master, summarized for the New-Slide picker: its id, its
110
111
  * slide layouts' ids (each at page `1 + index` within the slide master's
@@ -1 +1 @@
1
- {"version":3,"file":"edit-client.d.ts","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,0EAA0E;AAC1E,qBAAa,UAAU;;gBAGP,MAAM,EAAE,YAAY;IAehC;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAI5C;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;;;;;OAQG;IACH,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C;;;;;;;OAOG;IACH,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIrC;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAWnC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM5E;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI5F;;;;;;OAMG;IACH,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAGvD;AAED,mFAAmF;AACnF,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B"}
1
+ {"version":3,"file":"edit-client.d.ts","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC5G,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,0EAA0E;AAC1E,qBAAa,UAAU;;gBAGP,MAAM,EAAE,YAAY;IAehC;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI1C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIxC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI;IAIrC;;;;;OAKG;IACH,YAAY,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAI5C;;;;;;;;;;;OAWG;IACH,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAInD;;;;;;;;OAQG;IACH,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI1C;;;;;;;OAOG;IACH,YAAY,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAIrC;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAWnC;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;IAItD;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAM5E;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAI/G;;;;;;OAMG;IACH,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAGvD;AAED,mFAAmF;AACnF,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B"}
@@ -126,9 +126,10 @@ export class EditClient {
126
126
  return this.#request({ type: "insertImage", bytes: buffer, contentType }, { transfer: [buffer] });
127
127
  }
128
128
  /**
129
- * Where geometry handle `index` of the selection lands if dragged to
130
- * `(x, y)` — a point in that handle's **own local space** (the space the
131
- * streamed handle's `point` is in), not CSS px.
129
+ * Where handle `index` of the selection lands if dragged to `(x, y)` — the
130
+ * shape's text warp's handle when `textWarp`, as the streamed handle says,
131
+ * else its outline's — with `(x, y)` a point in that handle's **own local
132
+ * space** (the space the streamed handle's `point` is in), not CSS px.
132
133
  *
133
134
  * A handle travels the track its geometry describes and stops at the ends of
134
135
  * its range, so this is what a live drag draws: the position the release will
@@ -137,8 +138,8 @@ export class EditClient {
137
138
  * selection offers none. Cheap enough to call per pointer-move; the caller
138
139
  * coalesces it latest-wins, like the client's `hitTest`.
139
140
  */
140
- selectionHandlePreview(index, x, y) {
141
- return this.#request({ type: "selectionHandlePreview", index, x, y });
141
+ selectionHandlePreview(textWarp, index, x, y) {
142
+ return this.#request({ type: "selectionHandlePreview", textWarp, index, x, y });
142
143
  }
143
144
  /**
144
145
  * Every slide master, summarized for the New-Slide picker: its id, its
@@ -1 +1 @@
1
- {"version":3,"file":"edit-client.js","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"AAOA,0EAA0E;AAC1E,MAAM,OAAO,UAAU;IACV,OAAO,CAAe;IAE/B,YAAY,MAAoB;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAC1B,CAAC;IAED,QAAQ,CACJ,OAAoB,EACpB,OAAoF;QAEpF,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAoB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAgB;QAC/B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,EAAW;QAC1B,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;OAQG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CACb,MAAc,EACd,IAAa,EACb,MAAe,EACf,IAAY,EACZ,IAAY;QAEZ,OAAO,IAAI,CAAC,QAAQ,CAAC;YACjB,IAAI,EAAE,mBAAmB;YACzB,MAAM;YACN,IAAI;YACJ,MAAM;YACN,IAAI;YACJ,IAAI;SACP,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAsB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAiB,EAAE,WAAmB;QAC9C,uEAAuE;QACvE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,KAAa,EAAE,CAAS,EAAE,CAAS;QACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACH,mBAAmB;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC1D,CAAC;CACJ"}
1
+ {"version":3,"file":"edit-client.js","sourceRoot":"","sources":["../src/edit-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"edit-mode.d.ts","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAQ5C,6FAA6F;AAC7F,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,8EAA8E;IAC9E,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,kEAAkE;IAClE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,wDAAwD;IACxD,WAAW,IAAI,UAAU,CAAC;IAC1B,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,uEAAuE;IACvE,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAwGD,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAqG7D"}
1
+ {"version":3,"file":"edit-mode.d.ts","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAsBrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAS5C,6FAA6F;AAC7F,MAAM,WAAW,QAAS,SAAQ,WAAW;IACzC,8EAA8E;IAC9E,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,kEAAkE;IAClE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,wDAAwD;IACxD,WAAW,IAAI,UAAU,CAAC;IAC1B,kDAAkD;IAClD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,uEAAuE;IACvE,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAyGD,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,QAAQ,CAsG7D"}
package/dist/edit-mode.js CHANGED
@@ -14,7 +14,8 @@ import { mountNewSlide, newSlideCommand } from "./new-slide.js";
14
14
  import { mountPageControls, PAGE_CONTROLS_SPACING, pageControlsShown } from "./page-controls.js";
15
15
  import { ALL_MODES, EDIT_MODE } from "./mode.js";
16
16
  import { editState, INITIAL_EDIT_STATE, updateEditState } from "./state.js";
17
- import { RULER, rulerShown, setShowRuler } from "./ruler.js";
17
+ import { createRuler, rulerShown, setShowRuler } from "./ruler.js";
18
+ import { selectionRuler } from "./ruler-edits.js";
18
19
  import { editorStyles } from "./styles.js";
19
20
  import { editTabs } from "./tabs.js";
20
21
  import { createEditTools } from "./tools.js";
@@ -69,6 +70,7 @@ function mountDocumentState(host) {
69
70
  client.onSelection((state) => updateEditState(store, {
70
71
  selectionText: selectionTextFormat(state.properties),
71
72
  selectionPaint: selectionPaint(state.properties),
73
+ selectionRuler: selectionRuler(state.properties),
72
74
  })),
73
75
  ];
74
76
  return () => {
@@ -116,6 +118,7 @@ export function editMode(options) {
116
118
  let tools = null;
117
119
  let newSlide = null;
118
120
  const grips = createGrips(() => tools);
121
+ const ruler = createRuler(() => host);
119
122
  const mountedTools = () => {
120
123
  if (!tools)
121
124
  throw new Error("udoc: edit mode is not mounted");
@@ -154,7 +157,7 @@ export function editMode(options) {
154
157
  // Edit mode's acts on the selection, a table's rows added over one; view
155
158
  // mode keeps the shell's.
156
159
  contextMenuItems: (state, inTable) => (editing(state) ? (inTable ? TABLE_CONTEXT_MENU : CONTEXT_MENU) : null),
157
- guideBand: (state) => (rulerShown(state) ? RULER : null),
160
+ guideBand: (state) => (rulerShown(state) ? ruler : null),
158
161
  placedShape,
159
162
  selectionChrome: grips.chrome,
160
163
  pressCanvas: (x, y, _ev, canvas) => grips.press(x, y, canvas),
@@ -1 +1 @@
1
- {"version":3,"file":"edit-mode.js","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit-mode.js","sourceRoot":"","sources":["../src/edit-mode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"grips.d.ts","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAER,aAAa,EACb,iBAAiB,EAGjB,eAAe,EAGlB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA0H5C,mFAAmF;AACnF,MAAM,WAAW,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC;sBACkB;IAClB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,aAAa,GAAG,IAAI,CAAC;IAC7E,0EAA0E;IAC1E,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CA2WhE"}
1
+ {"version":3,"file":"grips.d.ts","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAER,aAAa,EACb,iBAAiB,EAGjB,eAAe,EAGlB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA6H5C,mFAAmF;AACnF,MAAM,WAAW,KAAK;IAClB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC;sBACkB;IAClB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,aAAa,GAAG,IAAI,CAAC;IAC7E,0EAA0E;IAC1E,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC/C;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CA8WhE"}
package/dist/grips.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // Edit mode's grips on the selection: a rotation grip above each selected box,
2
2
  // and the geometry grips (yellow diamonds) a lone shape offers — a rounded
3
- // rectangle's corner, an arrow's head. udoc-ui's selection layer draws them
3
+ // rectangle's corner, an arrow's head, its text warp's sweep. udoc-ui's
4
+ // selection layer draws them
4
5
  // beside its resize handles (`SelectionChrome`), and the canvas hands a press on
5
6
  // one to the gesture this runs (`UIExtension.pressCanvas`).
6
7
  import { allowsEdit, applyPoint, DRAG_THRESHOLD, fromComponents, invert } from "@docmentis/udoc-ui/internal";
@@ -121,7 +122,7 @@ export function createGrips(tools) {
121
122
  const preview = handlePreview;
122
123
  if (!preview)
123
124
  return handles;
124
- return handles.map((handle) => (handle.index === preview.index ? preview : handle));
125
+ return handles.map((handle) => handle.textWarp === preview.textWarp && handle.index === preview.index ? preview : handle);
125
126
  }
126
127
  /**
127
128
  * The grabbed adjust handle if `(x, y)` (viewport CSS px, canvas-relative)
@@ -145,14 +146,16 @@ export function createGrips(tools) {
145
146
  continue;
146
147
  const c = applyPoint(lv, handle.point.x, handle.point.y);
147
148
  if (Math.abs(x - c.x) <= ADJUST_HIT && Math.abs(y - c.y) <= ADJUST_HIT) {
148
- return { index: handle.index, page: handle.page, transform };
149
+ return { textWarp: handle.textWarp, index: handle.index, page: handle.page, transform };
149
150
  }
150
151
  }
151
152
  return null;
152
153
  }
153
154
  /**
154
- * Where `(x, y)` (viewport CSS px) lands in the grabbed shape's **own local
155
- * space** — the space an `adjustShapeHandle` edit names its target in.
155
+ * Where `(x, y)` (viewport CSS px) lands in the grabbed handle's **own local
156
+ * space** — the shape's, or for a text warp's handle its text rect's — the
157
+ * space an `adjustShapeHandle` / `adjustTextWarpHandle` edit names its
158
+ * target in.
156
159
  *
157
160
  * The projection the diamond was drawn through, run backwards: the drag is
158
161
  * expressed where the geometry is defined, so the engine solves against the
@@ -384,7 +387,7 @@ export function createGrips(tools) {
384
387
  return;
385
388
  probeBusy = true;
386
389
  const seq = ++probeSeq;
387
- void edit.selectionHandlePreview(grab.index, to.x, to.y).then((handle) => {
390
+ void edit.selectionHandlePreview(grab.textWarp, grab.index, to.x, to.y).then((handle) => {
388
391
  probeBusy = false;
389
392
  if (seq === probeSeq && live && handlePreview !== handle) {
390
393
  handlePreview = handle;
@@ -430,7 +433,8 @@ export function createGrips(tools) {
430
433
  // other drags — the engine resolves which shape and solves the
431
434
  // adjust value the drag implies.
432
435
  canvas.committing();
433
- void host.commit(() => host.client.executeOnSelection({ kind: "adjustShapeHandle", index: grab.index, to }));
436
+ const kind = grab.textWarp ? "adjustTextWarpHandle" : "adjustShapeHandle";
437
+ void host.commit(() => host.client.executeOnSelection({ kind, index: grab.index, to }));
434
438
  },
435
439
  cancel() {
436
440
  // Nothing was committed, so the preview has nothing to settle onto.
package/dist/grips.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"grips.js","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grips.js","sourceRoot":"","sources":["../src/grips.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { RulerAxis, RulerText } from "@docmentis/udoc-wasm";
2
+ /** A margin's edge: the text area's side it bounds. */
3
+ export type RulerEdge = "left" | "top" | "right" | "bottom";
4
+ /** An indent marker, as Word's ruler names them. */
5
+ export type RulerIndent = "firstLine" | "hanging" | "left" | "right";
6
+ /** Which of the ruler's controls — a margin's edge, an indent marker, or the
7
+ * tab stop at `index` in the guide's list. */
8
+ export type RulerControl = {
9
+ readonly kind: "margin";
10
+ readonly edge: RulerEdge;
11
+ } | {
12
+ readonly kind: "indent";
13
+ readonly indent: RulerIndent;
14
+ } | {
15
+ readonly kind: "tab";
16
+ readonly index: number;
17
+ };
18
+ /** A control dropped `by` points along its ruler from where the guide put it. */
19
+ export interface RulerDrop {
20
+ readonly control: RulerControl;
21
+ readonly by: number;
22
+ }
23
+ /** One ruler, as the guide places the controls along it this frame. */
24
+ export interface RulerPlacement {
25
+ /** The layer over the ruler's strip the controls stand in. */
26
+ readonly layer: HTMLElement;
27
+ /** The layer over the content pane a drag along the ruler draws its line
28
+ * across, measured along the ruler as the strip is. */
29
+ readonly pane: HTMLElement;
30
+ /** What the ruler measures, in points from its origin. */
31
+ readonly axis: RulerAxis;
32
+ /** Where the ruler's zero falls along the strip, CSS px, and the CSS px a
33
+ * point spans — what a drag measures its points by. */
34
+ readonly origin: number;
35
+ readonly scale: number;
36
+ /** Where `points` from the origin falls along the strip, CSS px — on the
37
+ * tick there. */
38
+ readonly at: (points: number) => number;
39
+ }
40
+ /** The ruler's controls. */
41
+ export interface RulerControls {
42
+ /**
43
+ * Stand the controls where the guide places them — the margins' edges along
44
+ * each ruler, `text`'s indent markers and tab stops along the horizontal
45
+ * one — and hide those it places nowhere. A ruler whose strip collapsed is
46
+ * null. Those `movable` refuses stay put under a press.
47
+ */
48
+ place(horizontal: RulerPlacement | null, vertical: RulerPlacement | null, text: RulerText | null, movable: (control: RulerControl) => boolean): void;
49
+ }
50
+ /** The ruler's controls for a ruler `thickness` CSS px deep, handing what a
51
+ * drop moved to `drop` — the edit it sends, settling when that is done, or
52
+ * `null` for none, which returns the controls to where they stood. */
53
+ export declare function createRulerControls(thickness: number, drop: (drop: RulerDrop) => Promise<unknown> | null): RulerControls;
54
+ //# sourceMappingURL=ruler-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruler-controls.d.ts","sourceRoot":"","sources":["../src/ruler-controls.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAiB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAgChF,uDAAuD;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5D,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE;+CAC+C;AAC/C,MAAM,MAAM,YAAY,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACvB;AAED,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B;4DACwD;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB;4DACwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;sBACkB;IAClB,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAED,4BAA4B;AAC5B,MAAM,WAAW,aAAa;IAC1B;;;;;OAKG;IACH,KAAK,CACD,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,IAAI,EAAE,SAAS,GAAG,IAAI,EACtB,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,GAC5C,IAAI,CAAC;CACX;AAyED;;uEAEuE;AACvE,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,GACnD,aAAa,CAsNf"}
@@ -0,0 +1,270 @@
1
+ const SVG_NS = "http://www.w3.org/2000/svg";
2
+ /** Half the width of an indent marker's box, and of a tab stop's, CSS px: each
3
+ * shape is drawn about its box's middle pixel, so its 1px strokes fall whole
4
+ * on pixels. */
5
+ const INDENT_HALF = 5.5;
6
+ const TAB_HALF = 4.5;
7
+ /** The depth of the left indent's box, CSS px. */
8
+ const INDENT_BOX = 5;
9
+ /** Half the width of the strip a margin's edge is grabbed by, CSS px. */
10
+ const EDGE_HALF = 3.5;
11
+ /** What a drag snaps to, in points: a sixteenth of an inch from the ruler's
12
+ * zero, as Word's ruler does. */
13
+ const SNAP = 72 / 16;
14
+ /** How long the controls a drop left hold where it left them with no frame
15
+ * arriving after its edit, ms — they settle on the next frame otherwise. */
16
+ const HOLD = 500;
17
+ /** A tab stop's mark by its alignment, as Word's: a stem, and a foot running
18
+ * the way the text runs from the stop — right of a left stop, left of a right
19
+ * one, both ways under a center or a decimal one — or for a bar, the stem
20
+ * alone. A decimal stop adds its point beside the stem. */
21
+ const TAB_MARKS = {
22
+ left: "M4.5 0V6M4.5 5.5H8",
23
+ center: "M4.5 0V6M1 5.5H8",
24
+ right: "M4.5 0V6M1 5.5H4.5",
25
+ decimal: "M4.5 0V6M1 5.5H8",
26
+ bar: "M4.5 0V6",
27
+ };
28
+ /** An SVG `width` × `height` CSS px in `el`, its one path drawn by `d`. */
29
+ function svg(el, width, height, d) {
30
+ const s = document.createElementNS(SVG_NS, "svg");
31
+ s.setAttribute("width", String(width));
32
+ s.setAttribute("height", String(height));
33
+ const path = document.createElementNS(SVG_NS, "path");
34
+ path.setAttribute("d", d);
35
+ s.append(path);
36
+ el.append(s);
37
+ return path;
38
+ }
39
+ /** Move `c` to `at` along its ruler. */
40
+ function move(c, at) {
41
+ if (c.orient === "h")
42
+ c.el.style.left = `${at - c.half}px`;
43
+ else
44
+ c.el.style.top = `${at - c.half}px`;
45
+ }
46
+ /** Return `c` to where the guide placed it, or hide it where it placed it nowhere. */
47
+ function settle(c) {
48
+ c.el.style.display = c.home === null ? "none" : "";
49
+ if (c.home !== null)
50
+ move(c, c.home);
51
+ }
52
+ /** The ruler's controls for a ruler `thickness` CSS px deep, handing what a
53
+ * drop moved to `drop` — the edit it sends, settling when that is done, or
54
+ * `null` for none, which returns the controls to where they stood. */
55
+ export function createRulerControls(thickness, drop) {
56
+ let drag = null;
57
+ /** The controls a drop left where it left them, until its edit is done. */
58
+ let held = new Set();
59
+ /** Whether that edit is done, so the next frame settles them. */
60
+ let released = false;
61
+ /** Make control `name` of `className`, and let a drag take it. */
62
+ const control = (name, className, orient, half) => {
63
+ const el = document.createElement("div");
64
+ el.className = `udoc-ui__ruler-control ${className}`;
65
+ const c = { el, name, orient, half, ruler: null, points: null, home: null, page: null };
66
+ grab(c);
67
+ return c;
68
+ };
69
+ /** A margin's `edge`: the strip it is grabbed by, the full depth of its
70
+ * ruler, over the line the band's canvas draws for it. */
71
+ const edge = (edge) => {
72
+ const orient = edge === "left" || edge === "right" ? "h" : "v";
73
+ return control({ kind: "margin", edge }, `udoc-ui__ruler-edge udoc-ui__ruler-edge--${orient}`, orient, EDGE_HALF);
74
+ };
75
+ /** Indent marker `indent` drawn by `d`, in a box the full depth of the
76
+ * ruler that takes a press only on the shape — the edge under it takes the
77
+ * rest. */
78
+ const indent = (indent, d) => {
79
+ const c = control({ kind: "indent", indent }, "udoc-ui__ruler-marker udoc-ui__ruler-marker--indent", "h", INDENT_HALF);
80
+ svg(c.el, INDENT_HALF * 2, thickness, d);
81
+ return c;
82
+ };
83
+ /** The tab stop at `index`, its mark's foot level with the hanging indent's
84
+ * base. */
85
+ const tab = (index) => {
86
+ const c = control({ kind: "tab", index }, "udoc-ui__ruler-marker udoc-ui__ruler-marker--tab", "h", TAB_HALF);
87
+ c.el.style.top = `${thickness - 12}px`;
88
+ const mark = svg(c.el, TAB_HALF * 2, 6, TAB_MARKS.left);
89
+ const point = document.createElementNS(SVG_NS, "rect");
90
+ point.setAttribute("x", "6");
91
+ point.setAttribute("y", "2");
92
+ point.setAttribute("width", "1");
93
+ point.setAttribute("height", "1");
94
+ mark.after(point);
95
+ return { control: c, mark, point };
96
+ };
97
+ // The margins' edges come first, so the markers standing on one take a
98
+ // press on their shapes, and the edge the press beside them.
99
+ const leftMargin = edge("left");
100
+ const rightMargin = edge("right");
101
+ const topMargin = edge("top");
102
+ const bottomMargin = edge("bottom");
103
+ // The left indent's box sits a pixel above the ruler's baseline, the
104
+ // hanging indent's triangle stands on it, and the first-line indent's hangs
105
+ // from the outer edge to meet it tip to tip; the right indent's stands
106
+ // level with the hanging indent's.
107
+ const floor = thickness - 1.5;
108
+ const base = floor - INDENT_BOX;
109
+ const tip = (base + 0.5) / 2;
110
+ const right = INDENT_HALF * 2 - 0.5;
111
+ const standing = `M0.5 ${base}L${INDENT_HALF} ${tip}L${right} ${base}Z`;
112
+ const firstLine = indent("firstLine", `M0.5 0.5H${right}L${INDENT_HALF} ${tip}Z`);
113
+ const hanging = indent("hanging", standing);
114
+ const leftIndent = indent("left", `M0.5 ${base}H${right}V${floor}H0.5Z`);
115
+ const rightIndent = indent("right", standing);
116
+ const tabs = [];
117
+ /** The dashed line a drag draws across the content pane at the pressed
118
+ * control — down from the horizontal ruler, across from the vertical. */
119
+ const line = document.createElement("div");
120
+ line.style.display = "none";
121
+ /** Draw the drag's line at `at` along `c`'s ruler, or with null, clear it. */
122
+ function drawLine(c, at) {
123
+ line.style.display = at === null ? "none" : "";
124
+ if (at === null)
125
+ return;
126
+ line.className = `udoc-ui__ruler-guide udoc-ui__ruler-guide--${c.orient}`;
127
+ // Its 1px dash centred on the control.
128
+ line.style.left = c.orient === "h" ? `${at - 0.5}px` : "";
129
+ line.style.top = c.orient === "v" ? `${at - 0.5}px` : "";
130
+ }
131
+ /** What a drag on `c` carries, as Word's ruler does: the left indent's box
132
+ * both triangles above it, the hanging indent's triangle the box, a
133
+ * margin's edge the markers measured from it — the left the indents and
134
+ * tab stops, the right the right indent. */
135
+ function carriedBy(c) {
136
+ if (c === leftIndent)
137
+ return [firstLine, hanging, leftIndent];
138
+ if (c === hanging)
139
+ return [hanging, leftIndent];
140
+ if (c === leftMargin)
141
+ return [leftMargin, firstLine, hanging, leftIndent, ...tabs.map((t) => t.control)];
142
+ if (c === rightMargin)
143
+ return [rightMargin, rightIndent];
144
+ return [c];
145
+ }
146
+ /** Let the controls a drop held go back to where the guide stands them. */
147
+ function release() {
148
+ released = false;
149
+ const was = held;
150
+ held = new Set();
151
+ for (const c of was)
152
+ settle(c);
153
+ }
154
+ function grab(c) {
155
+ const along = (ev) => (c.orient === "h" ? ev.clientX : ev.clientY);
156
+ c.el.addEventListener("pointerdown", (ev) => {
157
+ if (drag || held.size > 0 || ev.button !== 0)
158
+ return;
159
+ if (c.home === null || c.points === null || !c.page || !c.ruler)
160
+ return;
161
+ ev.preventDefault();
162
+ ev.stopPropagation();
163
+ c.el.setPointerCapture(ev.pointerId);
164
+ const carried = carriedBy(c).flatMap((k) => (k.home === null ? [] : [{ control: k, from: k.home }]));
165
+ drag = {
166
+ pointerId: ev.pointerId,
167
+ from: along(ev),
168
+ ruler: c.ruler,
169
+ points: c.points,
170
+ home: c.home,
171
+ carried,
172
+ min: c.page.start - c.home,
173
+ max: c.page.end - c.home,
174
+ by: 0,
175
+ };
176
+ c.el.classList.add("udoc-ui__ruler-control--dragging");
177
+ drawLine(c, c.home);
178
+ });
179
+ c.el.addEventListener("pointermove", (ev) => {
180
+ if (drag?.pointerId !== ev.pointerId)
181
+ return;
182
+ const { ruler } = drag;
183
+ // Where it lands, in points from the ruler's zero — on the nearest
184
+ // sixteenth of an inch unless Alt is held.
185
+ const free = drag.points + (along(ev) - drag.from) / ruler.scale;
186
+ const to = ev.altKey ? free : Math.round(free / SNAP) * SNAP;
187
+ const target = ruler.origin + to * ruler.scale - drag.home;
188
+ const offset = Math.min(drag.max, Math.max(drag.min, target));
189
+ drag.by = offset === target ? to - drag.points : offset / ruler.scale;
190
+ // Whole device pixels, so the shapes keep their crisp strokes.
191
+ const dpr = globalThis.devicePixelRatio || 1;
192
+ const shown = Math.round(offset * dpr) / dpr;
193
+ for (const { control, from } of drag.carried)
194
+ move(control, from + shown);
195
+ drawLine(c, drag.home + shown);
196
+ });
197
+ const end = (ev) => {
198
+ if (drag?.pointerId !== ev.pointerId)
199
+ return;
200
+ const { carried, by } = drag;
201
+ drag = null;
202
+ c.el.classList.remove("udoc-ui__ruler-control--dragging");
203
+ drawLine(c, null);
204
+ // A cancelled gesture drops nothing.
205
+ const sent = by !== 0 && ev.type === "pointerup" ? drop({ control: c.name, by }) : null;
206
+ if (!sent) {
207
+ for (const { control } of carried)
208
+ settle(control);
209
+ return;
210
+ }
211
+ held = new Set(carried.map(({ control }) => control));
212
+ void sent.finally(() => {
213
+ released = true;
214
+ setTimeout(() => {
215
+ if (released)
216
+ release();
217
+ }, HOLD);
218
+ });
219
+ };
220
+ c.el.addEventListener("pointerup", end);
221
+ c.el.addEventListener("pointercancel", end);
222
+ c.el.addEventListener("lostpointercapture", end);
223
+ }
224
+ return {
225
+ place(horizontal, vertical, text, movable) {
226
+ /** The page's span along `ruler`, CSS px. */
227
+ const pageOf = (ruler) => ruler && { start: ruler.at(ruler.axis.page.start), end: ruler.at(ruler.axis.page.end) };
228
+ const pages = { h: pageOf(horizontal), v: pageOf(vertical) };
229
+ const pane = (horizontal ?? vertical)?.pane;
230
+ if (pane && line.parentElement !== pane)
231
+ pane.append(line);
232
+ /** Place `c` at `points` along `ruler`, or nowhere for none — but
233
+ * leave it where a drag carries it, or a drop left it. */
234
+ const stand = (c, ruler, points) => {
235
+ if (ruler && c.el.parentElement !== ruler.layer)
236
+ ruler.layer.append(c.el);
237
+ c.ruler = ruler;
238
+ c.points = ruler && points != null ? points : null;
239
+ c.home = ruler && points != null ? ruler.at(points) : null;
240
+ c.page = pages[c.orient];
241
+ c.el.classList.toggle("udoc-ui__ruler-control--fixed", !movable(c.name));
242
+ if (!drag?.carried.some((k) => k.control === c) && !held.has(c))
243
+ settle(c);
244
+ };
245
+ // The edit a drop sent is done, and this frame is what it brought.
246
+ if (released)
247
+ release();
248
+ stand(leftMargin, horizontal, horizontal?.axis.margins?.start);
249
+ stand(rightMargin, horizontal, horizontal?.axis.margins?.end);
250
+ stand(topMargin, vertical, vertical?.axis.margins?.start);
251
+ stand(bottomMargin, vertical, vertical?.axis.margins?.end);
252
+ stand(firstLine, horizontal, text?.firstLine);
253
+ stand(hanging, horizontal, text?.left);
254
+ stand(leftIndent, horizontal, text?.left);
255
+ stand(rightIndent, horizontal, text?.right);
256
+ const stops = text?.tabs ?? [];
257
+ while (tabs.length < stops.length)
258
+ tabs.push(tab(tabs.length));
259
+ tabs.forEach((t, i) => {
260
+ const stop = stops[i];
261
+ if (stop) {
262
+ t.mark.setAttribute("d", TAB_MARKS[stop.alignment]);
263
+ t.point.style.display = stop.alignment === "decimal" ? "" : "none";
264
+ }
265
+ stand(t.control, horizontal, stop?.position);
266
+ });
267
+ },
268
+ };
269
+ }
270
+ //# sourceMappingURL=ruler-controls.js.map