diff --git a/.changeset/README.md b/.changeset/README.md
new file mode 100644
index 00000000..e5b6d8d6
--- /dev/null
+++ b/.changeset/README.md
@@ -0,0 +1,8 @@
+# Changesets
+
+Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
+with multi-package repos, or single-package repos to help you version and publish your code. You can
+find the full documentation for it [in our repository](https://github.com/changesets/changesets)
+
+We have a quick list of common questions to get you started engaging with this project in
+[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
diff --git a/.changeset/config.json b/.changeset/config.json
new file mode 100644
index 00000000..f3ae9de3
--- /dev/null
+++ b/.changeset/config.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json",
+ "changelog": "@changesets/cli/changelog",
+ "commit": false,
+ "fixed": [],
+ "linked": [],
+ "access": "restricted",
+ "baseBranch": "master",
+ "updateInternalDependencies": "patch",
+ "ignore": []
+}
diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
index b93774f3..28810844 100644
--- a/docs/.vitepress/config.mts
+++ b/docs/.vitepress/config.mts
@@ -10,12 +10,12 @@ export default defineConfig({
description: '基于vue3的一个开箱即用低代码表单方案',
base: '/vue-form-craft/',
vite: {
- resolve: {
- alias: {
- '@vue-form-craft': fileURLToPath(new URL('../../src/', import.meta.url)),
- 'vue-form-craft': fileURLToPath(new URL('../../src/release', import.meta.url))
- }
- },
+ // resolve: {
+ // alias: {
+ // '@vue-form-craft': fileURLToPath(new URL('../../src/', import.meta.url)),
+ // 'vue-form-craft': fileURLToPath(new URL('../../src/release', import.meta.url))
+ // }
+ // },
server: {
port: 9999,
// host:'172.20.72.37'
@@ -26,7 +26,7 @@ export default defineConfig({
head: [['link', { rel: 'icon', href: '/vue-form-craft/favicon.svg' }]],
markdown: {
config: (md) => {
- md.use(mdVueDemoPlugin)
+ md.use(mdVueDemoPlugin,{root:'./'})
}
},
themeConfig: {
diff --git a/docs/.vitepress/theme/extendElements/Transfer/attrSchema.ts b/docs/.vitepress/theme/extendElements/Transfer/attrSchema.ts
index ec509c37..5a3b248f 100644
--- a/docs/.vitepress/theme/extendElements/Transfer/attrSchema.ts
+++ b/docs/.vitepress/theme/extendElements/Transfer/attrSchema.ts
@@ -39,8 +39,6 @@ export default {
}
},
-
-
{
component: 'Divider',
props: {
@@ -65,22 +63,21 @@ export default {
props: {
placeholder: '请输入...'
},
- designKey: 'form-LnGh'
+ designKey: 'form-LnGh',
+ initialValue: '{{ "选项" + ($index + 1) }}'
},
{
label: '选项值',
name: 'key',
component: 'Input',
- props: {},
- designKey: 'form-HYtW'
+ designKey: 'form-HYtW',
+ initialValue: '{{ "value" + ($index + 1) }}'
}
],
designKey: 'form-Iwpd',
props: {
- mode: 'table',
- newItemDefaults:
- '{{ (index) => ({ label: `选项${index + 1}`, key: `value${index + 1}` }) }}'
+ mode: 'table'
}
- },
+ }
]
} satisfies FormSchema
diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
new file mode 100644
index 00000000..df7e8371
--- /dev/null
+++ b/docs/CHANGELOG.md
@@ -0,0 +1,7 @@
+# @vue-form-craft/docs
+
+## 4.4.0
+
+### Minor Changes
+
+- feat pnpm workspace
diff --git a/docs/package.json b/docs/package.json
new file mode 100644
index 00000000..85c38e33
--- /dev/null
+++ b/docs/package.json
@@ -0,0 +1,19 @@
+{
+ "name": "@vue-form-craft/docs",
+ "version": "4.4.0",
+ "private": false,
+ "type": "module",
+ "scripts": {
+ "dev": "vitepress",
+ "build": "vitepress build",
+ "preview": "vitepress preview"
+ },
+ "devDependencies": {
+ "vitepress-vue-demo": "^1.0.10",
+ "@arco-design/web-vue": "^2.56.2",
+ "axios": "^1.6.2",
+ "vitepress": "^1.2.3",
+ "postcss": "^8.4.47",
+ "md-editor-v3": "^4.20.1"
+ }
+}
diff --git a/docs/zh/extendTransfer.md b/docs/zh/extendTransfer.md
index ee8c9fd4..64cc0b49 100644
--- a/docs/zh/extendTransfer.md
+++ b/docs/zh/extendTransfer.md
@@ -153,21 +153,21 @@ export default {
props: {
placeholder: '请输入...'
},
- designKey: 'form-LnGh'
+ designKey: 'form-LnGh',
+ initialValue: '{{ "选项" + ($index + 1) }}'
},
{
label: '选项值',
name: 'key',
component: 'Input',
props: {},
- designKey: 'form-HYtW'
+ designKey: 'form-HYtW',
+ initialValue: '{{ "value" + ($index + 1) }}'
}
],
designKey: 'form-Iwpd',
props: {
- mode: 'table',
- newItemDefaults:
- '{{ (index) => ({ label: `选项${index + 1}`, key: `value${index + 1}` }) }}'
+ mode: 'table'
}
},
]
diff --git a/docs/zh/form-render-doc.md b/docs/zh/form-render-doc.md
index 04b0b92d..560cf0a8 100644
--- a/docs/zh/form-render-doc.md
+++ b/docs/zh/form-render-doc.md
@@ -1,8 +1,3 @@
-
-
# FormRender 表单渲染器
## 简介
diff --git a/package.json b/package.json
index 25dfbafa..ff74200d 100644
--- a/package.json
+++ b/package.json
@@ -1,70 +1,47 @@
{
- "name": "vue-form-craft",
- "version": "4.3.2",
- "private": false,
+ "private": true,
"type": "module",
"scripts": {
- "dev": "vitepress dev docs",
- "docs:build": "vitepress build docs",
- "preview": "vitepress preview docs",
- "build": "vite build",
- "release": "pnpm build && npm version patch && npm publish"
+ "dev": "pnpm -C play dev",
+ "build": "pnpm -C packages/vue-form-craft build",
+ "release": "pnpm -C packages/vue-form-craft release",
+ "docs:dev": "pnpm -C docs dev",
+ "docs:build": "pnpm -C docs build",
+ "docs:preview": "pnpm -C docs preview"
},
"dependencies": {
"element-plus": "^2.8.3",
- "json-editor-vue3": "^1.0.9",
"lodash": "^4.17.21",
- "vue": "^3.5.8",
- "vuedraggable-es": "^4.1.1"
+ "vue": "^3.5.8"
},
"devDependencies": {
- "@arco-design/web-vue": "^2.56.2",
- "@originjs/vite-plugin-commonjs": "^1.0.3",
+ "@changesets/cli": "^2.27.9",
"@rushstack/eslint-patch": "^1.3.3",
"@tsconfig/node20": "^20.1.2",
"@types/lodash": "^4.14.202",
"@types/node": "^20.10.5",
"@vitejs/plugin-vue": "^4.5.2",
- "@vitejs/plugin-vue-jsx": "^3.1.0",
+ "@vue-form-craft/components": "workspace:*",
+ "@vue-form-craft/config": "workspace:*",
+ "@vue-form-craft/elements": "workspace:*",
+ "@vue-form-craft/entry": "workspace:*",
+ "@vue-form-craft/form-design": "workspace:*",
+ "@vue-form-craft/form-render": "workspace:*",
+ "@vue-form-craft/hooks": "workspace:*",
+ "@vue-form-craft/icons": "workspace:*",
+ "@vue-form-craft/styles": "workspace:*",
+ "@vue-form-craft/types": "workspace:*",
+ "@vue-form-craft/utils": "workspace:*",
"@vue/eslint-config-prettier": "^8.0.0",
"@vue/eslint-config-typescript": "^12.0.0",
"@vue/shared": "^3.4.38",
"@vue/tsconfig": "^0.5.1",
- "axios": "^1.6.2",
"eslint": "^8.49.0",
"eslint-plugin-vue": "^9.17.0",
- "md-editor-v3": "^4.20.1",
- "npm-run-all2": "^6.1.1",
- "postcss": "^8.4.47",
"prettier": "^3.0.3",
"sass": "~1.32.6",
- "shiki": "^1.21.0",
"typescript": "~5.3.0",
"vite": "^5.0.10",
- "vite-plugin-dts": "^3.7.3",
- "vite-plugin-libcss": "^1.1.1",
- "vitepress": "^1.2.3",
- "vitepress-vue-demo": "^1.0.8",
- "vue-tsc": "^1.8.27"
- },
- "files": [
- "dist",
- "global.d.ts"
- ],
- "main": "./dist/vue-form-craft.umd.cjs",
- "module": "./dist/vue-form-craft.js",
- "types": "dist/index.d.ts",
- "exports": {
- ".": {
- "import": "./dist/vue-form-craft.js",
- "require": "./dist/vue-form-craft.umd.cjs",
- "types": "./dist/index.d.ts"
- }
- },
- "keywords": [
- "component",
- "vue",
- "form",
- "element-ui"
- ]
+ "vue-form-craft": "^4.4.1"
+ }
}
diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md
new file mode 100644
index 00000000..6a926540
--- /dev/null
+++ b/packages/components/CHANGELOG.md
@@ -0,0 +1,7 @@
+# @vue-form-craft/components
+
+## 4.4.0
+
+### Minor Changes
+
+- feat pnpm workspace
diff --git a/src/components/CodeHighLight.vue b/packages/components/CodeHighLight.vue
similarity index 80%
rename from src/components/CodeHighLight.vue
rename to packages/components/CodeHighLight.vue
index 4a471c6e..928a4992 100644
--- a/src/components/CodeHighLight.vue
+++ b/packages/components/CodeHighLight.vue
@@ -1,14 +1,14 @@
diff --git a/src/elements/JsonEdit/attrSchema.ts b/packages/elements/JsonEdit/attrSchema.ts
similarity index 95%
rename from src/elements/JsonEdit/attrSchema.ts
rename to packages/elements/JsonEdit/attrSchema.ts
index 931b79fd..ef1b38a6 100644
--- a/src/elements/JsonEdit/attrSchema.ts
+++ b/packages/elements/JsonEdit/attrSchema.ts
@@ -1,4 +1,4 @@
-import type { FormSchema } from "@vue-form-craft/release";
+import type { FormSchema } from "@vue-form-craft/types";
export default {
size: 'small',
diff --git a/src/elements/JsonEdit/index.ts b/packages/elements/JsonEdit/index.ts
similarity index 52%
rename from src/elements/JsonEdit/index.ts
rename to packages/elements/JsonEdit/index.ts
index b70a9f87..48837d66 100644
--- a/src/elements/JsonEdit/index.ts
+++ b/packages/elements/JsonEdit/index.ts
@@ -1,13 +1,13 @@
-import type { FormElement } from '@vue-form-craft/release'
-import JsonEdit from './JsonEdit.vue'
+import type { FormElement } from '@vue-form-craft/types'
+import component from './Component.vue'
import attrSchema from './attrSchema'
-import { IconRender } from '@vue-form-craft/components'
+import Icon from '@vue-form-craft/icons'
import { h } from 'vue'
export default {
name: 'JSON编辑',
- component: JsonEdit,
- icon: h(IconRender, { name: 'jsonEdit' }),
+ component,
+ icon: h(Icon, { name: 'jsonEdit' }),
type: 'basic',
order: 14,
attrSchema,
diff --git a/src/elements/Password/attrSchema.ts b/packages/elements/Password/attrSchema.ts
similarity index 98%
rename from src/elements/Password/attrSchema.ts
rename to packages/elements/Password/attrSchema.ts
index 5d7a1888..35aa54fc 100644
--- a/src/elements/Password/attrSchema.ts
+++ b/packages/elements/Password/attrSchema.ts
@@ -1,4 +1,4 @@
-import type { FormSchema } from "@vue-form-craft/release";
+import type { FormSchema } from "@vue-form-craft/types";
export default {
size: 'small',
diff --git a/src/elements/Password/index.ts b/packages/elements/Password/index.ts
similarity index 80%
rename from src/elements/Password/index.ts
rename to packages/elements/Password/index.ts
index e8bba548..0d419bff 100644
--- a/src/elements/Password/index.ts
+++ b/packages/elements/Password/index.ts
@@ -1,12 +1,12 @@
import { ElInput } from 'element-plus'
import attrSchema from './attrSchema'
-import { IconRender } from '@vue-form-craft/components'
+import Icon from '@vue-form-craft/icons'
import { h } from 'vue'
export default {
name: '密码输入框',
component: h(ElInput, { type: 'password', showWordLimit: true, autocomplete: 'off' }),
- icon: h(IconRender, { name: 'password' }),
+ icon: h(Icon, { name: 'password' }),
type: 'basic',
order: 3,
initialValues: {
diff --git a/src/elements/Radio/Radio.vue b/packages/elements/Radio/Radio.vue
similarity index 97%
rename from src/elements/Radio/Radio.vue
rename to packages/elements/Radio/Radio.vue
index 34577b1b..0fc8f3c5 100644
--- a/src/elements/Radio/Radio.vue
+++ b/packages/elements/Radio/Radio.vue
@@ -36,7 +36,7 @@ import type {
OptionType,
SelectProps,
SelectValue
-} from '@vue-form-craft/config/commonType'
+} from '@vue-form-craft/types'
import { useFormInstance, useSelect } from '@vue-form-craft/hooks'
import { watch } from 'vue';
diff --git a/src/elements/Radio/attrSchema.ts b/packages/elements/Radio/attrSchema.ts
similarity index 97%
rename from src/elements/Radio/attrSchema.ts
rename to packages/elements/Radio/attrSchema.ts
index 63ff1b18..c9a38cf3 100644
--- a/src/elements/Radio/attrSchema.ts
+++ b/packages/elements/Radio/attrSchema.ts
@@ -1,5 +1,5 @@
import optionConfig from "@vue-form-craft/config/optionConfig";
-import type { FormSchema } from "@vue-form-craft/release";
+import type { FormSchema } from "@vue-form-craft/types";
export default {
size: 'small',
diff --git a/src/elements/Radio/index.ts b/packages/elements/Radio/index.ts
similarity index 79%
rename from src/elements/Radio/index.ts
rename to packages/elements/Radio/index.ts
index 3017629e..4553dde9 100644
--- a/src/elements/Radio/index.ts
+++ b/packages/elements/Radio/index.ts
@@ -1,12 +1,12 @@
-import { IconRender } from '@vue-form-craft/components'
-import type { FormElement } from '@vue-form-craft/config/commonType'
+import Icon from '@vue-form-craft/icons'
+import type { FormElement } from '@vue-form-craft/types'
import { h } from 'vue'
import Radio from './Radio.vue'
import attrSchema from './attrSchema'
export default {
name: '单选框组',
- icon: h(IconRender, { name: 'radio' }),
+ icon: h(Icon, { name: 'radio' }),
type: 'basic',
component: Radio,
order: 3.5,
diff --git a/src/elements/Rate/attrSchema.ts b/packages/elements/Rate/attrSchema.ts
similarity index 95%
rename from src/elements/Rate/attrSchema.ts
rename to packages/elements/Rate/attrSchema.ts
index 0509d237..998f817a 100644
--- a/src/elements/Rate/attrSchema.ts
+++ b/packages/elements/Rate/attrSchema.ts
@@ -1,4 +1,4 @@
-import type { FormSchema } from "@vue-form-craft/release";
+import type { FormSchema } from "@vue-form-craft/types";
export default {
size: 'small',
diff --git a/src/elements/Rate/index.ts b/packages/elements/Rate/index.ts
similarity index 60%
rename from src/elements/Rate/index.ts
rename to packages/elements/Rate/index.ts
index 173b7a02..8760c984 100644
--- a/src/elements/Rate/index.ts
+++ b/packages/elements/Rate/index.ts
@@ -1,12 +1,12 @@
import attrSchema from './attrSchema'
-import { IconRender } from '@vue-form-craft/components'
+import Icon from '@vue-form-craft/icons'
import { h } from 'vue'
-import type { FormElement } from '@vue-form-craft/config/commonType'
+import type { FormElement } from '@vue-form-craft/types'
export default {
name: '评分',
component: 'ElRate',
- icon: h(IconRender, { name: 'rate' }),
+ icon: h(Icon, { name: 'rate' }),
type: 'basic',
order: 12,
attrSchema,
diff --git a/src/elements/Select/Select.vue b/packages/elements/Select/Select.vue
similarity index 94%
rename from src/elements/Select/Select.vue
rename to packages/elements/Select/Select.vue
index 5739369b..69505e45 100644
--- a/src/elements/Select/Select.vue
+++ b/packages/elements/Select/Select.vue
@@ -35,7 +35,7 @@
diff --git a/src/components/FormDesign/Center/Actions/Preview.vue b/packages/form-design/Center/Actions/Preview.vue
similarity index 95%
rename from src/components/FormDesign/Center/Actions/Preview.vue
rename to packages/form-design/Center/Actions/Preview.vue
index 9a570fe7..fef4873d 100644
--- a/src/components/FormDesign/Center/Actions/Preview.vue
+++ b/packages/form-design/Center/Actions/Preview.vue
@@ -43,8 +43,8 @@
+