diff --git a/packages/form/package.json b/packages/form/package.json
index 38600ae..e21340a 100644
--- a/packages/form/package.json
+++ b/packages/form/package.json
@@ -1,7 +1,7 @@
{
"name": "schemastery-vue",
"description": "Type driven schema validator",
- "version": "6.0.0",
+ "version": "6.1.0",
"main": "src/index.ts",
"repository": {
"type": "git",
diff --git a/packages/form/src/extensions/table.vue b/packages/form/src/extensions/table.vue
index 7872fb4..d613272 100644
--- a/packages/form/src/extensions/table.vue
+++ b/packages/form/src/extensions/table.vue
@@ -17,7 +17,7 @@
{{ key === null ? t('entry.value') : tt(schema.meta.description) || key }}
|
- |
+ |
-
+ >
|
item.type === 'const')
+}
+
+function ensureColumns(entries: [string, Schema][]) {
+ if (entries.every(([, schema]) => isPrimitive(schema))) return entries
+}
+
const columns = computed<[string, Schema][]>(() => {
const { inner } = props.schema
- if (['string', 'number', 'boolean'].includes(inner.type)) {
+ if (isPrimitive(inner)) {
return [[null, inner]]
} else if (inner.type === 'tuple') {
- return Object.entries(inner.list)
+ return ensureColumns(Object.entries(inner.list))
} else if (inner.type === 'object') {
- return Object.entries(inner.dict)
+ return ensureColumns(Object.entries(inner.dict))
}
})
@@ -188,7 +197,7 @@ if (import.meta.hot) {
}
th {
- padding: 0.5rem 0;
+ padding: 0.5rem 0.75rem;
line-height: 1rem;
}
@@ -199,10 +208,13 @@ if (import.meta.hot) {
background-color: var(--k-color-warning-fade);
}
- .el-input__wrapper {
- z-index: 1;
+ * .el-input__wrapper {
box-shadow: none;
}
+
+ .el-select .el-input .el-input__wrapper {
+ box-shadow: none !important;
+ }
}
td {
@@ -217,10 +229,6 @@ if (import.meta.hot) {
}
}
- td.key {
- width: 30%;
- }
-
td.button {
width: 2rem;
color: var(--k-text-light);
@@ -242,6 +250,15 @@ if (import.meta.hot) {
height: 1rem;
}
}
+
+ .k-schema-column-number {
+ min-width: 8rem;
+ width: 10rem;
+
+ .el-input-number {
+ width: 100%;
+ }
+ }
}
diff --git a/packages/form/src/primitive.vue b/packages/form/src/primitive.vue
index 055ce01..71010be 100644
--- a/packages/form/src/primitive.vue
+++ b/packages/form/src/primitive.vue
@@ -1,5 +1,8 @@
-
+
+
+
+
-
+
-
-
+
+
+ :style="{ width: minimal ? '100%' : isLink ? '16rem' : '12rem' }" :type="type"
+ @focus="$emit('focus', $event)" @blur="$emit('blur', $event)">
@@ -26,6 +37,22 @@
+
+
+
+
+
+
|