@kubuild/editor 0.0.1
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/asset-manager-modal.d.ts +28 -0
- package/dist/asset-manager-modal.d.ts.map +1 -0
- package/dist/box-model-editor.d.ts +29 -0
- package/dist/box-model-editor.d.ts.map +1 -0
- package/dist/canvas.d.ts +14 -0
- package/dist/canvas.d.ts.map +1 -0
- package/dist/component-panel.d.ts +8 -0
- package/dist/component-panel.d.ts.map +1 -0
- package/dist/dimension-sector-controls.d.ts +27 -0
- package/dist/dimension-sector-controls.d.ts.map +1 -0
- package/dist/editor.d.ts +16 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/export-utils.d.ts +19 -0
- package/dist/export-utils.d.ts.map +1 -0
- package/dist/icons.d.ts +8 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/import-modal.d.ts +11 -0
- package/dist/import-modal.d.ts.map +1 -0
- package/dist/index.cjs +5800 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5754 -0
- package/dist/index.js.map +1 -0
- package/dist/inspector-panel.d.ts +18 -0
- package/dist/inspector-panel.d.ts.map +1 -0
- package/dist/layers-panel.d.ts +8 -0
- package/dist/layers-panel.d.ts.map +1 -0
- package/dist/store.d.ts +84 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/style-manager-accordion.d.ts +31 -0
- package/dist/style-manager-accordion.d.ts.map +1 -0
- package/dist/table-spreadsheet-editor.d.ts +15 -0
- package/dist/table-spreadsheet-editor.d.ts.map +1 -0
- package/dist/toolbar.d.ts +9 -0
- package/dist/toolbar.d.ts.map +1 -0
- package/dist/traits-panel.d.ts +18 -0
- package/dist/traits-panel.d.ts.map +1 -0
- package/dist/typography-sector-controls.d.ts +17 -0
- package/dist/typography-sector-controls.d.ts.map +1 -0
- package/dist/variable-picker.d.ts +21 -0
- package/dist/variable-picker.d.ts.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentRegistry } from '@kubuild/components';
|
|
3
|
+
import { PageDocument } from '@kubuild/schema';
|
|
4
|
+
export interface InspectorPanelProps {
|
|
5
|
+
registry: ComponentRegistry;
|
|
6
|
+
className?: string;
|
|
7
|
+
document?: PageDocument;
|
|
8
|
+
selectedNodeId?: string | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Amber warning badge shown above the style manager while editing a
|
|
12
|
+
* non-default pseudo-state layer (e.g. `:hover`) — STORA-223.
|
|
13
|
+
*/
|
|
14
|
+
export declare const StateEditingBadge: React.FC<{
|
|
15
|
+
state: string;
|
|
16
|
+
}>;
|
|
17
|
+
export declare const InspectorPanel: React.FC<InspectorPanelProps>;
|
|
18
|
+
//# sourceMappingURL=inspector-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector-panel.d.ts","sourceRoot":"","sources":["../src/inspector-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAA6C,MAAM,qBAAqB,CAAC;AAEnG,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAUlE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAqeD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAQzD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuiBxD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentRegistry } from '@kubuild/components';
|
|
3
|
+
export interface LayersPanelProps {
|
|
4
|
+
registry: ComponentRegistry;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const LayersPanel: React.FC<LayersPanelProps>;
|
|
8
|
+
//# sourceMappingURL=layers-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layers-panel.d.ts","sourceRoot":"","sources":["../src/layers-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsSlD,CAAC"}
|
package/dist/store.d.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { PageDocument, Node, StyleDefinition, TemplateRecord } from '@kubuild/schema';
|
|
2
|
+
import { CommandResult, VariableCatalog, SaveTemplateMetadata, CloneTemplateOptions } from '@kubuild/core';
|
|
3
|
+
import { ComponentRegistry } from '@kubuild/components';
|
|
4
|
+
export type Viewport = 'desktop' | 'tablet' | 'mobile';
|
|
5
|
+
export type NavigatorMode = 'docked' | 'floating' | 'hidden';
|
|
6
|
+
export type TableSpreadsheetMode = 'floating' | 'docked' | 'hidden';
|
|
7
|
+
export interface InsertComponentResult {
|
|
8
|
+
success: boolean;
|
|
9
|
+
nodeId?: string;
|
|
10
|
+
error?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface MoveComponentResult {
|
|
13
|
+
success: boolean;
|
|
14
|
+
error?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface DuplicateComponentResult {
|
|
17
|
+
success: boolean;
|
|
18
|
+
nodeId?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DeleteComponentResult {
|
|
22
|
+
success: boolean;
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PasteComponentResult {
|
|
26
|
+
success: boolean;
|
|
27
|
+
nodeId?: string;
|
|
28
|
+
error?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface UpdatePropsResult {
|
|
31
|
+
success: boolean;
|
|
32
|
+
error?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface UpdateStyleResult {
|
|
35
|
+
success: boolean;
|
|
36
|
+
error?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface EditorState {
|
|
39
|
+
document: PageDocument;
|
|
40
|
+
selectedNodeId: string | null;
|
|
41
|
+
hoveredNodeId: string | null;
|
|
42
|
+
viewport: Viewport;
|
|
43
|
+
isDirty: boolean;
|
|
44
|
+
canUndo: boolean;
|
|
45
|
+
canRedo: boolean;
|
|
46
|
+
clipboard: Node | null;
|
|
47
|
+
onChangeHandler: ((doc: PageDocument) => void) | null;
|
|
48
|
+
/** Host-declared bindable variables + editor/preview-only sample values (STORA-053). Never serialized to the document. */
|
|
49
|
+
variableCatalog: VariableCatalog;
|
|
50
|
+
navigatorMode: NavigatorMode;
|
|
51
|
+
tableSpreadsheetMode: TableSpreadsheetMode;
|
|
52
|
+
setDocument: (document: PageDocument) => void;
|
|
53
|
+
setVariableCatalog: (catalog: VariableCatalog) => void;
|
|
54
|
+
setNavigatorMode: (mode: NavigatorMode) => void;
|
|
55
|
+
toggleNavigator: () => void;
|
|
56
|
+
setTableSpreadsheetMode: (mode: TableSpreadsheetMode) => void;
|
|
57
|
+
toggleTableSpreadsheet: () => void;
|
|
58
|
+
setOnChangeHandler: (handler: ((doc: PageDocument) => void) | null) => void;
|
|
59
|
+
dispatch: (executor: (doc: PageDocument) => CommandResult) => void;
|
|
60
|
+
insertComponent: (type: string, registry: ComponentRegistry, parentId?: string) => InsertComponentResult;
|
|
61
|
+
moveComponent: (nodeId: string, targetParentId: string, registry: ComponentRegistry, index?: number) => MoveComponentResult;
|
|
62
|
+
duplicateComponent: (nodeId: string, registry: ComponentRegistry) => DuplicateComponentResult;
|
|
63
|
+
deleteComponent: (nodeId: string) => DeleteComponentResult;
|
|
64
|
+
updateNodeProps: (nodeId: string, props: Record<string, unknown>, registry: ComponentRegistry, merge?: boolean) => UpdatePropsResult;
|
|
65
|
+
updateNodeStyle: (nodeId: string, styles: StyleDefinition, breakpoint: 'base' | 'desktop' | 'tablet' | 'mobile', merge?: boolean) => UpdateStyleResult;
|
|
66
|
+
/**
|
|
67
|
+
* Update a pseudo-state style layer (e.g. ':hover') on a node — STORA-221.
|
|
68
|
+
* Writes to node.styles.states[state] without touching default values.
|
|
69
|
+
*/
|
|
70
|
+
updateNodeStateStyle: (nodeId: string, styles: StyleDefinition, state: string, merge?: boolean) => UpdateStyleResult;
|
|
71
|
+
undo: () => void;
|
|
72
|
+
redo: () => void;
|
|
73
|
+
markSaved: () => void;
|
|
74
|
+
copyNode: (nodeId: string) => void;
|
|
75
|
+
pasteNode: (targetParentId: string, registry: ComponentRegistry, index?: number) => PasteComponentResult;
|
|
76
|
+
selectNode: (nodeId: string | null) => void;
|
|
77
|
+
hoverNode: (nodeId: string | null) => void;
|
|
78
|
+
setViewport: (viewport: Viewport) => void;
|
|
79
|
+
getSelectedNode: () => Node | null;
|
|
80
|
+
saveDraftAsTemplate: (metadata: SaveTemplateMetadata) => TemplateRecord;
|
|
81
|
+
loadTemplate: (template: TemplateRecord | PageDocument, options?: CloneTemplateOptions) => void;
|
|
82
|
+
}
|
|
83
|
+
export declare const useEditorStore: import("zustand").UseBoundStore<import("zustand").StoreApi<EditorState>>;
|
|
84
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type StyleSectorId = 'dimension' | 'spacing' | 'typography' | 'decorations' | 'flex';
|
|
3
|
+
export interface StyleSectorDefinition {
|
|
4
|
+
id: StyleSectorId;
|
|
5
|
+
label: string;
|
|
6
|
+
icon: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
properties: string[];
|
|
9
|
+
}
|
|
10
|
+
export declare const STYLE_SECTORS: StyleSectorDefinition[];
|
|
11
|
+
export declare const STORAGE_KEY_ACCORDION = "kubuild:style-manager-accordion";
|
|
12
|
+
export declare const DEFAULT_ACCORDION_STATE: Record<StyleSectorId, boolean>;
|
|
13
|
+
export declare function getStorage(): {
|
|
14
|
+
getItem: (key: string) => string | null;
|
|
15
|
+
setItem: (key: string, value: string) => void;
|
|
16
|
+
removeItem: (key: string) => void;
|
|
17
|
+
};
|
|
18
|
+
export declare function clearMemoryStorage(): void;
|
|
19
|
+
export declare function loadAccordionState(): Record<StyleSectorId, boolean>;
|
|
20
|
+
export declare function saveAccordionState(state: Record<StyleSectorId, boolean>): void;
|
|
21
|
+
export interface StyleManagerAccordionProps {
|
|
22
|
+
styles?: Record<string, unknown>;
|
|
23
|
+
onCommitStyle: (property: string, value: string) => void;
|
|
24
|
+
onResetStyles?: (properties?: string[]) => void;
|
|
25
|
+
errors?: Record<string, string | null>;
|
|
26
|
+
breakpoint?: 'base' | 'tablet' | 'mobile';
|
|
27
|
+
className?: string;
|
|
28
|
+
initialState?: Partial<Record<StyleSectorId, boolean>>;
|
|
29
|
+
}
|
|
30
|
+
export declare const StyleManagerAccordion: React.FC<StyleManagerAccordionProps>;
|
|
31
|
+
//# sourceMappingURL=style-manager-accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style-manager-accordion.d.ts","sourceRoot":"","sources":["../src/style-manager-accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAMhE,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC;AAE5F,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,aAAa,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,qBAAqB,EAiDhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,oCAAoC,CAAC;AAEvE,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAMlE,CAAC;AAIF,wBAAgB,UAAU,IAAI;IAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAoBA;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAanE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,IAAI,CAO9E;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAmZtE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Node } from '@kubuild/schema';
|
|
3
|
+
import { ComponentRegistry } from '@kubuild/components';
|
|
4
|
+
export interface TableSpreadsheetEditorProps {
|
|
5
|
+
registry: ComponentRegistry;
|
|
6
|
+
tableNode?: Node | null;
|
|
7
|
+
mode?: 'floating' | 'docked';
|
|
8
|
+
onClose?: () => void;
|
|
9
|
+
onToggleMode?: () => void;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function findActiveTableNode(documentRoot: Node, selectedNodeId: string | null): Node | null;
|
|
13
|
+
export declare function parseCsv(text: string): string[][];
|
|
14
|
+
export declare const TableSpreadsheetEditor: React.FC<TableSpreadsheetEditorProps>;
|
|
15
|
+
//# sourceMappingURL=table-spreadsheet-editor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-spreadsheet-editor.d.ts","sourceRoot":"","sources":["../src/table-spreadsheet-editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAclG;AAID,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CA0CjD;AASD,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAmuBxE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentRegistry } from '@kubuild/components';
|
|
3
|
+
export interface EditorToolbarProps {
|
|
4
|
+
registry: ComponentRegistry;
|
|
5
|
+
className?: string;
|
|
6
|
+
showExportImport?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const EditorToolbar: React.FC<EditorToolbarProps>;
|
|
9
|
+
//# sourceMappingURL=toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../src/toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuNtD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentRegistry } from '@kubuild/components';
|
|
3
|
+
import { PageDocument } from '@kubuild/schema';
|
|
4
|
+
export interface TraitsPanelProps {
|
|
5
|
+
registry: ComponentRegistry;
|
|
6
|
+
document: PageDocument;
|
|
7
|
+
selectedNodeId: string | null;
|
|
8
|
+
/** Commit a single trait value to the node's props. */
|
|
9
|
+
onCommitTrait: (traitName: string, value: unknown) => void;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Traits tab content (STORA-211): renders the functional/HTML attribute
|
|
14
|
+
* metadata declared on the selected component's definition, grouped by
|
|
15
|
+
* trait group (identity, link, media, form, behavior, semantic, accessibility).
|
|
16
|
+
*/
|
|
17
|
+
export declare const TraitsPanel: React.FC<TraitsPanelProps>;
|
|
18
|
+
//# sourceMappingURL=traits-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traits-panel.d.ts","sourceRoot":"","sources":["../src/traits-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EACL,iBAAiB,EAKlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uDAAuD;IACvD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsXD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4FlD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface FontOption {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
category: 'sans-serif' | 'serif' | 'display' | 'monospace' | 'system';
|
|
6
|
+
googleFontName?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const GOOGLE_FONTS: FontOption[];
|
|
9
|
+
export declare function loadGoogleFont(fontName: string): void;
|
|
10
|
+
export interface TypographySectorControlsProps {
|
|
11
|
+
styles?: Record<string, unknown>;
|
|
12
|
+
onChange: (property: string, value: string) => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const TypographySectorControls: React.FC<TypographySectorControlsProps>;
|
|
17
|
+
//# sourceMappingURL=typography-sector-controls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typography-sector-controls.d.ts","sourceRoot":"","sources":["../src/typography-sector-controls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,YAAY,EAAE,UAAU,EAmEpC,CAAC;AAEF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAWrD;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAgT5E,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { VariableBinding } from '@kubuild/schema';
|
|
3
|
+
import { ComponentFieldDefinition } from '@kubuild/components';
|
|
4
|
+
import { VariableCatalog, VariableDefinition } from '@kubuild/core';
|
|
5
|
+
/**
|
|
6
|
+
* Filters a host catalog down to entries whose type is compatible with a given
|
|
7
|
+
* bindable prop field — 'array'/'object' catalog entries are never offered onto
|
|
8
|
+
* scalar-bindable fields (string/number/boolean), since resolvePropsForNode's
|
|
9
|
+
* type check would reject them at render time anyway.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getCompatibleCatalogEntries(field: ComponentFieldDefinition, catalog: VariableCatalog | undefined): VariableDefinition[];
|
|
12
|
+
export declare function toBindingValue(key: string): VariableBinding;
|
|
13
|
+
export interface VariableBindingControlProps {
|
|
14
|
+
field: ComponentFieldDefinition;
|
|
15
|
+
currentValue: unknown;
|
|
16
|
+
catalog: VariableCatalog;
|
|
17
|
+
onBind: (key: string) => void;
|
|
18
|
+
onRevert: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const VariableBindingControl: React.FC<VariableBindingControlProps>;
|
|
21
|
+
//# sourceMappingURL=variable-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-picker.d.ts","sourceRoot":"","sources":["../src/variable-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAqB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAyB,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEpE;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,wBAAwB,EAC/B,OAAO,EAAE,eAAe,GAAG,SAAS,GACnC,kBAAkB,EAAE,CAMtB;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAE3D;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,wBAAwB,CAAC;IAChC,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAuDxE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kubuild/editor",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Visual page builder editor for KUBUILD",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"sideEffects": false,
|
|
20
|
+
"publishConfig": {
|
|
21
|
+
"access": "public"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsup && tsc --emitDeclarationOnly",
|
|
25
|
+
"dev": "tsup --watch",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"lint": "eslint src",
|
|
28
|
+
"test": "vitest run",
|
|
29
|
+
"prepublishOnly": "pnpm run build"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/kustora/kubuild.git"
|
|
34
|
+
},
|
|
35
|
+
"keywords": [
|
|
36
|
+
"page-builder",
|
|
37
|
+
"visual-editor",
|
|
38
|
+
"low-code",
|
|
39
|
+
"website-builder",
|
|
40
|
+
"stora",
|
|
41
|
+
"kubuild"
|
|
42
|
+
],
|
|
43
|
+
"author": "KUBUILD",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"bugs": {
|
|
46
|
+
"url": "https://github.com/kustora/kubuild/issues"
|
|
47
|
+
},
|
|
48
|
+
"homepage": "https://github.com/kustora/kubuild#readme",
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@kubuild/components": "workspace:*",
|
|
51
|
+
"@kubuild/core": "workspace:*",
|
|
52
|
+
"@kubuild/renderer": "workspace:*",
|
|
53
|
+
"@kubuild/schema": "workspace:*",
|
|
54
|
+
"lucide-react": "^1.33.0",
|
|
55
|
+
"zustand": "^5.0.15"
|
|
56
|
+
},
|
|
57
|
+
"peerDependencies": {
|
|
58
|
+
"react": ">=18.0.0",
|
|
59
|
+
"react-dom": ">=18.0.0"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/react": "^19.2.18",
|
|
63
|
+
"@types/react-dom": "^19.2.4",
|
|
64
|
+
"react": "^19.0.0",
|
|
65
|
+
"react-dom": "^19.0.0",
|
|
66
|
+
"tsup": "^8.3.6",
|
|
67
|
+
"typescript": "^6.0.0",
|
|
68
|
+
"vitest": "^3.0.5"
|
|
69
|
+
}
|
|
70
|
+
}
|