@widgentic/designer 0.7.0 → 0.11.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/README.md +2 -1
- package/dist/browser/widgentic-designer.js +101 -98
- package/dist/browser/widgentic-designer.js.map +4 -4
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +2 -1
- package/dist/browser.js.map +1 -1
- package/dist/dom.d.ts +5 -0
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +19 -1
- package/dist/dom.js.map +1 -1
- package/dist/element.d.ts +9 -0
- package/dist/element.d.ts.map +1 -1
- package/dist/element.js +55 -0
- package/dist/element.js.map +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/io.d.ts +8 -3
- package/dist/io.d.ts.map +1 -1
- package/dist/io.js +38 -8
- package/dist/io.js.map +1 -1
- package/dist/panels.d.ts.map +1 -1
- package/dist/panels.js +17 -54
- package/dist/panels.js.map +1 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +23 -6
- package/dist/preview.js.map +1 -1
- package/dist/schema-designer.d.ts.map +1 -1
- package/dist/schema-designer.js +15 -7
- package/dist/schema-designer.js.map +1 -1
- package/dist/settings-designer.d.ts +37 -0
- package/dist/settings-designer.d.ts.map +1 -0
- package/dist/settings-designer.js +224 -0
- package/dist/settings-designer.js.map +1 -0
- package/dist/shell.d.ts +24 -0
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +39 -7
- package/dist/shell.js.map +1 -1
- package/dist/store.d.ts +9 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js.map +1 -1
- package/dist/styles-panel.d.ts +10 -0
- package/dist/styles-panel.d.ts.map +1 -0
- package/dist/styles-panel.js +79 -0
- package/dist/styles-panel.js.map +1 -0
- package/dist/template-panel.d.ts.map +1 -1
- package/dist/template-panel.js +43 -1
- package/dist/template-panel.js.map +1 -1
- package/dist/theme-designer.d.ts +7 -2
- package/dist/theme-designer.d.ts.map +1 -1
- package/dist/theme-designer.js +79 -15
- package/dist/theme-designer.js.map +1 -1
- package/dist/theme-panel.d.ts.map +1 -1
- package/dist/theme-panel.js +19 -12
- package/dist/theme-panel.js.map +1 -1
- package/dist/validate.d.ts +16 -0
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +38 -7
- package/dist/validate.js.map +1 -1
- package/package.json +2 -2
package/dist/validate.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Everything here goes through public package entries — the designer owns
|
|
5
5
|
* no validation logic of its own.
|
|
6
6
|
*/
|
|
7
|
-
import { isPlainObject } from "@widgentic/core";
|
|
7
|
+
import { auditDataSchema, isPlainObject, PROPERTY_NAME, SAFE_IDENTIFIER, STYLE_RULES } from "@widgentic/core";
|
|
8
8
|
import { createCatalog, validateDataAgainstSchema, widgetStylesToCss } from "@widgentic/core";
|
|
9
9
|
import { collectActionRefs, parsePath, validateTemplate } from "@widgentic/core";
|
|
10
10
|
import { validateLoadBinding } from "@widgentic/core";
|
|
@@ -23,12 +23,22 @@ export function effectiveDataSchema(draft, schemas = []) {
|
|
|
23
23
|
return isPlainObject(inline) ? inline : undefined;
|
|
24
24
|
}
|
|
25
25
|
const BASE_KINDS = new Set(createCatalog().kinds());
|
|
26
|
+
/** What saving would refuse about a kind, in the store's terms; `undefined` when acceptable. */
|
|
27
|
+
export function kindProblem(kind) {
|
|
28
|
+
if (!SAFE_IDENTIFIER.test(kind)) {
|
|
29
|
+
return `INVALID_IDENTIFIER — '${kind}' may use letters, digits, '.', '_' or '-' only.`;
|
|
30
|
+
}
|
|
31
|
+
if (BASE_KINDS.has(kind)) {
|
|
32
|
+
return `RESERVED_KIND — '${kind}' is a built-in kind; give the widget its own kind.`;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
26
36
|
/**
|
|
27
37
|
* Detect style entries the renderer would skip, using only the public
|
|
28
38
|
* generator: a probe that produces no CSS was filtered by the safety
|
|
29
39
|
* guards. Selector and per-declaration issues are reported separately.
|
|
30
40
|
*/
|
|
31
|
-
function auditStyles(styles) {
|
|
41
|
+
export function auditStyles(styles) {
|
|
32
42
|
if (!isPlainObject(styles))
|
|
33
43
|
return [];
|
|
34
44
|
const issues = [];
|
|
@@ -36,7 +46,7 @@ function auditStyles(styles) {
|
|
|
36
46
|
if (widgetStylesToCss({ [selector]: { color: "red" } }) === "") {
|
|
37
47
|
issues.push({
|
|
38
48
|
selector,
|
|
39
|
-
message:
|
|
49
|
+
message: `Selector would be skipped. ${STYLE_RULES.selectors} ${STYLE_RULES.banned}`
|
|
40
50
|
});
|
|
41
51
|
continue;
|
|
42
52
|
}
|
|
@@ -47,10 +57,15 @@ function auditStyles(styles) {
|
|
|
47
57
|
for (const [property, value] of Object.entries(declarations)) {
|
|
48
58
|
if (typeof value !== "string" ||
|
|
49
59
|
widgetStylesToCss({ ".wg-probe": { [property]: value } }) === "") {
|
|
60
|
+
// Name the part at fault: the property name, or else the value.
|
|
50
61
|
issues.push({
|
|
51
62
|
selector,
|
|
52
63
|
property,
|
|
53
|
-
message:
|
|
64
|
+
message: !PROPERTY_NAME.test(property)
|
|
65
|
+
? `Property would be skipped. ${STYLE_RULES.propertyNames}`
|
|
66
|
+
: typeof value !== "string"
|
|
67
|
+
? "Value would be skipped: it must be a string."
|
|
68
|
+
: `Value would be skipped. ${STYLE_RULES.banned}`
|
|
54
69
|
});
|
|
55
70
|
}
|
|
56
71
|
}
|
|
@@ -63,8 +78,21 @@ export function deriveDiagnostics(draft, options = {}) {
|
|
|
63
78
|
if (typeof draft.kind !== "string" || draft.kind.trim().length === 0) {
|
|
64
79
|
diagnostics.kind = "Kind must be a non-empty id.";
|
|
65
80
|
}
|
|
66
|
-
else
|
|
67
|
-
|
|
81
|
+
else {
|
|
82
|
+
const problem = kindProblem(draft.kind);
|
|
83
|
+
if (problem !== undefined)
|
|
84
|
+
diagnostics.kind = problem;
|
|
85
|
+
}
|
|
86
|
+
const dataShape = draft.descriptor?.dataShape;
|
|
87
|
+
if (typeof dataShape !== "string" || dataShape.trim() === "") {
|
|
88
|
+
diagnostics.dataShape =
|
|
89
|
+
"Data shape is empty — agents listing this widget will see a placeholder instead of the data it expects.";
|
|
90
|
+
}
|
|
91
|
+
const inlineSchema = draft.descriptor?.dataSchema;
|
|
92
|
+
if (isPlainObject(inlineSchema)) {
|
|
93
|
+
const warnings = auditDataSchema(inlineSchema, "dataSchema");
|
|
94
|
+
if (warnings.length > 0)
|
|
95
|
+
diagnostics.dataSchema = warnings;
|
|
68
96
|
}
|
|
69
97
|
const template = validateTemplate(draft.template);
|
|
70
98
|
if (!template.ok) {
|
|
@@ -85,7 +113,10 @@ export function deriveDiagnostics(draft, options = {}) {
|
|
|
85
113
|
diagnostics.schemaRef =
|
|
86
114
|
"A descriptor carries 'dataSchema' OR 'dataSchemaRef', never both.";
|
|
87
115
|
}
|
|
88
|
-
else if (
|
|
116
|
+
else if (
|
|
117
|
+
// Unverifiable without the host's schemas: never a false "unknown".
|
|
118
|
+
options.schemas !== undefined &&
|
|
119
|
+
options.schemas.every((entry) => entry.name !== ref)) {
|
|
89
120
|
diagnostics.schemaRef = `References unknown schema '${ref}' — it is not among the supplied shared schemas.`;
|
|
90
121
|
}
|
|
91
122
|
}
|
package/dist/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@widgentic/designer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Hostable widgentic designers: widget, theme, schema and action designers as functions and custom elements, plus a single-file browser bundle.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -44,6 +44,6 @@
|
|
|
44
44
|
"clean": "rm -rf dist"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@widgentic/core": "^0.
|
|
47
|
+
"@widgentic/core": "^0.11.0"
|
|
48
48
|
}
|
|
49
49
|
}
|