canvu-react 0.4.62 → 0.4.63
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/dist/react.cjs +25 -14
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +74 -2
- package/dist/react.d.ts +74 -2
- package/dist/react.js +25 -14
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
package/dist/react.d.cts
CHANGED
|
@@ -169,6 +169,35 @@ type ImagesMenuLabels = {
|
|
|
169
169
|
collapse?: string;
|
|
170
170
|
expand?: string;
|
|
171
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* Button props passed to {@link ImagesMenuCollapsedButtonRenderProps.buttonProps}.
|
|
174
|
+
*
|
|
175
|
+
* Use this when you build a fully custom collapsed trigger for
|
|
176
|
+
* {@link ImagesMenu}. Spreading these props onto a `<button>` preserves the
|
|
177
|
+
* default accessibility label, `data-slot`, styles/className, and click handler
|
|
178
|
+
* that opens the images menu.
|
|
179
|
+
*/
|
|
180
|
+
type ImagesMenuCollapsedButtonProps = {
|
|
181
|
+
type: "button";
|
|
182
|
+
"data-slot": "images-menu-collapsed";
|
|
183
|
+
"aria-label": string;
|
|
184
|
+
title: string;
|
|
185
|
+
className?: string;
|
|
186
|
+
style: CSSProperties;
|
|
187
|
+
onClick: () => void;
|
|
188
|
+
};
|
|
189
|
+
type ImagesMenuCollapsedButtonRenderProps = {
|
|
190
|
+
/** Number of managed images currently available in the menu. */
|
|
191
|
+
count: number;
|
|
192
|
+
/** Accessible label used by the default collapsed trigger. */
|
|
193
|
+
label: string;
|
|
194
|
+
/**
|
|
195
|
+
* Props ready to spread onto a `<button>`.
|
|
196
|
+
* Spread these onto your custom trigger to keep the built-in accessibility
|
|
197
|
+
* label, `data-slot`, default styles/className, and open-menu behavior.
|
|
198
|
+
*/
|
|
199
|
+
buttonProps: ImagesMenuCollapsedButtonProps;
|
|
200
|
+
};
|
|
172
201
|
type ImagesMenuProps = {
|
|
173
202
|
items: readonly VectorSceneItem[];
|
|
174
203
|
onItemsChange: (items: VectorSceneItem[]) => void;
|
|
@@ -183,6 +212,49 @@ type ImagesMenuProps = {
|
|
|
183
212
|
* only the floating toggle button until the user opens it.
|
|
184
213
|
*/
|
|
185
214
|
defaultOpen?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Class name applied to the collapsed floating trigger.
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```tsx
|
|
220
|
+
* <ImagesMenu
|
|
221
|
+
* items={items}
|
|
222
|
+
* onItemsChange={setItems}
|
|
223
|
+
* collapsedButtonClassName="my-images-trigger"
|
|
224
|
+
* />
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
collapsedButtonClassName?: string;
|
|
228
|
+
/**
|
|
229
|
+
* Inline style merged over the default collapsed trigger style.
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```tsx
|
|
233
|
+
* <ImagesMenu
|
|
234
|
+
* items={items}
|
|
235
|
+
* onItemsChange={setItems}
|
|
236
|
+
* collapsedButtonStyle={{ borderRadius: 999 }}
|
|
237
|
+
* />
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
collapsedButtonStyle?: CSSProperties;
|
|
241
|
+
/**
|
|
242
|
+
* Replaces the collapsed trigger markup. Prefer `collapsedButtonClassName`
|
|
243
|
+
* or `collapsedButtonStyle` for styling-only changes; use this when you need
|
|
244
|
+
* different content or structure.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```tsx
|
|
248
|
+
* <ImagesMenu
|
|
249
|
+
* items={items}
|
|
250
|
+
* onItemsChange={setItems}
|
|
251
|
+
* renderCollapsedButton={({ buttonProps, count }) => (
|
|
252
|
+
* <button {...buttonProps}>Images ({count})</button>
|
|
253
|
+
* )}
|
|
254
|
+
* />
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
renderCollapsedButton?: (props: ImagesMenuCollapsedButtonRenderProps) => ReactNode;
|
|
186
258
|
};
|
|
187
259
|
/**
|
|
188
260
|
* Floating side panel that lists images marked as "managed"
|
|
@@ -190,7 +262,7 @@ type ImagesMenuProps = {
|
|
|
190
262
|
* drag-to-reorder actions. Managed images are also `locked`, so they do not
|
|
191
263
|
* respond to direct canvas interaction.
|
|
192
264
|
*/
|
|
193
|
-
declare function ImagesMenu({ items, onItemsChange, onFocusItem, labels, defaultOpen, }: ImagesMenuProps): react_jsx_runtime.JSX.Element | null;
|
|
265
|
+
declare function ImagesMenu({ items, onItemsChange, onFocusItem, labels, defaultOpen, collapsedButtonClassName, collapsedButtonStyle, renderCollapsedButton, }: ImagesMenuProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
194
266
|
|
|
195
267
|
type NavMenuMinimapProps = {
|
|
196
268
|
className?: string;
|
|
@@ -731,4 +803,4 @@ type VectorToolbarWithStatics = ((props: VectorToolbarProps) => ReactElement) &
|
|
|
731
803
|
*/
|
|
732
804
|
declare const VectorToolbar: VectorToolbarWithStatics;
|
|
733
805
|
|
|
734
|
-
export { BoardComponentPosition, CanvasPlugin, type CreateLocalStoragePersistenceAdapterOptions, type CreateToolPluginOptions, CustomShapePlacementOptions, DEFAULT_OVERFLOW_TOOL_IDS, DEFAULT_VECTOR_CANVAS_STORAGE_KEY, DEFAULT_VECTOR_TOOLS, IconArchitecturalCloud, IconArrow, IconDraw, IconEllipse, IconHand, IconImage, IconLaser, IconLine, IconRect, IconSelect, IconText, ImagesMenu, type ImagesMenuLabels, type ImagesMenuProps, type IngestAssetFileError, type IngestAssetFilesToSceneItemsOptions, type IngestAssetFilesToSceneItemsResult, type IngestedAssetItemContext, NavMenu, type NavMenuMinimapProps, type NavMenuProps, type NavMenuUndoRedoProps, type NavMenuZoomControlsProps, ShapeContextMenu, type ShapeContextMenuProps, type UseVectorCanvasDocumentOptions, type UseVectorCanvasDocumentResult, VectorCanvas, VectorCanvasBody, VectorCanvasHeader, VectorCanvasMain, VectorCanvasPersistenceAdapter, VectorCanvasRemoteAdapter, VectorCanvasRoot, type VectorCanvasSlotProps, type VectorCanvasSpaceProps, VectorCanvasToolbar, type VectorCanvasToolbarProps, VectorCanvasViewportSurface, VectorSelectionInspector, VectorToolDefinition, VectorToolbar, type VectorToolbarOverflowProps, type VectorToolbarProps, type VectorToolbarRenderContext, type VectorToolbarToolLockProps, type VectorToolbarToolProps, VectorViewportAssetKind, VectorViewportAssetStore, createIndexedDbPersistenceAdapter, createLocalStoragePersistenceAdapter, createNoopPersistenceAdapter, createToolPlugin, cursorForVectorToolId, ingestAssetFilesToSceneItems, useVectorCanvasDocument };
|
|
806
|
+
export { BoardComponentPosition, CanvasPlugin, type CreateLocalStoragePersistenceAdapterOptions, type CreateToolPluginOptions, CustomShapePlacementOptions, DEFAULT_OVERFLOW_TOOL_IDS, DEFAULT_VECTOR_CANVAS_STORAGE_KEY, DEFAULT_VECTOR_TOOLS, IconArchitecturalCloud, IconArrow, IconDraw, IconEllipse, IconHand, IconImage, IconLaser, IconLine, IconRect, IconSelect, IconText, ImagesMenu, type ImagesMenuCollapsedButtonProps, type ImagesMenuCollapsedButtonRenderProps, type ImagesMenuLabels, type ImagesMenuProps, type IngestAssetFileError, type IngestAssetFilesToSceneItemsOptions, type IngestAssetFilesToSceneItemsResult, type IngestedAssetItemContext, NavMenu, type NavMenuMinimapProps, type NavMenuProps, type NavMenuUndoRedoProps, type NavMenuZoomControlsProps, ShapeContextMenu, type ShapeContextMenuProps, type UseVectorCanvasDocumentOptions, type UseVectorCanvasDocumentResult, VectorCanvas, VectorCanvasBody, VectorCanvasHeader, VectorCanvasMain, VectorCanvasPersistenceAdapter, VectorCanvasRemoteAdapter, VectorCanvasRoot, type VectorCanvasSlotProps, type VectorCanvasSpaceProps, VectorCanvasToolbar, type VectorCanvasToolbarProps, VectorCanvasViewportSurface, VectorSelectionInspector, VectorToolDefinition, VectorToolbar, type VectorToolbarOverflowProps, type VectorToolbarProps, type VectorToolbarRenderContext, type VectorToolbarToolLockProps, type VectorToolbarToolProps, VectorViewportAssetKind, VectorViewportAssetStore, createIndexedDbPersistenceAdapter, createLocalStoragePersistenceAdapter, createNoopPersistenceAdapter, createToolPlugin, cursorForVectorToolId, ingestAssetFilesToSceneItems, useVectorCanvasDocument };
|
package/dist/react.d.ts
CHANGED
|
@@ -169,6 +169,35 @@ type ImagesMenuLabels = {
|
|
|
169
169
|
collapse?: string;
|
|
170
170
|
expand?: string;
|
|
171
171
|
};
|
|
172
|
+
/**
|
|
173
|
+
* Button props passed to {@link ImagesMenuCollapsedButtonRenderProps.buttonProps}.
|
|
174
|
+
*
|
|
175
|
+
* Use this when you build a fully custom collapsed trigger for
|
|
176
|
+
* {@link ImagesMenu}. Spreading these props onto a `<button>` preserves the
|
|
177
|
+
* default accessibility label, `data-slot`, styles/className, and click handler
|
|
178
|
+
* that opens the images menu.
|
|
179
|
+
*/
|
|
180
|
+
type ImagesMenuCollapsedButtonProps = {
|
|
181
|
+
type: "button";
|
|
182
|
+
"data-slot": "images-menu-collapsed";
|
|
183
|
+
"aria-label": string;
|
|
184
|
+
title: string;
|
|
185
|
+
className?: string;
|
|
186
|
+
style: CSSProperties;
|
|
187
|
+
onClick: () => void;
|
|
188
|
+
};
|
|
189
|
+
type ImagesMenuCollapsedButtonRenderProps = {
|
|
190
|
+
/** Number of managed images currently available in the menu. */
|
|
191
|
+
count: number;
|
|
192
|
+
/** Accessible label used by the default collapsed trigger. */
|
|
193
|
+
label: string;
|
|
194
|
+
/**
|
|
195
|
+
* Props ready to spread onto a `<button>`.
|
|
196
|
+
* Spread these onto your custom trigger to keep the built-in accessibility
|
|
197
|
+
* label, `data-slot`, default styles/className, and open-menu behavior.
|
|
198
|
+
*/
|
|
199
|
+
buttonProps: ImagesMenuCollapsedButtonProps;
|
|
200
|
+
};
|
|
172
201
|
type ImagesMenuProps = {
|
|
173
202
|
items: readonly VectorSceneItem[];
|
|
174
203
|
onItemsChange: (items: VectorSceneItem[]) => void;
|
|
@@ -183,6 +212,49 @@ type ImagesMenuProps = {
|
|
|
183
212
|
* only the floating toggle button until the user opens it.
|
|
184
213
|
*/
|
|
185
214
|
defaultOpen?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Class name applied to the collapsed floating trigger.
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```tsx
|
|
220
|
+
* <ImagesMenu
|
|
221
|
+
* items={items}
|
|
222
|
+
* onItemsChange={setItems}
|
|
223
|
+
* collapsedButtonClassName="my-images-trigger"
|
|
224
|
+
* />
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
collapsedButtonClassName?: string;
|
|
228
|
+
/**
|
|
229
|
+
* Inline style merged over the default collapsed trigger style.
|
|
230
|
+
*
|
|
231
|
+
* @example
|
|
232
|
+
* ```tsx
|
|
233
|
+
* <ImagesMenu
|
|
234
|
+
* items={items}
|
|
235
|
+
* onItemsChange={setItems}
|
|
236
|
+
* collapsedButtonStyle={{ borderRadius: 999 }}
|
|
237
|
+
* />
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
collapsedButtonStyle?: CSSProperties;
|
|
241
|
+
/**
|
|
242
|
+
* Replaces the collapsed trigger markup. Prefer `collapsedButtonClassName`
|
|
243
|
+
* or `collapsedButtonStyle` for styling-only changes; use this when you need
|
|
244
|
+
* different content or structure.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```tsx
|
|
248
|
+
* <ImagesMenu
|
|
249
|
+
* items={items}
|
|
250
|
+
* onItemsChange={setItems}
|
|
251
|
+
* renderCollapsedButton={({ buttonProps, count }) => (
|
|
252
|
+
* <button {...buttonProps}>Images ({count})</button>
|
|
253
|
+
* )}
|
|
254
|
+
* />
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
renderCollapsedButton?: (props: ImagesMenuCollapsedButtonRenderProps) => ReactNode;
|
|
186
258
|
};
|
|
187
259
|
/**
|
|
188
260
|
* Floating side panel that lists images marked as "managed"
|
|
@@ -190,7 +262,7 @@ type ImagesMenuProps = {
|
|
|
190
262
|
* drag-to-reorder actions. Managed images are also `locked`, so they do not
|
|
191
263
|
* respond to direct canvas interaction.
|
|
192
264
|
*/
|
|
193
|
-
declare function ImagesMenu({ items, onItemsChange, onFocusItem, labels, defaultOpen, }: ImagesMenuProps): react_jsx_runtime.JSX.Element | null;
|
|
265
|
+
declare function ImagesMenu({ items, onItemsChange, onFocusItem, labels, defaultOpen, collapsedButtonClassName, collapsedButtonStyle, renderCollapsedButton, }: ImagesMenuProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
|
|
194
266
|
|
|
195
267
|
type NavMenuMinimapProps = {
|
|
196
268
|
className?: string;
|
|
@@ -731,4 +803,4 @@ type VectorToolbarWithStatics = ((props: VectorToolbarProps) => ReactElement) &
|
|
|
731
803
|
*/
|
|
732
804
|
declare const VectorToolbar: VectorToolbarWithStatics;
|
|
733
805
|
|
|
734
|
-
export { BoardComponentPosition, CanvasPlugin, type CreateLocalStoragePersistenceAdapterOptions, type CreateToolPluginOptions, CustomShapePlacementOptions, DEFAULT_OVERFLOW_TOOL_IDS, DEFAULT_VECTOR_CANVAS_STORAGE_KEY, DEFAULT_VECTOR_TOOLS, IconArchitecturalCloud, IconArrow, IconDraw, IconEllipse, IconHand, IconImage, IconLaser, IconLine, IconRect, IconSelect, IconText, ImagesMenu, type ImagesMenuLabels, type ImagesMenuProps, type IngestAssetFileError, type IngestAssetFilesToSceneItemsOptions, type IngestAssetFilesToSceneItemsResult, type IngestedAssetItemContext, NavMenu, type NavMenuMinimapProps, type NavMenuProps, type NavMenuUndoRedoProps, type NavMenuZoomControlsProps, ShapeContextMenu, type ShapeContextMenuProps, type UseVectorCanvasDocumentOptions, type UseVectorCanvasDocumentResult, VectorCanvas, VectorCanvasBody, VectorCanvasHeader, VectorCanvasMain, VectorCanvasPersistenceAdapter, VectorCanvasRemoteAdapter, VectorCanvasRoot, type VectorCanvasSlotProps, type VectorCanvasSpaceProps, VectorCanvasToolbar, type VectorCanvasToolbarProps, VectorCanvasViewportSurface, VectorSelectionInspector, VectorToolDefinition, VectorToolbar, type VectorToolbarOverflowProps, type VectorToolbarProps, type VectorToolbarRenderContext, type VectorToolbarToolLockProps, type VectorToolbarToolProps, VectorViewportAssetKind, VectorViewportAssetStore, createIndexedDbPersistenceAdapter, createLocalStoragePersistenceAdapter, createNoopPersistenceAdapter, createToolPlugin, cursorForVectorToolId, ingestAssetFilesToSceneItems, useVectorCanvasDocument };
|
|
806
|
+
export { BoardComponentPosition, CanvasPlugin, type CreateLocalStoragePersistenceAdapterOptions, type CreateToolPluginOptions, CustomShapePlacementOptions, DEFAULT_OVERFLOW_TOOL_IDS, DEFAULT_VECTOR_CANVAS_STORAGE_KEY, DEFAULT_VECTOR_TOOLS, IconArchitecturalCloud, IconArrow, IconDraw, IconEllipse, IconHand, IconImage, IconLaser, IconLine, IconRect, IconSelect, IconText, ImagesMenu, type ImagesMenuCollapsedButtonProps, type ImagesMenuCollapsedButtonRenderProps, type ImagesMenuLabels, type ImagesMenuProps, type IngestAssetFileError, type IngestAssetFilesToSceneItemsOptions, type IngestAssetFilesToSceneItemsResult, type IngestedAssetItemContext, NavMenu, type NavMenuMinimapProps, type NavMenuProps, type NavMenuUndoRedoProps, type NavMenuZoomControlsProps, ShapeContextMenu, type ShapeContextMenuProps, type UseVectorCanvasDocumentOptions, type UseVectorCanvasDocumentResult, VectorCanvas, VectorCanvasBody, VectorCanvasHeader, VectorCanvasMain, VectorCanvasPersistenceAdapter, VectorCanvasRemoteAdapter, VectorCanvasRoot, type VectorCanvasSlotProps, type VectorCanvasSpaceProps, VectorCanvasToolbar, type VectorCanvasToolbarProps, VectorCanvasViewportSurface, VectorSelectionInspector, VectorToolDefinition, VectorToolbar, type VectorToolbarOverflowProps, type VectorToolbarProps, type VectorToolbarRenderContext, type VectorToolbarToolLockProps, type VectorToolbarToolProps, VectorViewportAssetKind, VectorViewportAssetStore, createIndexedDbPersistenceAdapter, createLocalStoragePersistenceAdapter, createNoopPersistenceAdapter, createToolPlugin, cursorForVectorToolId, ingestAssetFilesToSceneItems, useVectorCanvasDocument };
|
package/dist/react.js
CHANGED
|
@@ -2112,7 +2112,7 @@ var collapseButtonStyle = {
|
|
|
2112
2112
|
cursor: "pointer",
|
|
2113
2113
|
padding: 0
|
|
2114
2114
|
};
|
|
2115
|
-
var
|
|
2115
|
+
var defaultCollapsedButtonStyle = {
|
|
2116
2116
|
display: "inline-flex",
|
|
2117
2117
|
alignItems: "center",
|
|
2118
2118
|
justifyContent: "center",
|
|
@@ -2141,7 +2141,10 @@ function ImagesMenu({
|
|
|
2141
2141
|
onItemsChange,
|
|
2142
2142
|
onFocusItem,
|
|
2143
2143
|
labels,
|
|
2144
|
-
defaultOpen = false
|
|
2144
|
+
defaultOpen = false,
|
|
2145
|
+
collapsedButtonClassName,
|
|
2146
|
+
collapsedButtonStyle,
|
|
2147
|
+
renderCollapsedButton
|
|
2145
2148
|
}) {
|
|
2146
2149
|
const managed = useMemo(() => items.filter(isManagedImage), [items]);
|
|
2147
2150
|
const sensors = useSensors(
|
|
@@ -2162,18 +2165,26 @@ function ImagesMenu({
|
|
|
2162
2165
|
duplicate: labels?.duplicate ?? labels?.copy ?? defaultLabels.duplicate
|
|
2163
2166
|
};
|
|
2164
2167
|
if (collapsed) {
|
|
2165
|
-
|
|
2166
|
-
"button",
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2168
|
+
const buttonProps = {
|
|
2169
|
+
type: "button",
|
|
2170
|
+
"data-slot": "images-menu-collapsed",
|
|
2171
|
+
className: collapsedButtonClassName,
|
|
2172
|
+
style: {
|
|
2173
|
+
...defaultCollapsedButtonStyle,
|
|
2174
|
+
...collapsedButtonStyle ?? {}
|
|
2175
|
+
},
|
|
2176
|
+
"aria-label": resolvedLabels.expand,
|
|
2177
|
+
title: resolvedLabels.expand,
|
|
2178
|
+
onClick: () => setCollapsed(false)
|
|
2179
|
+
};
|
|
2180
|
+
if (renderCollapsedButton) {
|
|
2181
|
+
return renderCollapsedButton({
|
|
2182
|
+
count: managed.length,
|
|
2183
|
+
label: resolvedLabels.expand,
|
|
2184
|
+
buttonProps
|
|
2185
|
+
});
|
|
2186
|
+
}
|
|
2187
|
+
return /* @__PURE__ */ jsx("button", { ...buttonProps, children: /* @__PURE__ */ jsx(Images, { size: 20 }) });
|
|
2177
2188
|
}
|
|
2178
2189
|
const onDragEnd = (event) => {
|
|
2179
2190
|
const { active, over } = event;
|