oasis-editor 0.0.11 → 0.0.13

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 (36) hide show
  1. package/dist/{OasisEditorApp-BgOoWqpC.js → OasisEditorApp-DYcAe_1n.js} +568 -41
  2. package/dist/app/controllers/EditorCommandsController.d.ts +4 -0
  3. package/dist/app/controllers/useEditorLayout.d.ts +2 -1
  4. package/dist/assets/{importDocxWorker-DbiKelzX.js → importDocxWorker-cjz15bhS.js} +1 -1
  5. package/dist/core/commands/builtinCommands.d.ts +1 -1
  6. package/dist/core/commands/image.d.ts +2 -0
  7. package/dist/core/commands/publicCommandTypes.d.ts +1 -0
  8. package/dist/core/document/imageCaptions.d.ts +13 -0
  9. package/dist/core/editorState.d.ts +1 -0
  10. package/dist/core/model/index.d.ts +1 -0
  11. package/dist/core/model/types/document.d.ts +7 -0
  12. package/dist/core/model/types/documentComments.d.ts +50 -0
  13. package/dist/export/docx/commentsXml.d.ts +34 -0
  14. package/dist/export/docx/docxTypes.d.ts +7 -0
  15. package/dist/i18n/locales/en.d.ts +4 -0
  16. package/dist/i18n/locales/pt-BR.d.ts +4 -0
  17. package/dist/import/docx/comments.d.ts +12 -0
  18. package/dist/import/docx/commentsXml.d.ts +14 -0
  19. package/dist/import/docx/runs/types.d.ts +10 -0
  20. package/dist/import/docx/runs.d.ts +5 -1
  21. package/dist/{index-L71R0x7D.js → index-CWev1Jg0.js} +723 -304
  22. package/dist/oasis-editor.css +1 -1
  23. package/dist/oasis-editor.js +54 -54
  24. package/dist/oasis-editor.umd.cjs +4 -4
  25. package/dist/plugins/internal/createEssentialsPlugin.d.ts +1 -0
  26. package/dist/ui/OasisEditorEditor.d.ts +2 -1
  27. package/dist/ui/app/EditorDialogsLayer.d.ts +1 -0
  28. package/dist/ui/app/buildEditorViewProps.d.ts +2 -1
  29. package/dist/ui/app/useEditorDialogs.d.ts +8 -0
  30. package/dist/ui/canvas/CanvasCommentGeometry.d.ts +13 -0
  31. package/dist/ui/components/CommentHighlightOverlay.d.ts +16 -0
  32. package/dist/ui/components/Dialogs/ImageCaptionDialog.d.ts +8 -0
  33. package/dist/ui/components/Menubar/builtinMenuIds.d.ts +1 -0
  34. package/dist/ui/components/Toolbar/presets/builtinToolbarIds.d.ts +1 -0
  35. package/dist/ui/editorUiTypes.d.ts +8 -0
  36. package/package.json +1 -1
@@ -77,6 +77,7 @@ export interface EssentialsLinkCapability {
77
77
  }
78
78
  export interface EssentialsImageCapability {
79
79
  promptAlt: () => void;
80
+ promptCaption: () => void;
80
81
  isSelected: () => boolean;
81
82
  }
82
83
  export interface EssentialsBrowserCapability {
@@ -2,7 +2,7 @@ import { Accessor, JSX } from '../solid-js';
2
2
  import { ToolbarHost } from '../components/Toolbar/state/createToolbarApi.js';
3
3
  import { EditorLayoutParagraph, EditorState } from '../../core/model.js';
4
4
  import { ImportProgressState } from '../../app/controllers/useEditorDocumentIO.js';
5
- import { CaretBox, InputBox, LayoutOptionsOverlay, RevisionBox, SelectedImageBox, SelectedTextBoxBox, SelectionBox } from '../editorUiTypes.js';
5
+ import { CaretBox, CommentHighlightBox, InputBox, LayoutOptionsOverlay, RevisionBox, SelectedImageBox, SelectedTextBoxBox, SelectionBox } from '../editorUiTypes.js';
6
6
  import { ResizeHandleDirection } from '../resizeGeometry.js';
7
7
 
8
8
  type ImportProgress = ImportProgressState;
@@ -17,6 +17,7 @@ export interface OasisEditorEditorLayoutProps {
17
17
  }
18
18
  export interface OasisEditorEditorOverlayProps {
19
19
  selectionBoxes: Accessor<SelectionBox[]>;
20
+ commentHighlights: Accessor<CommentHighlightBox[]>;
20
21
  selectedImageBox: Accessor<SelectedImageBox | null>;
21
22
  selectedTextBoxBox: Accessor<SelectedTextBoxBox | null>;
22
23
  caretBox: Accessor<CaretBox>;
@@ -16,6 +16,7 @@ export interface EditorDialogsLayerProps {
16
16
  focusInput: () => void;
17
17
  applyLinkCommand: (href: string | null) => void;
18
18
  applyImageAltCommand: (alt: string) => void;
19
+ applyImageCaptionCommand: (caption: string) => void;
19
20
  applyFontDialogValues: ComponentProps<typeof FontDialog>["onApply"];
20
21
  applyParagraphDialogValues: ComponentProps<typeof ParagraphDialog>["onApply"];
21
22
  applyTablePropertiesDialogValues: ComponentProps<typeof TablePropertiesDialog>["onApply"];
@@ -1,5 +1,5 @@
1
1
  import { Accessor, JSX } from '../../solid-js';
2
- import { CaretBox, InputBox, LayoutOptionsOverlay, RevisionBox, SelectedImageBox, SelectedTextBoxBox, SelectionBox } from '../../../editorUiTypes.js';
2
+ import { CaretBox, CommentHighlightBox, InputBox, LayoutOptionsOverlay, RevisionBox, SelectedImageBox, SelectedTextBoxBox, SelectionBox } from '../../../editorUiTypes.js';
3
3
  import { OasisEditorEditorFileHandlers, OasisEditorEditorInputHandlers, OasisEditorEditorLayoutProps, OasisEditorEditorOverlayProps, OasisEditorEditorRefProps, OasisEditorEditorSurfaceHandlers } from '../../../OasisEditorEditor.js';
4
4
  import { createEditorFocusController } from '../../useEditorFocus.js';
5
5
  import { createEditorSurfaceEvents } from '../../../../app/controllers/useEditorSurfaceEvents.js';
@@ -20,6 +20,7 @@ export interface EditorViewPropsContext {
20
20
  className: string | undefined;
21
21
  style: JSX.CSSProperties | undefined;
22
22
  selectionBoxes: Accessor<SelectionBox[]>;
23
+ commentHighlights: Accessor<CommentHighlightBox[]>;
23
24
  selectedImageBox: Accessor<SelectedImageBox | null>;
24
25
  selectedTextBoxBox: Accessor<SelectedTextBoxBox | null>;
25
26
  layoutOptions: LayoutOptionsOverlay;
@@ -19,6 +19,14 @@ export declare function createEditorDialogs(): {
19
19
  isOpen: boolean;
20
20
  initialAlt: string;
21
21
  }>;
22
+ imageCaptionDialog: import('../../solid-js').Accessor<{
23
+ isOpen: boolean;
24
+ initialCaption: string;
25
+ }>;
26
+ setImageCaptionDialog: import('../../solid-js').Setter<{
27
+ isOpen: boolean;
28
+ initialCaption: string;
29
+ }>;
22
30
  contextMenu: import('../../solid-js').Accessor<{
23
31
  isOpen: boolean;
24
32
  x: number;
@@ -0,0 +1,13 @@
1
+ import { EditorState } from '../../../../core/model.js';
2
+ import { CommentHighlightBox } from '../../../editorUiTypes.js';
3
+ import { CanvasLayoutSnapshot } from '../../CanvasLayoutSnapshot.js';
4
+
5
+ /**
6
+ * Project each document comment's start/end anchors into highlight rectangles
7
+ * over the commented text, reusing the canvas layout snapshot's per-line slot
8
+ * positions (the same machinery `computeCanvasSelectionGeometry` uses for the
9
+ * live selection). Multi-line and cross-paragraph comments yield one box per
10
+ * covered line; every box carries its `commentId` so the overlay can group them
11
+ * and resolve the popup body on hover.
12
+ */
13
+ export declare function computeCommentHighlights(snapshot: CanvasLayoutSnapshot, state: EditorState): CommentHighlightBox[];
@@ -0,0 +1,16 @@
1
+ import { Accessor } from '../../solid-js';
2
+ import { EditorComment } from '../../../../core/model.js';
3
+ import { CommentHighlightBox } from '../../../editorUiTypes.js';
4
+
5
+ export interface CommentHighlightOverlayProps {
6
+ boxes: Accessor<CommentHighlightBox[]>;
7
+ /** Comment bodies keyed by their editor-local id, for the hover popup. */
8
+ commentsById: Accessor<Record<string, EditorComment>>;
9
+ }
10
+ /**
11
+ * Renders the highlight rectangles over commented text and, on hover/click of a
12
+ * highlight, a small popup with the comment's author/date/text (mirroring the
13
+ * track-changes `RevisionOverlay`). Hit-testing happens on the overlay divs
14
+ * themselves (`pointer-events: auto`), so no canvas hit-test plumbing is needed.
15
+ */
16
+ export declare function CommentHighlightOverlay(props: CommentHighlightOverlayProps): import("solid-js").JSX.Element;
@@ -0,0 +1,8 @@
1
+ interface ImageCaptionDialogProps {
2
+ isOpen: boolean;
3
+ initialCaption: string;
4
+ onClose: () => void;
5
+ onConfirm: (caption: string) => void;
6
+ }
7
+ export declare function ImageCaptionDialog(props: ImageCaptionDialogProps): import("solid-js").JSX.Element;
8
+ export {};
@@ -15,6 +15,7 @@ export declare const OASIS_MENU_ITEMS: {
15
15
  readonly viewParagraphMarks: "view_paragraph_marks";
16
16
  readonly viewPreciseFonts: "view_precise_fonts";
17
17
  readonly insertImage: "insert_image";
18
+ readonly insertImageCaption: "insert_image_caption";
18
19
  readonly insertTable: "insert_table";
19
20
  readonly insertLink: "insert_link";
20
21
  readonly insertFootnote: "insert_footnote";
@@ -23,6 +23,7 @@ export declare const OASIS_TOOLBAR_ITEMS: {
23
23
  readonly unlink: "editor-toolbar-unlink";
24
24
  readonly footnote: "editor-toolbar-footnote";
25
25
  readonly imageAlt: "editor-toolbar-image-alt";
26
+ readonly imageCaption: "editor-toolbar-image-caption";
26
27
  readonly alignLeft: "editor-toolbar-align-left";
27
28
  readonly alignCenter: "editor-toolbar-align-center";
28
29
  readonly alignRight: "editor-toolbar-align-right";
@@ -48,6 +48,14 @@ export interface RevisionBox {
48
48
  left: number;
49
49
  top: number;
50
50
  }
51
+ /** One highlight rectangle over a commented text range, tagged with its id. */
52
+ export interface CommentHighlightBox {
53
+ commentId: string;
54
+ left: number;
55
+ top: number;
56
+ width: number;
57
+ height: number;
58
+ }
51
59
  /**
52
60
  * State and actions backing the Word-style "Layout Options" popup for the
53
61
  * selected image or text box.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oasis-editor",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",