@docmentis/udoc-editor 0.8.15 → 0.8.17

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 (147) hide show
  1. package/dist/commands.d.ts.map +1 -1
  2. package/dist/commands.js +51 -9
  3. package/dist/commands.js.map +1 -1
  4. package/dist/components/PageControls.d.ts +13 -6
  5. package/dist/components/PageControls.d.ts.map +1 -1
  6. package/dist/components/PageControls.js +42 -33
  7. package/dist/components/PageControls.js.map +1 -1
  8. package/dist/components/PageSettingsModal.d.ts +0 -2
  9. package/dist/components/PageSettingsModal.d.ts.map +1 -1
  10. package/dist/components/PageSettingsModal.js +54 -56
  11. package/dist/components/PageSettingsModal.js.map +1 -1
  12. package/dist/components/{NewSlideModal.d.ts → SlideLayoutModal.d.ts} +15 -11
  13. package/dist/components/SlideLayoutModal.d.ts.map +1 -0
  14. package/dist/components/{NewSlideModal.js → SlideLayoutModal.js} +34 -18
  15. package/dist/components/SlideLayoutModal.js.map +1 -0
  16. package/dist/docmentis-theme.d.ts +4 -0
  17. package/dist/docmentis-theme.d.ts.map +1 -0
  18. package/dist/docmentis-theme.js +6 -0
  19. package/dist/docmentis-theme.js.map +1 -0
  20. package/dist/edit-client.d.ts +9 -1
  21. package/dist/edit-client.d.ts.map +1 -1
  22. package/dist/edit-client.js +10 -0
  23. package/dist/edit-client.js.map +1 -1
  24. package/dist/edit-command.d.ts +3 -1
  25. package/dist/edit-command.d.ts.map +1 -1
  26. package/dist/edit-command.js +7 -0
  27. package/dist/edit-command.js.map +1 -1
  28. package/dist/edit-mode.d.ts.map +1 -1
  29. package/dist/edit-mode.js +22 -10
  30. package/dist/edit-mode.js.map +1 -1
  31. package/dist/editor.d.ts +7 -6
  32. package/dist/editor.d.ts.map +1 -1
  33. package/dist/editor.js +6 -5
  34. package/dist/editor.js.map +1 -1
  35. package/dist/i18n/ar.js +10 -10
  36. package/dist/i18n/ar.js.map +1 -1
  37. package/dist/i18n/de.js +10 -10
  38. package/dist/i18n/de.js.map +1 -1
  39. package/dist/i18n/en.js +10 -10
  40. package/dist/i18n/en.js.map +1 -1
  41. package/dist/i18n/es.js +10 -10
  42. package/dist/i18n/es.js.map +1 -1
  43. package/dist/i18n/fr.js +10 -10
  44. package/dist/i18n/fr.js.map +1 -1
  45. package/dist/i18n/ja.js +10 -10
  46. package/dist/i18n/ja.js.map +1 -1
  47. package/dist/i18n/ko.js +10 -10
  48. package/dist/i18n/ko.js.map +1 -1
  49. package/dist/i18n/messages.d.ts +18 -18
  50. package/dist/i18n/messages.d.ts.map +1 -1
  51. package/dist/i18n/pt-BR.js +10 -10
  52. package/dist/i18n/pt-BR.js.map +1 -1
  53. package/dist/i18n/ru.js +10 -10
  54. package/dist/i18n/ru.js.map +1 -1
  55. package/dist/i18n/zh-CN.js +10 -10
  56. package/dist/i18n/zh-CN.js.map +1 -1
  57. package/dist/i18n/zh-TW.js +10 -10
  58. package/dist/i18n/zh-TW.js.map +1 -1
  59. package/dist/icons.d.ts +24 -0
  60. package/dist/icons.d.ts.map +1 -1
  61. package/dist/icons.js +24 -0
  62. package/dist/icons.js.map +1 -1
  63. package/dist/image.d.ts +11 -7
  64. package/dist/image.d.ts.map +1 -1
  65. package/dist/image.js +44 -7
  66. package/dist/image.js.map +1 -1
  67. package/dist/insert.d.ts +24 -12
  68. package/dist/insert.d.ts.map +1 -1
  69. package/dist/insert.js +306 -51
  70. package/dist/insert.js.map +1 -1
  71. package/dist/line-edit.d.ts +30 -0
  72. package/dist/line-edit.d.ts.map +1 -0
  73. package/dist/line-edit.js +87 -0
  74. package/dist/line-edit.js.map +1 -0
  75. package/dist/markup.d.ts +25 -5
  76. package/dist/markup.d.ts.map +1 -1
  77. package/dist/markup.js +73 -15
  78. package/dist/markup.js.map +1 -1
  79. package/dist/opacity.d.ts +19 -0
  80. package/dist/opacity.d.ts.map +1 -0
  81. package/dist/opacity.js +45 -0
  82. package/dist/opacity.js.map +1 -0
  83. package/dist/page-commands.d.ts +16 -0
  84. package/dist/page-commands.d.ts.map +1 -0
  85. package/dist/page-commands.js +122 -0
  86. package/dist/page-commands.js.map +1 -0
  87. package/dist/page-controls.d.ts +27 -1
  88. package/dist/page-controls.d.ts.map +1 -1
  89. package/dist/page-controls.js +30 -14
  90. package/dist/page-controls.js.map +1 -1
  91. package/dist/paint.d.ts +59 -12
  92. package/dist/paint.d.ts.map +1 -1
  93. package/dist/paint.js +225 -104
  94. package/dist/paint.js.map +1 -1
  95. package/dist/ruler-controls.d.ts +6 -0
  96. package/dist/ruler-controls.d.ts.map +1 -1
  97. package/dist/ruler-controls.js +18 -3
  98. package/dist/ruler-controls.js.map +1 -1
  99. package/dist/ruler-edits.d.ts +2 -5
  100. package/dist/ruler-edits.d.ts.map +1 -1
  101. package/dist/ruler-edits.js +13 -20
  102. package/dist/ruler-edits.js.map +1 -1
  103. package/dist/ruler.d.ts +7 -1
  104. package/dist/ruler.d.ts.map +1 -1
  105. package/dist/ruler.js +41 -11
  106. package/dist/ruler.js.map +1 -1
  107. package/dist/shape-gallery.d.ts +9 -4
  108. package/dist/shape-gallery.d.ts.map +1 -1
  109. package/dist/shape-gallery.js +9 -16
  110. package/dist/shape-gallery.js.map +1 -1
  111. package/dist/slide-commands.d.ts +38 -0
  112. package/dist/slide-commands.d.ts.map +1 -0
  113. package/dist/slide-commands.js +191 -0
  114. package/dist/slide-commands.js.map +1 -0
  115. package/dist/slide-shape.d.ts +24 -3
  116. package/dist/slide-shape.d.ts.map +1 -1
  117. package/dist/slide-shape.js +65 -10
  118. package/dist/slide-shape.js.map +1 -1
  119. package/dist/state.d.ts +12 -5
  120. package/dist/state.d.ts.map +1 -1
  121. package/dist/state.js +1 -0
  122. package/dist/state.js.map +1 -1
  123. package/dist/styles.d.ts.map +1 -1
  124. package/dist/styles.js +108 -63
  125. package/dist/styles.js.map +1 -1
  126. package/dist/tabs.d.ts +1 -1
  127. package/dist/tabs.d.ts.map +1 -1
  128. package/dist/tabs.js +99 -40
  129. package/dist/tabs.js.map +1 -1
  130. package/dist/text-format.d.ts.map +1 -1
  131. package/dist/text-format.js +2 -2
  132. package/dist/text-format.js.map +1 -1
  133. package/dist/version.d.ts +1 -1
  134. package/dist/version.js +1 -1
  135. package/dist/worker/handlers.d.ts.map +1 -1
  136. package/dist/worker/handlers.js +6 -0
  137. package/dist/worker/handlers.js.map +1 -1
  138. package/dist/worker/protocol.d.ts +13 -2
  139. package/dist/worker/protocol.d.ts.map +1 -1
  140. package/dist/worker/worker-source.js +1 -1
  141. package/package.json +3 -3
  142. package/dist/components/NewSlideModal.d.ts.map +0 -1
  143. package/dist/components/NewSlideModal.js.map +0 -1
  144. package/dist/new-slide.d.ts +0 -20
  145. package/dist/new-slide.d.ts.map +0 -1
  146. package/dist/new-slide.js +0 -90
  147. package/dist/new-slide.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAQ9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA6BlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,KAAK,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAsNpF"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAQ9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,KAAK,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAgQpF"}
package/dist/commands.js CHANGED
@@ -1,10 +1,13 @@
1
1
  // The Text, Shape and Object tabs' commands: character and paragraph formatting
2
- // over the text selection, and the Fill / Line controls over a drawing's shapes
3
- // or a PDF's page objects (their arrangement commands are `arrange.ts`'s).
4
- import { allowsEdit, ICON_FILL, ICON_STROKE, ICON_TEXT_HIGHLIGHT } from "@docmentis/udoc-ui/internal";
2
+ // over the text selection, Change Shape over a drawing's shapes, and the Fill /
3
+ // Line controls over those or a PDF's page objects (their arrangement commands
4
+ // are `arrange.ts`'s).
5
+ import { allowsEdit, ICON_FILL, ICON_OPACITY, ICON_STROKE, ICON_TEXT_HIGHLIGHT } from "@docmentis/udoc-ui/internal";
5
6
  import { fontFamilyControl, fontSizeControl, listControl, paragraphStyleControl, textFormatControl, } from "./components/TextControls.js";
6
- import { ICON_BOLD, ICON_FONT_SIZE, ICON_FONTS, ICON_ITALIC, ICON_LINE_SPACING, ICON_LIST_BULLET, ICON_LIST_NUMBER, ICON_PARAGRAPH_LEFT, ICON_PARAGRAPH_STYLE, ICON_STRIKETHROUGH, ICON_SUBSCRIPT, ICON_SUPERSCRIPT, ICON_TEXT_FILL, ICON_UNDERLINE, ICON_WIDTH_SCALE, } from "./icons.js";
7
- import { paintControl } from "./paint.js";
7
+ import { ICON_BOLD, ICON_CHANGE_SHAPE, ICON_FONT_SIZE, ICON_FONTS, ICON_ITALIC, ICON_LINE_SPACING, ICON_LIST_BULLET, ICON_LIST_NUMBER, ICON_PARAGRAPH_LEFT, ICON_PARAGRAPH_STYLE, ICON_STRIKETHROUGH, ICON_SUBSCRIPT, ICON_SUPERSCRIPT, ICON_TEXT_FILL, ICON_UNDERLINE, ICON_WIDTH_SCALE, } from "./icons.js";
8
+ import { objectOpacityControl, paintControl, selectionOpacity } from "./paint.js";
9
+ import { editStateOf } from "./state.js";
10
+ import { CHANGE_SHAPE_GALLERY, galleryShape } from "./shape-gallery.js";
8
11
  import { LINE_SPACING_MENU, PARAGRAPH_ALIGN_MENU, whenParagraphFormat, whenParagraphStyle, whenTextFormat, whenWidthScale, WIDTH_SCALE_MENU, } from "./text-format.js";
9
12
  /**
10
13
  * The format commands, their controls built over `tools` — read when the ribbon
@@ -157,10 +160,34 @@ export function formatCommands(tools) {
157
160
  },
158
161
  enabledWhen: whenParagraphFormat,
159
162
  },
160
- // Shape tab — the Fill / Line dropdowns. The color bar reflects the
161
- // selection's color; the caret opens the picker. Enabled when the
162
- // selection accepts the paint edit — a drawing shape's `setShapeFill` /
163
- // `setShapeLine`.
163
+ // Shape tab — first Change Shape, the outline the rest paint and arrange:
164
+ // a cell gives the selection that preset, with its adjust values at their
165
+ // defaults, as PowerPoint and Word do. Enabled where the selection holds a
166
+ // shape or a picture to change, which a connector alone doesn't.
167
+ changeShape: {
168
+ id: "changeShape",
169
+ label: "command.changeShape",
170
+ icon: ICON_CHANGE_SHAPE,
171
+ group: "shapeGeometry",
172
+ run: {
173
+ kind: "gallery",
174
+ sections: CHANGE_SHAPE_GALLERY,
175
+ press: ({ tool }) => {
176
+ const shape = galleryShape(tool);
177
+ if (!shape)
178
+ return;
179
+ const { host } = tools();
180
+ void host.commit(() => host.client.executeOnSelection({
181
+ kind: "setShapeGeometry",
182
+ geometry: { preset: { preset: shape.preset, adjustValues: [] } },
183
+ }));
184
+ },
185
+ },
186
+ enabledWhen: (c) => allowsEdit(c.selection, "setShapeGeometry"),
187
+ },
188
+ // Then the Fill / Line dropdowns. The color bar reflects the selection's
189
+ // color; the caret opens the picker. Enabled when the selection accepts
190
+ // the paint edit — a drawing shape's `setShapeFill` / `setShapeLine`.
164
191
  shapeFillColor: {
165
192
  id: "shapeFillColor",
166
193
  label: "command.shapeFillColor",
@@ -211,6 +238,21 @@ export function formatCommands(tools) {
211
238
  },
212
239
  enabledWhen: (c) => allowsEdit(c.selection, "setStrokingStyle"),
213
240
  },
241
+ objectOpacity: {
242
+ id: "objectOpacity",
243
+ label: "command.annotationOpacity",
244
+ icon: ICON_OPACITY,
245
+ group: "paint",
246
+ run: {
247
+ kind: "control",
248
+ cluster: "paint",
249
+ create: (env) => objectOpacityControl(env, { id: "objectOpacity", icon: ICON_OPACITY }, tools()),
250
+ },
251
+ // Live where the selection agrees on a style to carry the opacity: not
252
+ // on a fill turned off, a group, a form, or differing paint.
253
+ enabledWhen: (c) => allowsEdit(c.selection, "setNonstrokingStyle") &&
254
+ selectionOpacity(editStateOf(c).selectionProperties, "fill") !== null,
255
+ },
214
256
  };
215
257
  }
216
258
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { OverlaySource } from "@docmentis/udoc-ui";
1
+ import type { OverlaySource, PageView } from "@docmentis/udoc-ui";
2
2
  import type { I18n } from "../i18n/index.js";
3
3
  /**
4
- * A page's current size and orientation, as the "more" button hands it to the
4
+ * A page's current size and orientation, as the resize button hands it to the
5
5
  * settings dialog. `width`/`height` are the page's media-box size in document
6
6
  * points (rotation-independent — the intrinsic page rectangle); `rotation` is
7
7
  * the display rotation in quarter turns clockwise (0–3).
@@ -11,6 +11,13 @@ export interface PageSizeInfo {
11
11
  height: number;
12
12
  rotation: number;
13
13
  }
14
+ /**
15
+ * The size of the page `view` shows at `scale` CSS px per point. The view's
16
+ * geometry is the *displayed* size; a quarter-turn rotation swaps width and
17
+ * height on screen, so that is undone to recover the rotation-independent page
18
+ * rectangle.
19
+ */
20
+ export declare function pageSizeInfo(view: PageView, scale: number): PageSizeInfo;
14
21
  /** The page-structure verbs the per-page pill dispatches. */
15
22
  export interface PageActionsCallbacks {
16
23
  /** The language the controls' names are in. Default English. */
@@ -29,14 +36,14 @@ export interface PageActionsCallbacks {
29
36
  onRotate: (index: number, clockwise: boolean) => void;
30
37
  onDelete: (index: number) => void;
31
38
  /** Open the page-settings dialog for `index`, seeded with its current
32
- * size + rotation — the "more" button's action. */
39
+ * size + rotation — the resize button's action. */
33
40
  onOpenSettings: (index: number, size: PageSizeInfo) => void;
34
41
  }
35
42
  /**
36
43
  * The per-page control rail (`udoc:page-actions`): a vertical column — move
37
- * up, move down, rotate, more, delete — beside each visible page's right
38
- * edge, top-aligned with the page. "More" opens the shared page-settings
39
- * dialog (size + rotation). Constant CSS size — pair with px page spacing,
44
+ * up, move down, rotate left, rotate right, resize, delete — beside each
45
+ * visible page's right edge, top-aligned with the page. Resize opens the shared
46
+ * page-settings dialog (its size). Constant CSS size — pair with px page spacing,
40
47
  * whose screen-fixed side padding gives the rail room at every zoom.
41
48
  */
42
49
  export declare function pageActions(callbacks: PageActionsCallbacks): OverlaySource;
@@ -1 +1 @@
1
- {"version":3,"file":"PageControls.d.ts","sourceRoot":"","sources":["../../src/components/PageControls.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAcD,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACjC,gEAAgE;IAChE,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,4DAA4D;IAC5D,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB;;;OAGG;IACH,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;qCACiC;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;wDACoD;IACpD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/D;AAkBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,oBAAoB,GAAG,aAAa,CA2F1E;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IAC/B,oEAAoE;IACpE,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAwEtE"}
1
+ {"version":3,"file":"PageControls.d.ts","sourceRoot":"","sources":["../../src/components/PageControls.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAe,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE/E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CASxE;AAcD,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACjC,gEAAgE;IAChE,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,4DAA4D;IAC5D,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB;;;OAGG;IACH,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;qCACiC;IACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;wDACoD;IACpD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/D;AAkBD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,oBAAoB,GAAG,aAAa,CAqF1E;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IAC/B,oEAAoE;IACpE,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACvF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAwEtE"}
@@ -10,23 +10,40 @@
10
10
  // *beside* a page's right edge, top-aligned with the page — so the shell
11
11
  // pairs it with screen-fixed (px) content padding, which holds its on-screen
12
12
  // width at every zoom. It is a vertical column of actions — move up / move
13
- // down / rotate / more / delete — and "more" opens the shared page-settings
14
- // modal dialog (size + rotation) for the page.
13
+ // down / rotate left / rotate right / resize / delete — and resize opens the
14
+ // shared page-settings modal dialog (its size) for the page.
15
15
  // - Insert lives *between* pages, in the inter-page gap. The gap is page-fixed
16
16
  // (document points), so its on-screen size tracks the zoom; the strip is
17
17
  // sized from the gap in points × the frame's scale, so it fills the gap at
18
18
  // every zoom by construction. Hovering it reveals a divider with a centered
19
19
  // "+" button. Inserting in the gap above page N is "before N" and "after
20
20
  // N−1" at once, so there is no before/after question to ask.
21
- import { ICON_CHEVRON_DOWN, ICON_CHEVRON_UP, ICON_DELETE, ICON_MORE, ICON_PAGE_ADD, ICON_ROTATE_RIGHT, } from "@docmentis/udoc-ui/internal";
21
+ import { ICON_DELETE, ICON_PAGE_ADD, ICON_ROTATE_LEFT, ICON_ROTATE_RIGHT } from "@docmentis/udoc-ui/internal";
22
22
  import { createI18n } from "../i18n/index.js";
23
+ import { ICON_MOVE_DOWN, ICON_MOVE_UP, ICON_PAGE_RESIZE } from "../icons.js";
24
+ /**
25
+ * The size of the page `view` shows at `scale` CSS px per point. The view's
26
+ * geometry is the *displayed* size; a quarter-turn rotation swaps width and
27
+ * height on screen, so that is undone to recover the rotation-independent page
28
+ * rectangle.
29
+ */
30
+ export function pageSizeInfo(view, scale) {
31
+ const widthPt = view.width / scale;
32
+ const heightPt = view.height / scale;
33
+ const turned = view.rotation % 2 === 1;
34
+ return {
35
+ width: turned ? heightPt : widthPt,
36
+ height: turned ? widthPt : heightPt,
37
+ rotation: view.rotation,
38
+ };
39
+ }
23
40
  /** Gap between the rail's left edge and its page's right edge, CSS px. */
24
41
  const PILL_OFFSET = 7;
25
42
  /** Hide the per-page chrome (control rail *and* insert affordance) when the
26
43
  * page is shorter than this on screen — a control rail taller than its page
27
44
  * reads as attached to nothing, and a lone insert by a too-small page is just
28
45
  * as adrift. */
29
- const MIN_PAGE_HEIGHT = 130;
46
+ const MIN_PAGE_HEIGHT = 185;
30
47
  /** Minimum hover/tap width of an insert strip, CSS px. */
31
48
  const MIN_INSERT_WIDTH = 48;
32
49
  function button(className, icon) {
@@ -38,16 +55,16 @@ function button(className, icon) {
38
55
  }
39
56
  /**
40
57
  * The latest media-box size + rotation of each pill's page, refreshed every
41
- * frame in `update` and read by the "more" click handler (set once in `create`)
58
+ * frame in `update` and read by the resize click handler (set once in `create`)
42
59
  * — the click fires the page-settings dialog with the page's current size.
43
60
  * Keyed by the pooled pill element so it survives across frames.
44
61
  */
45
62
  const pillSize = new WeakMap();
46
63
  /**
47
64
  * The per-page control rail (`udoc:page-actions`): a vertical column — move
48
- * up, move down, rotate, more, delete — beside each visible page's right
49
- * edge, top-aligned with the page. "More" opens the shared page-settings
50
- * dialog (size + rotation). Constant CSS size — pair with px page spacing,
65
+ * up, move down, rotate left, rotate right, resize, delete — beside each
66
+ * visible page's right edge, top-aligned with the page. Resize opens the shared
67
+ * page-settings dialog (its size). Constant CSS size — pair with px page spacing,
51
68
  * whose screen-fixed side padding gives the rail room at every zoom.
52
69
  */
53
70
  export function pageActions(callbacks) {
@@ -65,13 +82,13 @@ export function pageActions(callbacks) {
65
82
  const el = document.createElement("div");
66
83
  el.className = "udoc-ui__page-actions";
67
84
  el.setAttribute("role", "group");
68
- el.append(button("udoc-ui__page-actions-btn udoc-ui__page-actions-up", ICON_CHEVRON_UP), button("udoc-ui__page-actions-btn udoc-ui__page-actions-down", ICON_CHEVRON_DOWN), button("udoc-ui__page-actions-btn udoc-ui__page-actions-rotate", ICON_ROTATE_RIGHT), button("udoc-ui__page-actions-btn udoc-ui__page-actions-more", ICON_MORE), button("udoc-ui__page-actions-btn udoc-ui__page-actions-delete", ICON_DELETE));
69
- // "More" opens the shared settings dialog for this page,
85
+ el.append(button("udoc-ui__page-actions-btn udoc-ui__page-actions-up", ICON_MOVE_UP), button("udoc-ui__page-actions-btn udoc-ui__page-actions-down", ICON_MOVE_DOWN), button("udoc-ui__page-actions-btn udoc-ui__page-actions-rotate-left", ICON_ROTATE_LEFT), button("udoc-ui__page-actions-btn udoc-ui__page-actions-rotate-right", ICON_ROTATE_RIGHT), button("udoc-ui__page-actions-btn udoc-ui__page-actions-resize", ICON_PAGE_RESIZE), button("udoc-ui__page-actions-btn udoc-ui__page-actions-delete", ICON_DELETE));
86
+ // Resize opens the shared settings dialog for this page,
70
87
  // seeded with the size last stashed by `update`. The
71
88
  // pill's index is encoded in its key, so the pooled
72
89
  // element always speaks for the same page.
73
- const more = el.querySelector(".udoc-ui__page-actions-more");
74
- more.addEventListener("click", () => {
90
+ const resize = el.querySelector(".udoc-ui__page-actions-resize");
91
+ resize.addEventListener("click", () => {
75
92
  const size = pillSize.get(el);
76
93
  if (size)
77
94
  callbacks.onOpenSettings(view.index, size);
@@ -95,33 +112,25 @@ export function pageActions(callbacks) {
95
112
  down.title = i18n.t("pageControls.moveDown");
96
113
  down.setAttribute("aria-label", i18n.t("pageControls.moveDownLabel", { page }));
97
114
  down.onclick = () => callbacks.onMoveDown(index);
98
- // The pill's rotate button turns the page clockwise; the
99
- // settings dialog offers both directions.
100
- const rotate = el.querySelector(".udoc-ui__page-actions-rotate");
101
- rotate.title = i18n.t("pageControls.rotate");
102
- rotate.setAttribute("aria-label", i18n.t("pageControls.rotateLabel", { page }));
103
- rotate.onclick = () => callbacks.onRotate(index, true);
104
- const more = el.querySelector(".udoc-ui__page-actions-more");
105
- more.title = i18n.t("pageControls.settings");
106
- more.setAttribute("aria-label", i18n.t("pageControls.settingsLabel", { page }));
115
+ const rotateLeft = el.querySelector(".udoc-ui__page-actions-rotate-left");
116
+ rotateLeft.title = i18n.t("pageControls.rotateLeft");
117
+ rotateLeft.setAttribute("aria-label", i18n.t("pageControls.rotateLeftLabel", { page }));
118
+ rotateLeft.onclick = () => callbacks.onRotate(index, false);
119
+ const rotateRight = el.querySelector(".udoc-ui__page-actions-rotate-right");
120
+ rotateRight.title = i18n.t("pageControls.rotate");
121
+ rotateRight.setAttribute("aria-label", i18n.t("pageControls.rotateLabel", { page }));
122
+ rotateRight.onclick = () => callbacks.onRotate(index, true);
123
+ const resize = el.querySelector(".udoc-ui__page-actions-resize");
124
+ resize.title = i18n.t("command.pageResize");
125
+ resize.setAttribute("aria-label", i18n.t("pageControls.resizeLabel", { page }));
107
126
  const del = el.querySelector(".udoc-ui__page-actions-delete");
108
127
  del.disabled = count <= 1;
109
128
  del.title = i18n.t("pageControls.delete");
110
129
  del.setAttribute("aria-label", i18n.t("pageControls.deleteLabel", { page }));
111
130
  del.onclick = () => callbacks.onDelete(index);
112
131
  // Stash the page's intrinsic (media-box) size for the
113
- // settings dialog. The frame's geometry is the *displayed*
114
- // size (CSS px / scale = document points); a quarter-turn
115
- // rotation swaps width and height on screen, so undo that
116
- // to recover the rotation-independent page rectangle.
117
- const wPt = view.width / frame.scale;
118
- const hPt = view.height / frame.scale;
119
- const turned = view.rotation % 2 === 1;
120
- pillSize.set(el, {
121
- width: turned ? hPt : wPt,
122
- height: turned ? wPt : hPt,
123
- rotation: view.rotation,
124
- });
132
+ // settings dialog.
133
+ pillSize.set(el, pageSizeInfo(view, frame.scale));
125
134
  },
126
135
  };
127
136
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PageControls.js","sourceRoot":"","sources":["../../src/components/PageControls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PageControls.js","sourceRoot":"","sources":["../../src/components/PageControls.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,6 @@ export interface PageSettingsContext {
9
9
  height: number;
10
10
  /** Resize the page to `width` × `height` points (one undo step). */
11
11
  onResize: (width: number, height: number) => void;
12
- /** Rotate the page one quarter turn (clockwise, or counter-clockwise). */
13
- onRotate: (clockwise: boolean) => void;
14
12
  }
15
13
  /**
16
14
  * Build the page-settings modal. The returned handle is mounted once by the
@@ -1 +1 @@
1
- {"version":3,"file":"PageSettingsModal.d.ts","sourceRoot":"","sources":["../../src/components/PageSettingsModal.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,kBAAkB,CAAC;AA2CzD,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAChC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAoCD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI;;oBAgNvB,WAAW,KAAG,IAAI;oBApBlB,mBAAmB,KAAG,IAAI;iBAa/B,IAAI;mBAmBF,IAAI;EAM3B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"PageSettingsModal.d.ts","sourceRoot":"","sources":["../../src/components/PageSettingsModal.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,kBAAkB,CAAC;AA2CzD,+EAA+E;AAC/E,MAAM,WAAW,mBAAmB;IAChC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AA+CD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI;;oBAuMvB,WAAW,KAAG,IAAI;oBApBlB,mBAAmB,KAAG,IAAI;iBAa/B,IAAI;mBAmBF,IAAI;EAM3B;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -1,14 +1,13 @@
1
- // The shared per-page settings dialog, opened from a page's control rail (the
2
- // "more" button). A modal — backdrop + centered dialog — that lets the user
3
- // read and change one page's size (a named preset or a custom width × height in
4
- // inches / millimetres / points) and rotation. It replaces the old anchored
5
- // info popup; being a real dialog gives the size fields room and a clear
6
- // commit (Apply) instead of a hover-dismissed flyout.
1
+ // The per-page settings dialog, opened from a page's control rail (its resize
2
+ // button) and as a PDF's Page tab's Resize Page. A modal — backdrop + centered
3
+ // dialog — that lets the user read and change one page's size (a named preset or
4
+ // a custom width × height in inches / millimetres / points) and layout (portrait
5
+ // or landscape). Apply commits them and closes it.
7
6
  //
8
- // Storeless and imperative: mounted once by the shell and reused across pages.
9
- // `open(ctx)` seeds it with a page's current geometry and the callbacks that
10
- // turn an Apply / rotate into a page edit; it owns no document state of its own.
11
- import { ICON_CLEAR, ICON_ROTATE_LEFT, ICON_ROTATE_RIGHT, on } from "@docmentis/udoc-ui/internal";
7
+ // Storeless and imperative: mounted once and reused across pages. `open(ctx)`
8
+ // seeds it with a page's current size and the callback that turns an Apply into a
9
+ // page edit; it owns no document state of its own.
10
+ import { ICON_CLEAR, on } from "@docmentis/udoc-ui/internal";
12
11
  /** Document points per unit — points are the engine's native page unit. */
13
12
  const PT_PER_UNIT = {
14
13
  in: 72,
@@ -48,18 +47,27 @@ function matchPreset(width, height) {
48
47
  const near = (a, b) => Math.abs(a - b) <= MATCH_TOLERANCE;
49
48
  return (PRESETS.find((p) => (near(p.width, width) && near(p.height, height)) || (near(p.width, height) && near(p.height, width))) ?? null);
50
49
  }
51
- function labeledField(labelText) {
52
- const field = document.createElement("label");
53
- field.className = "udoc-page-modal__field";
50
+ /** The label above a control. */
51
+ function fieldLabel(text) {
54
52
  const label = document.createElement("span");
55
53
  label.className = "udoc-page-modal__field-label";
56
- label.textContent = labelText;
54
+ label.textContent = text;
55
+ return label;
56
+ }
57
+ /** `control` under the label `labelText`, which names it. */
58
+ function labeledField(labelText, control) {
59
+ const field = document.createElement("label");
60
+ field.className = "udoc-page-modal__field";
61
+ field.append(fieldLabel(labelText), control);
62
+ return field;
63
+ }
64
+ function lengthInput(ariaLabel) {
57
65
  const input = document.createElement("input");
58
66
  input.type = "text";
59
67
  input.inputMode = "decimal";
60
68
  input.className = "udoc-page-modal__input";
61
- field.append(label, input);
62
- return { field, input };
69
+ input.setAttribute("aria-label", ariaLabel);
70
+ return input;
63
71
  }
64
72
  /**
65
73
  * Build the page-settings modal. The returned handle is mounted once by the
@@ -90,9 +98,6 @@ export function createPageSettingsModal(i18n) {
90
98
  const body = document.createElement("div");
91
99
  body.className = "udoc-page-modal__body";
92
100
  // --- size section ---
93
- const sizeLabel = document.createElement("div");
94
- sizeLabel.className = "udoc-page-modal__section-label";
95
- sizeLabel.textContent = i18n.t("pageSettings.pageSize");
96
101
  const presetSelect = document.createElement("select");
97
102
  presetSelect.className = "udoc-page-modal__select udoc-page-modal__preset";
98
103
  presetSelect.setAttribute("aria-label", i18n.t("pageSettings.preset"));
@@ -108,22 +113,20 @@ export function createPageSettingsModal(i18n) {
108
113
  presetSelect.appendChild(customOpt);
109
114
  const dims = document.createElement("div");
110
115
  dims.className = "udoc-page-modal__dims";
111
- const { field: wField, input: widthInput } = labeledField(i18n.t("pageSettings.width"));
112
- const { field: hField, input: heightInput } = labeledField(i18n.t("pageSettings.height"));
113
- widthInput.setAttribute("aria-label", i18n.t("pageSettings.pageWidth"));
114
- heightInput.setAttribute("aria-label", i18n.t("pageSettings.pageHeight"));
116
+ const widthInput = lengthInput(i18n.t("pageSettings.pageWidth"));
117
+ const heightInput = lengthInput(i18n.t("pageSettings.pageHeight"));
115
118
  const unitSelect = document.createElement("select");
116
- unitSelect.className = "udoc-page-modal__select udoc-page-modal__unit";
117
- unitSelect.setAttribute("aria-label", i18n.t("pageSettings.units"));
119
+ unitSelect.className = "udoc-page-modal__select";
118
120
  for (const u of ["in", "mm", "pt"]) {
119
121
  const opt = document.createElement("option");
120
122
  opt.value = u;
121
123
  opt.textContent = i18n.t(UNIT_LABELS[u]);
122
124
  unitSelect.appendChild(opt);
123
125
  }
124
- dims.append(wField, hField, unitSelect);
125
- const orient = document.createElement("div");
126
- orient.className = "udoc-page-modal__orient";
126
+ const unitField = labeledField(i18n.t("pageSettings.units"), unitSelect);
127
+ unitField.classList.add("udoc-page-modal__unit");
128
+ dims.append(labeledField(i18n.t("pageSettings.width"), widthInput), labeledField(i18n.t("pageSettings.height"), heightInput), unitField);
129
+ // --- layout section ---
127
130
  const portraitBtn = document.createElement("button");
128
131
  portraitBtn.type = "button";
129
132
  portraitBtn.className = "udoc-page-modal__orient-btn";
@@ -132,26 +135,15 @@ export function createPageSettingsModal(i18n) {
132
135
  landscapeBtn.type = "button";
133
136
  landscapeBtn.className = "udoc-page-modal__orient-btn";
134
137
  landscapeBtn.textContent = i18n.t("pageSettings.landscape");
138
+ const layoutLabel = i18n.t("pageSettings.layout");
139
+ const orient = document.createElement("div");
140
+ orient.className = "udoc-page-modal__orient";
141
+ orient.setAttribute("role", "group");
142
+ orient.setAttribute("aria-label", layoutLabel);
135
143
  orient.append(portraitBtn, landscapeBtn);
136
- // --- rotation section ---
137
- const rotLabel = document.createElement("div");
138
- rotLabel.className = "udoc-page-modal__section-label";
139
- rotLabel.textContent = i18n.t("pageSettings.rotation");
140
- const rotRow = document.createElement("div");
141
- rotRow.className = "udoc-page-modal__rotate";
142
- const rotLeftBtn = document.createElement("button");
143
- rotLeftBtn.type = "button";
144
- rotLeftBtn.className = "udoc-page-modal__rotate-btn";
145
- rotLeftBtn.title = i18n.t("pageSettings.rotateLeft");
146
- rotLeftBtn.setAttribute("aria-label", i18n.t("pageSettings.rotatePageLeft"));
147
- rotLeftBtn.innerHTML = ICON_ROTATE_LEFT;
148
- const rotRightBtn = document.createElement("button");
149
- rotRightBtn.type = "button";
150
- rotRightBtn.className = "udoc-page-modal__rotate-btn";
151
- rotRightBtn.title = i18n.t("pageSettings.rotateRight");
152
- rotRightBtn.setAttribute("aria-label", i18n.t("pageSettings.rotatePageRight"));
153
- rotRightBtn.innerHTML = ICON_ROTATE_RIGHT;
154
- rotRow.append(rotLeftBtn, rotRightBtn);
144
+ const layout = document.createElement("div");
145
+ layout.className = "udoc-page-modal__field udoc-page-modal__row";
146
+ layout.append(fieldLabel(layoutLabel), orient);
155
147
  // --- footer ---
156
148
  const footer = document.createElement("div");
157
149
  footer.className = "udoc-page-modal__footer";
@@ -160,7 +152,7 @@ export function createPageSettingsModal(i18n) {
160
152
  applyBtn.className = "udoc-page-modal__apply";
161
153
  applyBtn.textContent = i18n.t("pageSettings.applySize");
162
154
  footer.appendChild(applyBtn);
163
- body.append(sizeLabel, presetSelect, dims, orient, rotLabel, rotRow);
155
+ body.append(labeledField(i18n.t("pageSettings.pageSize"), presetSelect), dims, layout);
164
156
  dialog.append(header, body, footer);
165
157
  el.append(backdrop, dialog);
166
158
  // --- state ---
@@ -172,6 +164,11 @@ export function createPageSettingsModal(i18n) {
172
164
  let ctx = null;
173
165
  let isOpen = false;
174
166
  const unsubEvents = [];
167
+ /** Whether the fields are wider than tall, past what measuring a page's size
168
+ * off the screen leaves on a square one. */
169
+ function isLandscape() {
170
+ return widthPt - heightPt > MATCH_TOLERANCE;
171
+ }
175
172
  /** Reflect the current points/unit into the inputs, preset, orientation. */
176
173
  function render() {
177
174
  widthInput.value = fmtLen(widthPt, unit);
@@ -179,7 +176,7 @@ export function createPageSettingsModal(i18n) {
179
176
  unitSelect.value = unit;
180
177
  const preset = matchPreset(widthPt, heightPt);
181
178
  presetSelect.value = preset ? preset.name : "Custom";
182
- const landscape = widthPt > heightPt;
179
+ const landscape = isLandscape();
183
180
  portraitBtn.classList.toggle("udoc-page-modal__orient-btn--selected", !landscape);
184
181
  landscapeBtn.classList.toggle("udoc-page-modal__orient-btn--selected", landscape);
185
182
  }
@@ -196,7 +193,7 @@ export function createPageSettingsModal(i18n) {
196
193
  const preset = PRESETS.find((p) => p.name === presetSelect.value);
197
194
  if (preset) {
198
195
  // Keep the page's current orientation when swapping in a preset.
199
- const landscape = widthPt > heightPt;
196
+ const landscape = isLandscape();
200
197
  widthPt = landscape ? preset.height : preset.width;
201
198
  heightPt = landscape ? preset.width : preset.height;
202
199
  }
@@ -208,17 +205,18 @@ export function createPageSettingsModal(i18n) {
208
205
  });
209
206
  /** Force orientation by swapping the dimensions if needed. */
210
207
  function setOrientation(landscape) {
211
- const isLandscape = widthPt > heightPt;
212
- if (isLandscape !== landscape)
208
+ if (isLandscape() !== landscape)
213
209
  [widthPt, heightPt] = [heightPt, widthPt];
214
210
  render();
215
211
  }
216
212
  on(portraitBtn, "click", () => setOrientation(false));
217
213
  on(landscapeBtn, "click", () => setOrientation(true));
218
- on(rotLeftBtn, "click", () => ctx?.onRotate(false));
219
- on(rotRightBtn, "click", () => ctx?.onRotate(true));
214
+ /** Resize the page, unless nothing changed: its size as opened was measured
215
+ * off the screen, which writing back would nudge. */
220
216
  function apply() {
221
- ctx?.onResize(widthPt, heightPt);
217
+ if (ctx && (widthPt !== ctx.width || heightPt !== ctx.height))
218
+ ctx.onResize(widthPt, heightPt);
219
+ close();
222
220
  }
223
221
  on(applyBtn, "click", apply);
224
222
  for (const input of [widthInput, heightInput]) {
@@ -237,7 +235,7 @@ export function createPageSettingsModal(i18n) {
237
235
  widthPt = context.width;
238
236
  heightPt = context.height;
239
237
  heading.textContent = i18n.t("pageSettings.title", { page: context.index + 1 });
240
- dialog.setAttribute("aria-label", i18n.t("pageSettings.label", { page: context.index + 1 }));
238
+ dialog.setAttribute("aria-label", i18n.t("pageControls.resizeLabel", { page: context.index + 1 }));
241
239
  render();
242
240
  isOpen = true;
243
241
  el.style.display = "";