canvu-react 0.3.5

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 (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +156 -0
  3. package/dist/camera-BwQjm5oh.d.cts +50 -0
  4. package/dist/camera-KwCYYPhm.d.ts +50 -0
  5. package/dist/chatbot.cjs +221 -0
  6. package/dist/chatbot.cjs.map +1 -0
  7. package/dist/chatbot.d.cts +36 -0
  8. package/dist/chatbot.d.ts +36 -0
  9. package/dist/chatbot.js +218 -0
  10. package/dist/chatbot.js.map +1 -0
  11. package/dist/index.cjs +1920 -0
  12. package/dist/index.cjs.map +1 -0
  13. package/dist/index.d.cts +276 -0
  14. package/dist/index.d.ts +276 -0
  15. package/dist/index.js +1867 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/native.cjs +2572 -0
  18. package/dist/native.cjs.map +1 -0
  19. package/dist/native.d.cts +217 -0
  20. package/dist/native.d.ts +217 -0
  21. package/dist/native.js +2562 -0
  22. package/dist/native.js.map +1 -0
  23. package/dist/react.cjs +8540 -0
  24. package/dist/react.cjs.map +1 -0
  25. package/dist/react.d.cts +481 -0
  26. package/dist/react.d.ts +481 -0
  27. package/dist/react.js +8492 -0
  28. package/dist/react.js.map +1 -0
  29. package/dist/realtime.cjs +2338 -0
  30. package/dist/realtime.cjs.map +1 -0
  31. package/dist/realtime.d.cts +309 -0
  32. package/dist/realtime.d.ts +309 -0
  33. package/dist/realtime.js +2317 -0
  34. package/dist/realtime.js.map +1 -0
  35. package/dist/shape-builders-DTYvub8W.d.ts +93 -0
  36. package/dist/shape-builders-DxPoOecg.d.cts +93 -0
  37. package/dist/tldraw.cjs +1948 -0
  38. package/dist/tldraw.cjs.map +1 -0
  39. package/dist/tldraw.d.cts +98 -0
  40. package/dist/tldraw.d.ts +98 -0
  41. package/dist/tldraw.js +1941 -0
  42. package/dist/tldraw.js.map +1 -0
  43. package/dist/types--ALu1mF-.d.ts +356 -0
  44. package/dist/types-B58i5k-u.d.cts +35 -0
  45. package/dist/types-CB0TZZuk.d.cts +157 -0
  46. package/dist/types-CB0TZZuk.d.ts +157 -0
  47. package/dist/types-D1ftVsOQ.d.cts +356 -0
  48. package/dist/types-DgEArHkA.d.ts +35 -0
  49. package/package.json +103 -0
@@ -0,0 +1,217 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { C as Camera2D } from './camera-BwQjm5oh.cjs';
3
+ import { V as VectorSceneItem, R as Rect } from './types-CB0TZZuk.cjs';
4
+ import * as react from 'react';
5
+
6
+ type PlacementPreview = {
7
+ readonly kind: "rect" | "ellipse";
8
+ readonly rect: {
9
+ readonly x: number;
10
+ readonly y: number;
11
+ readonly width: number;
12
+ readonly height: number;
13
+ };
14
+ } | {
15
+ readonly kind: "marquee";
16
+ readonly rect: {
17
+ readonly x: number;
18
+ readonly y: number;
19
+ readonly width: number;
20
+ readonly height: number;
21
+ };
22
+ } | {
23
+ readonly kind: "line" | "arrow";
24
+ readonly start: {
25
+ readonly x: number;
26
+ readonly y: number;
27
+ };
28
+ readonly end: {
29
+ readonly x: number;
30
+ readonly y: number;
31
+ };
32
+ } | {
33
+ readonly kind: "stroke";
34
+ readonly tool: string;
35
+ readonly points: readonly {
36
+ readonly x: number;
37
+ readonly y: number;
38
+ }[];
39
+ };
40
+ type NativeInteractionOverlayProps = {
41
+ readonly camera: Camera2D;
42
+ readonly width: number;
43
+ readonly height: number;
44
+ readonly selectedItems: readonly VectorSceneItem[];
45
+ readonly showResizeHandles: boolean;
46
+ readonly placementPreview: PlacementPreview | null;
47
+ readonly eraserTrail?: readonly {
48
+ readonly x: number;
49
+ readonly y: number;
50
+ }[];
51
+ readonly laserTrail?: readonly {
52
+ readonly x: number;
53
+ readonly y: number;
54
+ }[];
55
+ readonly eraserPreviewItems?: readonly VectorSceneItem[];
56
+ };
57
+ declare function NativeInteractionOverlay({ camera, width, height, selectedItems, showResizeHandles, placementPreview, eraserTrail, laserTrail, eraserPreviewItems, }: NativeInteractionOverlayProps): react_jsx_runtime.JSX.Element | null;
58
+
59
+ type NativeSceneRendererProps = {
60
+ readonly items: readonly VectorSceneItem[];
61
+ readonly camera: Camera2D;
62
+ readonly width: number;
63
+ readonly height: number;
64
+ };
65
+ declare function NativeSceneRenderer({ items, camera, width, height, }: NativeSceneRendererProps): react_jsx_runtime.JSX.Element | null;
66
+
67
+ type NativeShapeRendererProps = {
68
+ readonly item: VectorSceneItem;
69
+ };
70
+ declare function NativeShapeRenderer({ item }: NativeShapeRendererProps): react_jsx_runtime.JSX.Element | null;
71
+
72
+ type NativeVectorViewportHandle = {
73
+ getCamera: () => Camera2D | null;
74
+ requestRender: () => void;
75
+ getViewportSize: () => {
76
+ width: number;
77
+ height: number;
78
+ };
79
+ fitWorldRect: (worldRect: Rect, options?: {
80
+ padding?: number;
81
+ }) => void;
82
+ };
83
+ type NativeVectorViewportProps = {
84
+ readonly items: readonly VectorSceneItem[];
85
+ readonly selectedIds?: readonly string[];
86
+ readonly toolId?: string;
87
+ readonly interactive?: boolean;
88
+ readonly onSelectionChange?: (ids: string[]) => void;
89
+ readonly onItemsChange?: (items: VectorSceneItem[]) => void;
90
+ readonly onCameraChange?: () => void;
91
+ readonly toolbar?: React.ReactNode;
92
+ };
93
+ declare const NativeVectorViewport: react.ForwardRefExoticComponent<NativeVectorViewportProps & react.RefAttributes<NativeVectorViewportHandle>>;
94
+
95
+ type NumberProp = string | number;
96
+ type SvgRectNode = {
97
+ readonly kind: "rect";
98
+ readonly width: NumberProp;
99
+ readonly height: NumberProp;
100
+ readonly fill?: string;
101
+ readonly fillOpacity?: number;
102
+ readonly stroke?: string;
103
+ readonly strokeWidth?: NumberProp;
104
+ readonly strokeOpacity?: number;
105
+ readonly rx?: NumberProp;
106
+ readonly shapeRendering?: string;
107
+ };
108
+ type SvgEllipseNode = {
109
+ readonly kind: "ellipse";
110
+ readonly cx: NumberProp;
111
+ readonly cy: NumberProp;
112
+ readonly rx: NumberProp;
113
+ readonly ry: NumberProp;
114
+ readonly fill?: string;
115
+ readonly fillOpacity?: number;
116
+ readonly stroke?: string;
117
+ readonly strokeWidth?: NumberProp;
118
+ readonly strokeOpacity?: number;
119
+ readonly shapeRendering?: string;
120
+ };
121
+ type SvgCircleNode = {
122
+ readonly kind: "circle";
123
+ readonly cx: NumberProp;
124
+ readonly cy: NumberProp;
125
+ readonly r: NumberProp;
126
+ readonly fill?: string;
127
+ readonly fillOpacity?: number;
128
+ readonly stroke?: string;
129
+ readonly strokeWidth?: NumberProp;
130
+ readonly strokeOpacity?: number;
131
+ readonly shapeRendering?: string;
132
+ };
133
+ type SvgLineNode = {
134
+ readonly kind: "line";
135
+ readonly x1: NumberProp;
136
+ readonly y1: NumberProp;
137
+ readonly x2: NumberProp;
138
+ readonly y2: NumberProp;
139
+ readonly stroke?: string;
140
+ readonly strokeWidth?: NumberProp;
141
+ readonly strokeOpacity?: number;
142
+ readonly strokeLinecap?: string;
143
+ readonly strokeLinejoin?: string;
144
+ readonly markerEnd?: string;
145
+ readonly shapeRendering?: string;
146
+ };
147
+ type SvgPathNode = {
148
+ readonly kind: "path";
149
+ readonly d: string;
150
+ readonly fill?: string;
151
+ readonly fillOpacity?: number;
152
+ readonly fillRule?: string;
153
+ readonly stroke?: string;
154
+ readonly strokeWidth?: NumberProp;
155
+ readonly strokeOpacity?: number;
156
+ readonly strokeLinecap?: string;
157
+ readonly strokeLinejoin?: string;
158
+ readonly shapeRendering?: string;
159
+ readonly vectorEffect?: string;
160
+ };
161
+ type SvgTSpanNode = {
162
+ readonly kind: "tspan";
163
+ readonly x?: NumberProp;
164
+ readonly dy?: NumberProp;
165
+ readonly text: string;
166
+ };
167
+ type SvgTextNode = {
168
+ readonly kind: "text";
169
+ readonly x?: NumberProp;
170
+ readonly y?: NumberProp;
171
+ readonly fill?: string;
172
+ readonly textAnchor?: string;
173
+ readonly fontSize?: NumberProp;
174
+ readonly fontFamily?: string;
175
+ readonly children: readonly SvgTSpanNode[];
176
+ };
177
+ type SvgPolygonNode = {
178
+ readonly kind: "polygon";
179
+ readonly points: string;
180
+ readonly fill?: string;
181
+ };
182
+ type SvgImageNode = {
183
+ readonly kind: "image";
184
+ readonly href: string;
185
+ readonly x: NumberProp;
186
+ readonly y: NumberProp;
187
+ readonly width: NumberProp;
188
+ readonly height: NumberProp;
189
+ };
190
+ type SvgGroupNode = {
191
+ readonly kind: "g";
192
+ readonly transform?: string;
193
+ readonly children: readonly SvgNode[];
194
+ };
195
+ type SvgDefsNode = {
196
+ readonly kind: "defs";
197
+ readonly children: readonly SvgNode[];
198
+ };
199
+ type SvgMarkerNode = {
200
+ readonly kind: "marker";
201
+ readonly id: string;
202
+ readonly markerWidth: NumberProp;
203
+ readonly markerHeight: NumberProp;
204
+ readonly refX: NumberProp;
205
+ readonly refY: NumberProp;
206
+ readonly orient: string;
207
+ readonly children: readonly SvgPolygonNode[];
208
+ };
209
+ type SvgNode = SvgRectNode | SvgEllipseNode | SvgCircleNode | SvgLineNode | SvgPathNode | SvgTextNode | SvgPolygonNode | SvgImageNode | SvgGroupNode | SvgDefsNode | SvgMarkerNode;
210
+ /**
211
+ * Lightweight SVG fragment parser — handles the exact SVG elements generated
212
+ * by canvu shape builders. Returns typed nodes suitable for rendering with
213
+ * react-native-svg.
214
+ */
215
+ declare function parseSvgFragment(xml: string): SvgNode[];
216
+
217
+ export { NativeInteractionOverlay, type NativeInteractionOverlayProps, NativeSceneRenderer, type NativeSceneRendererProps, NativeShapeRenderer, type NativeShapeRendererProps, NativeVectorViewport, type NativeVectorViewportHandle, type NativeVectorViewportProps, type PlacementPreview, type SvgNode, parseSvgFragment };
@@ -0,0 +1,217 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { C as Camera2D } from './camera-KwCYYPhm.js';
3
+ import { V as VectorSceneItem, R as Rect } from './types-CB0TZZuk.js';
4
+ import * as react from 'react';
5
+
6
+ type PlacementPreview = {
7
+ readonly kind: "rect" | "ellipse";
8
+ readonly rect: {
9
+ readonly x: number;
10
+ readonly y: number;
11
+ readonly width: number;
12
+ readonly height: number;
13
+ };
14
+ } | {
15
+ readonly kind: "marquee";
16
+ readonly rect: {
17
+ readonly x: number;
18
+ readonly y: number;
19
+ readonly width: number;
20
+ readonly height: number;
21
+ };
22
+ } | {
23
+ readonly kind: "line" | "arrow";
24
+ readonly start: {
25
+ readonly x: number;
26
+ readonly y: number;
27
+ };
28
+ readonly end: {
29
+ readonly x: number;
30
+ readonly y: number;
31
+ };
32
+ } | {
33
+ readonly kind: "stroke";
34
+ readonly tool: string;
35
+ readonly points: readonly {
36
+ readonly x: number;
37
+ readonly y: number;
38
+ }[];
39
+ };
40
+ type NativeInteractionOverlayProps = {
41
+ readonly camera: Camera2D;
42
+ readonly width: number;
43
+ readonly height: number;
44
+ readonly selectedItems: readonly VectorSceneItem[];
45
+ readonly showResizeHandles: boolean;
46
+ readonly placementPreview: PlacementPreview | null;
47
+ readonly eraserTrail?: readonly {
48
+ readonly x: number;
49
+ readonly y: number;
50
+ }[];
51
+ readonly laserTrail?: readonly {
52
+ readonly x: number;
53
+ readonly y: number;
54
+ }[];
55
+ readonly eraserPreviewItems?: readonly VectorSceneItem[];
56
+ };
57
+ declare function NativeInteractionOverlay({ camera, width, height, selectedItems, showResizeHandles, placementPreview, eraserTrail, laserTrail, eraserPreviewItems, }: NativeInteractionOverlayProps): react_jsx_runtime.JSX.Element | null;
58
+
59
+ type NativeSceneRendererProps = {
60
+ readonly items: readonly VectorSceneItem[];
61
+ readonly camera: Camera2D;
62
+ readonly width: number;
63
+ readonly height: number;
64
+ };
65
+ declare function NativeSceneRenderer({ items, camera, width, height, }: NativeSceneRendererProps): react_jsx_runtime.JSX.Element | null;
66
+
67
+ type NativeShapeRendererProps = {
68
+ readonly item: VectorSceneItem;
69
+ };
70
+ declare function NativeShapeRenderer({ item }: NativeShapeRendererProps): react_jsx_runtime.JSX.Element | null;
71
+
72
+ type NativeVectorViewportHandle = {
73
+ getCamera: () => Camera2D | null;
74
+ requestRender: () => void;
75
+ getViewportSize: () => {
76
+ width: number;
77
+ height: number;
78
+ };
79
+ fitWorldRect: (worldRect: Rect, options?: {
80
+ padding?: number;
81
+ }) => void;
82
+ };
83
+ type NativeVectorViewportProps = {
84
+ readonly items: readonly VectorSceneItem[];
85
+ readonly selectedIds?: readonly string[];
86
+ readonly toolId?: string;
87
+ readonly interactive?: boolean;
88
+ readonly onSelectionChange?: (ids: string[]) => void;
89
+ readonly onItemsChange?: (items: VectorSceneItem[]) => void;
90
+ readonly onCameraChange?: () => void;
91
+ readonly toolbar?: React.ReactNode;
92
+ };
93
+ declare const NativeVectorViewport: react.ForwardRefExoticComponent<NativeVectorViewportProps & react.RefAttributes<NativeVectorViewportHandle>>;
94
+
95
+ type NumberProp = string | number;
96
+ type SvgRectNode = {
97
+ readonly kind: "rect";
98
+ readonly width: NumberProp;
99
+ readonly height: NumberProp;
100
+ readonly fill?: string;
101
+ readonly fillOpacity?: number;
102
+ readonly stroke?: string;
103
+ readonly strokeWidth?: NumberProp;
104
+ readonly strokeOpacity?: number;
105
+ readonly rx?: NumberProp;
106
+ readonly shapeRendering?: string;
107
+ };
108
+ type SvgEllipseNode = {
109
+ readonly kind: "ellipse";
110
+ readonly cx: NumberProp;
111
+ readonly cy: NumberProp;
112
+ readonly rx: NumberProp;
113
+ readonly ry: NumberProp;
114
+ readonly fill?: string;
115
+ readonly fillOpacity?: number;
116
+ readonly stroke?: string;
117
+ readonly strokeWidth?: NumberProp;
118
+ readonly strokeOpacity?: number;
119
+ readonly shapeRendering?: string;
120
+ };
121
+ type SvgCircleNode = {
122
+ readonly kind: "circle";
123
+ readonly cx: NumberProp;
124
+ readonly cy: NumberProp;
125
+ readonly r: NumberProp;
126
+ readonly fill?: string;
127
+ readonly fillOpacity?: number;
128
+ readonly stroke?: string;
129
+ readonly strokeWidth?: NumberProp;
130
+ readonly strokeOpacity?: number;
131
+ readonly shapeRendering?: string;
132
+ };
133
+ type SvgLineNode = {
134
+ readonly kind: "line";
135
+ readonly x1: NumberProp;
136
+ readonly y1: NumberProp;
137
+ readonly x2: NumberProp;
138
+ readonly y2: NumberProp;
139
+ readonly stroke?: string;
140
+ readonly strokeWidth?: NumberProp;
141
+ readonly strokeOpacity?: number;
142
+ readonly strokeLinecap?: string;
143
+ readonly strokeLinejoin?: string;
144
+ readonly markerEnd?: string;
145
+ readonly shapeRendering?: string;
146
+ };
147
+ type SvgPathNode = {
148
+ readonly kind: "path";
149
+ readonly d: string;
150
+ readonly fill?: string;
151
+ readonly fillOpacity?: number;
152
+ readonly fillRule?: string;
153
+ readonly stroke?: string;
154
+ readonly strokeWidth?: NumberProp;
155
+ readonly strokeOpacity?: number;
156
+ readonly strokeLinecap?: string;
157
+ readonly strokeLinejoin?: string;
158
+ readonly shapeRendering?: string;
159
+ readonly vectorEffect?: string;
160
+ };
161
+ type SvgTSpanNode = {
162
+ readonly kind: "tspan";
163
+ readonly x?: NumberProp;
164
+ readonly dy?: NumberProp;
165
+ readonly text: string;
166
+ };
167
+ type SvgTextNode = {
168
+ readonly kind: "text";
169
+ readonly x?: NumberProp;
170
+ readonly y?: NumberProp;
171
+ readonly fill?: string;
172
+ readonly textAnchor?: string;
173
+ readonly fontSize?: NumberProp;
174
+ readonly fontFamily?: string;
175
+ readonly children: readonly SvgTSpanNode[];
176
+ };
177
+ type SvgPolygonNode = {
178
+ readonly kind: "polygon";
179
+ readonly points: string;
180
+ readonly fill?: string;
181
+ };
182
+ type SvgImageNode = {
183
+ readonly kind: "image";
184
+ readonly href: string;
185
+ readonly x: NumberProp;
186
+ readonly y: NumberProp;
187
+ readonly width: NumberProp;
188
+ readonly height: NumberProp;
189
+ };
190
+ type SvgGroupNode = {
191
+ readonly kind: "g";
192
+ readonly transform?: string;
193
+ readonly children: readonly SvgNode[];
194
+ };
195
+ type SvgDefsNode = {
196
+ readonly kind: "defs";
197
+ readonly children: readonly SvgNode[];
198
+ };
199
+ type SvgMarkerNode = {
200
+ readonly kind: "marker";
201
+ readonly id: string;
202
+ readonly markerWidth: NumberProp;
203
+ readonly markerHeight: NumberProp;
204
+ readonly refX: NumberProp;
205
+ readonly refY: NumberProp;
206
+ readonly orient: string;
207
+ readonly children: readonly SvgPolygonNode[];
208
+ };
209
+ type SvgNode = SvgRectNode | SvgEllipseNode | SvgCircleNode | SvgLineNode | SvgPathNode | SvgTextNode | SvgPolygonNode | SvgImageNode | SvgGroupNode | SvgDefsNode | SvgMarkerNode;
210
+ /**
211
+ * Lightweight SVG fragment parser — handles the exact SVG elements generated
212
+ * by canvu shape builders. Returns typed nodes suitable for rendering with
213
+ * react-native-svg.
214
+ */
215
+ declare function parseSvgFragment(xml: string): SvgNode[];
216
+
217
+ export { NativeInteractionOverlay, type NativeInteractionOverlayProps, NativeSceneRenderer, type NativeSceneRendererProps, NativeShapeRenderer, type NativeShapeRendererProps, NativeVectorViewport, type NativeVectorViewportHandle, type NativeVectorViewportProps, type PlacementPreview, type SvgNode, parseSvgFragment };