@oh-just-another/react-ui 0.59.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/README.md +4 -4
- package/dist/.tsbuildinfo +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.js +1 -1
- package/dist/diagram-canvas.d.ts +2 -2
- package/dist/diagram-canvas.js +1 -1
- package/dist/diagram-root.d.ts +2 -2
- package/dist/diagram-root.js +2 -2
- package/dist/drawing-panel.js +2 -2
- package/dist/drawing-panel.js.map +1 -1
- package/dist/help-dialog.js +2 -2
- package/dist/hooks.d.ts +6 -3
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +7 -2
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/link-caption-editor.d.ts +3 -3
- package/dist/link-caption-editor.d.ts.map +1 -1
- package/dist/link-caption-editor.js +8 -5
- package/dist/link-caption-editor.js.map +1 -1
- package/dist/property-panel.d.ts.map +1 -1
- package/dist/property-panel.js +28 -3
- package/dist/property-panel.js.map +1 -1
- package/dist/toolbar.d.ts +2 -2
- package/dist/toolbar.js +6 -6
- package/dist/toolbar.js.map +1 -1
- package/package.json +8 -8
- package/src/styles.css +4 -1
package/dist/diagram-canvas.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ import type { Scene } from "@oh-just-another/scene";
|
|
|
18
18
|
*/
|
|
19
19
|
export interface DiagramCanvasProps {
|
|
20
20
|
readonly initialScene: Scene;
|
|
21
|
-
readonly
|
|
21
|
+
readonly initialTool?: Mode;
|
|
22
22
|
readonly onReady?: (editor: Editor) => void;
|
|
23
23
|
readonly style?: CSSProperties;
|
|
24
24
|
readonly className?: string;
|
|
@@ -37,5 +37,5 @@ export interface DiagramCanvasProps {
|
|
|
37
37
|
*/
|
|
38
38
|
readonly children?: ReactNode;
|
|
39
39
|
}
|
|
40
|
-
export declare const DiagramCanvas: ({ initialScene,
|
|
40
|
+
export declare const DiagramCanvas: ({ initialScene, initialTool, onReady, style, className, skipInstallRenderers, readOnly, children, }: DiagramCanvasProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
41
|
//# sourceMappingURL=diagram-canvas.d.ts.map
|
package/dist/diagram-canvas.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { DiagramRoot, DiagramSurface } from "./diagram-root.js";
|
|
3
|
-
export const DiagramCanvas = ({ initialScene,
|
|
3
|
+
export const DiagramCanvas = ({ initialScene, initialTool, onReady, style, className, skipInstallRenderers, readOnly, children, }) => (_jsx(DiagramRoot, { initialScene: initialScene, ...(initialTool !== undefined ? { initialTool } : {}), ...(onReady !== undefined ? { onReady } : {}), ...(skipInstallRenderers !== undefined ? { skipInstallRenderers } : {}), ...(readOnly !== undefined ? { readOnly } : {}), children: _jsxs("div", { className: className, style: {
|
|
4
4
|
position: "relative",
|
|
5
5
|
width: "100%",
|
|
6
6
|
height: "100%",
|
package/dist/diagram-root.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type { Rasterizer, TextShaper } from "@oh-just-another/renderer-core";
|
|
|
5
5
|
import type { Scene } from "@oh-just-another/scene";
|
|
6
6
|
export interface DiagramRootProps {
|
|
7
7
|
readonly initialScene: Scene;
|
|
8
|
-
readonly
|
|
8
|
+
readonly initialTool?: Mode;
|
|
9
9
|
readonly children: ReactNode;
|
|
10
10
|
/**
|
|
11
11
|
* Start (and keep) the editor in read-only / view mode. Pointer edits
|
|
@@ -50,7 +50,7 @@ export interface DiagramRootProps {
|
|
|
50
50
|
*/
|
|
51
51
|
readonly rasterizer?: Rasterizer;
|
|
52
52
|
}
|
|
53
|
-
export declare const DiagramRoot: ({ initialScene,
|
|
53
|
+
export declare const DiagramRoot: ({ initialScene, initialTool, children, onReady, skipInstallRenderers, renderer, workerFactory, textShaper, rasterizer, readOnly, }: DiagramRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
54
54
|
export interface DiagramSurfaceProps {
|
|
55
55
|
readonly style?: CSSProperties;
|
|
56
56
|
readonly className?: string;
|
package/dist/diagram-root.js
CHANGED
|
@@ -5,7 +5,7 @@ import { Editor } from "@oh-just-another/state";
|
|
|
5
5
|
import { DiagramEditorBridge } from "./context.js";
|
|
6
6
|
import { ContextMenuControllerProvider } from "./context-menu-controller.js";
|
|
7
7
|
const RegisterSurfaceContext = createContext(null);
|
|
8
|
-
export const DiagramRoot = ({ initialScene,
|
|
8
|
+
export const DiagramRoot = ({ initialScene, initialTool, children, onReady, skipInstallRenderers, renderer = "canvas2d", workerFactory, textShaper, rasterizer, readOnly = false, }) => {
|
|
9
9
|
const [editor, setEditor] = useState(null);
|
|
10
10
|
const editorRef = useRef(null);
|
|
11
11
|
const surfaceRef = useRef(null);
|
|
@@ -59,7 +59,7 @@ export const DiagramRoot = ({ initialScene, initialMode, children, onReady, skip
|
|
|
59
59
|
// behind.
|
|
60
60
|
onAfterRender: () => surfaceRef.current?.present(),
|
|
61
61
|
initialScene,
|
|
62
|
-
...(
|
|
62
|
+
...(initialTool !== undefined ? { initialTool } : {}),
|
|
63
63
|
...(textShaperRef.current ? { textShaper: textShaperRef.current } : {}),
|
|
64
64
|
...(rasterizerRef.current ? { rasterizer: rasterizerRef.current } : {}),
|
|
65
65
|
};
|
package/dist/drawing-panel.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import {} from "react";
|
|
3
3
|
import { ColorSwatchPicker } from "./color-swatch-picker.js";
|
|
4
|
-
import { useBrushSettings, useDiagramOptional
|
|
4
|
+
import { useActiveTool, useBrushSettings, useDiagramOptional } from "./hooks.js";
|
|
5
5
|
import { BRUSH_WIDTH_MAX, BRUSH_WIDTH_MIN, DRAWING_PANEL_WIDTH } from "./constants.js";
|
|
6
6
|
/**
|
|
7
7
|
* Drawing / eraser tool options — a floating panel that appears while the brush
|
|
@@ -14,7 +14,7 @@ import { BRUSH_WIDTH_MAX, BRUSH_WIDTH_MIN, DRAWING_PANEL_WIDTH } from "./constan
|
|
|
14
14
|
*/
|
|
15
15
|
export const DrawingPanel = ({ style }) => {
|
|
16
16
|
const editor = useDiagramOptional();
|
|
17
|
-
const mode =
|
|
17
|
+
const mode = useActiveTool().type;
|
|
18
18
|
const settings = useBrushSettings();
|
|
19
19
|
if (!editor || (mode !== "brush" && mode !== "erase"))
|
|
20
20
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawing-panel.js","sourceRoot":"","sources":["../src/drawing-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"drawing-panel.js","sourceRoot":"","sources":["../src/drawing-panel.tsx"],"names":[],"mappings":"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"}
|
package/dist/help-dialog.js
CHANGED
|
@@ -11,7 +11,7 @@ const CATEGORY_TITLES = {
|
|
|
11
11
|
"z-order": "Z-order",
|
|
12
12
|
grouping: "Grouping",
|
|
13
13
|
zoom: "Zoom",
|
|
14
|
-
|
|
14
|
+
tool: "Tools",
|
|
15
15
|
layout: "Layout",
|
|
16
16
|
arrange: "Arrange",
|
|
17
17
|
edit: "Editing",
|
|
@@ -21,7 +21,7 @@ const CATEGORY_TITLES = {
|
|
|
21
21
|
// dialog entirely (a category absent from this list is never rendered). Keep in
|
|
22
22
|
// sync with the `ActionCategory` union.
|
|
23
23
|
const CATEGORY_ORDER = [
|
|
24
|
-
"
|
|
24
|
+
"tool",
|
|
25
25
|
"edit",
|
|
26
26
|
"selection",
|
|
27
27
|
"clipboard",
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Annotation, type Layer, type Scene } from "@oh-just-another/scene";
|
|
2
2
|
import { type AnnotationId, type LinkId, type LayerId } from "@oh-just-another/types";
|
|
3
|
-
import { type BrushSettings, type Editor, type
|
|
3
|
+
import { type BrushSettings, type Editor, type ActiveTool, type Selection } from "@oh-just-another/state";
|
|
4
4
|
/**
|
|
5
5
|
* Live `Editor` instance. Use for imperative actions (`addElement`,
|
|
6
6
|
* `loadScene`, `screenToWorld`). Throws if not inside a provider.
|
|
@@ -21,8 +21,11 @@ export declare const useDiagramOptional: () => Editor | null;
|
|
|
21
21
|
export declare const useScene: () => Scene;
|
|
22
22
|
/** Selected shape ids. Returns the canonical `EMPTY` set pre-mount. */
|
|
23
23
|
export declare const useSelection: () => Selection;
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/**
|
|
25
|
+
* The active tool as one value object (`{ type, locked, lastActiveTool }`).
|
|
26
|
+
* Re-renders on any tool change — a type switch or a lock flip.
|
|
27
|
+
*/
|
|
28
|
+
export declare const useActiveTool: () => ActiveTool;
|
|
26
29
|
/**
|
|
27
30
|
* Live brush paint settings (line colour, fill, opacity, width) — what the
|
|
28
31
|
* drawing panel edits via {@link Editor.setBrushSettings}. Defaults to
|
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,KAAK,EACX,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,MAAM,EAEX,KAAK,OAAO,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,KAAK,EACX,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,MAAM,EAEX,KAAK,OAAO,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,QAAO,MAA6B,CAAC;AAc5D,eAAO,MAAM,eAAe,QAAO,OAehC,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAAmC,CAAC;AAInF,iFAAiF;AACjF,eAAO,MAAM,QAAQ,QAAO,KAAgE,CAAC;AAE7F,uEAAuE;AACvE,eAAO,MAAM,YAAY,QAAO,SACqC,CAAC;AAKtE;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAO,UACgD,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAO,aAC+B,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,OAAsD,CAAC;AAEtF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,QAAO;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;CAc3B,CAAC;AAIF,8EAA8E;AAC9E,eAAO,MAAM,SAAS,QAAO,SAAS,KAAK,EACwB,CAAC;AAIpE,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,QAAO,OAC6B,CAAC;AAIlE;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAO,SAAS,UAAU,EAC2B,CAAC;AAEjF,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,QAAO,YAAY,GAAG,IACmB,CAAC;AAE5E,oEAAoE;AACpE,eAAO,MAAM,eAAe,QAAO,MAAM,GAAG,IACmB,CAAC"}
|
package/dist/hooks.js
CHANGED
|
@@ -45,8 +45,13 @@ const EMPTY_SCENE = emptyScene();
|
|
|
45
45
|
export const useScene = () => useEditorSelector((e) => e.scene, EMPTY_SCENE, "scene");
|
|
46
46
|
/** Selected shape ids. Returns the canonical `EMPTY` set pre-mount. */
|
|
47
47
|
export const useSelection = () => useEditorSelector((e) => e.selection, selection.EMPTY, "selection");
|
|
48
|
-
/**
|
|
49
|
-
|
|
48
|
+
/** Pre-mount fallback for {@link useActiveTool} — the editor's initial tool state. */
|
|
49
|
+
const DEFAULT_ACTIVE_TOOL = { type: "select", locked: false, lastActiveTool: null };
|
|
50
|
+
/**
|
|
51
|
+
* The active tool as one value object (`{ type, locked, lastActiveTool }`).
|
|
52
|
+
* Re-renders on any tool change — a type switch or a lock flip.
|
|
53
|
+
*/
|
|
54
|
+
export const useActiveTool = () => useEditorSelector((e) => e.activeTool, DEFAULT_ACTIVE_TOOL, "tool");
|
|
50
55
|
/**
|
|
51
56
|
* Live brush paint settings (line colour, fill, opacity, width) — what the
|
|
52
57
|
* drawing panel edits via {@link Editor.setBrushSettings}. Defaults to
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,gBAAgB,GAIjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAGL,OAAO,IAAI,WAAW,GAEvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,SAAS,GAKV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE/F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,GAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,YAAY,GAAG,kCAAkC,mBAAmB,KAAK,CAAC;AAChF,MAAM,WAAW,GAAG,GAAY,EAAE,CAChC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;IACtE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO;IACzC,CAAC,CAAC,KAAK,CAAC;AAEZ,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAC3C,oBAAoB,CAClB,CAAC,QAAQ,EAAE,EAAE;IACX,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;QAC1E,OAAO,GAAG,EAAE;YACV,qEAAqE;QACvE,CAAC,CAAC;IACJ,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC3C,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxC,OAAO,GAAG,EAAE;QACV,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC,EACD,WAAW,EACX,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAkB,EAAE,CAAC,yBAAyB,EAAE,CAAC;AAEnF,MAAM,WAAW,GAAU,UAAU,EAAE,CAAC;AAExC,iFAAiF;AACjF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAU,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAE7F,uEAAuE;AACvE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAc,EAAE,CAC1C,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAEtE,
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export { DiagramRoot, DiagramSurface, type DiagramRootProps, type DiagramSurface
|
|
|
16
16
|
export { DiagramCanvas, type DiagramCanvasProps } from "./diagram-canvas.js";
|
|
17
17
|
export { Minimap, type MinimapProps } from "./minimap.js";
|
|
18
18
|
export { DrawingPanel } from "./drawing-panel.js";
|
|
19
|
-
export { useDiagram, useDiagramOptional, useScene, useSelection,
|
|
19
|
+
export { useDiagram, useDiagramOptional, useScene, useSelection, useActiveTool, useBrushSettings, useReadOnly, useHistory, useLayers, useActiveLayerId, useAnnotations, useSelectedAnnotation, useSelectedLink, useMobileLayout, } from "./hooks.js";
|
|
20
20
|
export { LayerPanel, type LayerPanelProps } from "./layer-panel.js";
|
|
21
21
|
export { CommentsPanel, CommentsPopover, type CommentsPanelProps, type CommentsPopoverProps, } from "./comments-panel.js";
|
|
22
22
|
export { VersionPanel, useSnapshotStore, type VersionPanelProps } from "./versioning.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EACX,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ export { DiagramRoot, DiagramSurface, } from "./diagram-root.js";
|
|
|
16
16
|
export { DiagramCanvas } from "./diagram-canvas.js";
|
|
17
17
|
export { Minimap } from "./minimap.js";
|
|
18
18
|
export { DrawingPanel } from "./drawing-panel.js";
|
|
19
|
-
export { useDiagram, useDiagramOptional, useScene, useSelection,
|
|
19
|
+
export { useDiagram, useDiagramOptional, useScene, useSelection, useActiveTool, useBrushSettings, useReadOnly, useHistory, useLayers, useActiveLayerId, useAnnotations, useSelectedAnnotation, useSelectedLink, useMobileLayout, } from "./hooks.js";
|
|
20
20
|
export { LayerPanel } from "./layer-panel.js";
|
|
21
21
|
export { CommentsPanel, CommentsPopover, } from "./comments-panel.js";
|
|
22
22
|
export { VersionPanel, useSnapshotStore } from "./versioning.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EACL,gBAAgB,GAGjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAqB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAwB,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAwB,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,YAAY,EAA0B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,sBAAsB,GAEvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAA+B,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,EACX,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAA2B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Inline editor for a link's caption. Opens on double-click of a link
|
|
3
|
-
* (state layer sets `editor.editingLinkCaption`). Renders a small
|
|
4
|
-
* the link's label
|
|
5
|
-
* Escape cancels. Empty text removes the label. Portaled
|
|
3
|
+
* (state layer sets `editor.editingLinkCaption`). Renders a small multiline
|
|
4
|
+
* textarea at the link's label anchor. Enter / blur commits, Shift+Enter
|
|
5
|
+
* inserts a newline, Escape cancels. Empty text removes the label. Portaled.
|
|
6
6
|
*/
|
|
7
7
|
export declare const LinkCaptionEditor: () => import("react").ReactPortal | null;
|
|
8
8
|
//# sourceMappingURL=link-caption-editor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-caption-editor.d.ts","sourceRoot":"","sources":["../src/link-caption-editor.tsx"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"link-caption-editor.d.ts","sourceRoot":"","sources":["../src/link-caption-editor.tsx"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,0CAgF7B,CAAC"}
|
|
@@ -5,9 +5,9 @@ import { useDiagramOptional } from "./hooks.js";
|
|
|
5
5
|
import { usePortalContainer } from "./portal-container.js";
|
|
6
6
|
/**
|
|
7
7
|
* Inline editor for a link's caption. Opens on double-click of a link
|
|
8
|
-
* (state layer sets `editor.editingLinkCaption`). Renders a small
|
|
9
|
-
* the link's label
|
|
10
|
-
* Escape cancels. Empty text removes the label. Portaled
|
|
8
|
+
* (state layer sets `editor.editingLinkCaption`). Renders a small multiline
|
|
9
|
+
* textarea at the link's label anchor. Enter / blur commits, Shift+Enter
|
|
10
|
+
* inserts a newline, Escape cancels. Empty text removes the label. Portaled.
|
|
11
11
|
*/
|
|
12
12
|
export const LinkCaptionEditor = () => {
|
|
13
13
|
const editor = useDiagramOptional();
|
|
@@ -52,7 +52,10 @@ export const LinkCaptionEditor = () => {
|
|
|
52
52
|
const commit = () => {
|
|
53
53
|
editor.commitLinkCaptionEdit(value);
|
|
54
54
|
};
|
|
55
|
-
|
|
55
|
+
// Grow with the content: one visual row per line, capped so a long caption
|
|
56
|
+
// doesn't cover half the canvas while being edited.
|
|
57
|
+
const rows = Math.min(5, value.split("\n").length);
|
|
58
|
+
return createPortal(_jsx("textarea", { ref: inputRef, className: "du-link-caption-input", value: value, placeholder: "Label", rows: rows, style: {
|
|
56
59
|
position: "fixed",
|
|
57
60
|
left: sx,
|
|
58
61
|
top: sy,
|
|
@@ -61,7 +64,7 @@ export const LinkCaptionEditor = () => {
|
|
|
61
64
|
}, onChange: (e) => {
|
|
62
65
|
setValue(e.target.value);
|
|
63
66
|
}, onBlur: commit, onKeyDown: (e) => {
|
|
64
|
-
if (e.key === "Enter") {
|
|
67
|
+
if (e.key === "Enter" && !e.shiftKey) {
|
|
65
68
|
e.preventDefault();
|
|
66
69
|
commit();
|
|
67
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-caption-editor.js","sourceRoot":"","sources":["../src/link-caption-editor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"link-caption-editor.js","sourceRoot":"","sources":["../src/link-caption-editor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-panel.d.ts","sourceRoot":"","sources":["../src/property-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,aAAa,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"property-panel.d.ts","sourceRoot":"","sources":["../src/property-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,aAAa,EAAkB,MAAM,OAAO,CAAC;AAqFxF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,GAAI,8BAAsC,kBAAkB,mDA+GrF,CAAC"}
|
package/dist/property-panel.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
import { AlignCenter, AlignCenterHorizontal, AlignCenterVertical, AlignEndHorizontal, AlignEndVertical, AlignHorizontalDistributeCenter, AlignLeft, AlignRight, AlignStartHorizontal, AlignStartVertical, AlignVerticalDistributeCenter, Bold, CaseSensitive, ChevronsDown, ChevronsUp, Circle, Copy as CopyIcon, Crop, Diamond, FlipHorizontal2 as FlipHorizontalIcon, FlipVertical2 as FlipVerticalIcon, Group as GroupIcon, Italic, Link as LinkIcon, Minus, MoreHorizontal, MoreVertical, MoveDown, MoveRight, MoveUp, Spline, Square, SquareDashed, SquareDot, Strikethrough, Trash2, Underline, Ungroup as UngroupIcon, Waypoints, } from "lucide-react";
|
|
4
|
-
import { isGroup, isText, isImage, isFrame, isRectangle, isEllipse, isPolygon, sliceRuns, } from "@oh-just-another/scene";
|
|
4
|
+
import { isGroup, isText, isImage, isFrame, isRectangle, isEllipse, isBrush, isPolygon, sliceRuns, } from "@oh-just-another/scene";
|
|
5
5
|
import { useDiagramOptional, useReadOnly, useScene, useSelectedLink, useSelection, } from "./hooks.js";
|
|
6
6
|
import { useEditorSelector } from "./context.js";
|
|
7
7
|
import { useContextMenuController } from "./context-menu-controller.js";
|
|
@@ -9,7 +9,7 @@ import { ColorSwatchPicker } from "./color-swatch-picker.js";
|
|
|
9
9
|
import { Popover } from "./popover.js";
|
|
10
10
|
import { SegmentedControl } from "./segmented-control.js";
|
|
11
11
|
import { Slider } from "./slider.js";
|
|
12
|
-
import { TEXT_FONT_SIZE_MAX, TEXT_FONT_SIZE_MIN, TEXT_FONT_SIZE_PRESETS, TEXT_FONT_STACKS, } from "./constants.js";
|
|
12
|
+
import { BRUSH_WIDTH_MAX, BRUSH_WIDTH_MIN, TEXT_FONT_SIZE_MAX, TEXT_FONT_SIZE_MIN, TEXT_FONT_SIZE_PRESETS, TEXT_FONT_STACKS, } from "./constants.js";
|
|
13
13
|
export const PropertyPanel = ({ style, className, mobile = false }) => {
|
|
14
14
|
const selection = useSelection();
|
|
15
15
|
const selectedLinkId = useSelectedLink();
|
|
@@ -32,6 +32,7 @@ export const PropertyPanel = ({ style, className, mobile = false }) => {
|
|
|
32
32
|
return null;
|
|
33
33
|
const allText = shapes.every((s) => isText(s));
|
|
34
34
|
const allImage = shapes.every((s) => isImage(s));
|
|
35
|
+
const allBrush = shapes.every((s) => isBrush(s));
|
|
35
36
|
const allFrame = shapes.every((s) => isFrame(s));
|
|
36
37
|
const primary = [];
|
|
37
38
|
const overflow = [];
|
|
@@ -49,7 +50,11 @@ export const PropertyPanel = ({ style, className, mobile = false }) => {
|
|
|
49
50
|
primary.push(_jsx(OpacityControl, { shapes: shapes }, "opacity"), _jsx(CropControl, { shapes: shapes }, "crop"));
|
|
50
51
|
}
|
|
51
52
|
else {
|
|
52
|
-
primary.push(_jsx(FillControl, { shapes: shapes }, "fill"), _jsx(StrokeControl, { shapes: shapes }, "stroke"),
|
|
53
|
+
primary.push(_jsx(FillControl, { shapes: shapes }, "fill"), _jsx(StrokeControl, { shapes: shapes }, "stroke"),
|
|
54
|
+
// Brush widths are baked per point — `style.strokeWidth` has no
|
|
55
|
+
// effect, so brush-only selections get a slider that re-bases the
|
|
56
|
+
// baked widths instead of the Thin/Medium/Thick segmented control.
|
|
57
|
+
allBrush ? (_jsx(BrushWidthControl, { shapes: shapes }, "width")) : (_jsx(StrokeWidthControl, { shapes: shapes }, "width")));
|
|
53
58
|
overflow.push(_jsx(StrokeStyleControl, { shapes: shapes }, "dash"), _jsx(RoundnessControl, { shapes: shapes }, "round"), _jsx(OpacityControl, { shapes: shapes }, "opacity"), _jsx(ConvertTypeControl, { shapes: shapes }, "convert"));
|
|
54
59
|
}
|
|
55
60
|
// Common trailing controls for every shape type.
|
|
@@ -373,6 +378,26 @@ const StrokeControl = ({ shapes }) => {
|
|
|
373
378
|
editor.beginEyedropperPick(cb);
|
|
374
379
|
} }));
|
|
375
380
|
};
|
|
381
|
+
/**
|
|
382
|
+
* Width control for brush strokes: a popover with a range slider driving
|
|
383
|
+
* `editor.setBrushWidth`, which re-bases the baked per-point widths while
|
|
384
|
+
* keeping the stroke's pressure profile. Rendered instead of
|
|
385
|
+
* {@link StrokeWidthControl} when the whole selection is brush strokes.
|
|
386
|
+
*/
|
|
387
|
+
const BrushWidthControl = ({ shapes }) => {
|
|
388
|
+
const editor = useDiagramOptional();
|
|
389
|
+
if (!editor)
|
|
390
|
+
return null;
|
|
391
|
+
const ids = shapes.map((s) => s.id);
|
|
392
|
+
const value = sharedValue(shapes, (s) => {
|
|
393
|
+
const brush = s;
|
|
394
|
+
const base = brush.baseWidth ?? brush.points.reduce((m, p) => Math.max(m, p.width), 0);
|
|
395
|
+
return base > 0 ? Math.round(base) : null;
|
|
396
|
+
});
|
|
397
|
+
return (_jsx(Popover, { ariaLabel: "Brush width", trigger: _jsx("button", { type: "button", className: "du-sel-icon-button", title: "Brush width", "aria-label": "Brush width", children: _jsx(StrokeWidthIcon, { thickness: 2.5 }) }), children: _jsxs("div", { className: "du-sel-popover-section", children: [_jsx("header", { className: "du-sel-popover-label", children: `Width ${value !== null ? String(value) : "mixed"}` }), _jsx("input", { type: "range", min: BRUSH_WIDTH_MIN, max: BRUSH_WIDTH_MAX, step: 1, value: value ?? BRUSH_WIDTH_MIN, onChange: (e) => {
|
|
398
|
+
editor.setBrushWidth(ids, e.currentTarget.valueAsNumber);
|
|
399
|
+
}, style: { width: "100%" }, "aria-label": "Brush width" })] }) }));
|
|
400
|
+
};
|
|
376
401
|
const StrokeWidthControl = ({ shapes }) => {
|
|
377
402
|
const editor = useDiagramOptional();
|
|
378
403
|
if (!editor || !shapes.some((s) => s.style.stroke !== undefined))
|