@jxsuite/schema 0.28.2 → 0.28.3

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.
@@ -2,29 +2,29 @@ export const cemParameterSchema = {
2
2
  description:
3
3
  "A CEM-compatible parameter definition for a function. " +
4
4
  "Follows the Custom Elements Manifest Parameter shape.",
5
- type: "object",
6
- required: ["name"],
7
5
  properties: {
8
- name: { description: "Parameter name.", type: "string" },
9
- type: { description: "Parameter type (JSON Schema or CEM { text } format)." },
6
+ default: { description: "Default value for the parameter." },
10
7
  description: { description: "Parameter documentation.", type: "string" },
8
+ name: { description: "Parameter name.", type: "string" },
11
9
  optional: { description: "Whether the parameter is optional.", type: "boolean" },
12
- default: { description: "Default value for the parameter." },
10
+ type: { description: "Parameter type (JSON Schema or CEM { text } format)." },
13
11
  },
12
+ required: ["name"],
13
+ type: "object",
14
14
  } as const;
15
15
 
16
16
  export const cemEventSchema = {
17
17
  description:
18
- "A CEM-compatible event definition. " + "Describes a CustomEvent the function dispatches.",
19
- type: "object",
20
- required: ["name"],
18
+ "A CEM-compatible event definition. Describes a CustomEvent the function dispatches.",
21
19
  properties: {
22
- name: { description: "Event name (e.g. 'task-toggled').", type: "string" },
23
- type: { description: "Event type (e.g. { text: 'CustomEvent' })." },
24
- description: { description: "Event documentation.", type: "string" },
25
20
  deprecated: {
26
21
  description: "Deprecation notice.",
27
22
  oneOf: [{ type: "boolean" }, { type: "string" }],
28
23
  },
24
+ description: { description: "Event documentation.", type: "string" },
25
+ name: { description: "Event name (e.g. 'task-toggled').", type: "string" },
26
+ type: { description: "Event type (e.g. { text: 'CustomEvent' })." },
29
27
  },
28
+ required: ["name"],
29
+ type: "object",
30
30
  } as const;
@@ -1,27 +1,27 @@
1
1
  export const arrayNamespaceSchema = {
2
+ additionalProperties: false,
2
3
  description: "Dynamic mapped list. Re-renders when the items state entry changes.",
3
- type: "object",
4
- required: ["$prototype", "items", "map"],
5
4
  properties: {
6
- $prototype: { type: "string", const: "Array" },
5
+ $prototype: { const: "Array", type: "string" },
6
+ filter: { $ref: "#/$defs/RefObject" },
7
7
  items: {
8
8
  oneOf: [{ $ref: "#/$defs/RefObject" }, { type: "array" }],
9
9
  },
10
10
  map: { $ref: "#/$defs/ElementDef" },
11
- filter: { $ref: "#/$defs/RefObject" },
12
11
  sort: { $ref: "#/$defs/RefObject" },
13
12
  },
14
- additionalProperties: false,
13
+ required: ["$prototype", "items", "map"],
14
+ type: "object",
15
15
  } as const;
16
16
 
17
17
  export const childrenValueSchema = {
18
18
  description: "Static array of child definitions, or an Array namespace for dynamic lists.",
19
19
  oneOf: [
20
20
  {
21
- type: "array",
22
21
  items: {
23
22
  oneOf: [{ $ref: "#/$defs/ElementDef" }, { type: "string" }, { type: "number" }],
24
23
  },
24
+ type: "array",
25
25
  },
26
26
  { $ref: "#/$defs/ArrayNamespace" },
27
27
  ],
@@ -1,277 +1,277 @@
1
1
  export const classParameterDefSchema = {
2
2
  description: "A typed parameter definition for a class.",
3
- type: "object",
4
- required: ["identifier"],
5
3
  properties: {
6
- identifier: { type: "string" },
7
- type: {},
4
+ default: {},
5
+ description: { type: "string" },
6
+ examples: { type: "array" },
8
7
  format: {
9
8
  description: 'When "json-schema", this parameter\'s value is itself a JSON Schema.',
10
9
  type: "string",
11
10
  },
12
- description: { type: "string" },
13
- default: {},
14
- examples: { type: "array" },
11
+ identifier: { type: "string" },
12
+ type: {},
15
13
  },
14
+ required: ["identifier"],
15
+ type: "object",
16
16
  } as const;
17
17
 
18
18
  export const classFieldDefSchema = {
19
19
  description: "A class field definition with access control and scope.",
20
- type: "object",
21
20
  properties: {
22
- role: { type: "string", const: "field" },
23
- access: { type: "string", enum: ["public", "private", "protected"] },
24
- scope: { type: "string", enum: ["instance", "static"] },
25
- identifier: { type: "string" },
26
- type: {},
27
21
  $prototype: {
28
22
  description: 'Data source prototype for this field (e.g., "Request").',
29
23
  type: "string",
30
24
  },
31
- initializer: {},
25
+ access: { enum: ["public", "private", "protected"], type: "string" },
32
26
  default: {},
33
27
  description: { type: "string" },
34
28
  examples: { type: "array" },
29
+ identifier: { type: "string" },
30
+ initializer: {},
31
+ role: { const: "field", type: "string" },
32
+ scope: { enum: ["instance", "static"], type: "string" },
33
+ type: {},
35
34
  },
35
+ type: "object",
36
36
  } as const;
37
37
 
38
38
  export const classConstructorDefSchema = {
39
39
  description: "Class constructor definition.",
40
- type: "object",
41
40
  properties: {
42
- role: { type: "string", const: "constructor" },
43
- $prototype: { type: "string", const: "Function" },
41
+ $prototype: { const: "Function", type: "string" },
42
+ body: {
43
+ oneOf: [{ type: "string" }, { items: { type: "string" }, type: "array" }],
44
+ },
45
+ description: { type: "string" },
44
46
  parameters: {
45
- type: "array",
46
47
  items: {
47
48
  oneOf: [
48
49
  {
49
- type: "object",
50
- required: ["$ref"],
51
- properties: { $ref: { type: "string" } },
52
50
  additionalProperties: false,
51
+ properties: { $ref: { type: "string" } },
52
+ required: ["$ref"],
53
+ type: "object",
53
54
  },
54
55
  { $ref: "#/$defs/ClassParameterDef" },
55
56
  ],
56
57
  },
58
+ type: "array",
57
59
  },
60
+ role: { const: "constructor", type: "string" },
58
61
  superCall: {
59
- type: "object",
60
62
  properties: {
61
- arguments: { type: "array", items: { type: "string" } },
63
+ arguments: { items: { type: "string" }, type: "array" },
62
64
  },
65
+ type: "object",
63
66
  },
64
- body: {
65
- oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }],
66
- },
67
- description: { type: "string" },
68
67
  },
68
+ type: "object",
69
69
  } as const;
70
70
 
71
71
  export const classMethodDefSchema = {
72
72
  description:
73
73
  "A class method or accessor definition. Capability roles (parse, serialize, discover, load) " +
74
74
  "mark static methods that hosts (compiler, server, studio) invoke for format dispatch.",
75
- type: "object",
76
75
  properties: {
77
- role: {
78
- type: "string",
79
- enum: ["method", "accessor", "parse", "serialize", "discover", "load"],
76
+ $prototype: { const: "Function", type: "string" },
77
+ access: { enum: ["public", "private", "protected"], type: "string" },
78
+ body: {
79
+ oneOf: [{ type: "string" }, { items: { type: "string" }, type: "array" }],
80
80
  },
81
- $prototype: { type: "string", const: "Function" },
82
- access: { type: "string", enum: ["public", "private", "protected"] },
83
- scope: { type: "string", enum: ["instance", "static"] },
84
- identifier: { type: "string" },
85
- timing: {
86
- description:
87
- "Execution environments allowed to call this capability directly. " +
88
- "Hosts outside the list round-trip through the dev server.",
89
- type: "array",
90
- items: { type: "string", enum: ["compiler", "server", "client"] },
81
+ description: { type: "string" },
82
+ getter: {
83
+ properties: { body: { type: "string" } },
84
+ type: "object",
91
85
  },
86
+ identifier: { type: "string" },
92
87
  parameters: {
93
- type: "array",
94
88
  items: {
95
89
  oneOf: [
96
90
  {
97
- type: "object",
98
- required: ["$ref"],
99
- properties: { $ref: { type: "string" } },
100
91
  additionalProperties: false,
92
+ properties: { $ref: { type: "string" } },
93
+ required: ["$ref"],
94
+ type: "object",
101
95
  },
102
96
  { $ref: "#/$defs/ClassParameterDef" },
103
97
  ],
104
98
  },
99
+ type: "array",
105
100
  },
106
101
  returnType: {},
107
- body: {
108
- oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }],
109
- },
110
- getter: {
111
- type: "object",
112
- properties: { body: { type: "string" } },
102
+ role: {
103
+ enum: ["method", "accessor", "parse", "serialize", "discover", "load"],
104
+ type: "string",
113
105
  },
106
+ scope: { enum: ["instance", "static"], type: "string" },
114
107
  setter: {
115
- type: "object",
116
108
  properties: {
117
- parameters: { type: "array" },
118
109
  body: { type: "string" },
110
+ parameters: { type: "array" },
119
111
  },
112
+ type: "object",
113
+ },
114
+ timing: {
115
+ description:
116
+ "Execution environments allowed to call this capability directly. " +
117
+ "Hosts outside the list round-trip through the dev server.",
118
+ items: { enum: ["compiler", "server", "client"], type: "string" },
119
+ type: "array",
120
120
  },
121
- description: { type: "string" },
122
121
  },
122
+ type: "object",
123
123
  } as const;
124
124
 
125
125
  export const formatDefSchema = {
126
126
  description:
127
127
  "Format participation marker. A class carrying this block is auto-discovered from the " +
128
128
  "project imports map and used for file-extension dispatch by the compiler, server, and studio.",
129
- type: "object",
130
- required: ["extensions"],
131
129
  properties: {
132
- extensions: {
133
- description: 'File extensions this format claims, with leading dot (e.g. [".md"]).',
134
- type: "array",
135
- items: { type: "string", pattern: "^\\." },
136
- minItems: 1,
137
- },
138
- mediaType: {
139
- description: "MIME type for the format (icons, labels, HTTP).",
140
- type: "string",
141
- },
142
130
  documentKinds: {
143
131
  description:
144
132
  '"page"/"component" allow the extension in pages/components discovery; ' +
145
133
  '"content" allows it as a content-type source.',
134
+ items: { enum: ["page", "component", "content"], type: "string" },
146
135
  type: "array",
147
- items: { type: "string", enum: ["page", "component", "content"] },
148
136
  },
149
137
  exportTarget: {
150
138
  description: "When true, site builds emit a serialized sidecar per page in this format.",
151
139
  type: "boolean",
152
140
  },
141
+ extensions: {
142
+ description: 'File extensions this format claims, with leading dot (e.g. [".md"]).',
143
+ items: { pattern: "^\\.", type: "string" },
144
+ minItems: 1,
145
+ type: "array",
146
+ },
147
+ mediaType: {
148
+ description: "MIME type for the format (icons, labels, HTTP).",
149
+ type: "string",
150
+ },
153
151
  remote: {
154
152
  description: "When true, the load capability accepts http(s) URLs as sources.",
155
153
  type: "boolean",
156
154
  },
157
155
  },
156
+ required: ["extensions"],
157
+ type: "object",
158
158
  } as const;
159
159
 
160
160
  export const studioHintsSchema = {
161
161
  description:
162
162
  "Studio control-surface hints for a format class: editor modes, document-mode rules, " +
163
163
  "templates, and the element/nesting constraints that gate structural editing.",
164
- type: "object",
165
164
  properties: {
166
- icon: { type: "string" },
167
- modes: {
168
- description: "Editor modes the studio offers for documents of this format.",
169
- type: "array",
170
- items: { type: "string" },
171
- },
172
165
  documentMode: {
173
- type: "object",
174
166
  properties: {
175
- default: { type: "string", enum: ["content", "component"] },
176
167
  componentWhen: {
177
168
  description:
178
169
  "Treat the document as a component when this top-level/frontmatter key matches the regex.",
179
- type: "object",
180
170
  properties: {
181
171
  frontmatterKey: { type: "string" },
182
172
  matches: { type: "string" },
183
173
  },
174
+ type: "object",
184
175
  },
176
+ default: { enum: ["content", "component"], type: "string" },
185
177
  },
186
- },
187
- newFileTemplate: {
188
- description: "Initial source text for newly created files of this format.",
189
- type: "string",
178
+ type: "object",
190
179
  },
191
180
  elements: {
192
181
  description: "Element allowlist and nesting constraints for structural editing.",
193
- type: "object",
194
182
  properties: {
195
- block: { type: "array", items: { type: "string" } },
196
- inline: { type: "array", items: { type: "string" } },
197
- void: { type: "array", items: { type: "string" } },
198
- textOnly: { type: "array", items: { type: "string" } },
183
+ block: { items: { type: "string" }, type: "array" },
184
+ inline: { items: { type: "string" }, type: "array" },
199
185
  nesting: {
200
- description:
201
- 'Per-parent child rules keyed by tag (or "_root"): ' +
202
- "{ block, inline, directive } booleans or { only: [tags] }.",
203
- type: "object",
204
186
  additionalProperties: {
205
- type: "object",
206
187
  properties: {
207
188
  block: { type: "boolean" },
208
- inline: { type: "boolean" },
209
189
  directive: { type: "boolean" },
210
- only: { type: "array", items: { type: "string" } },
190
+ inline: { type: "boolean" },
191
+ only: { items: { type: "string" }, type: "array" },
211
192
  },
193
+ type: "object",
212
194
  },
195
+ description:
196
+ 'Per-parent child rules keyed by tag (or "_root"): ' +
197
+ "{ block, inline, directive } booleans or { only: [tags] }.",
198
+ type: "object",
213
199
  },
200
+ textOnly: { items: { type: "string" }, type: "array" },
201
+ void: { items: { type: "string" }, type: "array" },
214
202
  },
203
+ type: "object",
204
+ },
205
+ icon: { type: "string" },
206
+ modes: {
207
+ description: "Editor modes the studio offers for documents of this format.",
208
+ items: { type: "string" },
209
+ type: "array",
210
+ },
211
+ newFileTemplate: {
212
+ description: "Initial source text for newly created files of this format.",
213
+ type: "string",
215
214
  },
216
215
  },
216
+ type: "object",
217
217
  } as const;
218
218
 
219
219
  export const classDefSchema = {
220
+ additionalProperties: false,
220
221
  description:
221
222
  'A .class.json schema-defined class. $prototype must be "Class". ' +
222
223
  "Defines fields, constructor, methods, and type parameters via $defs. " +
223
224
  "Optionally points to a JS module via $implementation for hybrid execution.",
224
- type: "object",
225
- required: ["$prototype", "title"],
226
225
  properties: {
227
- $schema: { type: "string" },
228
- $id: { type: "string" },
229
- $prototype: { type: "string", const: "Class" },
230
- title: {
231
- description: "PascalCase class name, used as the export name.",
232
- type: "string",
233
- },
234
- description: { type: "string" },
235
- format: { $ref: "#/$defs/FormatDef" },
236
- $studio: { $ref: "#/$defs/StudioHints" },
237
- extends: {
238
- description: "Base class — string name or $ref to another .class.json.",
239
- oneOf: [
240
- { type: "string" },
241
- { type: "object", required: ["$ref"], properties: { $ref: { type: "string" } } },
242
- ],
243
- },
244
- $implementation: {
245
- description: "Relative path to a JS module containing the actual class implementation.",
246
- type: "string",
247
- },
248
226
  $defs: {
249
227
  description: "Class members: parameters, returnTypes, fields, constructor, methods.",
250
- type: "object",
251
228
  properties: {
252
- parameters: {
253
- description: "Reusable typed parameter schemas, keyed by name.",
254
- type: "object",
255
- additionalProperties: { $ref: "#/$defs/ClassParameterDef" },
256
- },
257
- returnTypes: {
258
- description: "Output type schemas, keyed by name.",
259
- type: "object",
260
- additionalProperties: { type: "object" },
261
- },
229
+ constructor: { $ref: "#/$defs/ClassConstructorDef" },
262
230
  fields: {
231
+ additionalProperties: { $ref: "#/$defs/ClassFieldDef" },
263
232
  description: "Class fields with role, access, scope, and type information.",
264
233
  type: "object",
265
- additionalProperties: { $ref: "#/$defs/ClassFieldDef" },
266
234
  },
267
- constructor: { $ref: "#/$defs/ClassConstructorDef" },
268
235
  methods: {
236
+ additionalProperties: { $ref: "#/$defs/ClassMethodDef" },
269
237
  description: "Class methods and accessors.",
270
238
  type: "object",
271
- additionalProperties: { $ref: "#/$defs/ClassMethodDef" },
239
+ },
240
+ parameters: {
241
+ additionalProperties: { $ref: "#/$defs/ClassParameterDef" },
242
+ description: "Reusable typed parameter schemas, keyed by name.",
243
+ type: "object",
244
+ },
245
+ returnTypes: {
246
+ additionalProperties: { type: "object" },
247
+ description: "Output type schemas, keyed by name.",
248
+ type: "object",
272
249
  },
273
250
  },
251
+ type: "object",
252
+ },
253
+ $id: { type: "string" },
254
+ $implementation: {
255
+ description: "Relative path to a JS module containing the actual class implementation.",
256
+ type: "string",
257
+ },
258
+ $prototype: { const: "Class", type: "string" },
259
+ $schema: { type: "string" },
260
+ $studio: { $ref: "#/$defs/StudioHints" },
261
+ description: { type: "string" },
262
+ extends: {
263
+ description: "Base class — string name or $ref to another .class.json.",
264
+ oneOf: [
265
+ { type: "string" },
266
+ { properties: { $ref: { type: "string" } }, required: ["$ref"], type: "object" },
267
+ ],
268
+ },
269
+ format: { $ref: "#/$defs/FormatDef" },
270
+ title: {
271
+ description: "PascalCase class name, used as the export name.",
272
+ type: "string",
274
273
  },
275
274
  },
276
- additionalProperties: false,
275
+ required: ["$prototype", "title"],
276
+ type: "object",
277
277
  } as const;
@@ -1,12 +1,20 @@
1
1
  export const contentTypeDefSchema = {
2
2
  description:
3
3
  "Content type definition. Defines the source directory, frontmatter schema, and element dependencies.",
4
- type: "object",
5
4
  properties: {
6
- source: {
7
- description: "Path to the content directory relative to the project root.",
8
- type: "string",
9
- examples: ["./content/blog/", "./content/docs/"],
5
+ $elements: {
6
+ description: "Custom elements available in markdown directives for this content type.",
7
+ items: {
8
+ oneOf: [
9
+ {
10
+ properties: { $ref: { type: "string" } },
11
+ required: ["$ref"],
12
+ type: "object",
13
+ },
14
+ { type: "string" },
15
+ ],
16
+ },
17
+ type: "array",
10
18
  },
11
19
  format: {
12
20
  description:
@@ -19,19 +27,11 @@ export const contentTypeDefSchema = {
19
27
  description: "JSON Schema for validating frontmatter of content type entries.",
20
28
  type: "object",
21
29
  },
22
- $elements: {
23
- description: "Custom elements available in markdown directives for this content type.",
24
- type: "array",
25
- items: {
26
- oneOf: [
27
- {
28
- type: "object",
29
- required: ["$ref"],
30
- properties: { $ref: { type: "string" } },
31
- },
32
- { type: "string" },
33
- ],
34
- },
30
+ source: {
31
+ description: "Path to the content directory relative to the project root.",
32
+ examples: ["./content/blog/", "./content/docs/"],
33
+ type: "string",
35
34
  },
36
35
  },
36
+ type: "object",
37
37
  } as const;
@@ -1,6 +1,4 @@
1
1
  export const attributesObjectSchema = {
2
- description: "HTML attributes and ARIA attributes set via element.setAttribute().",
3
- type: "object",
4
2
  additionalProperties: {
5
3
  oneOf: [
6
4
  { type: "string" },
@@ -9,11 +7,11 @@ export const attributesObjectSchema = {
9
7
  { $ref: "#/$defs/RefObject" },
10
8
  ],
11
9
  },
10
+ description: "HTML attributes and ARIA attributes set via element.setAttribute().",
11
+ type: "object",
12
12
  } as const;
13
13
 
14
14
  export const propsObjectSchema = {
15
- description: "Explicit prop passing at a component boundary.",
16
- type: "object",
17
15
  additionalProperties: {
18
16
  oneOf: [
19
17
  { type: "string" },
@@ -24,6 +22,8 @@ export const propsObjectSchema = {
24
22
  { $ref: "#/$defs/RefObject" },
25
23
  ],
26
24
  },
25
+ description: "Explicit prop passing at a component boundary.",
26
+ type: "object",
27
27
  } as const;
28
28
 
29
29
  export const elementPropertyValueSchema = {
@@ -37,62 +37,62 @@ export const elementPropertyValueSchema = {
37
37
  } as const;
38
38
 
39
39
  export const switchDefSchema = {
40
+ additionalProperties: false,
40
41
  description: "Reactive $ref that drives which case to render.",
41
- type: "object",
42
- required: ["$ref"],
43
42
  properties: { $ref: { $ref: "#/$defs/InternalRef" } },
44
- additionalProperties: false,
43
+ required: ["$ref"],
44
+ type: "object",
45
45
  } as const;
46
46
 
47
47
  export const switchNodeSchema = {
48
- type: "object",
49
- required: ["$switch", "cases"],
50
48
  properties: {
51
- tagName: { $ref: "#/$defs/TagName" },
52
49
  $switch: { $ref: "#/$defs/SwitchDef" },
53
50
  cases: {
54
- type: "object",
55
51
  additionalProperties: {
56
52
  oneOf: [{ $ref: "#/$defs/ElementDef" }, { $ref: "#/$defs/ExternalComponentRef" }],
57
53
  },
54
+ type: "object",
58
55
  },
56
+ tagName: { $ref: "#/$defs/TagName" },
59
57
  },
58
+ required: ["$switch", "cases"],
59
+ type: "object",
60
60
  } as const;
61
61
 
62
62
  export const elementDefSchema = {
63
+ additionalProperties: { $ref: "#/$defs/ElementPropertyValue" },
63
64
  description: "A Jx element definition. Maps directly to a DOM element.",
64
- type: "object",
65
- required: ["tagName"],
66
65
  properties: {
67
- tagName: { $ref: "#/$defs/TagName" },
68
- id: { type: "string" },
66
+ "$map/index": { $ref: "#/$defs/RefObject" },
67
+ "$map/item": { $ref: "#/$defs/RefObject" },
68
+ $props: { $ref: "#/$defs/PropsObject" },
69
+ $ref: { $ref: "#/$defs/ExternalRef" },
70
+ $switch: { $ref: "#/$defs/SwitchDef" },
71
+ alt: { $ref: "#/$defs/StringOrRef" },
72
+ attributes: { $ref: "#/$defs/AttributesObject" },
73
+ checked: { $ref: "#/$defs/BoolOrRef" },
74
+ children: { $ref: "#/$defs/ChildrenValue" },
69
75
  className: { $ref: "#/$defs/StringOrRef" },
70
- textContent: { $ref: "#/$defs/StringOrRef" },
76
+ dir: { enum: ["ltr", "rtl", "auto"], type: "string" },
77
+ disabled: { $ref: "#/$defs/BoolOrRef" },
78
+ hidden: { $ref: "#/$defs/BoolOrRef" },
79
+ href: { $ref: "#/$defs/StringOrRef" },
80
+ id: { type: "string" },
71
81
  innerHTML: { $ref: "#/$defs/StringOrRef" },
72
82
  innerText: { $ref: "#/$defs/StringOrRef" },
73
- hidden: { $ref: "#/$defs/BoolOrRef" },
74
- tabIndex: { $ref: "#/$defs/NumberOrRef" },
75
- title: { $ref: "#/$defs/StringOrRef" },
76
83
  lang: { $ref: "#/$defs/StringOrRef" },
77
- dir: { type: "string", enum: ["ltr", "rtl", "auto"] },
78
- value: { $ref: "#/$defs/StringOrRef" },
79
- checked: { $ref: "#/$defs/BoolOrRef" },
80
- disabled: { $ref: "#/$defs/BoolOrRef" },
81
- selected: { $ref: "#/$defs/BoolOrRef" },
82
- src: { $ref: "#/$defs/StringOrRef" },
83
- href: { $ref: "#/$defs/StringOrRef" },
84
- alt: { $ref: "#/$defs/StringOrRef" },
85
- type: { $ref: "#/$defs/StringOrRef" },
86
84
  name: { $ref: "#/$defs/StringOrRef" },
87
85
  placeholder: { $ref: "#/$defs/StringOrRef" },
88
- children: { $ref: "#/$defs/ChildrenValue" },
86
+ selected: { $ref: "#/$defs/BoolOrRef" },
87
+ src: { $ref: "#/$defs/StringOrRef" },
89
88
  style: { $ref: "#/$defs/StyleObject" },
90
- attributes: { $ref: "#/$defs/AttributesObject" },
91
- $switch: { $ref: "#/$defs/SwitchDef" },
92
- $ref: { $ref: "#/$defs/ExternalRef" },
93
- $props: { $ref: "#/$defs/PropsObject" },
94
- "$map/item": { $ref: "#/$defs/RefObject" },
95
- "$map/index": { $ref: "#/$defs/RefObject" },
89
+ tabIndex: { $ref: "#/$defs/NumberOrRef" },
90
+ tagName: { $ref: "#/$defs/TagName" },
91
+ textContent: { $ref: "#/$defs/StringOrRef" },
92
+ title: { $ref: "#/$defs/StringOrRef" },
93
+ type: { $ref: "#/$defs/StringOrRef" },
94
+ value: { $ref: "#/$defs/StringOrRef" },
96
95
  },
97
- additionalProperties: { $ref: "#/$defs/ElementPropertyValue" },
96
+ required: ["tagName"],
97
+ type: "object",
98
98
  } as const;