@mathews_cometchat/bubble-builder 1.0.0-alpha27 → 1.0.0-alpha29
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/{bubble-builder.css → assets/index-BIQymSWl.css} +0 -1
- package/dist/assets/index-ByxA164g.js +20 -0
- package/dist/index.html +15 -0
- package/package.json +1 -1
- package/dist/App.d.ts +0 -1
- package/dist/bridge/api.d.ts +0 -64
- package/dist/bubble-builder.es.js +0 -22793
- package/dist/bubble-builder.umd.js +0 -20
- package/dist/components/Canvas.d.ts +0 -2
- package/dist/components/CanvasViewToggle.d.ts +0 -4
- package/dist/components/EditorLayout.d.ts +0 -2
- package/dist/components/ElementTree.d.ts +0 -2
- package/dist/components/LeftPanel.d.ts +0 -2
- package/dist/components/NotificationPreview.d.ts +0 -3
- package/dist/components/RightPanel.d.ts +0 -2
- package/dist/components/ShortcutsPanel.d.ts +0 -2
- package/dist/components/TemplateLibrary.d.ts +0 -2
- package/dist/components/TopBar.d.ts +0 -2
- package/dist/components/properties/ActionEditor.d.ts +0 -7
- package/dist/components/properties/BubbleSettingsEditor.d.ts +0 -1
- package/dist/components/properties/ElementPropertyEditor.d.ts +0 -7
- package/dist/components/properties/IconPicker.d.ts +0 -6
- package/dist/components/properties/NotificationEditor.d.ts +0 -1
- package/dist/components/properties/VariableInput.d.ts +0 -10
- package/dist/components/renderers/ElementRenderer.d.ts +0 -19
- package/dist/components/ui/Button.d.ts +0 -8
- package/dist/components/ui/Modal.d.ts +0 -11
- package/dist/config/builder-config.d.ts +0 -37
- package/dist/config/component-templates.d.ts +0 -11
- package/dist/config/element-defaults.d.ts +0 -8
- package/dist/config/icon-library.d.ts +0 -11
- package/dist/config/theme.d.ts +0 -11
- package/dist/config/uikit-theme.d.ts +0 -73
- package/dist/hooks/useKeyboardShortcuts.d.ts +0 -1
- package/dist/lib.d.ts +0 -52
- package/dist/store/builder-store.d.ts +0 -101
- package/dist/types/schema.d.ts +0 -315
- package/dist/utils/element-errors.d.ts +0 -9
- package/dist/utils/id.d.ts +0 -4
- package/dist/utils/portal-root.d.ts +0 -2
- package/dist/utils/validate.d.ts +0 -6
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const BubbleSettingsEditor: import("react").NamedExoticComponent<object>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const NotificationEditor: import("react").NamedExoticComponent<object>;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
interface VariableInputProps {
|
|
2
|
-
value: string;
|
|
3
|
-
onChange: (v: string) => void;
|
|
4
|
-
placeholder?: string;
|
|
5
|
-
multiline?: boolean;
|
|
6
|
-
rows?: number;
|
|
7
|
-
style?: React.CSSProperties;
|
|
8
|
-
}
|
|
9
|
-
export declare const VariableInput: import("react").NamedExoticComponent<VariableInputProps>;
|
|
10
|
-
export {};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { BubbleElement } from '../../types/schema';
|
|
2
|
-
interface ElementRendererProps {
|
|
3
|
-
element: BubbleElement;
|
|
4
|
-
path: number[];
|
|
5
|
-
selectedPath: number[] | null;
|
|
6
|
-
selectedPaths: number[][];
|
|
7
|
-
onSelect: (path: number[] | null) => void;
|
|
8
|
-
onToggleSelect: (path: number[]) => void;
|
|
9
|
-
onMove: (path: number[], direction: 'up' | 'down') => void;
|
|
10
|
-
onRemove: (path: number[]) => void;
|
|
11
|
-
onWrap: (path: number[], wrapperType: 'row' | 'column' | 'grid') => void;
|
|
12
|
-
onUnwrap: (path: number[]) => void;
|
|
13
|
-
onDuplicate: (path: number[]) => void;
|
|
14
|
-
isFirst: boolean;
|
|
15
|
-
isLast: boolean;
|
|
16
|
-
inRow?: boolean;
|
|
17
|
-
}
|
|
18
|
-
export declare const ElementRenderer: import("react").NamedExoticComponent<ElementRendererProps>;
|
|
19
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ReactNode, ButtonHTMLAttributes } from 'react';
|
|
2
|
-
type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'link';
|
|
3
|
-
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
|
-
variant?: ButtonVariant;
|
|
5
|
-
children: ReactNode;
|
|
6
|
-
}
|
|
7
|
-
export declare const Button: import("react").NamedExoticComponent<ButtonProps>;
|
|
8
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ReactNode, CSSProperties } from 'react';
|
|
2
|
-
interface ModalProps {
|
|
3
|
-
title: string;
|
|
4
|
-
onClose: () => void;
|
|
5
|
-
children: ReactNode;
|
|
6
|
-
footer?: ReactNode;
|
|
7
|
-
width?: number;
|
|
8
|
-
style?: CSSProperties;
|
|
9
|
-
}
|
|
10
|
-
export declare const Modal: import("react").NamedExoticComponent<ModalProps>;
|
|
11
|
-
export {};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { BubbleMessage } from '../types/schema';
|
|
2
|
-
export interface BubbleVariable {
|
|
3
|
-
/** Variable name used in {{name}} tokens, e.g. 'user.name' */
|
|
4
|
-
name: string;
|
|
5
|
-
/** Human-readable label shown in the picker */
|
|
6
|
-
label?: string;
|
|
7
|
-
/** Short description */
|
|
8
|
-
description?: string;
|
|
9
|
-
/** Category for grouping in the picker */
|
|
10
|
-
category?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface NotificationConfig {
|
|
13
|
-
/** App name shown in the notification preview */
|
|
14
|
-
appName?: string;
|
|
15
|
-
/** App icon URL shown in the notification preview */
|
|
16
|
-
appIcon?: string;
|
|
17
|
-
/** Show the Data key-value editor in the notification tab */
|
|
18
|
-
enableData?: boolean;
|
|
19
|
-
/** Show the push notification phone preview in the canvas. Default: true */
|
|
20
|
-
showPreview?: boolean;
|
|
21
|
-
/** Called when notification data changes */
|
|
22
|
-
onNotificationDataChange?: (data: Record<string, string>) => void;
|
|
23
|
-
}
|
|
24
|
-
/** Which channels the builder supports */
|
|
25
|
-
export type BuilderChannels = 'inapp' | 'push' | 'both';
|
|
26
|
-
/** Module-level config accessible by components */
|
|
27
|
-
export declare const builderConfig: {
|
|
28
|
-
appId?: string;
|
|
29
|
-
region?: string;
|
|
30
|
-
token?: string;
|
|
31
|
-
onSave?: (json: BubbleMessage, name: string, description: string) => void;
|
|
32
|
-
onChange?: (json: BubbleMessage) => void;
|
|
33
|
-
hideTopBar?: boolean;
|
|
34
|
-
hideTemplateLibrary?: boolean;
|
|
35
|
-
channels?: BuilderChannels;
|
|
36
|
-
notification?: NotificationConfig;
|
|
37
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface ComponentTemplate {
|
|
2
|
-
name: string;
|
|
3
|
-
category: string;
|
|
4
|
-
icon: string;
|
|
5
|
-
description: string;
|
|
6
|
-
elements: Record<string, unknown>[];
|
|
7
|
-
}
|
|
8
|
-
export declare const COMPONENT_TEMPLATES: ComponentTemplate[];
|
|
9
|
-
export declare const COMPONENT_CATEGORIES: string[];
|
|
10
|
-
export declare const COMPONENT_TEMPLATE_NAMES: readonly ["Product Card", "Order Confirmation", "Announcement", "Quick Reply Buttons", "Order Tracking", "Event Card", "Feedback", "Data Table", "Carousel"];
|
|
11
|
-
export type ComponentTemplateName = typeof COMPONENT_TEMPLATE_NAMES[number];
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { BubbleElement } from '../types/schema';
|
|
2
|
-
export declare const ELEMENT_DEFAULTS: Map<string, () => BubbleElement>;
|
|
3
|
-
export declare const ELEMENT_PALETTE: {
|
|
4
|
-
readonly Layout: readonly ["row", "column", "grid", "accordion", "tabs"];
|
|
5
|
-
readonly Content: readonly ["text", "image", "icon", "avatar", "badge", "divider", "spacer", "chip", "markdown", "codeBlock"];
|
|
6
|
-
readonly 'Data Display': readonly ["table", "progressBar"];
|
|
7
|
-
readonly Actions: readonly ["button", "iconButton", "link"];
|
|
8
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface IconEntry {
|
|
2
|
-
name: string;
|
|
3
|
-
label: string;
|
|
4
|
-
url: string;
|
|
5
|
-
category: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const ICON_LIBRARY: IconEntry[];
|
|
8
|
-
export declare const ICON_MAP: Map<string, IconEntry>;
|
|
9
|
-
export declare const ICON_CATEGORIES: string[];
|
|
10
|
-
/** Resolve an icon name to its URL. Returns the name as-is if it's already a URL. */
|
|
11
|
-
export declare function resolveIconUrl(nameOrUrl: string): string;
|
package/dist/config/theme.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { UIKitColorMode } from './uikit-theme';
|
|
2
|
-
/** Build a flat token map from UIKit theme colors */
|
|
3
|
-
export declare function buildTokensFromUIKit(colors: UIKitColorMode): Record<string, string>;
|
|
4
|
-
export declare const THEME_TOKENS: Record<string, string>;
|
|
5
|
-
export declare const DARK_THEME_TOKENS: Record<string, string>;
|
|
6
|
-
export declare let THEME_TOKEN_NAMES: string[];
|
|
7
|
-
export declare function setActiveTheme(dark: boolean): void;
|
|
8
|
-
/** Sync active theme tokens from the UIKit theme store */
|
|
9
|
-
export declare function syncThemeTokens(lightColors: UIKitColorMode, darkColors: UIKitColorMode, isDark: boolean): void;
|
|
10
|
-
export declare function resolveColor(value: string | undefined, fallback?: string): string;
|
|
11
|
-
export declare const TEXT_VARIANT_STYLES: Record<string, React.CSSProperties>;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
export declare function hexToRgb(hex: string): {
|
|
2
|
-
r: number;
|
|
3
|
-
g: number;
|
|
4
|
-
b: number;
|
|
5
|
-
};
|
|
6
|
-
export declare function rgbToHex(r: number, g: number, b: number): string;
|
|
7
|
-
export declare const SHADE_KEYS: readonly [50, 100, 200, 300, 400, 500, 600, 700, 800, 900];
|
|
8
|
-
export declare function generateExtendedPrimary(primary: string): {
|
|
9
|
-
light: Record<number, string>;
|
|
10
|
-
dark: Record<number, string>;
|
|
11
|
-
};
|
|
12
|
-
export declare function generateSpacingScale(baseUnit?: number, steps?: number): Record<string, number>;
|
|
13
|
-
export declare function generatePadding(scale: Record<string, number>): Record<string, number>;
|
|
14
|
-
export declare function generateRadius(scale: Record<string, number>): Record<string, number>;
|
|
15
|
-
export interface UIKitColorMode {
|
|
16
|
-
primary: string;
|
|
17
|
-
extendedPrimary: Record<number, string>;
|
|
18
|
-
neutral: Record<number, string>;
|
|
19
|
-
alert: {
|
|
20
|
-
info: string;
|
|
21
|
-
warning: string;
|
|
22
|
-
success: string;
|
|
23
|
-
error: string;
|
|
24
|
-
};
|
|
25
|
-
staticColors: {
|
|
26
|
-
black: string;
|
|
27
|
-
white: string;
|
|
28
|
-
};
|
|
29
|
-
sendBubble: {
|
|
30
|
-
background: string;
|
|
31
|
-
text: string;
|
|
32
|
-
textHighlight: string;
|
|
33
|
-
link: string;
|
|
34
|
-
timestamp: string;
|
|
35
|
-
icon: string;
|
|
36
|
-
};
|
|
37
|
-
receiveBubble: {
|
|
38
|
-
background: string;
|
|
39
|
-
text: string;
|
|
40
|
-
textHighlight: string;
|
|
41
|
-
link: string;
|
|
42
|
-
timestamp: string;
|
|
43
|
-
icon: string;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
export interface UIKitTheme {
|
|
47
|
-
name: string;
|
|
48
|
-
version: string;
|
|
49
|
-
spacing: {
|
|
50
|
-
baseUnit: number;
|
|
51
|
-
scale: Record<string, number>;
|
|
52
|
-
padding: Record<string, number>;
|
|
53
|
-
radius: Record<string, number>;
|
|
54
|
-
};
|
|
55
|
-
typography: {
|
|
56
|
-
fontFamily: string;
|
|
57
|
-
scale: Record<string, {
|
|
58
|
-
size: number;
|
|
59
|
-
lineHeight: number;
|
|
60
|
-
weight?: string;
|
|
61
|
-
}>;
|
|
62
|
-
weights: {
|
|
63
|
-
bold: string;
|
|
64
|
-
medium: string;
|
|
65
|
-
regular: string;
|
|
66
|
-
};
|
|
67
|
-
};
|
|
68
|
-
colors: {
|
|
69
|
-
light: UIKitColorMode;
|
|
70
|
-
dark: UIKitColorMode;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
export declare function createDefaultTheme(): UIKitTheme;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function useKeyboardShortcuts(): void;
|
package/dist/lib.d.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { BubbleMessage, ElementType } from './types/schema';
|
|
2
|
-
import type { ComponentTemplateName } from './config/component-templates';
|
|
3
|
-
import type { BubbleVariable, NotificationConfig, BuilderChannels } from './config/builder-config';
|
|
4
|
-
import './index.css';
|
|
5
|
-
export type { BubbleVariable } from './config/builder-config';
|
|
6
|
-
export type { NotificationConfig, BuilderChannels } from './config/builder-config';
|
|
7
|
-
export interface BubbleBuilderOptions {
|
|
8
|
-
/** CometChat app ID (required for template save/load APIs) */
|
|
9
|
-
appId?: string;
|
|
10
|
-
/** App region — us, eu, etc. (required for template save/load APIs) */
|
|
11
|
-
region?: string;
|
|
12
|
-
/** Bearer token for REST API calls (required for template save/load APIs) */
|
|
13
|
-
token?: string;
|
|
14
|
-
/** Existing bubble JSON to load for editing */
|
|
15
|
-
bubble?: BubbleMessage;
|
|
16
|
-
/** Template name */
|
|
17
|
-
templateName?: string;
|
|
18
|
-
/** Called when user clicks Save */
|
|
19
|
-
onSave?: (json: BubbleMessage, name: string, description: string) => void;
|
|
20
|
-
/** Called whenever the bubble JSON changes (any edit). Use for real-time sync. */
|
|
21
|
-
onChange?: (json: BubbleMessage) => void;
|
|
22
|
-
/** Available variables for {{placeholder}} insertion in text/URL fields */
|
|
23
|
-
variables?: BubbleVariable[];
|
|
24
|
-
/** Hide the top toolbar (save, export, import, undo/redo, template name). Default: false */
|
|
25
|
-
hideTopBar?: boolean;
|
|
26
|
-
/** Hide the template library view — go straight to editor. Default: false */
|
|
27
|
-
hideTemplateLibrary?: boolean;
|
|
28
|
-
/** Which channels to show: 'inapp', 'push', or 'both' (default). */
|
|
29
|
-
channels?: BuilderChannels;
|
|
30
|
-
/** Push notification preview config (app name, icon). Only used when channels is 'push' or 'both'. */
|
|
31
|
-
notification?: NotificationConfig;
|
|
32
|
-
/** Element types to hide from the palette (e.g. ['codeBlock', 'table', 'markdown']) */
|
|
33
|
-
hiddenElements?: ElementType[];
|
|
34
|
-
/** Component template names to hide from the palette (e.g. ['Product Card', 'Data Table']) */
|
|
35
|
-
hiddenComponents?: ComponentTemplateName[];
|
|
36
|
-
}
|
|
37
|
-
export interface BubbleBuilderInstance {
|
|
38
|
-
loadBubble: (bubble: BubbleMessage, name?: string) => void;
|
|
39
|
-
getBubbleJSON: () => BubbleMessage;
|
|
40
|
-
setVariables: (variables: BubbleVariable[]) => void;
|
|
41
|
-
setChannels: (channels: BuilderChannels) => void;
|
|
42
|
-
setCanvasView: (view: 'bubble' | 'notification') => void;
|
|
43
|
-
/** Hide specific element types from the palette. Pass element type names (e.g. 'codeBlock', 'table'). */
|
|
44
|
-
setHiddenElements: (types: ElementType[]) => void;
|
|
45
|
-
/** Hide specific component templates from the palette. Pass template names (e.g. 'Product Card'). */
|
|
46
|
-
setHiddenComponents: (names: ComponentTemplateName[]) => void;
|
|
47
|
-
destroy: () => void;
|
|
48
|
-
}
|
|
49
|
-
export { builderConfig } from './config/builder-config';
|
|
50
|
-
export declare function mountBubbleBuilder(container: HTMLElement, options: BubbleBuilderOptions): BubbleBuilderInstance;
|
|
51
|
-
export type { BubbleMessage, ElementType } from './types/schema';
|
|
52
|
-
export type { ComponentTemplateName } from './config/component-templates';
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import type { BubbleElement, BubbleSettings, BubbleMessage, Template, ElementType } from '../types/schema';
|
|
2
|
-
import type { ComponentTemplateName } from '../config/component-templates';
|
|
3
|
-
import { type BubbleVariable } from '../config/builder-config';
|
|
4
|
-
export interface BuilderState {
|
|
5
|
-
templateId: string | null;
|
|
6
|
-
templateName: string;
|
|
7
|
-
templateDescription: string;
|
|
8
|
-
body: BubbleElement[];
|
|
9
|
-
settings: BubbleSettings;
|
|
10
|
-
fallbackText: string;
|
|
11
|
-
notificationTitle: string;
|
|
12
|
-
notificationBody: string;
|
|
13
|
-
notificationData: Array<{
|
|
14
|
-
key: string;
|
|
15
|
-
value: string;
|
|
16
|
-
}>;
|
|
17
|
-
notificationEnabled: boolean;
|
|
18
|
-
/** Which view the canvas shows: bubble editor or notification preview */
|
|
19
|
-
canvasView: 'bubble' | 'notification';
|
|
20
|
-
/** Which channels are available */
|
|
21
|
-
channels: 'inapp' | 'push' | 'both';
|
|
22
|
-
selectedPath: number[] | null;
|
|
23
|
-
selectedPaths: number[][];
|
|
24
|
-
isDirty: boolean;
|
|
25
|
-
useThemePlaceholders: boolean;
|
|
26
|
-
/** Element types hidden from the palette */
|
|
27
|
-
hiddenElements: Set<ElementType>;
|
|
28
|
-
/** Component template names hidden from the palette */
|
|
29
|
-
hiddenComponents: Set<ComponentTemplateName>;
|
|
30
|
-
view: 'library' | 'editor';
|
|
31
|
-
clipboard: BubbleElement | null;
|
|
32
|
-
showTemplatePicker: boolean;
|
|
33
|
-
variables: BubbleVariable[];
|
|
34
|
-
history: {
|
|
35
|
-
body: BubbleElement[];
|
|
36
|
-
settings: BubbleSettings;
|
|
37
|
-
}[];
|
|
38
|
-
historyIndex: number;
|
|
39
|
-
templates: Template[];
|
|
40
|
-
templatesLoading: boolean;
|
|
41
|
-
templatesMeta: {
|
|
42
|
-
previous?: {
|
|
43
|
-
affix: string;
|
|
44
|
-
createdAt: number;
|
|
45
|
-
};
|
|
46
|
-
next?: {
|
|
47
|
-
affix: string;
|
|
48
|
-
createdAt: number;
|
|
49
|
-
};
|
|
50
|
-
} | null;
|
|
51
|
-
setView: (view: 'library' | 'editor') => void;
|
|
52
|
-
setShowTemplatePicker: (show: boolean) => void;
|
|
53
|
-
selectElement: (path: number[] | null) => void;
|
|
54
|
-
toggleSelectElement: (path: number[]) => void;
|
|
55
|
-
addElement: (element: BubbleElement, parentPath?: number[]) => void;
|
|
56
|
-
updateElement: (path: number[], updates: Partial<BubbleElement>) => void;
|
|
57
|
-
removeElement: (path: number[]) => void;
|
|
58
|
-
moveElement: (path: number[], direction: 'up' | 'down') => void;
|
|
59
|
-
updateSettings: (settings: Partial<BubbleSettings>) => void;
|
|
60
|
-
setFallbackText: (text: string) => void;
|
|
61
|
-
setNotificationTitle: (text: string) => void;
|
|
62
|
-
setNotificationBody: (text: string) => void;
|
|
63
|
-
setNotificationData: (data: Array<{
|
|
64
|
-
key: string;
|
|
65
|
-
value: string;
|
|
66
|
-
}>) => void;
|
|
67
|
-
setNotificationEnabled: (enabled: boolean) => void;
|
|
68
|
-
setCanvasView: (view: 'bubble' | 'notification') => void;
|
|
69
|
-
setChannels: (channels: 'inapp' | 'push' | 'both') => void;
|
|
70
|
-
setHiddenElements: (types: ElementType[]) => void;
|
|
71
|
-
setHiddenComponents: (names: ComponentTemplateName[]) => void;
|
|
72
|
-
setUseThemePlaceholders: (use: boolean) => void;
|
|
73
|
-
setVariables: (variables: BubbleVariable[]) => void;
|
|
74
|
-
setTemplateName: (name: string) => void;
|
|
75
|
-
setTemplateDescription: (desc: string) => void;
|
|
76
|
-
loadBubble: (bubble: BubbleMessage, templateId?: string, name?: string, desc?: string) => void;
|
|
77
|
-
newBubble: () => void;
|
|
78
|
-
getBubbleJSON: (opts?: {
|
|
79
|
-
stripEmpty?: boolean;
|
|
80
|
-
}) => BubbleMessage;
|
|
81
|
-
setTemplates: (templates: Template[]) => void;
|
|
82
|
-
fetchTemplates: (search?: string) => Promise<void>;
|
|
83
|
-
fetchNextPage: () => Promise<void>;
|
|
84
|
-
fetchPrevPage: () => Promise<void>;
|
|
85
|
-
saveTemplate: () => Promise<void>;
|
|
86
|
-
deleteTemplate: (id: string) => Promise<void>;
|
|
87
|
-
reorderElement: (fromPath: number[], toPath: number[], toIndex: number) => void;
|
|
88
|
-
moveElementToPath: (fromPath: number[], toParentPath: number[], toIndex: number) => void;
|
|
89
|
-
wrapElement: (path: number[], wrapperType: 'row' | 'column' | 'grid') => void;
|
|
90
|
-
unwrapElement: (path: number[]) => void;
|
|
91
|
-
wrapSelected: (wrapperType: 'row' | 'column' | 'grid') => void;
|
|
92
|
-
duplicateElement: (path: number[]) => void;
|
|
93
|
-
copyElement: (path: number[]) => void;
|
|
94
|
-
pasteElement: (targetPath?: number[]) => void;
|
|
95
|
-
undo: () => void;
|
|
96
|
-
redo: () => void;
|
|
97
|
-
canUndo: () => boolean;
|
|
98
|
-
canRedo: () => boolean;
|
|
99
|
-
clearAll: () => void;
|
|
100
|
-
}
|
|
101
|
-
export declare const useBuilderStore: import("zustand").UseBoundStore<import("zustand").StoreApi<BuilderState>>;
|