@jsonschema-editor/vue 0.1.0
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/LICENSE +21 -0
- package/README.md +61 -0
- package/dist/index.d.ts +389 -0
- package/dist/jsonschema-editor-vue.js +4039 -0
- package/dist/style.css +1 -0
- package/package.json +66 -0
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.jse-form,.jse-editor,.jse-field,.jse-group,.jse-layout{font-family:system-ui,-apple-system,sans-serif;color:#1f2937}.jse-field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.jse-field__label{font-weight:600;font-size:.9rem}.jse-field__hint{display:block;font-weight:400;color:#6b7280;font-size:.8rem}.jse-field__input{padding:.5rem .65rem;border:1px solid #d1d5db;border-radius:.375rem;font:inherit}.jse-field__checkbox{width:1.1rem;height:1.1rem}.jse-group{border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;margin-bottom:1rem}.jse-layout{display:flex;flex-direction:column;gap:.75rem}.jse-layout--horizontal{flex-direction:row;flex-wrap:wrap}.jse-label{margin:0 0 .75rem;font-weight:600}.jse-editor{display:block}.jse-editor__panel{border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;background:#fff}.jse-editor__panel h2{margin:0 0 1rem;font-size:1.1rem}.jse-editor__property{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.jse-editor__json{display:flex;flex-direction:column;gap:.35rem;margin-top:1rem;font-weight:600;font-size:.85rem}.jse-editor__json textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:400;font-size:.8rem;padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;resize:vertical}.jse-editor__output{margin-top:1rem;padding:.75rem;background:#f9fafb;border-radius:.375rem;font-size:.8rem;overflow:auto}.jse-editor__composition-actions{display:flex;gap:.5rem;flex-wrap:wrap}.jse-editor button:not(.jse-icon-btn){cursor:pointer;border:1px solid #d1d5db;background:#f9fafb;border-radius:.375rem;padding:.35rem .65rem}.jse-editor button:not(.jse-icon-btn):hover{background:#f3f4f6}.jse-attribute-control{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.jse-attribute-control--boolean{flex-direction:row;align-items:center;gap:.5rem}.jse-tabs{display:flex;gap:.35rem;border-bottom:1px solid #e5e7eb;padding-bottom:.35rem}.jse-tabs-wrap{margin-bottom:.75rem}.jse-tabs__description{margin:.5rem 0 0;font-size:.82rem;color:#6b7280;line-height:1.45}.jse-tabs__tab{border:1px solid transparent;background:transparent;padding:.45rem .85rem;border-radius:.375rem .375rem 0 0;cursor:pointer;font:inherit;color:#6b7280}.jse-tabs__tab:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.jse-tabs__tab--active{background:#fff;border-color:#e5e7eb;border-bottom-color:#fff;color:#111827;font-weight:600;margin-bottom:-1px}.jse-categorization{margin-bottom:1rem}.jse-categorization__panel{padding-top:.25rem}.jse-category__title,.jse-step__title{margin:0 0 .75rem;font-size:.95rem;font-weight:600;color:#374151}.jse-stepper{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}.jse-stepper__steps{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.jse-stepper__step-indicator{flex:1 1 8rem;min-width:0}.jse-stepper__step-button{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .65rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;cursor:pointer;font:inherit;color:#6b7280;text-align:left}.jse-stepper__step-indicator--active .jse-stepper__step-button{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8;font-weight:600}.jse-stepper__step-indicator--done .jse-stepper__step-button{border-color:#86efac;background:#f0fdf4;color:#15803d}.jse-stepper__step-number{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:999px;background:#e5e7eb;font-size:.8rem;font-weight:700;flex-shrink:0}.jse-stepper__step-indicator--active .jse-stepper__step-number{background:#1d4ed8;color:#fff}.jse-stepper__step-indicator--done .jse-stepper__step-number{background:#16a34a;color:#fff}.jse-stepper__step-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jse-stepper__panel{border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;background:#fff}.jse-stepper__nav{display:flex;justify-content:space-between;gap:.5rem}.jse-editor__tab-panel{display:flex;flex-direction:column;gap:1rem}.jse-editor__panel--main{min-height:28rem}.jse-editor__banner{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;font-size:.85rem}.jse-editor__advanced{margin-top:1rem;font-size:.85rem}.jse-editor__advanced summary{cursor:pointer;font-weight:600;color:#4b5563}.jse-structure-editor__tree{border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem;min-height:18rem;max-height:min(36rem,55vh);overflow:auto;background:#fafafa}.jse-structure-editor__status{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:.65rem;padding:.45rem .65rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.375rem;font-size:.82rem}.jse-structure-editor__status-label{color:#6b7280}.jse-structure-editor__status-name{font-weight:600;color:#111827}.jse-structure-editor__toolbar{border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem;background:#fff}.jse-structure-editor__heading,.jse-attributes-panel__heading{margin:0 0 .65rem;font-size:.95rem}.jse-structure-editor__actions{margin-top:.75rem}.jse-structure-editor__hint{display:block;font-size:.8rem;color:#6b7280;margin-bottom:.35rem}.jse-structure-editor__hint--top{margin-bottom:.5rem}.jse-structure-editor__buttons{display:flex;flex-wrap:wrap;gap:.35rem}.jse-structure-editor__note{margin:.5rem 0 0;font-size:.8rem;color:#6b7280}.jse-attributes-panel{border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem;background:#fff}.jse-attributes-panel--inline{margin-top:.75rem;border:none;padding:0}.jse-tree-node__row{display:flex;align-items:center;gap:.35rem;padding:.3rem .35rem;border-radius:.25rem;cursor:pointer;font-size:.85rem}.jse-tree-node__row:hover{background:#f3f4f6}.jse-tree-node__row--selected{background:#dbeafe;outline:1px solid #93c5fd}.jse-tree-node__row:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.jse-tree-node__row--drag-over{background:#fef3c7}.jse-tree-node__actions{display:flex;gap:.2rem;margin-left:auto;flex-shrink:0;opacity:.72}.jse-tree-node__row:hover .jse-tree-node__actions,.jse-tree-node__row--selected .jse-tree-node__actions,.jse-tree-node__row:focus-within .jse-tree-node__actions{opacity:1}.jse-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;min-width:1.5rem;min-height:1.5rem;padding:0;border:1px solid #d1d5db;border-radius:.3rem;background:#fff;color:#374151;cursor:pointer;font-size:.95rem;line-height:1;flex-shrink:0}.jse-icon-btn:hover:not(:disabled){background:#f3f4f6}.jse-icon-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.jse-icon-btn--primary{border-color:#93c5fd;background:#eff6ff;color:#1d4ed8}.jse-icon-btn--danger{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.jse-icon-btn:disabled{opacity:.4;cursor:not-allowed}.jse-icon-btn__svg{display:block;width:.85rem;height:.85rem;flex-shrink:0}.jse-floating-panel{position:fixed;z-index:1000;display:flex;flex-direction:column;border:1px solid #cbd5e1;border-radius:.5rem;background:#fff;box-shadow:0 12px 32px #0f172a2e;overflow:hidden;min-width:260px;min-height:42px}.jse-floating-panel__header{display:flex;align-items:center;gap:.5rem;padding:.45rem .55rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;cursor:grab;-webkit-user-select:none;user-select:none}.jse-floating-panel__header:active{cursor:grabbing}.jse-floating-panel__title{flex:1;font-size:.85rem;font-weight:600}.jse-floating-panel__controls{display:flex;gap:.25rem}.jse-floating-panel__control{width:1.4rem;height:1.4rem;border:1px solid #d1d5db;border-radius:.25rem;background:#fff;cursor:pointer;font-size:.85rem;line-height:1}.jse-floating-panel__body{flex:1;overflow:auto;padding:.75rem}.jse-floating-panel__resize{position:absolute;right:0;bottom:0;width:14px;height:14px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 50%,#94a3b8 50%)}.jse-element-actions__target{margin:0 0 .75rem;font-size:.85rem}.jse-element-actions__kind{color:#6b7280;margin-left:.25rem}.jse-element-actions__section{margin-bottom:.75rem}.jse-element-actions__error{margin:.35rem 0 .5rem;font-size:.8rem;color:#b91c1c}.jse-tree-node__toggle{width:1.25rem;border:none;background:transparent;cursor:pointer;padding:0;font-size:.65rem}.jse-tree-node__spacer{display:inline-block;width:1.25rem}.jse-tree-node__kind{font-family:ui-monospace,monospace;font-size:.75rem;color:#7c3aed;background:#f3e8ff;padding:.1rem .35rem;border-radius:.25rem}.jse-tree-node__label{font-weight:600}.jse-tree-node__title,.jse-tree-node__meta{color:#6b7280;font-size:.78rem}.jse-btn{cursor:pointer;border:1px solid #d1d5db;background:#f9fafb;border-radius:.375rem;padding:.35rem .65rem;font:inherit;font-size:.82rem}.jse-btn:hover{background:#f3f4f6}.jse-btn:focus-visible,.jse-editor button:not(.jse-icon-btn):focus-visible{outline:2px solid #2563eb;outline-offset:2px}.jse-btn--danger{border-color:#fca5a5;background:#fef2f2;color:#b91c1c}.jse-btn--active{border-color:#2563eb;background:#dbeafe;color:#1d4ed8;font-weight:600}.jse-array-items-type__current{margin:0 0 .5rem;font-size:.85rem}.jse-array-items-type__current--empty{color:#6b7280}.jse-array-items-type__group{margin-bottom:.5rem}.jse-array-items-type code{font-size:.8rem}.jse-input,.jse-select,.jse-checkbox,.jse-textarea{padding:.45rem .6rem;border:1px solid #d1d5db;border-radius:.375rem;font:inherit}
|
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jsonschema-editor/vue",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "JSON-Schema Form-Editor und ausfüllbares Formular für Vue 3",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "JSON Schema Editor Contributors",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/eumicro/jsonschema-editor.git",
|
|
11
|
+
"directory": "jsonschema-editor-vue"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/eumicro/jsonschema-editor/tree/main/jsonschema-editor-vue#readme",
|
|
14
|
+
"bugs": "https://github.com/eumicro/jsonschema-editor/issues",
|
|
15
|
+
"keywords": [
|
|
16
|
+
"vue",
|
|
17
|
+
"vue3",
|
|
18
|
+
"json-schema",
|
|
19
|
+
"ui-schema",
|
|
20
|
+
"form-editor",
|
|
21
|
+
"form"
|
|
22
|
+
],
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"engines": {
|
|
27
|
+
"node": ">=20"
|
|
28
|
+
},
|
|
29
|
+
"main": "./dist/jsonschema-editor-vue.js",
|
|
30
|
+
"module": "./dist/jsonschema-editor-vue.js",
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"import": "./dist/jsonschema-editor-vue.js"
|
|
36
|
+
},
|
|
37
|
+
"./style.css": "./dist/style.css"
|
|
38
|
+
},
|
|
39
|
+
"files": [
|
|
40
|
+
"dist",
|
|
41
|
+
"README.md"
|
|
42
|
+
],
|
|
43
|
+
"sideEffects": [
|
|
44
|
+
"**/*.css"
|
|
45
|
+
],
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"vue": "^3.5.0"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@jsonschema-editor/json-schema": "0.1.0",
|
|
51
|
+
"@jsonschema-editor/ui-schema": "0.1.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@vitejs/plugin-vue": "^5.2.4",
|
|
55
|
+
"typescript": "^5.8.3",
|
|
56
|
+
"vite": "^6.3.5",
|
|
57
|
+
"vite-plugin-dts": "^4.5.4",
|
|
58
|
+
"vue": "^3.5.16",
|
|
59
|
+
"vue-tsc": "^2.2.10"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {
|
|
62
|
+
"prebuild": "node --input-type=module -e \"import fs from 'node:fs'; fs.rmSync('dist',{recursive:true,force:true})\"",
|
|
63
|
+
"build": "vue-tsc -p tsconfig.json --noEmit && vite build",
|
|
64
|
+
"typecheck": "vue-tsc -p tsconfig.json --noEmit"
|
|
65
|
+
}
|
|
66
|
+
}
|