@versa-stack/v-craft 1.0.4 → 1.1.0-alpha.2

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 (44) hide show
  1. package/dist/types/components/CraftEditor.vue.d.ts +4 -7
  2. package/dist/types/components/CraftEditorBlueprint.vue.d.ts +2 -1
  3. package/dist/types/components/CraftEditorBlueprintsList.vue.d.ts +2 -1
  4. package/dist/types/components/CraftEditorPanelForm.vue.d.ts +17 -16
  5. package/dist/types/components/CraftEditorPanelLayers.vue.d.ts +2 -1
  6. package/dist/types/components/CraftEditorPanelLayout.vue.d.ts +2 -1
  7. package/dist/types/components/CraftEditorPanelNodeDataSourceSettings.vue.d.ts +11 -0
  8. package/dist/types/components/CraftEditorPanelNodeEventsSettings.vue.d.ts +6 -7
  9. package/dist/types/components/CraftEditorPanelNodeLayer.vue.d.ts +2 -1
  10. package/dist/types/components/CraftEditorPanelNodeSettings.vue.d.ts +6 -7
  11. package/dist/types/components/CraftEditorPanelNodeSlotPropsSettings.vue.d.ts +50 -0
  12. package/dist/types/components/CraftEditorPanelSettings.vue.d.ts +10 -4
  13. package/dist/types/components/CraftFrame.vue.d.ts +4 -10
  14. package/dist/types/components/CraftIframe.vue.d.ts +1 -5
  15. package/dist/types/components/CraftNodeEditor.vue.d.ts +2 -0
  16. package/dist/types/components/CraftNodeStatic.vue.d.ts +11 -0
  17. package/dist/types/components/CraftNodeViewer.vue.d.ts +2 -0
  18. package/dist/types/components/CraftStaticRenderer.vue.d.ts +5 -3
  19. package/dist/types/components/composable/index.d.ts +3 -0
  20. package/dist/types/components/composable/useAncestorContextBuckets.d.ts +20 -0
  21. package/dist/types/components/composable/useCraftFrame.d.ts +157 -104
  22. package/dist/types/components/composable/useCraftNode.d.ts +3 -3
  23. package/dist/types/components/composable/useCraftNodeEvents.d.ts +1 -2
  24. package/dist/types/components/composable/useCraftNodeWrapper.d.ts +156 -104
  25. package/dist/types/components/composable/useDragCraftNode.d.ts +2 -1
  26. package/dist/types/components/composable/useNodeElement.d.ts +9 -0
  27. package/dist/types/components/composable/useResolveCraftNode.d.ts +6 -2
  28. package/dist/types/components/composable/useResolveCraftNodeProps.d.ts +10 -0
  29. package/dist/types/components/index.d.ts +4 -2
  30. package/dist/types/components/utils.d.ts +4 -1
  31. package/dist/types/lib/CraftNodeResolver.d.ts +15 -6
  32. package/dist/types/lib/craftNode.d.ts +16 -12
  33. package/dist/types/lib/dragCraftNode/dragOver.d.ts +2 -1
  34. package/dist/types/lib/dragCraftNode/drop.d.ts +3 -2
  35. package/dist/types/lib/dragCraftNode/index.d.ts +2 -2
  36. package/dist/types/lib/extractSchemaFieldNames.d.ts +11 -0
  37. package/dist/types/lib/model.d.ts +18 -3
  38. package/dist/types/lib/renderCraftNodes.d.ts +4 -3
  39. package/dist/types/lib/vNodeToCraftNode.d.ts +2 -1
  40. package/dist/types/store/editor.d.ts +157 -105
  41. package/dist/v-craft.css +1 -1
  42. package/dist/v-craft.es.js +3277 -2763
  43. package/dist/v-craft.es.js.map +1 -1
  44. package/package.json +1 -1
@@ -8,9 +8,11 @@ import { default as CraftEditorPanelBlueprints } from './CraftEditorPanelBluepri
8
8
  import { default as CraftEditorPanelForm } from './CraftEditorPanelForm.vue';
9
9
  import { default as CraftEditorPanelLayers } from './CraftEditorPanelLayers.vue';
10
10
  import { default as CraftEditorPanelLayout } from './CraftEditorPanelLayout.vue';
11
+ import { default as CraftEditorPanelNodeDataSourceSettings } from './CraftEditorPanelNodeDataSourceSettings.vue';
11
12
  import { default as CraftEditorPanelNodeEventsSettings } from './CraftEditorPanelNodeEventsSettings.vue';
12
13
  import { default as CraftEditorPanelNodeLayer } from './CraftEditorPanelNodeLayer.vue';
13
14
  import { default as CraftEditorPanelNodeSettings } from './CraftEditorPanelNodeSettings.vue';
15
+ import { default as CraftEditorPanelNodeSlotPropsSettings } from './CraftEditorPanelNodeSlotPropsSettings.vue';
14
16
  import { default as CraftEditorPanelSettings } from './CraftEditorPanelSettings.vue';
15
17
  import { default as CraftFrame } from './CraftFrame.vue';
16
18
  import { default as CraftNodeEditor } from './CraftNodeEditor.vue';
@@ -18,8 +20,8 @@ import { default as CraftNodeViewer } from './CraftNodeViewer.vue';
18
20
  import { default as CraftIframe } from './CraftIframe.vue';
19
21
  import { default as CraftStaticRenderer } from './CraftStaticRenderer.vue';
20
22
  import * as Utils from "./utils";
21
- export { CraftCanvas, CraftComponentSimpleText, CraftEditor, CraftEditorBlueprint, CraftEditorBlueprintsList, CraftEditorPanelBlueprints, CraftEditorPanelForm, CraftEditorPanelLayers, CraftEditorPanelLayout, CraftEditorPanelNodeEventsSettings, CraftEditorPanelNodeLayer, CraftEditorPanelNodeSettings, CraftEditorPanelSettings, CraftFrame, CraftIframe, CraftNodeEditor, CraftNodeViewer, CraftStaticRenderer, Utils, };
22
- export type CraftDataListItem<T extends object> = {
23
+ export { CraftCanvas, CraftComponentSimpleText, CraftEditor, CraftEditorBlueprint, CraftEditorBlueprintsList, CraftEditorPanelBlueprints, CraftEditorPanelForm, CraftEditorPanelLayers, CraftEditorPanelLayout, CraftEditorPanelNodeDataSourceSettings, CraftEditorPanelNodeEventsSettings, CraftEditorPanelNodeLayer, CraftEditorPanelNodeSettings, CraftEditorPanelNodeSlotPropsSettings, CraftEditorPanelSettings, CraftFrame, CraftIframe, CraftNodeEditor, CraftNodeViewer, CraftStaticRenderer, Utils, };
24
+ export type CraftDataListItem = {
23
25
  dataItem: any;
24
26
  dataIndex: number;
25
27
  childNode: CraftNode;
@@ -1,12 +1,15 @@
1
1
  import { CraftNode } from '../lib/craftNode';
2
2
  import { default as CraftNodeResolver } from '../lib/CraftNodeResolver';
3
3
  import { BlueprintGroup } from '../lib/model';
4
- export declare const blueprintsWithDefaults: <T extends object>(group: BlueprintGroup, resolver: CraftNodeResolver<T>) => {
4
+ import { FormKitSchemaDefinition } from '@formkit/core';
5
+ export declare const blueprintsWithDefaults: <T extends FormKitSchemaDefinition>(group: BlueprintGroup, resolver: CraftNodeResolver<T>) => {
5
6
  props: any;
6
7
  slots: Record<string, CraftNode[]> & Record<string, import('../lib/model').Blueprint[]>;
8
+ slotsPropsPropsMap?: Record<string, Record<string, string>> | undefined;
7
9
  componentName: string;
8
10
  rules?: import('../lib/craftNode').CraftNodeRules | undefined;
9
11
  visible?: boolean | undefined;
10
12
  events?: Record<string, string> | undefined;
11
13
  label?: string;
12
14
  }[];
15
+ export declare const generateColorFromUUID: (uuid: string) => string;
@@ -1,23 +1,32 @@
1
- import { FormKitSchemaFormKit } from '@formkit/core';
1
+ import { FormKitSchemaDefinition } from '@formkit/core';
2
+ import { Component } from 'vue';
2
3
  import { CraftNode, CraftNodeRules } from './craftNode';
3
- export type CraftNodeComponentMap<T extends object> = {
4
+ export type CraftNodeComponentMap<T extends FormKitSchemaDefinition = FormKitSchemaDefinition> = {
4
5
  componentName: string;
6
+ label?: string;
7
+ component?: Component | (() => Promise<Component>);
5
8
  propsSchema?: T;
6
9
  eventsSchema?: T;
7
10
  defaultProps?: Record<string, any>;
8
11
  rules?: CraftNodeRules;
9
12
  slots?: string[];
13
+ slotsProps?: Record<string, string[]>;
10
14
  };
11
- export type CraftNodeResolverMap<T extends object> = Record<string, CraftNodeComponentMap<T>>;
12
- export declare class CraftNodeResolver<T extends object = FormKitSchemaFormKit[]> {
15
+ export type CraftNodeResolverMap<T extends FormKitSchemaDefinition = FormKitSchemaDefinition> = Record<string, CraftNodeComponentMap<T>>;
16
+ export type ResolveComponentHook = (craftNode: CraftNode, defaultResolver: (name: string) => Component | undefined) => Component | undefined;
17
+ export declare class CraftNodeResolver<T extends FormKitSchemaDefinition = FormKitSchemaDefinition> {
13
18
  resolverMap: CraftNodeResolverMap<T>;
19
+ private resolveComponentHook?;
14
20
  constructor(resolverMap?: Record<string, CraftNodeComponentMap<T>>);
15
21
  setResolverMap(resolverMap: Record<string, CraftNodeComponentMap<T>>): void;
22
+ onResolveComponent(hook: ResolveComponentHook): void;
16
23
  resolve(name: string): CraftNodeComponentMap<T>;
24
+ resolveComponent(craftNode: CraftNode): Component | undefined;
17
25
  getDefaultProps(craftNode: CraftNode): Record<string, any>;
18
26
  resolveNode(craftNode: CraftNode): CraftNodeComponentMap<T>;
19
- getSchema(craftNode: CraftNode): Record<string, any>;
20
- getEventsSchema(craftNode: CraftNode): Record<string, any>;
27
+ getSchema(craftNode: CraftNode): T;
28
+ getEventsSchema(craftNode: CraftNode): T;
21
29
  getRules(craftNode: CraftNode): CraftNodeRules;
30
+ getSlotsProps(craftNode: CraftNode): Record<string, string[]>;
22
31
  }
23
32
  export default CraftNodeResolver;
@@ -1,12 +1,14 @@
1
+ import { FormKitSchemaDefinition } from '@formkit/core';
1
2
  import { default as CraftNodeResolver } from './CraftNodeResolver';
2
3
  export type CraftNodeRules = {
3
- canMoveIn?: <T extends object>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean;
4
- canMoveOut?: <T extends object>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean;
5
- canDrag?: <T extends object>(craftNode: CraftNode) => boolean;
6
- canMoveInto?: <T extends object>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean;
4
+ canMoveIn?: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean;
5
+ canMoveOut?: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean;
6
+ canDrag?: (craftNode: CraftNode) => boolean;
7
+ canMoveInto?: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean;
7
8
  };
8
9
  export type CraftNode = {
9
10
  slots: Record<string, CraftNode[]>;
11
+ slotsPropsPropsMap?: Record<string, Record<string, string>>;
10
12
  componentName: string;
11
13
  parentUuid?: string | null;
12
14
  props: any;
@@ -14,6 +16,7 @@ export type CraftNode = {
14
16
  uuid: string;
15
17
  visible?: boolean;
16
18
  events?: Record<string, string>;
19
+ label?: string;
17
20
  };
18
21
  export type CraftNodeDatasource = {
19
22
  item?: Record<string, any>;
@@ -22,11 +25,12 @@ export type CraftNodeDatasource = {
22
25
  slotName?: string;
23
26
  };
24
27
  export declare const isVisible: (craftNode: CraftNode) => boolean;
25
- export declare const craftNodeInCanvas: <T extends object>(craftNode: CraftNode) => boolean;
26
- export declare const craftNodeIsDraggable: <T extends object>(craftNode: CraftNode) => boolean;
27
- export declare const craftNodeIsAncestorOf: <T extends object>(craftNode: CraftNode, descendant: CraftNode) => boolean;
28
- export declare const resolveNodeName: <T extends object>(craftNode: CraftNode) => any;
29
- export declare const craftNodeCanBeChildOf: <T extends object>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean | undefined;
30
- export declare const craftNodeIsCanvas: <T extends object>(craftNode: CraftNode) => boolean;
31
- export declare const craftNodeCanBeSiblingOf: <T extends object>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean | undefined;
32
- export declare const buildCraftNodeTree: <T extends object>(craftNode: CraftNode) => CraftNode;
28
+ export declare const craftNodeInCanvas: (craftNode: CraftNode) => boolean;
29
+ export declare const craftNodeIsDraggable: (craftNode: CraftNode) => boolean;
30
+ export declare const craftNodeIsAncestorOf: (craftNode: CraftNode, descendant: CraftNode) => boolean;
31
+ export declare const resolveNodeName: (craftNode: CraftNode) => any;
32
+ export declare const craftNodeCanBeChildOf: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean | undefined;
33
+ export declare const craftNodeIsCanvas: (craftNode: CraftNode) => boolean;
34
+ export declare const craftNodeCanBeSiblingOf: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(craftNode: CraftNode, targetNode: CraftNode, resolver: CraftNodeResolver<T>) => boolean | undefined;
35
+ export declare const buildCraftNodeTree: (craftNode: CraftNode) => CraftNode;
36
+ export declare const initializeSlotsFromResolver: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(node: CraftNode, resolver: CraftNodeResolver<T>) => CraftNode;
@@ -1,3 +1,4 @@
1
1
  import { DragCraftNodeContext } from './drop';
2
- declare const _default: <T extends object>(e: MouseEvent, el: HTMLElement, context: DragCraftNodeContext<T>) => void;
2
+ import { FormKitSchemaDefinition } from '@formkit/core';
3
+ declare const _default: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(e: MouseEvent, el: HTMLElement, context: DragCraftNodeContext<T>) => void;
3
4
  export default _default;
@@ -1,13 +1,14 @@
1
+ import { FormKitSchemaDefinition } from '@formkit/core';
1
2
  import { Ref } from 'vue';
2
3
  import { EditorStoreInstanceType } from '../../store/editor';
3
4
  import { IndicatorStoreType } from '../../store/indicator';
4
5
  import { CraftNode } from '../craftNode';
5
6
  import { default as CraftNodeResolver } from '../CraftNodeResolver';
6
- export type DragCraftNodeContext<T extends object> = {
7
+ export type DragCraftNodeContext<T extends FormKitSchemaDefinition = FormKitSchemaDefinition> = {
7
8
  editor: EditorStoreInstanceType;
8
9
  indicator: IndicatorStoreType;
9
10
  craftNode: Ref<CraftNode>;
10
11
  resolver: CraftNodeResolver<T>;
11
12
  };
12
- declare const _default: <T extends object>(e: MouseEvent, el: HTMLElement, context: DragCraftNodeContext<T>) => CraftNode;
13
+ declare const _default: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(e: MouseEvent, el: HTMLElement, context: DragCraftNodeContext<T>) => CraftNode;
13
14
  export default _default;
@@ -1,5 +1,5 @@
1
1
  declare const _default: {
2
- handleDragOver: <T extends object>(e: MouseEvent, el: HTMLElement, context: import('./drop').DragCraftNodeContext<T>) => void;
3
- handleDrop: <T extends object>(e: MouseEvent, el: HTMLElement, context: import('./drop').DragCraftNodeContext<T>) => import('../craftNode').CraftNode;
2
+ handleDragOver: <T extends import('@formkit/core').FormKitSchemaDefinition = import('@formkit/core').FormKitSchemaDefinition>(e: MouseEvent, el: HTMLElement, context: import('./drop').DragCraftNodeContext<T>) => void;
3
+ handleDrop: <T extends import('@formkit/core').FormKitSchemaDefinition = import('@formkit/core').FormKitSchemaDefinition>(e: MouseEvent, el: HTMLElement, context: import('./drop').DragCraftNodeContext<T>) => import('../craftNode').CraftNode;
4
4
  };
5
5
  export default _default;
@@ -0,0 +1,11 @@
1
+ import { FormKitSchemaDefinition } from '@formkit/core';
2
+ export type SchemaFieldOption = {
3
+ value: string;
4
+ label: string;
5
+ };
6
+ /**
7
+ * Reads the flat `propsSchema`/`eventsSchema` array shape used throughout
8
+ * this project's resolvers (each entry a FormKit node carrying `name` and
9
+ * an optional `label`) and turns it into options for a target-prop picker.
10
+ */
11
+ export declare const extractSchemaFieldNames: (schema: FormKitSchemaDefinition | undefined | null) => SchemaFieldOption[];
@@ -1,5 +1,7 @@
1
- import { CraftNodeResolverMap } from './CraftNodeResolver';
1
+ import { HTMLAttributes, StyleValue } from 'vue';
2
+ import { CraftNodeResolver, CraftNodeResolverMap } from './CraftNodeResolver';
2
3
  import { CraftNode } from './craftNode';
4
+ import { FormKitSchemaDefinition } from '@formkit/core';
3
5
  export type CraftBlueprintData = {
4
6
  label: string;
5
7
  component: string;
@@ -24,9 +26,10 @@ export type Blueprint = Omit<CraftNode, "parentUuid" | "uuid"> & {
24
26
  label?: string;
25
27
  slots: Record<string, Blueprint[]>;
26
28
  };
27
- export type CraftEditorConfig<T extends object> = {
29
+ export type CraftEditorConfig<T extends FormKitSchemaDefinition = FormKitSchemaDefinition> = {
28
30
  blueprintsLibrary: BlueprintsLibrary;
29
- resolverMap: CraftNodeResolverMap<T>;
31
+ resolverMap?: CraftNodeResolverMap<T>;
32
+ resolver?: CraftNodeResolver<T>;
30
33
  };
31
34
  export type CraftDataPatch<V = any, D = any> = {
32
35
  defaultValue?: D;
@@ -41,3 +44,15 @@ export type CraftDataWrapperPropMap<V = any, D = any> = {
41
44
  patches: CraftDataPatch<V, D>[];
42
45
  type: "single" | "list";
43
46
  };
47
+ export type CraftNodeIFrameProps = {
48
+ iframeClass?: HTMLAttributes["class"];
49
+ iframeStyle?: StyleValue;
50
+ inheritStyles?: boolean;
51
+ styleSheets?: string[];
52
+ styles?: string[];
53
+ iframeId?: string;
54
+ };
55
+ export type CraftFrameIFrameProps = CraftNodeIFrameProps & {
56
+ wrapperClass?: HTMLAttributes["class"];
57
+ wrapperStyle?: StyleValue;
58
+ };
@@ -1,11 +1,12 @@
1
+ import { FormKitSchemaDefinition } from '@formkit/core';
1
2
  import { VNode } from 'vue';
2
3
  import { CraftNode, CraftNodeDatasource } from './craftNode';
3
4
  import { default as CraftNodeResolver, CraftNodeResolverMap } from './CraftNodeResolver';
4
- export interface RenderOptions<T extends object> {
5
+ export interface RenderOptions<T extends FormKitSchemaDefinition = FormKitSchemaDefinition> {
5
6
  resolverMap: CraftNodeResolverMap<T>;
6
7
  componentRegistry?: Record<string, any>;
7
8
  nodeDataMap?: Record<string, CraftNodeDatasource | null>;
8
9
  eventsContext?: Record<string, any>;
9
10
  }
10
- export declare function renderCraftNodeToVNode<T extends object>(node: CraftNode, resolver: CraftNodeResolver<T>, componentRegistry?: Record<string, any>, nodeDataMap?: Record<string, CraftNodeDatasource | null>, eventsContext?: Record<string, any>): VNode | null;
11
- export declare function renderCraftNodesToVNodes<T extends object>(nodes: CraftNode[], options: RenderOptions<T>): VNode[];
11
+ export declare function renderCraftNodeToVNode<T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(node: CraftNode, resolver: CraftNodeResolver<T>, componentRegistry?: Record<string, any>, nodeDataMap?: Record<string, CraftNodeDatasource | null>, eventsContext?: Record<string, any>): VNode | null;
12
+ export declare function renderCraftNodesToVNodes<T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(nodes: CraftNode[], options: RenderOptions<T>): VNode[];
@@ -1,4 +1,5 @@
1
1
  import { CraftNode } from './craftNode';
2
2
  import { default as CraftNodeResolver } from './CraftNodeResolver';
3
- declare const createNodeFromVNode: <T extends object>(resolver: CraftNodeResolver<T>, vNode: any, parentNode?: CraftNode | null) => CraftNode;
3
+ import { FormKitSchemaDefinition } from '@formkit/core';
4
+ declare const createNodeFromVNode: <T extends FormKitSchemaDefinition = FormKitSchemaDefinition>(resolver: CraftNodeResolver<T>, vNode: any, parentNode?: CraftNode | null) => CraftNode;
4
5
  export default createNodeFromVNode;