mathlean-canvas 0.3.5 → 0.3.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.
- package/README.md +124 -6
- package/dist/InlineMathLiveField.d.ts +2 -1
- package/dist/MathCanvas/components/CanvasOverlayViewport.d.ts +5 -3
- package/dist/MathCanvas/components/CollaborationOverlay.d.ts +10 -0
- package/dist/MathCanvas/components/Toolbar.d.ts +5 -6
- package/dist/MathCanvas/components/icons.d.ts +8 -0
- package/dist/MathCanvas/core/hooks/useCanvasGlobalActions.d.ts +2 -9
- package/dist/MathCanvas/core/hooks/useCanvasSnapshot.d.ts +6 -2
- package/dist/MathCanvas/core/hooks/useCanvasStageInteractions.d.ts +31 -6
- package/dist/MathCanvas/core/hooks/useCanvasViewport.d.ts +5 -1
- package/dist/MathCanvas/features/geometry/components/CoordinatePlaneLayer.d.ts +2 -1
- package/dist/MathCanvas/features/graph/components/GraphLayer.d.ts +17 -2
- package/dist/MathCanvas/features/stroke/hooks/useStrokeState.d.ts +13 -3
- package/dist/MathCanvas/features/text/components/InlineMathBubble.d.ts +2 -1
- package/dist/MathCanvas/features/text/components/TextBlockEditor.d.ts +1 -2
- package/dist/MathCanvas/features/text/components/TextBlockMenu.d.ts +8 -3
- package/dist/MathCanvas/features/text/components/TextBlockView.d.ts +7 -1
- package/dist/MathCanvas/features/text/components/TextInteractionLayer.d.ts +11 -2
- package/dist/MathCanvas/features/text/hooks/useTextBlockActions.d.ts +2 -2
- package/dist/MathCanvas/features/text/hooks/useTextBlockLayoutEffects.d.ts +15 -18
- package/dist/MathCanvas/types.d.ts +101 -0
- package/dist/MathCanvas.d.ts +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14973 -14105
- package/dist/useInlineMathSession.d.ts +1 -1
- package/package.json +1 -1
|
@@ -9,6 +9,17 @@ type LatexPreview = {
|
|
|
9
9
|
fallback: string;
|
|
10
10
|
caretOffset?: number;
|
|
11
11
|
} | null;
|
|
12
|
+
type MathOverlayCaret = {
|
|
13
|
+
left: number;
|
|
14
|
+
top: number;
|
|
15
|
+
height: number;
|
|
16
|
+
} | null;
|
|
17
|
+
type InlineMathEditorRect = {
|
|
18
|
+
left: number;
|
|
19
|
+
top: number;
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
} | null;
|
|
12
23
|
type UseTextBlockLayoutEffectsOptions = {
|
|
13
24
|
activeInlineMathDraft: string;
|
|
14
25
|
activeInlineMathSession: InlineMathSession;
|
|
@@ -24,12 +35,7 @@ type UseTextBlockLayoutEffectsOptions = {
|
|
|
24
35
|
editingSelection: number;
|
|
25
36
|
editingValue: string;
|
|
26
37
|
editingWidth: number;
|
|
27
|
-
inlineMathEditorRect:
|
|
28
|
-
left: number;
|
|
29
|
-
top: number;
|
|
30
|
-
width: number;
|
|
31
|
-
height: number;
|
|
32
|
-
} | null;
|
|
38
|
+
inlineMathEditorRect: InlineMathEditorRect;
|
|
33
39
|
inlineMathBubbleRef: MutableRefObject<HTMLDivElement | null>;
|
|
34
40
|
inlineMathFieldRef: MutableRefObject<HTMLElement | null>;
|
|
35
41
|
latexPreview: LatexPreview;
|
|
@@ -41,18 +47,9 @@ type UseTextBlockLayoutEffectsOptions = {
|
|
|
41
47
|
setEditingHeight: Dispatch<SetStateAction<number>>;
|
|
42
48
|
setEditingInlineMathAtoms: Dispatch<SetStateAction<InlineMathAtom[]>>;
|
|
43
49
|
setEditingWidth: Dispatch<SetStateAction<number>>;
|
|
44
|
-
setInlineMathEditorRect: Dispatch<SetStateAction<
|
|
45
|
-
|
|
46
|
-
top: number;
|
|
47
|
-
width: number;
|
|
48
|
-
height: number;
|
|
49
|
-
} | null>>;
|
|
50
|
-
setMathOverlayCaret: Dispatch<SetStateAction<{
|
|
51
|
-
left: number;
|
|
52
|
-
top: number;
|
|
53
|
-
height: number;
|
|
54
|
-
} | null>>;
|
|
50
|
+
setInlineMathEditorRect: Dispatch<SetStateAction<InlineMathEditorRect>>;
|
|
51
|
+
setMathOverlayCaret: Dispatch<SetStateAction<MathOverlayCaret>>;
|
|
55
52
|
textareaRef: MutableRefObject<HTMLTextAreaElement | null>;
|
|
56
53
|
};
|
|
57
|
-
export declare function useTextBlockLayoutEffects({ activeInlineMathDraft, activeInlineMathSession, blocks, containerRef, editableMirrorContentRef, editableMirrorRef, editingBlockId, editingDisplayValue, editingHeight, editingSelection, editingValue, editingWidth, inlineMathEditorRect, inlineMathBubbleRef, inlineMathFieldRef, latexPreview, overlayRefs, renderMode, resetInlineMathState, setBlockHeights, setBlockWidths, setEditingHeight, setEditingInlineMathAtoms, setEditingWidth, setInlineMathEditorRect, setMathOverlayCaret, textareaRef, }: UseTextBlockLayoutEffectsOptions): void;
|
|
54
|
+
export declare function useTextBlockLayoutEffects({ activeInlineMathDraft, activeInlineMathSession, blockHeights, blockWidths, blocks, containerRef, editableMirrorContentRef, editableMirrorRef, editingBlockId, editingDisplayValue, editingHeight, editingSelection, editingValue, editingWidth, inlineMathEditorRect, inlineMathBubbleRef, inlineMathFieldRef, latexPreview, overlayRefs, renderMode, resetInlineMathState, setBlockHeights, setBlockWidths, setEditingHeight, setEditingInlineMathAtoms, setEditingWidth, setInlineMathEditorRect, setMathOverlayCaret, textareaRef, }: UseTextBlockLayoutEffectsOptions): void;
|
|
58
55
|
export {};
|
|
@@ -18,6 +18,7 @@ export type GeometryObjectKind = "point" | "segment" | "polygon" | "angle" | "ci
|
|
|
18
18
|
export type GeometryDirection = "left" | "right" | "up" | "down";
|
|
19
19
|
export type GraphDirection = "upLeft" | "up" | "upRight" | "left" | "right" | "downLeft" | "down" | "downRight";
|
|
20
20
|
export type CoordinatePlaneMode = "blank" | "grid" | "plane";
|
|
21
|
+
export type TextboxMenuPanel = "color" | "format" | "mode" | null;
|
|
21
22
|
export type GeometryLabelTarget = {
|
|
22
23
|
kind: "segment" | "angle" | "circle";
|
|
23
24
|
id: string;
|
|
@@ -227,9 +228,92 @@ export type CanvasState = {
|
|
|
227
228
|
geoHelperSegments: GeoHelperSegment[];
|
|
228
229
|
geoRightAngleMarkers: GeoRightAngleMarker[];
|
|
229
230
|
coordinatePlaneMode: CoordinatePlaneMode;
|
|
231
|
+
coordinateLabelsVisible?: boolean;
|
|
230
232
|
renderMode: RenderMode;
|
|
231
233
|
shortcutSettings?: ShortcutSettings;
|
|
232
234
|
};
|
|
235
|
+
export type DocumentCanvasState = Omit<CanvasState, "shortcutSettings">;
|
|
236
|
+
export type PointerPresence = {
|
|
237
|
+
x: number;
|
|
238
|
+
y: number;
|
|
239
|
+
xPct: number;
|
|
240
|
+
yPct: number;
|
|
241
|
+
tool: string | null;
|
|
242
|
+
};
|
|
243
|
+
export type StrokePreviewPoint = {
|
|
244
|
+
x: number;
|
|
245
|
+
y: number;
|
|
246
|
+
};
|
|
247
|
+
export type StrokePreview = {
|
|
248
|
+
id: string;
|
|
249
|
+
tool: "pen" | "eraser" | string;
|
|
250
|
+
color?: string;
|
|
251
|
+
width?: number;
|
|
252
|
+
points: StrokePreviewPoint[];
|
|
253
|
+
};
|
|
254
|
+
export type RemotePointerPresence = PointerPresence & {
|
|
255
|
+
id: string;
|
|
256
|
+
color?: string;
|
|
257
|
+
label?: string;
|
|
258
|
+
};
|
|
259
|
+
export type ObjectTransformPreview = {
|
|
260
|
+
id: string;
|
|
261
|
+
objectType: "text" | "graphNode";
|
|
262
|
+
objectId: string;
|
|
263
|
+
x: number;
|
|
264
|
+
y: number;
|
|
265
|
+
width?: number;
|
|
266
|
+
height?: number;
|
|
267
|
+
textBlock?: TextBlock;
|
|
268
|
+
graphNode?: GraphNode;
|
|
269
|
+
};
|
|
270
|
+
export type TextDraftPreview = {
|
|
271
|
+
id: string;
|
|
272
|
+
blockId: string;
|
|
273
|
+
x: number;
|
|
274
|
+
y: number;
|
|
275
|
+
width: number;
|
|
276
|
+
height: number;
|
|
277
|
+
content: string;
|
|
278
|
+
renderMode: RenderMode;
|
|
279
|
+
selectionStart?: number;
|
|
280
|
+
selectionEnd?: number;
|
|
281
|
+
fontSize?: number;
|
|
282
|
+
textBlock?: TextBlock;
|
|
283
|
+
};
|
|
284
|
+
export type CollaborationPreviewPhase = "start" | "update" | "end";
|
|
285
|
+
export type CollaborationMessageBase = {
|
|
286
|
+
senderId: string;
|
|
287
|
+
documentId?: string;
|
|
288
|
+
sentAt?: number;
|
|
289
|
+
};
|
|
290
|
+
export type CollaborationDocumentMessage = CollaborationMessageBase & {
|
|
291
|
+
type: "document";
|
|
292
|
+
revision?: string | number;
|
|
293
|
+
state: DocumentCanvasState;
|
|
294
|
+
};
|
|
295
|
+
export type CollaborationPresenceMessage = CollaborationMessageBase & {
|
|
296
|
+
type: "presence";
|
|
297
|
+
presence: PointerPresence;
|
|
298
|
+
color?: string;
|
|
299
|
+
label?: string;
|
|
300
|
+
};
|
|
301
|
+
export type CollaborationStrokePreviewMessage = CollaborationMessageBase & {
|
|
302
|
+
type: "stroke-preview";
|
|
303
|
+
phase: CollaborationPreviewPhase;
|
|
304
|
+
preview: StrokePreview;
|
|
305
|
+
};
|
|
306
|
+
export type CollaborationObjectTransformMessage = CollaborationMessageBase & {
|
|
307
|
+
type: "object-transform";
|
|
308
|
+
phase: CollaborationPreviewPhase;
|
|
309
|
+
preview: ObjectTransformPreview;
|
|
310
|
+
};
|
|
311
|
+
export type CollaborationTextDraftMessage = CollaborationMessageBase & {
|
|
312
|
+
type: "text-draft";
|
|
313
|
+
phase: CollaborationPreviewPhase;
|
|
314
|
+
preview: TextDraftPreview;
|
|
315
|
+
};
|
|
316
|
+
export type CollaborationMessage = CollaborationDocumentMessage | CollaborationPresenceMessage | CollaborationStrokePreviewMessage | CollaborationObjectTransformMessage | CollaborationTextDraftMessage;
|
|
233
317
|
export type StageMouseEvent = Parameters<NonNullable<React.ComponentProps<typeof Stage>["onMouseDown"]>>[0];
|
|
234
318
|
export type StageTouchEvent = Parameters<NonNullable<React.ComponentProps<typeof Stage>["onTouchStart"]>>[0];
|
|
235
319
|
export type StagePointerEvent = StageMouseEvent | StageTouchEvent;
|
|
@@ -259,5 +343,22 @@ export type MathCanvasProps = {
|
|
|
259
343
|
className?: string;
|
|
260
344
|
style?: React.CSSProperties;
|
|
261
345
|
initialState?: CanvasState;
|
|
346
|
+
documentState?: DocumentCanvasState;
|
|
347
|
+
idPrefix?: string;
|
|
262
348
|
onStateChange?: (state: CanvasState) => void;
|
|
349
|
+
onDocumentStateChange?: (state: DocumentCanvasState) => void;
|
|
350
|
+
onPointerPresence?: (presence: PointerPresence) => void;
|
|
351
|
+
onStrokePreviewStart?: (preview: StrokePreview) => void;
|
|
352
|
+
onStrokePreviewUpdate?: (preview: StrokePreview) => void;
|
|
353
|
+
onStrokePreviewEnd?: (preview: StrokePreview) => void;
|
|
354
|
+
onObjectTransformPreviewStart?: (preview: ObjectTransformPreview) => void;
|
|
355
|
+
onObjectTransformPreviewUpdate?: (preview: ObjectTransformPreview) => void;
|
|
356
|
+
onObjectTransformPreviewEnd?: (preview: ObjectTransformPreview) => void;
|
|
357
|
+
onTextDraftPreviewStart?: (preview: TextDraftPreview) => void;
|
|
358
|
+
onTextDraftPreviewUpdate?: (preview: TextDraftPreview) => void;
|
|
359
|
+
onTextDraftPreviewEnd?: (preview: TextDraftPreview) => void;
|
|
360
|
+
remotePresence?: RemotePointerPresence[];
|
|
361
|
+
remoteStrokePreviews?: StrokePreview[];
|
|
362
|
+
remoteObjectTransformPreviews?: ObjectTransformPreview[];
|
|
363
|
+
remoteTextDraftPreviews?: TextDraftPreview[];
|
|
263
364
|
};
|
package/dist/MathCanvas.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import "katex/dist/katex.min.css";
|
|
|
2
2
|
import "mathlive";
|
|
3
3
|
import "mathlive/fonts.css";
|
|
4
4
|
import "mathlive/static.css";
|
|
5
|
-
export type { CanvasState, MathCanvasProps, GeoPoint, GeoSegment, GeoPolygon, GeoAngle, GeoCircle, GeoHelperSegment, GeoRightAngleMarker, } from "./MathCanvas/types";
|
|
5
|
+
export type { CanvasState, CollaborationMessage, CollaborationMessageBase, CollaborationDocumentMessage, CollaborationObjectTransformMessage, CollaborationPresenceMessage, CollaborationPreviewPhase, CollaborationStrokePreviewMessage, CollaborationTextDraftMessage, DocumentCanvasState, MathCanvasProps, ObjectTransformPreview, PointerPresence, RemotePointerPresence, StrokePreview, TextboxMenuPanel, TextDraftPreview, GeoPoint, GeoSegment, GeoPolygon, GeoAngle, GeoCircle, GeoHelperSegment, GeoRightAngleMarker, } from "./MathCanvas/types";
|
|
6
6
|
import type { MathCanvasProps } from "./MathCanvas/types";
|
|
7
|
-
export default function MathCanvas(
|
|
7
|
+
export default function MathCanvas(props: MathCanvasProps): import("react/jsx-runtime").JSX.Element;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default } from "./MathCanvas";
|
|
2
2
|
export { default as MathCanvas } from "./MathCanvas";
|
|
3
|
-
export type { CanvasState, MathCanvasProps } from "./MathCanvas";
|
|
3
|
+
export type { CanvasState, CollaborationMessage, CollaborationMessageBase, CollaborationDocumentMessage, CollaborationObjectTransformMessage, CollaborationPresenceMessage, CollaborationPreviewPhase, CollaborationStrokePreviewMessage, CollaborationTextDraftMessage, DocumentCanvasState, MathCanvasProps, ObjectTransformPreview, PointerPresence, RemotePointerPresence, StrokePreview, TextDraftPreview, } from "./MathCanvas";
|