devject-design 0.2.1 → 0.2.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 (41) hide show
  1. package/README.md +2 -0
  2. package/dist/core/builtin/components/checkbox.d.ts +1 -0
  3. package/dist/core/builtin/components/collapse.d.ts +1 -0
  4. package/dist/core/builtin/components/fileUpload.d.ts +1 -0
  5. package/dist/core/builtin/components/flexRow.d.ts +1 -0
  6. package/dist/core/builtin/components/imageUpload.d.ts +1 -0
  7. package/dist/core/builtin/components/input.d.ts +1 -0
  8. package/dist/core/builtin/components/radio.d.ts +1 -0
  9. package/dist/core/builtin/components/select.d.ts +1 -0
  10. package/dist/core/builtin/components/staticTable.d.ts +1 -0
  11. package/dist/core/builtin/components/switch.d.ts +1 -0
  12. package/dist/core/builtin/components/table.d.ts +1 -0
  13. package/dist/core/builtin/components/tabs.d.ts +1 -0
  14. package/dist/core/builtin/components/textarea.d.ts +1 -0
  15. package/dist/core/builtin/components/title.d.ts +1 -0
  16. package/dist/core/builtin/components/tree.d.ts +1 -0
  17. package/dist/core/builtin/utils.d.ts +4 -0
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.es.js +6908 -6635
  20. package/dist/index.umd.js +14 -14
  21. package/dist/pages/FormDesigner.d.ts +18 -1
  22. package/dist/style.css +1 -1
  23. package/dist/ui/components/Tree.d.ts +10 -4
  24. package/dist/ui/designer/DesignerDialogs.d.ts +9 -0
  25. package/dist/ui/designer/DesignerToolbar.d.ts +10 -0
  26. package/dist/ui/editors/TableColumnsEditor.d.ts +3 -1
  27. package/dist/ui/node-renderers/CollapseRenderer.d.ts +6 -0
  28. package/dist/ui/node-renderers/FieldRenderer.d.ts +6 -0
  29. package/dist/ui/node-renderers/FlexRowRenderer.d.ts +6 -0
  30. package/dist/ui/node-renderers/StaticTableRenderer.d.ts +6 -0
  31. package/dist/ui/node-renderers/TableRenderer.d.ts +6 -0
  32. package/dist/ui/node-renderers/TabsRenderer.d.ts +6 -0
  33. package/dist/ui/state/designerState.d.ts +7 -7
  34. package/dist/ui/state/schemaOps.d.ts +1 -0
  35. package/dist/ui/state/useDragLogic.d.ts +3 -2
  36. package/dist/ui/state/validator.d.ts +10 -1
  37. package/package.json +1 -1
  38. package/dist/core/builtin/advanced.d.ts +0 -1
  39. package/dist/core/builtin/basics.d.ts +0 -1
  40. package/dist/core/builtin/containers.d.ts +0 -1
  41. package/dist/ui/hooks/useValidator.d.ts +0 -4
@@ -13,5 +13,22 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
13
13
  "update:modelValue": (v: LayoutSchema) => any;
14
14
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
15
15
  "onUpdate:modelValue"?: ((v: LayoutSchema) => any) | undefined;
16
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
16
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
17
+ dialogsRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {
18
+ openPreview: () => void;
19
+ openExport: () => void;
20
+ openImport: () => void;
21
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
22
+ P: {};
23
+ B: {};
24
+ D: {};
25
+ C: {};
26
+ M: {};
27
+ Defaults: {};
28
+ }, Readonly<{}> & Readonly<{}>, {
29
+ openPreview: () => void;
30
+ openExport: () => void;
31
+ openImport: () => void;
32
+ }, {}, {}, {}, {}> | null;
33
+ }, HTMLDivElement>;
17
34
  export default _default;
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .line[data-v-3f70fab6]{height:10px;border-radius:6px;border:1px dashed transparent;background:transparent;transition:all .2s;position:relative;display:flex;align-items:center;justify-content:center}.line.active[data-v-3f70fab6]{background:#409eff24;border-color:#409eff99;height:24px}.line.active.flexCol[data-v-3f70fab6],.line.active.collapse[data-v-3f70fab6],.line.active.tab[data-v-3f70fab6]{background:#67c23a24;border-color:#67c23a99}.hint[data-v-3f70fab6]{font-size:12px;color:var(--el-color-primary);pointer-events:none;font-weight:700}.line.active.flexCol .hint[data-v-3f70fab6],.line.active.collapse .hint[data-v-3f70fab6],.line.active.tab .hint[data-v-3f70fab6]{color:var(--el-color-success)}.card[data-v-0c18799e]{border:1px solid var(--el-border-color);background:#fff;border-radius:10px;margin:10px 0;overflow:hidden}.card.selected[data-v-0c18799e]{border-color:#409effe6;box-shadow:0 0 0 2px #409eff1f}.head[data-v-0c18799e]{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 8px;border-bottom:1px dashed var(--el-border-color);gap:10px}.left[data-v-0c18799e]{display:flex;align-items:center;gap:8px;min-width:0}.name[data-v-0c18799e]{font-weight:600;font-size:13px;color:var(--el-text-color-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body[data-v-0c18799e]{padding:10px}.flexRow[data-v-0c18799e]{width:100%}.col[data-v-0c18799e]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:8px;min-height:90px}.colTitle[data-v-0c18799e]{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:6px}.colBody[data-v-0c18799e]{display:flex;flex-direction:column;gap:8px}.colEmpty[data-v-0c18799e]{font-size:12px;color:var(--el-text-color-secondary);padding:10px 0;text-align:center}.containerBox[data-v-0c18799e]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:10px}.containerTitle[data-v-0c18799e]{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:10px}.containerBody[data-v-0c18799e]{display:flex;flex-direction:column;gap:8px}.fieldLine[data-v-0c18799e]{display:flex;align-items:center;gap:6px}.fieldLabel[data-v-0c18799e]{font-weight:600;font-size:13px}.fieldMeta[data-v-0c18799e]{font-size:12px;color:var(--el-text-color-secondary)}.tabsPreview[data-v-0c18799e] .el-tabs__content{padding:10px 0 0}.root[data-v-2826e68b]{display:flex;flex-direction:column;gap:10px}.title[data-v-2826e68b]{font-weight:700;color:var(--el-text-color-regular)}.panel[data-v-2826e68b]{background:#fff;border:1px solid var(--el-border-color);border-radius:10px;padding:12px;min-height:480px}.item[data-v-9cfed2fe]{cursor:grab;-webkit-user-select:none;user-select:none}.content[data-v-9cfed2fe]{display:flex;align-items:center;gap:8px}.icon[data-v-9cfed2fe]{color:var(--el-text-color-secondary)}.label[data-v-9cfed2fe]{font-weight:600;font-size:13px}.wrap[data-v-20eae507]{padding:10px;position:relative}.grid[data-v-20eae507]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:8px 0}.ghost[data-v-20eae507]{position:fixed;z-index:9999;pointer-events:none;background:#409eff1f;border:1px solid rgba(64,158,255,.6);padding:6px 10px;border-radius:6px;color:#409eff;font-size:12px;white-space:nowrap}.error[data-v-77b0ed08]{color:red;padding:10px;border:1px dashed red}.root[data-v-7734b69a]{display:flex;flex-direction:column;gap:12px}.bar[data-v-85f86010]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.spacer[data-v-85f86010]{flex:1}.viewport[data-v-85f86010]{display:flex;justify-content:center;background:#f6f7fb;border:1px solid var(--el-border-color);border-radius:10px;padding:12px;min-height:520px}.surface[data-v-85f86010]{width:100%;background:#fff;border-radius:10px;padding:12px}.viewport.mobile .surface[data-v-85f86010]{width:390px;border:1px solid var(--el-border-color)}.wrap[data-v-362d3a45]{display:flex;flex-direction:column;gap:10px}.title[data-v-362d3a45]{font-weight:700;color:var(--el-text-color-regular)}.panel[data-v-362d3a45]{padding:10px;border:1px solid var(--el-border-color);border-radius:10px}.designer[data-v-efcea3e2]{height:100%;display:flex;overflow:hidden}.palette[data-v-efcea3e2]{width:290px;border-right:1px solid var(--el-border-color);overflow:auto}.main[data-v-efcea3e2]{flex:1;display:flex;flex-direction:column;overflow:hidden}.toolbar[data-v-efcea3e2]{padding:10px;border-bottom:1px solid var(--el-border-color);display:flex;align-items:center;gap:10px}.spacer[data-v-efcea3e2]{flex:1}.body[data-v-efcea3e2]{flex:1;display:flex;overflow:hidden}.canvas[data-v-efcea3e2]{flex:1;overflow:auto;padding:12px;background:#f6f7fb}.props[data-v-efcea3e2]{width:360px;border-left:1px solid var(--el-border-color);overflow:auto;padding:12px;background:#fff}.row[data-v-3492f013]{width:100%}.col[data-v-3492f013]{display:flex;flex-direction:column;gap:12px}.tableWrap[data-v-398fe6ca]{border:1px solid var(--el-border-color);border-radius:4px;padding:10px;background:#fff}.tableHeader[data-v-398fe6ca]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tableHeader .title[data-v-398fe6ca]{font-weight:700}.tableHeader .actions[data-v-398fe6ca]{display:flex;gap:8px}.pagination[data-v-398fe6ca]{margin-top:10px;display:flex;justify-content:flex-end}.static-table-wrap[data-v-fb9f8ced]{padding:5px;background-color:#fff}.title[data-v-fb9f8ced]{font-weight:700;margin-bottom:8px;font-size:14px}.pagination[data-v-fb9f8ced]{margin-top:10px;display:flex;justify-content:flex-end}.tree-wrap[data-v-ff6cbb3a]{padding:5px;background:#fff}.title[data-v-ff6cbb3a]{font-weight:700;margin-bottom:8px;font-size:14px}.subTitle[data-v-f2f3148f]{margin:10px 0;font-weight:700}.tabsEditor[data-v-f2f3148f]{display:flex;flex-direction:column;gap:10px}.tabRow[data-v-f2f3148f]{display:grid;grid-template-columns:1fr 70px;gap:10px;align-items:center}.subTitle[data-v-1bc3d1cb],.subTitle[data-v-eebc78ec],.subTitle[data-v-46323453],.subTitle[data-v-f26de0df]{margin:10px 0;font-weight:700}.options[data-v-f26de0df]{display:flex;flex-direction:column;gap:10px}.optRow[data-v-f26de0df]{display:grid;grid-template-columns:1fr 1fr 70px;gap:10px;align-items:center}.subTitle[data-v-075885d4]{margin:10px 0;font-weight:700}.options[data-v-075885d4]{display:flex;flex-direction:column;gap:10px}.optRow[data-v-075885d4]{display:grid;grid-template-columns:1fr 1fr 70px;gap:10px;align-items:center}.subTitle[data-v-1d47f304]{margin:10px 0;font-weight:700}.tabsEditor[data-v-1d47f304]{display:flex;flex-direction:column;gap:10px}.tabRow[data-v-1d47f304]{display:grid;grid-template-columns:1fr 70px;gap:10px;align-items:center}
1
+ .line[data-v-6a15af0a]{height:10px;border-radius:6px;border:1px dashed transparent;background:transparent;transition:all .2s;position:relative;display:flex;align-items:center;justify-content:center}.line.active[data-v-6a15af0a]{background:#409eff24;border-color:#409eff99;height:24px}.hint[data-v-6a15af0a]{font-size:12px;color:var(--el-color-primary);pointer-events:none;font-weight:700}.line.active.flexCol .hint[data-v-6a15af0a],.line.active.collapse .hint[data-v-6a15af0a],.line.active.tab .hint[data-v-6a15af0a]{color:var(--el-color-success)}.flexRow[data-v-372ce5dc]{width:100%}.col[data-v-372ce5dc]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:8px;min-height:90px}.colTitle[data-v-372ce5dc]{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:6px}.colBody[data-v-372ce5dc]{display:flex;flex-direction:column;gap:8px}.colEmpty[data-v-372ce5dc]{font-size:12px;color:var(--el-text-color-secondary);padding:10px 0;text-align:center}.containerBox[data-v-4e8994cf]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:10px}.colEmpty[data-v-4e8994cf]{font-size:12px;color:var(--el-text-color-secondary);padding:10px 0;text-align:center}.tabsPreview[data-v-4e8994cf] .el-tabs__content{padding:10px 0 0}.containerBox[data-v-3b72b0a4]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:10px}.colEmpty[data-v-3b72b0a4]{font-size:12px;color:var(--el-text-color-secondary);padding:10px 0;text-align:center}.tabsPreview[data-v-3b72b0a4] .el-tabs__content{padding:10px 0 0}.fieldLine[data-v-3fc457e3]{display:flex;align-items:center;gap:6px}.fieldLabel[data-v-3fc457e3]{font-weight:600;font-size:13px}.fieldMeta[data-v-3fc457e3]{font-size:12px;color:var(--el-text-color-secondary)}.card[data-v-13adc3e8]{border:1px solid var(--el-border-color);background:#fff;border-radius:10px;margin:10px 0;overflow:hidden}.card.selected[data-v-13adc3e8]{border-color:#409effe6;box-shadow:0 0 0 2px #409eff1f}.head[data-v-13adc3e8]{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 8px;border-bottom:1px dashed var(--el-border-color);gap:10px}.left[data-v-13adc3e8]{display:flex;align-items:center;gap:8px;min-width:0}.name[data-v-13adc3e8]{font-weight:600;font-size:13px;color:var(--el-text-color-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body[data-v-13adc3e8]{padding:10px}.root[data-v-2826e68b]{display:flex;flex-direction:column;gap:10px}.title[data-v-2826e68b]{font-weight:700;color:var(--el-text-color-regular)}.panel[data-v-2826e68b]{background:#fff;border:1px solid var(--el-border-color);border-radius:10px;padding:12px;min-height:480px}.item[data-v-9cfed2fe]{cursor:grab;-webkit-user-select:none;user-select:none}.content[data-v-9cfed2fe]{display:flex;align-items:center;gap:8px}.icon[data-v-9cfed2fe]{color:var(--el-text-color-secondary)}.label[data-v-9cfed2fe]{font-weight:600;font-size:13px}.wrap[data-v-319be3ec]{padding:10px;position:relative}.grid[data-v-319be3ec]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:8px 0}.ghost[data-v-319be3ec]{position:fixed;z-index:9999;pointer-events:none;background:#409eff1f;border:1px solid rgba(64,158,255,.6);padding:6px 10px;border-radius:6px;color:#409eff;font-size:12px;white-space:nowrap}.wrap[data-v-4da0fea8]{display:flex;flex-direction:column;gap:10px}.title[data-v-4da0fea8]{font-weight:700;color:var(--el-text-color-regular)}.panel[data-v-4da0fea8]{padding:10px;border:1px solid var(--el-border-color);border-radius:10px}.toolbar[data-v-ff735fe9]{padding:10px;border-bottom:1px solid var(--el-border-color);display:flex;align-items:center;gap:10px}.spacer[data-v-ff735fe9]{flex:1}.error[data-v-77b0ed08]{color:red;padding:10px;border:1px dashed red}.root[data-v-7734b69a]{display:flex;flex-direction:column;gap:12px}.bar[data-v-85f86010]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.spacer[data-v-85f86010]{flex:1}.viewport[data-v-85f86010]{display:flex;justify-content:center;background:#f6f7fb;border:1px solid var(--el-border-color);border-radius:10px;padding:12px;min-height:520px}.surface[data-v-85f86010]{width:100%;background:#fff;border-radius:10px;padding:12px}.viewport.mobile .surface[data-v-85f86010]{width:390px;border:1px solid var(--el-border-color)}.designer[data-v-d638c5f2]{height:100%;display:flex;overflow:hidden}.palette[data-v-d638c5f2]{width:290px;border-right:1px solid var(--el-border-color);overflow:auto}.main[data-v-d638c5f2]{flex:1;display:flex;flex-direction:column;overflow:hidden}.body[data-v-d638c5f2]{flex:1;display:flex;overflow:hidden}.canvas[data-v-d638c5f2]{flex:1;overflow:auto;padding:12px;background:#f6f7fb}.props[data-v-d638c5f2]{width:360px;border-left:1px solid var(--el-border-color);overflow:auto;padding:12px;background:#fff}.row[data-v-3492f013]{width:100%}.col[data-v-3492f013]{display:flex;flex-direction:column;gap:12px}.tree-wrap[data-v-91e9ee3b]{padding:5px;background:#fff}.title[data-v-91e9ee3b]{font-weight:700;margin-bottom:8px;font-size:14px}.tableWrap[data-v-776e410d]{border:1px solid var(--el-border-color);border-radius:4px;padding:10px;background:#fff}.tableHeader[data-v-776e410d]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tableHeader .title[data-v-776e410d]{font-weight:700}.tableHeader .actions[data-v-776e410d]{display:flex;gap:8px}.pagination[data-v-776e410d]{margin-top:10px;display:flex;justify-content:flex-end}.static-table-wrap[data-v-fb9f8ced]{padding:5px;background-color:#fff}.title[data-v-fb9f8ced]{font-weight:700;margin-bottom:8px;font-size:14px}.pagination[data-v-fb9f8ced]{margin-top:10px;display:flex;justify-content:flex-end}.subTitle[data-v-f2f3148f]{margin:10px 0;font-weight:700}.tabsEditor[data-v-f2f3148f]{display:flex;flex-direction:column;gap:10px}.tabRow[data-v-f2f3148f]{display:grid;grid-template-columns:1fr 70px;gap:10px;align-items:center}.subTitle[data-v-1bc3d1cb],.subTitle[data-v-eebc78ec],.subTitle[data-v-46323453],.subTitle[data-v-f26de0df]{margin:10px 0;font-weight:700}.options[data-v-f26de0df]{display:flex;flex-direction:column;gap:10px}.optRow[data-v-f26de0df]{display:grid;grid-template-columns:1fr 1fr 70px;gap:10px;align-items:center}.subTitle[data-v-6962a363]{margin:10px 0;font-weight:700}.options[data-v-6962a363]{display:flex;flex-direction:column;gap:10px}.optRow[data-v-6962a363]{display:grid;grid-template-columns:1fr 1fr 70px;gap:10px;align-items:center}.subTitle[data-v-1d47f304]{margin:10px 0;font-weight:700}.tabsEditor[data-v-1d47f304]{display:flex;flex-direction:column;gap:10px}.tabRow[data-v-1d47f304]{display:grid;grid-template-columns:1fr 70px;gap:10px;align-items:center}
@@ -1,7 +1,13 @@
1
- import { SchemaNode, FormDataModel } from '../state/types';
1
+ import { FieldNode, FormDataModel } from '../state/types';
2
2
  type __VLS_Props = {
3
- node: SchemaNode;
4
- modelValue?: FormDataModel;
3
+ node: FieldNode;
4
+ modelValue: FormDataModel;
5
5
  };
6
- declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
7
+ "update:modelValue": (v: FormDataModel) => any;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: ((v: FormDataModel) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
11
+ treeRef: unknown;
12
+ }, any>;
7
13
  export default _default;
@@ -0,0 +1,9 @@
1
+ declare function openPreview(): void;
2
+ declare function openExport(): void;
3
+ declare function openImport(): void;
4
+ declare const _default: import('vue').DefineComponent<{}, {
5
+ openPreview: typeof openPreview;
6
+ openExport: typeof openExport;
7
+ openImport: typeof openImport;
8
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
9
+ export default _default;
@@ -0,0 +1,10 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
2
+ "open-import": () => any;
3
+ "open-export": () => any;
4
+ "open-preview": () => any;
5
+ }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
6
+ "onOpen-import"?: (() => any) | undefined;
7
+ "onOpen-export"?: (() => any) | undefined;
8
+ "onOpen-preview"?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
10
+ export default _default;
@@ -6,5 +6,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
6
6
  "update:modelValue": (...args: any[]) => void;
7
7
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
8
8
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
9
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
9
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
10
+ fileInput: HTMLInputElement;
11
+ }, any>;
10
12
  export default _default;
@@ -0,0 +1,6 @@
1
+ import { SchemaNode } from '../state/types';
2
+ type __VLS_Props = {
3
+ node: SchemaNode;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { SchemaNode } from '../state/types';
2
+ type __VLS_Props = {
3
+ node: SchemaNode;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { SchemaNode } from '../state/types';
2
+ type __VLS_Props = {
3
+ node: SchemaNode;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { SchemaNode } from '../state/types';
2
+ type __VLS_Props = {
3
+ node: SchemaNode;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { SchemaNode } from '../state/types';
2
+ type __VLS_Props = {
3
+ node: SchemaNode;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { SchemaNode } from '../state/types';
2
+ type __VLS_Props = {
3
+ node: SchemaNode;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ export default _default;
@@ -1,4 +1,4 @@
1
- import { DragItem, DropTarget, FormDataModel, NodeType } from './types';
1
+ import { FormDataModel } from './types';
2
2
  declare function undo(): void;
3
3
  declare function redo(): void;
4
4
  declare function applySchema(input: unknown): void;
@@ -66,7 +66,7 @@ export declare function useDesignerState(): {
66
66
  } | {
67
67
  kind: "node";
68
68
  nodeId: string;
69
- } | null, DragItem | {
69
+ } | null, import('./types').DragItem | {
70
70
  kind: "palette";
71
71
  nodeType: string;
72
72
  preset?: Record<string, unknown> | undefined;
@@ -92,7 +92,7 @@ export declare function useDesignerState(): {
92
92
  tabsId: string;
93
93
  tabId: string;
94
94
  insertIndex: number;
95
- } | null, DropTarget | {
95
+ } | null, import('./types').DropTarget | {
96
96
  kind: "root";
97
97
  insertIndex: number;
98
98
  } | {
@@ -116,16 +116,16 @@ export declare function useDesignerState(): {
116
116
  y: number;
117
117
  };
118
118
  isDragging: import('vue').ComputedRef<boolean>;
119
- begin: (item: DragItem, ev: PointerEvent) => void;
119
+ begin: (item: import('./types').DragItem, ev: PointerEvent) => void;
120
120
  move: (ev: PointerEvent) => void;
121
- setHover: (target: DropTarget | null) => void;
121
+ setHover: (target: import('./types').DropTarget | null) => void;
122
122
  end: () => void;
123
123
  };
124
124
  formData: import('vue').Ref<FormDataModel, FormDataModel>;
125
125
  select: typeof select;
126
- beginPaletteDrag: (nodeType: NodeType, ev: PointerEvent) => void;
126
+ beginPaletteDrag: (nodeType: import('./types').NodeType, ev: PointerEvent) => void;
127
127
  beginNodeDrag: (nodeId: string, ev: PointerEvent) => void;
128
- setHover: (target: DropTarget | null) => void;
128
+ setHover: (target: import('./types').DropTarget | null) => void;
129
129
  applySchema: typeof applySchema;
130
130
  removeSelected: typeof removeSelected;
131
131
  updateNodeProps: typeof updateNodeProps;
@@ -25,6 +25,7 @@ export declare function findNode(schema: LayoutSchema, nodeId: string): {
25
25
  node: SchemaNode;
26
26
  loc: NodeLocation;
27
27
  } | null;
28
+ export declare function findNodeById(schema: LayoutSchema, id: string): SchemaNode | null;
28
29
  export declare function removeNode(schema: LayoutSchema, nodeId: string): SchemaNode | null;
29
30
  export declare function insertNode(schema: LayoutSchema, target: DropTarget, node: SchemaNode): void;
30
31
  export declare function moveNode(schema: LayoutSchema, nodeId: string, target: DropTarget): void;
@@ -1,10 +1,11 @@
1
1
  import { Ref } from 'vue';
2
- import { DropTarget, LayoutSchema, SchemaNode, NodeType } from './types';
2
+ import { findNodeById } from './schemaOps';
3
+ import { DropTarget, LayoutSchema, NodeType } from './types';
3
4
  export declare function useDragLogic(schemaState: Ref<LayoutSchema>, selection: {
4
5
  selectedNodeId: Ref<string | null>;
5
6
  }, commit: (next: LayoutSchema) => void): {
6
7
  beginPaletteDrag: (nodeType: NodeType, ev: PointerEvent) => void;
7
8
  beginNodeDrag: (nodeId: string, ev: PointerEvent) => void;
8
9
  setHover: (target: DropTarget | null) => void;
9
- findTypeById: (schema: LayoutSchema, nodeId: string) => SchemaNode | null;
10
+ findNodeById: typeof findNodeById;
10
11
  };
@@ -28,7 +28,16 @@ export type ZodSchemaNode = z.infer<typeof baseNodeSchema> & {
28
28
  export declare const schemaNodeSchema: z.ZodType<ZodSchemaNode>;
29
29
  export declare const layoutSchemaValidator: z.ZodObject<{
30
30
  version: z.ZodDefault<z.ZodNumber>;
31
- root: z.ZodType<ZodSchemaNode, unknown, z.core.$ZodTypeInternals<ZodSchemaNode, unknown>>;
31
+ root: z.ZodPipe<z.ZodObject<{
32
+ children: z.ZodLazy<z.ZodArray<z.ZodType<ZodSchemaNode, unknown, z.core.$ZodTypeInternals<ZodSchemaNode, unknown>>>>;
33
+ type: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strip>, z.ZodTransform<{
35
+ type: string;
36
+ children: ZodSchemaNode[];
37
+ }, {
38
+ children: ZodSchemaNode[];
39
+ type?: string | undefined;
40
+ }>>;
32
41
  }, z.core.$strip>;
33
42
  export declare const formDataValidator: z.ZodRecord<z.ZodString, z.ZodUnknown>;
34
43
  export declare function validateLayout(data: unknown): LayoutSchema;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devject-design",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -1 +0,0 @@
1
- export declare function registerAdvanced(): void;
@@ -1 +0,0 @@
1
- export declare function registerBasics(): void;
@@ -1 +0,0 @@
1
- export declare function registerContainers(): void;
@@ -1,4 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { FormItemRule } from 'element-plus';
3
- import { SchemaNode, FormDataModel } from '../state/types';
4
- export declare function useValidator(node: SchemaNode, formData: Ref<FormDataModel>): import('vue').ComputedRef<FormItemRule[]>;