@almadar/core 10.28.0 → 10.29.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.
@@ -0,0 +1,4635 @@
1
+ import { z } from 'zod';
2
+ import { S as SExpr } from './expression-CB9R3KWk.js';
3
+
4
+ /**
5
+ * Field Types for Orbital Units
6
+ *
7
+ * Extracted from schema/data-entities.ts for the orbitals module.
8
+ * These types define the field structure within orbital entities.
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+
13
+ /**
14
+ * Supported field types for entity fields.
15
+ *
16
+ * @example
17
+ * { name: 'status', type: 'enum', values: ['draft', 'published'] }
18
+ * { name: 'authorId', type: 'relation', relation: { entity: 'User', cardinality: 'one' } }
19
+ */
20
+ type FieldType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp' | 'datetime' | 'array' | 'object' | 'enum' | 'relation' | 'trait' | 'slot' | 'pattern';
21
+ declare const FieldTypeSchema: z.ZodEnum<["string", "number", "boolean", "date", "timestamp", "datetime", "array", "object", "enum", "relation", "trait", "slot", "pattern"]>;
22
+ /**
23
+ * Cardinality for relation fields.
24
+ * Matches Rust compiler's Cardinality enum.
25
+ */
26
+ type RelationCardinality = 'one' | 'many' | 'one-to-many' | 'many-to-one' | 'many-to-many';
27
+ /**
28
+ * Configuration for relation fields (foreign keys).
29
+ * Matches Rust compiler's RelationDefinition format.
30
+ */
31
+ interface RelationConfig {
32
+ /** Target entity name (e.g., 'User', 'Task') - matches Rust's `entity` field */
33
+ entity: string;
34
+ /** Field on target entity (defaults to 'id') */
35
+ field?: string;
36
+ /**
37
+ * Cardinality: one, many, one-to-many, many-to-one, many-to-many
38
+ * Matches Rust compiler's cardinality format
39
+ */
40
+ cardinality?: RelationCardinality;
41
+ /** Delete behavior */
42
+ onDelete?: 'cascade' | 'nullify' | 'restrict';
43
+ /**
44
+ * Foreign key field name (for legacy compatibility).
45
+ * @deprecated Use field instead
46
+ */
47
+ foreignKey?: string;
48
+ /**
49
+ * Target entity name (for legacy compatibility).
50
+ * @deprecated Use entity instead
51
+ */
52
+ target?: string;
53
+ /**
54
+ * Cardinality type alias (for legacy compatibility).
55
+ * @deprecated Use cardinality instead
56
+ */
57
+ type?: RelationCardinality;
58
+ }
59
+ declare const RelationConfigSchema: z.ZodEffects<z.ZodObject<{
60
+ entity: z.ZodString;
61
+ field: z.ZodOptional<z.ZodString>;
62
+ cardinality: z.ZodOptional<z.ZodEnum<["one", "many", "one-to-many", "many-to-one", "many-to-many"]>>;
63
+ onDelete: z.ZodOptional<z.ZodEnum<["cascade", "nullify", "restrict"]>>;
64
+ foreignKey: z.ZodOptional<z.ZodString>;
65
+ target: z.ZodOptional<z.ZodString>;
66
+ type: z.ZodOptional<z.ZodEnum<["one", "many", "one-to-many", "many-to-one", "many-to-many"]>>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ entity: string;
69
+ field?: string | undefined;
70
+ cardinality?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
71
+ onDelete?: "cascade" | "nullify" | "restrict" | undefined;
72
+ foreignKey?: string | undefined;
73
+ target?: string | undefined;
74
+ type?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
75
+ }, {
76
+ entity: string;
77
+ field?: string | undefined;
78
+ cardinality?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
79
+ onDelete?: "cascade" | "nullify" | "restrict" | undefined;
80
+ foreignKey?: string | undefined;
81
+ target?: string | undefined;
82
+ type?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
83
+ }>, RelationConfig, {
84
+ entity: string;
85
+ field?: string | undefined;
86
+ cardinality?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
87
+ onDelete?: "cascade" | "nullify" | "restrict" | undefined;
88
+ foreignKey?: string | undefined;
89
+ target?: string | undefined;
90
+ type?: "one" | "many" | "one-to-many" | "many-to-one" | "many-to-many" | undefined;
91
+ }>;
92
+ /**
93
+ * Field format validators for string fields.
94
+ */
95
+ type FieldFormat = 'email' | 'url' | 'phone' | 'date' | 'datetime' | 'uuid'
96
+ /** Render hint: this string field stores an image URL. Mock adapters
97
+ * generate a deterministic picsum.photos URL; UI patterns can branch
98
+ * to an `<img>` instead of a `<typography>`. */
99
+ | 'image'
100
+ /** Render hint: avatar-shaped image (square, small). */
101
+ | 'avatar'
102
+ /** Render hint: thumbnail image (small landscape). */
103
+ | 'thumbnail';
104
+ declare const FieldFormatSchema: z.ZodEnum<["email", "url", "phone", "date", "datetime", "uuid", "image", "avatar", "thumbnail"]>;
105
+ /**
106
+ * Field-type tags that don't carry a type-dependent payload. The base
107
+ * `EntityField` shape applies as-is.
108
+ */
109
+ type ScalarFieldType = 'string' | 'number' | 'boolean' | 'date' | 'timestamp' | 'datetime' | 'trait' | 'slot' | 'pattern';
110
+ /** Fields shared across every variant. */
111
+ interface EntityFieldBase {
112
+ /**
113
+ * Field name (camelCase). Optional for nested item/property descriptors
114
+ * where the name is implied by the parent (`items`, `properties[k]`).
115
+ * Mirrors Rust's `FieldDefinition.name: Option<String>`.
116
+ */
117
+ name?: string;
118
+ /** Whether the field is required */
119
+ required?: boolean;
120
+ /** Default value */
121
+ default?: unknown;
122
+ /** Validation format */
123
+ format?: FieldFormat;
124
+ /** Minimum value (for number) or length (for string) */
125
+ min?: number;
126
+ /** Maximum value or length */
127
+ max?: number;
128
+ /** Object property schemas keyed by property name (for object type).
129
+ * Mirrors Rust's `FieldDefinition.properties: Option<HashMap<String,
130
+ * FieldDefinition>>`. Populated by the lolo lowerer when a field /
131
+ * config slot's type expression resolves to a struct shape
132
+ * (`TypeExpr::Object`), including named-type aliases like `[MetricSpec]`. */
133
+ properties?: Record<string, EntityField>;
134
+ /** Runtime-managed widget state (authored `@intrinsic` in `.lolo`). Exempt
135
+ * from the explicit-binding rule and never a domain-data bind target. */
136
+ intrinsic?: boolean;
137
+ /** Human/semantic description (authored `@description "..."` in `.lolo`).
138
+ * Authoring/build-time metadata — factory-signature catalog, embeddings,
139
+ * curation field-matching; the runtime ignores it. */
140
+ description?: string;
141
+ /** User-vocabulary synonyms (authored `@synonyms "..."` in `.lolo`).
142
+ * Free text feeding catalog search / curation field-matching. */
143
+ synonyms?: string;
144
+ }
145
+ /**
146
+ * Scalar / structural fields — no type-dependent payload required.
147
+ * `values?` is permitted as an OPTIONAL UI/validation hint (e.g. lolo's
148
+ * `'a' | 'b' | 'c'` string-union sugar lowers to `type: 'string', values:
149
+ * [...]`). Only `EnumEntityField` MANDATES values.
150
+ */
151
+ interface ScalarEntityField extends EntityFieldBase {
152
+ type: ScalarFieldType;
153
+ /** Optional vocabulary hint for scalar fields (e.g. string unions
154
+ * authored as `'a'|'b'|'c'` in lolo). Not required at this variant. */
155
+ values?: string[];
156
+ }
157
+ /** `type: 'enum'` REQUIRES the closed vocabulary in `values`. */
158
+ interface EnumEntityField extends EntityFieldBase {
159
+ type: 'enum';
160
+ /** Closed string vocabulary the field accepts. */
161
+ values: string[];
162
+ }
163
+ /** `type: 'relation'` REQUIRES the relation target binding. */
164
+ interface RelationEntityField extends EntityFieldBase {
165
+ type: 'relation';
166
+ /** Relation target binding (entity + cardinality). */
167
+ relation: RelationConfig;
168
+ }
169
+ /** `type: 'array'` — element schema in `items` strongly preferred but
170
+ * optional for legacy compatibility with codegen-emitted scalar-array
171
+ * fields (e.g. `{type: 'array', default: []}`). The lolo lowerer + Rust
172
+ * validator catch typed-element-required cases downstream. */
173
+ interface ArrayEntityField extends EntityFieldBase {
174
+ type: 'array';
175
+ /** Element schema for the array. */
176
+ items?: EntityField;
177
+ }
178
+ /**
179
+ * `type: 'object'` — a fixed-key struct (fields in `properties`) OR a
180
+ * dynamic-key map (`Map K V` in `.lolo`; the uniform value schema lives in
181
+ * `items`, mirroring an array's element schema). A distinct variant so `items`
182
+ * is statically allowed only on object/array fields, never on scalars.
183
+ */
184
+ interface ObjectEntityField extends EntityFieldBase {
185
+ type: 'object';
186
+ /** Uniform value schema for a dynamic-key map (`Map K V`). */
187
+ items?: EntityField;
188
+ }
189
+ /**
190
+ * Entity field definition — discriminated union by `type`. Each variant
191
+ * statically enforces its dependent payload (`values` for enum,
192
+ * `relation` for relation, `items` for array) so TS / Zod / JSON Schema
193
+ * consumers all agree on the dependency, not just the Rust validator.
194
+ *
195
+ * @example
196
+ * { name: 'status', type: 'enum', values: ['draft', 'published'] }
197
+ * { name: 'authorId', type: 'relation', relation: { entity: 'User', cardinality: 'one' } }
198
+ * { name: 'tags', type: 'array', items: { type: 'string' } }
199
+ */
200
+ type EntityField = ScalarEntityField | EnumEntityField | RelationEntityField | ArrayEntityField | ObjectEntityField;
201
+ /**
202
+ * Zod schema for `EntityField`. Preprocess normalizes:
203
+ * - legacy `type` aliases (text → string, int → number, etc.)
204
+ * - legacy `enum: string[]` alias → `values: string[]`
205
+ *
206
+ * Branches on `type` so TS narrows the parsed output to the matching
207
+ * discriminated-union variant.
208
+ */
209
+ declare const EntityFieldSchema: z.ZodType<EntityField, z.ZodTypeDef, unknown>;
210
+ type EntityFieldInput = z.input<typeof EntityFieldSchema>;
211
+ /** Alias for EntityField - preferred name */
212
+ type Field = EntityField;
213
+ /** Alias for EntityFieldSchema - preferred name */
214
+ declare const FieldSchema: z.ZodType<EntityField, z.ZodTypeDef, unknown>;
215
+
216
+ /**
217
+ * Asset Types for Semantic Asset References
218
+ *
219
+ * Defines types for abstracting asset paths into semantic references.
220
+ * Assets are resolved from SemanticAssetRef to actual paths at compile time.
221
+ *
222
+ * @packageDocumentation
223
+ */
224
+
225
+ /**
226
+ * Entity roles in game contexts
227
+ */
228
+ declare const ENTITY_ROLES: readonly ["player", "enemy", "npc", "item", "tile", "projectile", "effect", "ui", "decoration", "vehicle"];
229
+ type EntityRole = (typeof ENTITY_ROLES)[number];
230
+ declare const EntityRoleSchema: z.ZodEnum<["player", "enemy", "npc", "item", "tile", "projectile", "effect", "ui", "decoration", "vehicle"]>;
231
+ /**
232
+ * Visual art styles for games
233
+ */
234
+ declare const VISUAL_STYLES: readonly ["pixel", "vector", "hd", "1-bit", "isometric"];
235
+ type VisualStyle = (typeof VISUAL_STYLES)[number];
236
+ declare const VisualStyleSchema: z.ZodEnum<["pixel", "vector", "hd", "1-bit", "isometric"]>;
237
+ /**
238
+ * Whether the asset is a 2D sprite/image or a 3D model. Set by the consuming
239
+ * canvas: the same entity role is a 2D sprite-sheet on a tile board and a 3D
240
+ * rigged model on a 3D board.
241
+ */
242
+ declare const ASSET_DIMENSIONS: readonly ["2d", "3d"];
243
+ type AssetDimension = (typeof ASSET_DIMENSIONS)[number];
244
+ declare const AssetDimensionSchema: z.ZodEnum<["2d", "3d"]>;
245
+ /**
246
+ * Rendering aspect ratio of an asset: square (tiles/sprites/portraits/icons),
247
+ * 16:9 (scene backdrops), 5:7 (cards), 8:1 (effect frame strips).
248
+ */
249
+ declare const ASSET_ASPECTS: readonly ["1:1", "16:9", "5:7", "8:1"];
250
+ type AssetAspect = (typeof ASSET_ASPECTS)[number];
251
+ declare const AssetAspectSchema: z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>;
252
+ /**
253
+ * Animation names matching a sprite sheet's row layout. Canonical home for
254
+ * this vocabulary — `@almadar/ui`'s `spriteAnimationTypes.ts` re-exports it
255
+ * rather than redeclaring, so board `.lolo` config and the render library
256
+ * agree on one enum.
257
+ */
258
+ declare const ANIMATION_NAMES: readonly ["idle", "walk", "attack", "hit", "death"];
259
+ type AnimationName = (typeof ANIMATION_NAMES)[number];
260
+ declare const AnimationNameSchema: z.ZodEnum<["idle", "walk", "attack", "hit", "death"]>;
261
+ /** Sheet file directions (physical PNG files a sprite sheet ships as). */
262
+ declare const SPRITE_DIRECTIONS: readonly ["se", "sw"];
263
+ type SpriteDirection = (typeof SPRITE_DIRECTIONS)[number];
264
+ declare const SpriteDirectionSchema: z.ZodEnum<["se", "sw"]>;
265
+ /**
266
+ * Definition for a single named animation within a sprite sheet: which row
267
+ * it occupies, how many frames it has, and its playback rate. This is the
268
+ * shape actually consumed by `@almadar/ui`'s sprite-sheet renderer
269
+ * (`spriteAnimation.ts`'s `frameRect`/`getCurrentFrameFromDef`) — moved here
270
+ * verbatim rather than reconciled with a differently-shaped guess, since
271
+ * `@almadar/ui`'s version is the one with real production consumers.
272
+ */
273
+ interface AnimationDef {
274
+ /** Row index in the sprite sheet (0-based; each animation occupies one row). */
275
+ row: number;
276
+ /** Number of frames in this animation. */
277
+ frames: number;
278
+ /** Frames per second. */
279
+ frameRate: number;
280
+ /** Whether the animation loops. */
281
+ loop: boolean;
282
+ }
283
+ declare const AnimationDefSchema: z.ZodObject<{
284
+ row: z.ZodNumber;
285
+ frames: z.ZodNumber;
286
+ frameRate: z.ZodNumber;
287
+ loop: z.ZodBoolean;
288
+ }, "strip", z.ZodTypeAny, {
289
+ row: number;
290
+ frames: number;
291
+ frameRate: number;
292
+ loop: boolean;
293
+ }, {
294
+ row: number;
295
+ frames: number;
296
+ frameRate: number;
297
+ loop: boolean;
298
+ }>;
299
+ /**
300
+ * Parsed sprite-sheet atlas JSON — the contract a `spriteSheet`-role `Asset.url`
301
+ * resolves to when fetched (see `Asset.url` usage in `@almadar/ui`'s
302
+ * `useUnitSpriteAtlas`). A unit's `sprite?: Asset` stays the static single-pose
303
+ * image; `spriteSheet?: Asset` is a SEPARATE reference whose URL points at a
304
+ * `SpriteSheetAtlas`-shaped JSON manifest (e.g. `.../guardian-sprite-sheet.json`),
305
+ * not a PNG. Frame-cutting geometry lives here, not inlined onto `Asset` — an
306
+ * `Asset` traveling through `render-ui` every tick stays small.
307
+ */
308
+ interface SpriteSheetAtlas {
309
+ /** Unit archetype key. */
310
+ unit?: string;
311
+ /** Visual type key. */
312
+ type?: string;
313
+ /** Width of a single frame in pixels. */
314
+ frameWidth: number;
315
+ /** Height of a single frame in pixels. */
316
+ frameHeight: number;
317
+ /** Number of columns (frames per row). */
318
+ columns: number;
319
+ /** Number of rows (animations). */
320
+ rows: number;
321
+ /** Directions present as physical PNG files. */
322
+ directions: SpriteDirection[];
323
+ /** Relative PNG sheet paths per direction. */
324
+ sheets: Partial<Record<SpriteDirection, string>>;
325
+ /** Animation row layout keyed by animation name. */
326
+ animations: Partial<Record<AnimationName, AnimationDef>>;
327
+ }
328
+ declare const SpriteSheetAtlasSchema: z.ZodObject<{
329
+ unit: z.ZodOptional<z.ZodString>;
330
+ type: z.ZodOptional<z.ZodString>;
331
+ frameWidth: z.ZodNumber;
332
+ frameHeight: z.ZodNumber;
333
+ columns: z.ZodNumber;
334
+ rows: z.ZodNumber;
335
+ directions: z.ZodArray<z.ZodEnum<["se", "sw"]>, "many">;
336
+ sheets: z.ZodRecord<z.ZodEnum<["se", "sw"]>, z.ZodString>;
337
+ animations: z.ZodRecord<z.ZodEnum<["idle", "walk", "attack", "hit", "death"]>, z.ZodObject<{
338
+ row: z.ZodNumber;
339
+ frames: z.ZodNumber;
340
+ frameRate: z.ZodNumber;
341
+ loop: z.ZodBoolean;
342
+ }, "strip", z.ZodTypeAny, {
343
+ row: number;
344
+ frames: number;
345
+ frameRate: number;
346
+ loop: boolean;
347
+ }, {
348
+ row: number;
349
+ frames: number;
350
+ frameRate: number;
351
+ loop: boolean;
352
+ }>>;
353
+ }, "strip", z.ZodTypeAny, {
354
+ frameWidth: number;
355
+ frameHeight: number;
356
+ columns: number;
357
+ rows: number;
358
+ directions: ("se" | "sw")[];
359
+ sheets: Partial<Record<"se" | "sw", string>>;
360
+ animations: Partial<Record<"idle" | "walk" | "attack" | "hit" | "death", {
361
+ row: number;
362
+ frames: number;
363
+ frameRate: number;
364
+ loop: boolean;
365
+ }>>;
366
+ type?: string | undefined;
367
+ unit?: string | undefined;
368
+ }, {
369
+ frameWidth: number;
370
+ frameHeight: number;
371
+ columns: number;
372
+ rows: number;
373
+ directions: ("se" | "sw")[];
374
+ sheets: Partial<Record<"se" | "sw", string>>;
375
+ animations: Partial<Record<"idle" | "walk" | "attack" | "hit" | "death", {
376
+ row: number;
377
+ frames: number;
378
+ frameRate: number;
379
+ loop: boolean;
380
+ }>>;
381
+ type?: string | undefined;
382
+ unit?: string | undefined;
383
+ }>;
384
+ /**
385
+ * One named sub-rectangle inside a packed sheet. Mirrors the ShoeBox /
386
+ * TexturePacker `<SubTexture>` element every Kenney `Spritesheet/*.xml` ships
387
+ * (`x`/`y`/`width`/`height` = the rect in the sheet PNG; `frameX`/`frameY`/
388
+ * `frameWidth`/`frameHeight` = the trim/pad offsets for sprites packed with
389
+ * transparent edges removed — optional, present only on trimmed atlases).
390
+ */
391
+ interface SubTexture {
392
+ x: number;
393
+ y: number;
394
+ width: number;
395
+ height: number;
396
+ frameX?: number;
397
+ frameY?: number;
398
+ frameWidth?: number;
399
+ frameHeight?: number;
400
+ }
401
+ declare const SubTextureSchema: z.ZodObject<{
402
+ x: z.ZodNumber;
403
+ y: z.ZodNumber;
404
+ width: z.ZodNumber;
405
+ height: z.ZodNumber;
406
+ frameX: z.ZodOptional<z.ZodNumber>;
407
+ frameY: z.ZodOptional<z.ZodNumber>;
408
+ frameWidth: z.ZodOptional<z.ZodNumber>;
409
+ frameHeight: z.ZodOptional<z.ZodNumber>;
410
+ }, "strip", z.ZodTypeAny, {
411
+ x: number;
412
+ y: number;
413
+ width: number;
414
+ height: number;
415
+ frameWidth?: number | undefined;
416
+ frameHeight?: number | undefined;
417
+ frameX?: number | undefined;
418
+ frameY?: number | undefined;
419
+ }, {
420
+ x: number;
421
+ y: number;
422
+ width: number;
423
+ height: number;
424
+ frameWidth?: number | undefined;
425
+ frameHeight?: number | undefined;
426
+ frameX?: number | undefined;
427
+ frameY?: number | undefined;
428
+ }>;
429
+ /**
430
+ * A packed sheet + its named sub-rectangles — the canonical parse target for a
431
+ * Kenney `Spritesheet/*.xml` atlas. A STATIC tile/prop/UI Asset references one
432
+ * of these: `{ url: <sheet.png>, atlas: <this.json>, sprite: "grass.png" }` →
433
+ * the renderer fetches the sheet + atlas ONCE and blits the named sub-rect,
434
+ * instead of loading N individual PNGs. (Animated actors use `SpriteSheetAtlas`
435
+ * instead; a uniform-grid tile page uses `Tilesheet`.)
436
+ */
437
+ interface TextureAtlas {
438
+ /** Relative path to the sheet PNG the sub-rects index into (the atlas's own `imagePath`). */
439
+ imagePath: string;
440
+ /** Sub-rectangles keyed by their atlas name (e.g. `"grass.png"`). */
441
+ subTextures: Record<string, SubTexture>;
442
+ }
443
+ declare const TextureAtlasSchema: z.ZodObject<{
444
+ imagePath: z.ZodString;
445
+ subTextures: z.ZodRecord<z.ZodString, z.ZodObject<{
446
+ x: z.ZodNumber;
447
+ y: z.ZodNumber;
448
+ width: z.ZodNumber;
449
+ height: z.ZodNumber;
450
+ frameX: z.ZodOptional<z.ZodNumber>;
451
+ frameY: z.ZodOptional<z.ZodNumber>;
452
+ frameWidth: z.ZodOptional<z.ZodNumber>;
453
+ frameHeight: z.ZodOptional<z.ZodNumber>;
454
+ }, "strip", z.ZodTypeAny, {
455
+ x: number;
456
+ y: number;
457
+ width: number;
458
+ height: number;
459
+ frameWidth?: number | undefined;
460
+ frameHeight?: number | undefined;
461
+ frameX?: number | undefined;
462
+ frameY?: number | undefined;
463
+ }, {
464
+ x: number;
465
+ y: number;
466
+ width: number;
467
+ height: number;
468
+ frameWidth?: number | undefined;
469
+ frameHeight?: number | undefined;
470
+ frameX?: number | undefined;
471
+ frameY?: number | undefined;
472
+ }>>;
473
+ }, "strip", z.ZodTypeAny, {
474
+ imagePath: string;
475
+ subTextures: Record<string, {
476
+ x: number;
477
+ y: number;
478
+ width: number;
479
+ height: number;
480
+ frameWidth?: number | undefined;
481
+ frameHeight?: number | undefined;
482
+ frameX?: number | undefined;
483
+ frameY?: number | undefined;
484
+ }>;
485
+ }, {
486
+ imagePath: string;
487
+ subTextures: Record<string, {
488
+ x: number;
489
+ y: number;
490
+ width: number;
491
+ height: number;
492
+ frameWidth?: number | undefined;
493
+ frameHeight?: number | undefined;
494
+ frameX?: number | undefined;
495
+ frameY?: number | undefined;
496
+ }>;
497
+ }>;
498
+ /**
499
+ * A uniform-grid tile page — the shape a Kenney `Tilesheet/` sheet takes (e.g.
500
+ * Pirate Pack: "each tile is 64×64, no margin"). Tiles are cut by `(col,row)`
501
+ * index rather than by named rect. `names` is present only when a sibling
502
+ * `.xml`/`.txt` supplies an index→name list; otherwise a tile is addressed by
503
+ * its `"col,row"` (or flat index) via `Asset.sprite`.
504
+ */
505
+ interface Tilesheet {
506
+ /** Relative path to the tile sheet PNG. */
507
+ imagePath: string;
508
+ /** Width of one tile cell in pixels. */
509
+ tileWidth: number;
510
+ /** Height of one tile cell in pixels. */
511
+ tileHeight: number;
512
+ /** Number of columns in the grid. */
513
+ columns: number;
514
+ /** Number of rows in the grid. */
515
+ rows: number;
516
+ /** Outer margin before the first tile, in pixels (default 0). */
517
+ margin?: number;
518
+ /** Gap between adjacent tiles, in pixels (default 0). */
519
+ spacing?: number;
520
+ /** Optional index→name labels when a descriptor supplies them. */
521
+ names?: string[];
522
+ }
523
+ declare const TilesheetSchema: z.ZodObject<{
524
+ imagePath: z.ZodString;
525
+ tileWidth: z.ZodNumber;
526
+ tileHeight: z.ZodNumber;
527
+ columns: z.ZodNumber;
528
+ rows: z.ZodNumber;
529
+ margin: z.ZodOptional<z.ZodNumber>;
530
+ spacing: z.ZodOptional<z.ZodNumber>;
531
+ names: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
532
+ }, "strip", z.ZodTypeAny, {
533
+ columns: number;
534
+ rows: number;
535
+ imagePath: string;
536
+ tileWidth: number;
537
+ tileHeight: number;
538
+ margin?: number | undefined;
539
+ spacing?: number | undefined;
540
+ names?: string[] | undefined;
541
+ }, {
542
+ columns: number;
543
+ rows: number;
544
+ imagePath: string;
545
+ tileWidth: number;
546
+ tileHeight: number;
547
+ margin?: number | undefined;
548
+ spacing?: number | undefined;
549
+ names?: string[] | undefined;
550
+ }>;
551
+ /**
552
+ * Semantic reference to an asset (not a hardcoded path).
553
+ * Resolved to actual paths at compile time via asset maps.
554
+ */
555
+ interface SemanticAssetRef {
556
+ /**
557
+ * Entity role — a free string. Core no longer constrains the vocabulary to
558
+ * `EntityRole` (that enum stays an exported shared reference for the asset
559
+ * tool + renderer); genre boards may use their own roles (`boss`, `tower`, …).
560
+ */
561
+ role: string;
562
+ /** Sub-category within role (hero, slime, coin, etc.) */
563
+ category: string;
564
+ /** Required animations for this entity */
565
+ animations?: string[];
566
+ /** Visual style preference */
567
+ style?: VisualStyle;
568
+ /** Variant identifier (for multiple versions) */
569
+ variant?: string;
570
+ /** 2D sprite vs 3D model — the rendering dimension the consuming canvas needs. */
571
+ dimension?: AssetDimension;
572
+ /** Rendering aspect ratio (square sprite/portrait/tile, 16:9 backdrop, 5:7 card, 8:1 fx-strip). */
573
+ aspect?: AssetAspect;
574
+ }
575
+ declare const SemanticAssetRefSchema: z.ZodObject<{
576
+ role: z.ZodString;
577
+ category: z.ZodString;
578
+ animations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
579
+ style: z.ZodOptional<z.ZodEnum<["pixel", "vector", "hd", "1-bit", "isometric"]>>;
580
+ variant: z.ZodOptional<z.ZodString>;
581
+ dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
582
+ aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
583
+ }, "strip", z.ZodTypeAny, {
584
+ role: string;
585
+ category: string;
586
+ animations?: string[] | undefined;
587
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
588
+ variant?: string | undefined;
589
+ dimension?: "2d" | "3d" | undefined;
590
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
591
+ }, {
592
+ role: string;
593
+ category: string;
594
+ animations?: string[] | undefined;
595
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
596
+ variant?: string | undefined;
597
+ dimension?: "2d" | "3d" | undefined;
598
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
599
+ }>;
600
+ /**
601
+ * The single asset type: a `SemanticAssetRef` (role/dimension/animations/aspect/style)
602
+ * WITH its resolved URL folded in. Used everywhere an asset is referenced — a lolo
603
+ * board `assetManifest` (`Map string Asset`), every `@almadar/ui` game prop, the
604
+ * asset-workflow's resolved/pool assets, and the inspector picker. Replaces the bare
605
+ * `AssetUrl`-string asset field so the render metadata travels WITH the asset (no
606
+ * pixel-dimension or filename heuristics needed to know sheet-vs-frame / 2d-vs-3d).
607
+ */
608
+ interface Asset extends SemanticAssetRef {
609
+ /** The resolved asset URL. When `atlas`/`sprite` are set this is the SHEET png; otherwise a standalone image. */
610
+ url: AssetUrl;
611
+ /**
612
+ * Optional atlas JSON (a `TextureAtlas` or `Tilesheet`) that slices `url`.
613
+ * When present with `sprite`, the renderer fetches sheet + atlas once and
614
+ * blits one sub-rect instead of loading a standalone PNG. Absent → `url` is
615
+ * a plain whole-image asset (the existing, non-atlas path).
616
+ */
617
+ atlas?: AssetUrl;
618
+ /**
619
+ * The sub-texture selector within `atlas`: a `SubTexture` name for a
620
+ * `TextureAtlas` (e.g. `"grass.png"`), or a `"col,row"`/flat index for a
621
+ * `Tilesheet`. Only meaningful alongside `atlas`.
622
+ */
623
+ sprite?: string;
624
+ /** Optional display name (inspector picker). */
625
+ name?: string;
626
+ /** Optional thumbnail URL (inspector picker grid). */
627
+ thumbnailUrl?: string;
628
+ }
629
+ declare const AssetSchema: z.ZodObject<{
630
+ role: z.ZodString;
631
+ category: z.ZodString;
632
+ animations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
633
+ style: z.ZodOptional<z.ZodEnum<["pixel", "vector", "hd", "1-bit", "isometric"]>>;
634
+ variant: z.ZodOptional<z.ZodString>;
635
+ dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
636
+ aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
637
+ } & {
638
+ url: z.ZodString;
639
+ atlas: z.ZodOptional<z.ZodString>;
640
+ sprite: z.ZodOptional<z.ZodString>;
641
+ name: z.ZodOptional<z.ZodString>;
642
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
643
+ }, "strip", z.ZodTypeAny, {
644
+ url: string;
645
+ role: string;
646
+ category: string;
647
+ name?: string | undefined;
648
+ animations?: string[] | undefined;
649
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
650
+ variant?: string | undefined;
651
+ dimension?: "2d" | "3d" | undefined;
652
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
653
+ atlas?: string | undefined;
654
+ sprite?: string | undefined;
655
+ thumbnailUrl?: string | undefined;
656
+ }, {
657
+ url: string;
658
+ role: string;
659
+ category: string;
660
+ name?: string | undefined;
661
+ animations?: string[] | undefined;
662
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
663
+ variant?: string | undefined;
664
+ dimension?: "2d" | "3d" | undefined;
665
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
666
+ atlas?: string | undefined;
667
+ sprite?: string | undefined;
668
+ thumbnailUrl?: string | undefined;
669
+ }>;
670
+ /**
671
+ * Single browsable asset in the inspector picker catalog.
672
+ * Backs the asset/icon pickers — a flat list the inspector renders for
673
+ * the user to choose from when a config field's type is `'asset'`.
674
+ */
675
+ interface AssetCatalogEntry {
676
+ /** Resolvable URL to the asset. */
677
+ url: string;
678
+ /** Display name for the asset. */
679
+ name: string;
680
+ /** Grouping category within the catalog. */
681
+ category: string;
682
+ /** Asset kind the picker dispatches on. */
683
+ kind: 'image' | 'spritesheet' | 'audio' | 'scene' | 'portrait' | 'model' | 'other';
684
+ /** Optional thumbnail URL for grid previews. */
685
+ thumbnailUrl?: string;
686
+ /** 2D sprite vs 3D model — the asset's actual rendering dimension. */
687
+ dimension?: AssetDimension;
688
+ /** The asset's actual rendering aspect ratio. */
689
+ aspect?: AssetAspect;
690
+ }
691
+ declare const AssetCatalogEntrySchema: z.ZodObject<{
692
+ url: z.ZodString;
693
+ name: z.ZodString;
694
+ category: z.ZodString;
695
+ kind: z.ZodEnum<["image", "spritesheet", "audio", "scene", "portrait", "model", "other"]>;
696
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
697
+ dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
698
+ aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
699
+ }, "strip", z.ZodTypeAny, {
700
+ url: string;
701
+ name: string;
702
+ category: string;
703
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
704
+ dimension?: "2d" | "3d" | undefined;
705
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
706
+ thumbnailUrl?: string | undefined;
707
+ }, {
708
+ url: string;
709
+ name: string;
710
+ category: string;
711
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
712
+ dimension?: "2d" | "3d" | undefined;
713
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
714
+ thumbnailUrl?: string | undefined;
715
+ }>;
716
+ /**
717
+ * Flat list of browsable assets surfaced by the inspector pickers.
718
+ */
719
+ type AssetCatalog = AssetCatalogEntry[];
720
+ declare const AssetCatalogSchema: z.ZodArray<z.ZodObject<{
721
+ url: z.ZodString;
722
+ name: z.ZodString;
723
+ category: z.ZodString;
724
+ kind: z.ZodEnum<["image", "spritesheet", "audio", "scene", "portrait", "model", "other"]>;
725
+ thumbnailUrl: z.ZodOptional<z.ZodString>;
726
+ dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
727
+ aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
728
+ }, "strip", z.ZodTypeAny, {
729
+ url: string;
730
+ name: string;
731
+ category: string;
732
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
733
+ dimension?: "2d" | "3d" | undefined;
734
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
735
+ thumbnailUrl?: string | undefined;
736
+ }, {
737
+ url: string;
738
+ name: string;
739
+ category: string;
740
+ kind: "image" | "spritesheet" | "audio" | "scene" | "portrait" | "model" | "other";
741
+ dimension?: "2d" | "3d" | undefined;
742
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
743
+ thumbnailUrl?: string | undefined;
744
+ }>, "many">;
745
+ /**
746
+ * Asset-reference URL marker. A plain alias over `string` — the value is a
747
+ * resolvable asset URL — but the named type lets the pattern-sync tool
748
+ * (`tools/almadar-pattern-sync/parser.ts`) detect a component prop as an asset
749
+ * field (tagged `asset`) the same way `EventKey`/`LucideIcon` are detected by
750
+ * type identity. Components annotate image/url props as `AssetUrl` (`src`,
751
+ * `backgroundImage`, `avatar`, …); the generator emits a `string` config knob
752
+ * declared as the `asset` config type, which the property inspector dispatches
753
+ * an AssetPicker on. Not branded — asset urls originate from user data, so cast
754
+ * friction would buy nothing; the value is the marker the tool finds.
755
+ */
756
+ type AssetUrl = string;
757
+ /**
758
+ * A neutral position in scene space: 2D (`x`,`y`) or optionally 3D (`x`,`y`,`z`).
759
+ * The single coordinate type shared by every drawable descriptor and camera pose
760
+ * across the 2D and 3D canvas hosts, so a scene composes from the same `{x,y,z?}`
761
+ * regardless of projection or painter. Logical, not pixel — the host's projector
762
+ * maps a `ScenePos` to screen space.
763
+ */
764
+ interface ScenePos {
765
+ x: number;
766
+ y: number;
767
+ z?: number;
768
+ }
769
+ declare const ScenePosSchema: z.ZodObject<{
770
+ x: z.ZodNumber;
771
+ y: z.ZodNumber;
772
+ z: z.ZodOptional<z.ZodNumber>;
773
+ }, "strip", z.ZodTypeAny, {
774
+ x: number;
775
+ y: number;
776
+ z?: number | undefined;
777
+ }, {
778
+ x: number;
779
+ y: number;
780
+ z?: number | undefined;
781
+ }>;
782
+ /**
783
+ * Camera behaviors, unifying the former per-host vocab (2D `camera` string +
784
+ * 3D `cameraMode`). `isometric`/`top-down` are fixed framings; `follow`/`chase`
785
+ * track a target; `perspective` is the 3D dramatic framing.
786
+ */
787
+ declare const CAMERA_MODES: readonly ["isometric", "perspective", "top-down", "follow", "chase"];
788
+ type CameraMode = (typeof CAMERA_MODES)[number];
789
+ declare const CameraModeSchema: z.ZodEnum<["isometric", "perspective", "top-down", "follow", "chase"]>;
790
+ /**
791
+ * A neutral camera pose shared by the 2D and 3D canvas hosts, so `type: canvas`
792
+ * carries one camera object regardless of painter. `pos`/`target` are `ScenePos`
793
+ * (logical scene space, not pixels); `zoom` scales the view (the former `scale`);
794
+ * `fov` is the 3D field of view; `mode` selects the framing/tracking behavior.
795
+ * Every field is optional — an omitted camera means the host's default framing.
796
+ */
797
+ interface Camera {
798
+ pos?: ScenePos;
799
+ target?: ScenePos;
800
+ zoom?: number;
801
+ fov?: number;
802
+ mode?: CameraMode;
803
+ }
804
+ declare const CameraSchema: z.ZodObject<{
805
+ pos: z.ZodOptional<z.ZodObject<{
806
+ x: z.ZodNumber;
807
+ y: z.ZodNumber;
808
+ z: z.ZodOptional<z.ZodNumber>;
809
+ }, "strip", z.ZodTypeAny, {
810
+ x: number;
811
+ y: number;
812
+ z?: number | undefined;
813
+ }, {
814
+ x: number;
815
+ y: number;
816
+ z?: number | undefined;
817
+ }>>;
818
+ target: z.ZodOptional<z.ZodObject<{
819
+ x: z.ZodNumber;
820
+ y: z.ZodNumber;
821
+ z: z.ZodOptional<z.ZodNumber>;
822
+ }, "strip", z.ZodTypeAny, {
823
+ x: number;
824
+ y: number;
825
+ z?: number | undefined;
826
+ }, {
827
+ x: number;
828
+ y: number;
829
+ z?: number | undefined;
830
+ }>>;
831
+ zoom: z.ZodOptional<z.ZodNumber>;
832
+ fov: z.ZodOptional<z.ZodNumber>;
833
+ mode: z.ZodOptional<z.ZodEnum<["isometric", "perspective", "top-down", "follow", "chase"]>>;
834
+ }, "strip", z.ZodTypeAny, {
835
+ target?: {
836
+ x: number;
837
+ y: number;
838
+ z?: number | undefined;
839
+ } | undefined;
840
+ pos?: {
841
+ x: number;
842
+ y: number;
843
+ z?: number | undefined;
844
+ } | undefined;
845
+ zoom?: number | undefined;
846
+ fov?: number | undefined;
847
+ mode?: "isometric" | "perspective" | "top-down" | "follow" | "chase" | undefined;
848
+ }, {
849
+ target?: {
850
+ x: number;
851
+ y: number;
852
+ z?: number | undefined;
853
+ } | undefined;
854
+ pos?: {
855
+ x: number;
856
+ y: number;
857
+ z?: number | undefined;
858
+ } | undefined;
859
+ zoom?: number | undefined;
860
+ fov?: number | undefined;
861
+ mode?: "isometric" | "perspective" | "top-down" | "follow" | "chase" | undefined;
862
+ }>;
863
+ type SemanticAssetRefInput = z.input<typeof SemanticAssetRefSchema>;
864
+ type AnimationDefInput = z.input<typeof AnimationDefSchema>;
865
+ type AssetCatalogEntryInput = z.input<typeof AssetCatalogEntrySchema>;
866
+ type SpriteSheetAtlasInput = z.input<typeof SpriteSheetAtlasSchema>;
867
+ /**
868
+ * Creates a semantic asset key from role and category.
869
+ *
870
+ * Generates a unique asset identifier by combining role and category
871
+ * with a colon separator. Used for asset management and lookup.
872
+ *
873
+ * @param {EntityRole} role - Entity role (e.g., 'player', 'enemy')
874
+ * @param {string} category - Asset category (e.g., 'sprite', 'animation')
875
+ * @returns {string} Asset key in format 'role:category'
876
+ *
877
+ * @example
878
+ * createAssetKey('player', 'sprite'); // returns 'player:sprite'
879
+ * createAssetKey('enemy', 'animation'); // returns 'enemy:animation'
880
+ */
881
+ declare function createAssetKey(role: EntityRole, category: string): string;
882
+ /**
883
+ * Parses an asset key into role and category components.
884
+ *
885
+ * Deconstructs an asset key string (format 'role:category') into its
886
+ * constituent parts. Returns null if the key format is invalid.
887
+ *
888
+ * @param {string} key - Asset key in format 'role:category'
889
+ * @returns {{ role: string; category: string } | null} Parsed components or null
890
+ *
891
+ * @example
892
+ * parseAssetKey('player:sprite'); // returns { role: 'player', category: 'sprite' }
893
+ * parseAssetKey('enemy:animation'); // returns { role: 'enemy', category: 'animation' }
894
+ * parseAssetKey('invalid'); // returns null
895
+ */
896
+ declare function parseAssetKey(key: string): {
897
+ role: string;
898
+ category: string;
899
+ } | null;
900
+ /**
901
+ * Gets common animations for an entity role.
902
+ *
903
+ * Returns an array of default animation names appropriate for the
904
+ * specified entity role. Used for asset configuration and validation.
905
+ *
906
+ * @param {EntityRole} role - Entity role
907
+ * @returns {string[]} Array of default animation names
908
+ *
909
+ * @example
910
+ * getDefaultAnimationsForRole('player'); // returns ['idle', 'run', 'jump', 'fall', 'attack', 'hurt', 'die']
911
+ * getDefaultAnimationsForRole('enemy'); // returns ['idle', 'walk', 'attack', 'hurt', 'die']
912
+ */
913
+ declare function getDefaultAnimationsForRole(role: EntityRole): string[];
914
+ /**
915
+ * Validates that an asset reference has required animations.
916
+ *
917
+ * Checks if an asset reference contains all required animations.
918
+ * Returns an error message if validation fails, or null if valid.
919
+ *
920
+ * @param {SemanticAssetRef} assetRef - Asset reference to validate
921
+ * @param {string[]} requiredAnimations - Required animation names
922
+ * @returns {string | null} Error message or null if valid
923
+ *
924
+ * @example
925
+ * validateAssetAnimations(assetRef, ['idle', 'run']); // returns null if valid
926
+ * validateAssetAnimations(assetRef, ['missing-animation']); // returns error message
927
+ */
928
+ declare function validateAssetAnimations(assetRef: SemanticAssetRef, requiredAnimations: string[]): {
929
+ valid: boolean;
930
+ missing: string[];
931
+ };
932
+
933
+ /**
934
+ * Entity Types for Orbital Units
935
+ *
936
+ * Defines the OrbitalEntity type - the nucleus of an Orbital Unit.
937
+ *
938
+ * @packageDocumentation
939
+ */
940
+
941
+ /**
942
+ * Entity persistence types.
943
+ *
944
+ * - persistent: Stored in database (has collection)
945
+ * - runtime: Exists only at runtime (not persisted)
946
+ */
947
+ type EntityPersistence = 'persistent' | 'runtime';
948
+ declare const EntityPersistenceSchema: z.ZodEnum<["persistent", "runtime"]>;
949
+ /**
950
+ * OrbitalEntity - the nucleus of an Orbital Unit.
951
+ *
952
+ * This is a simplified entity definition optimized for orbital composition.
953
+ * Collection names are derived automatically from persistence type if not provided.
954
+ */
955
+ interface OrbitalEntity {
956
+ /** Entity name (PascalCase, e.g., "Task", "User") */
957
+ name: string;
958
+ /** Entity persistence type (defaults to 'persistent' if not specified) */
959
+ persistence?: EntityPersistence;
960
+ /** Whether this entity's state is shared across all bound traits (vs per-trait copy). Orthogonal to persistence. */
961
+ shared?: boolean;
962
+ /** Collection name (auto-derived if not provided for persistent entities) */
963
+ collection?: string;
964
+ /** Entity fields */
965
+ fields: EntityField[];
966
+ /** Pre-authored instances (seed data or static reference data) */
967
+ instances?: EntityRow[];
968
+ /** Auto-add createdAt/updatedAt timestamps */
969
+ timestamps?: boolean;
970
+ /** Soft delete support */
971
+ softDelete?: boolean;
972
+ /** Human-readable description */
973
+ description?: string;
974
+ /** Visual prompt for AI generation */
975
+ visual_prompt?: string;
976
+ /** Semantic asset reference for visual representation (games) */
977
+ assetRef?: SemanticAssetRef;
978
+ }
979
+ declare const OrbitalEntitySchema: z.ZodObject<{
980
+ name: z.ZodString;
981
+ persistence: z.ZodDefault<z.ZodEnum<["persistent", "runtime"]>>;
982
+ shared: z.ZodOptional<z.ZodBoolean>;
983
+ collection: z.ZodOptional<z.ZodString>;
984
+ fields: z.ZodArray<z.ZodType<EntityField, z.ZodTypeDef, unknown>, "many">;
985
+ instances: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
986
+ timestamps: z.ZodOptional<z.ZodBoolean>;
987
+ softDelete: z.ZodOptional<z.ZodBoolean>;
988
+ description: z.ZodOptional<z.ZodString>;
989
+ visual_prompt: z.ZodOptional<z.ZodString>;
990
+ assetRef: z.ZodOptional<z.ZodObject<{
991
+ role: z.ZodString;
992
+ category: z.ZodString;
993
+ animations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
994
+ style: z.ZodOptional<z.ZodEnum<["pixel", "vector", "hd", "1-bit", "isometric"]>>;
995
+ variant: z.ZodOptional<z.ZodString>;
996
+ dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
997
+ aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
998
+ }, "strip", z.ZodTypeAny, {
999
+ role: string;
1000
+ category: string;
1001
+ animations?: string[] | undefined;
1002
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1003
+ variant?: string | undefined;
1004
+ dimension?: "2d" | "3d" | undefined;
1005
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1006
+ }, {
1007
+ role: string;
1008
+ category: string;
1009
+ animations?: string[] | undefined;
1010
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1011
+ variant?: string | undefined;
1012
+ dimension?: "2d" | "3d" | undefined;
1013
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1014
+ }>>;
1015
+ }, "strip", z.ZodTypeAny, {
1016
+ name: string;
1017
+ persistence: "persistent" | "runtime";
1018
+ fields: EntityField[];
1019
+ description?: string | undefined;
1020
+ shared?: boolean | undefined;
1021
+ collection?: string | undefined;
1022
+ instances?: Record<string, unknown>[] | undefined;
1023
+ timestamps?: boolean | undefined;
1024
+ softDelete?: boolean | undefined;
1025
+ visual_prompt?: string | undefined;
1026
+ assetRef?: {
1027
+ role: string;
1028
+ category: string;
1029
+ animations?: string[] | undefined;
1030
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1031
+ variant?: string | undefined;
1032
+ dimension?: "2d" | "3d" | undefined;
1033
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1034
+ } | undefined;
1035
+ }, {
1036
+ name: string;
1037
+ fields: unknown[];
1038
+ description?: string | undefined;
1039
+ persistence?: "persistent" | "runtime" | undefined;
1040
+ shared?: boolean | undefined;
1041
+ collection?: string | undefined;
1042
+ instances?: Record<string, unknown>[] | undefined;
1043
+ timestamps?: boolean | undefined;
1044
+ softDelete?: boolean | undefined;
1045
+ visual_prompt?: string | undefined;
1046
+ assetRef?: {
1047
+ role: string;
1048
+ category: string;
1049
+ animations?: string[] | undefined;
1050
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1051
+ variant?: string | undefined;
1052
+ dimension?: "2d" | "3d" | undefined;
1053
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1054
+ } | undefined;
1055
+ }>;
1056
+ type OrbitalEntityInput = z.input<typeof OrbitalEntitySchema>;
1057
+ /** Alias for OrbitalEntity - preferred name */
1058
+ type Entity = OrbitalEntity;
1059
+ /** Alias for OrbitalEntitySchema - preferred name */
1060
+ declare const EntitySchema: z.ZodObject<{
1061
+ name: z.ZodString;
1062
+ persistence: z.ZodDefault<z.ZodEnum<["persistent", "runtime"]>>;
1063
+ shared: z.ZodOptional<z.ZodBoolean>;
1064
+ collection: z.ZodOptional<z.ZodString>;
1065
+ fields: z.ZodArray<z.ZodType<EntityField, z.ZodTypeDef, unknown>, "many">;
1066
+ instances: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
1067
+ timestamps: z.ZodOptional<z.ZodBoolean>;
1068
+ softDelete: z.ZodOptional<z.ZodBoolean>;
1069
+ description: z.ZodOptional<z.ZodString>;
1070
+ visual_prompt: z.ZodOptional<z.ZodString>;
1071
+ assetRef: z.ZodOptional<z.ZodObject<{
1072
+ role: z.ZodString;
1073
+ category: z.ZodString;
1074
+ animations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1075
+ style: z.ZodOptional<z.ZodEnum<["pixel", "vector", "hd", "1-bit", "isometric"]>>;
1076
+ variant: z.ZodOptional<z.ZodString>;
1077
+ dimension: z.ZodOptional<z.ZodEnum<["2d", "3d"]>>;
1078
+ aspect: z.ZodOptional<z.ZodEnum<["1:1", "16:9", "5:7", "8:1"]>>;
1079
+ }, "strip", z.ZodTypeAny, {
1080
+ role: string;
1081
+ category: string;
1082
+ animations?: string[] | undefined;
1083
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1084
+ variant?: string | undefined;
1085
+ dimension?: "2d" | "3d" | undefined;
1086
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1087
+ }, {
1088
+ role: string;
1089
+ category: string;
1090
+ animations?: string[] | undefined;
1091
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1092
+ variant?: string | undefined;
1093
+ dimension?: "2d" | "3d" | undefined;
1094
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1095
+ }>>;
1096
+ }, "strip", z.ZodTypeAny, {
1097
+ name: string;
1098
+ persistence: "persistent" | "runtime";
1099
+ fields: EntityField[];
1100
+ description?: string | undefined;
1101
+ shared?: boolean | undefined;
1102
+ collection?: string | undefined;
1103
+ instances?: Record<string, unknown>[] | undefined;
1104
+ timestamps?: boolean | undefined;
1105
+ softDelete?: boolean | undefined;
1106
+ visual_prompt?: string | undefined;
1107
+ assetRef?: {
1108
+ role: string;
1109
+ category: string;
1110
+ animations?: string[] | undefined;
1111
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1112
+ variant?: string | undefined;
1113
+ dimension?: "2d" | "3d" | undefined;
1114
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1115
+ } | undefined;
1116
+ }, {
1117
+ name: string;
1118
+ fields: unknown[];
1119
+ description?: string | undefined;
1120
+ persistence?: "persistent" | "runtime" | undefined;
1121
+ shared?: boolean | undefined;
1122
+ collection?: string | undefined;
1123
+ instances?: Record<string, unknown>[] | undefined;
1124
+ timestamps?: boolean | undefined;
1125
+ softDelete?: boolean | undefined;
1126
+ visual_prompt?: string | undefined;
1127
+ assetRef?: {
1128
+ role: string;
1129
+ category: string;
1130
+ animations?: string[] | undefined;
1131
+ style?: "pixel" | "vector" | "hd" | "1-bit" | "isometric" | undefined;
1132
+ variant?: string | undefined;
1133
+ dimension?: "2d" | "3d" | undefined;
1134
+ aspect?: "1:1" | "16:9" | "5:7" | "8:1" | undefined;
1135
+ } | undefined;
1136
+ }>;
1137
+ /**
1138
+ * Derives the collection name for a persistent entity.
1139
+ *
1140
+ * Generates the database collection name by converting the entity name
1141
+ * to lowercase and adding an 's' suffix (simple pluralization).
1142
+ * Returns undefined for non-persistent (runtime) entities.
1143
+ *
1144
+ * @param {OrbitalEntity} entity - Entity to derive collection name for
1145
+ * @returns {string | undefined} Collection name or undefined for non-persistent entities
1146
+ *
1147
+ * @example
1148
+ * deriveCollection({ name: 'User', persistence: 'persistent' }); // returns 'users'
1149
+ * deriveCollection({ name: 'Task', persistence: 'runtime' }); // returns undefined
1150
+ */
1151
+ declare function deriveCollection(entity: OrbitalEntity): string | undefined;
1152
+ /**
1153
+ * Checks if an entity is runtime-only (not persisted).
1154
+ *
1155
+ * Type guard to determine if an entity exists only at runtime
1156
+ * and is not stored in the database.
1157
+ *
1158
+ * @param {OrbitalEntity} entity - Entity to check
1159
+ * @returns {boolean} True if entity is runtime-only, false otherwise
1160
+ *
1161
+ * @example
1162
+ * isRuntimeEntity({ persistence: 'runtime' }); // returns true
1163
+ * isRuntimeEntity({ persistence: 'persistent' }); // returns false
1164
+ */
1165
+ declare function isRuntimeEntity(entity: OrbitalEntity): boolean;
1166
+ /**
1167
+ * Checks whether an entity's persistence mode allows `persistence` /
1168
+ * `collection` overrides at the factory call site.
1169
+ *
1170
+ * Only `persistent` entities (explicit or default) support these overrides.
1171
+ * Runtime entities are fixed; callers must not expose `persistence` or
1172
+ * `collection` params for them.
1173
+ *
1174
+ * @param persistence - The entity persistence mode (undefined = default persistent)
1175
+ * @returns True when overrides are allowed, false otherwise
1176
+ *
1177
+ * @example
1178
+ * persistenceModeAllowsOverrides('persistent'); // returns true
1179
+ * persistenceModeAllowsOverrides('runtime'); // returns false
1180
+ * persistenceModeAllowsOverrides(undefined); // returns true (default persistent)
1181
+ */
1182
+ declare function persistenceModeAllowsOverrides(persistence: EntityPersistence | undefined): boolean;
1183
+ /**
1184
+ * A single field value at runtime.
1185
+ * Union of all possible types from FieldType: string, number, boolean, date, array, nested.
1186
+ * The nested-record branch's index signature tolerates `undefined` so that
1187
+ * TypeScript optional properties (`x?: string`, carrying `string | undefined`)
1188
+ * on EntityRow extenders typecheck without ceremony. At JSON serialization
1189
+ * time `undefined` is equivalent to "key absent" and never appears on the
1190
+ * wire; the inclusion here is a pure type-surface accommodation.
1191
+ */
1192
+ type FieldValue = string | number | boolean | Date | null | string[] | FieldValue[] | {
1193
+ [key: string]: FieldValue | undefined;
1194
+ };
1195
+ /**
1196
+ * Runtime guard for `FieldValue` — narrows interpreter-produced `unknown`
1197
+ * values at typed substrate boundaries (e.g. `IntegrationContext.http` body).
1198
+ */
1199
+ declare function isFieldValue(value: unknown): value is FieldValue;
1200
+ /**
1201
+ * One instance of an entity with actual field values.
1202
+ * The shape is determined by the Entity definition at schema time.
1203
+ *
1204
+ * @example
1205
+ * // Entity defines: Patient { fullName: string, age: number, active: boolean }
1206
+ * // EntityRow is: { id: "p1", fullName: "Sarah", age: 34, active: true }
1207
+ */
1208
+ type EntityRow = {
1209
+ id?: string;
1210
+ } & Record<string, FieldValue | undefined>;
1211
+ /**
1212
+ * A field-TYPED `EntityRow` — the SINGLE entity type, refined with a concrete
1213
+ * field SHAPE `S`. Non-optional members of `S` are REQUIRED, each with its real
1214
+ * type; the result stays `& EntityRow`, so the index signature is intact and
1215
+ * every other field is still field-open — any domain entity that provides those
1216
+ * fields satisfies it.
1217
+ *
1218
+ * One declaration, two jobs: (1) TypeScript enforces the bound entity has the
1219
+ * fields WITH their types (a behavior binding a thinner/mistyped entity fails to
1220
+ * typecheck); and (2) pattern-sync reads the same type and writes the entity
1221
+ * prop's field shape (`properties` + `requiredFields`) onto the registry, so
1222
+ * lolo-ui emits a COMPLETE `entity { … }` (every field, typed + demo-seeded) and
1223
+ * the `ORB_X_ENTITY_PROP_CONTRACT` validator rejects an incompatible bind at
1224
+ * `orbital validate`. (A raw `EntityRow & { rating: number }` intersection is
1225
+ * equivalent for one-off shapes.)
1226
+ *
1227
+ * @example
1228
+ * // HeroOrganism renders entity.title / entity.subtitle:
1229
+ * entity?: EntityWith<{ title: string; subtitle?: string }>;
1230
+ * // entity.title → string (required)
1231
+ * // entity.subtitle → string | undefined (optional)
1232
+ * // entity.other → FieldValue | undefined (still field-open)
1233
+ */
1234
+ type EntityWith<S extends object> = EntityRow & S;
1235
+ /**
1236
+ * Collection of entity instances keyed by entity name.
1237
+ * Used by OrbPreview mockData, OrbitalServerRuntime state, data grids, etc.
1238
+ *
1239
+ * @example
1240
+ * const data: EntityData = {
1241
+ * Patient: [{ id: "1", fullName: "Sarah", age: 34 }],
1242
+ * QueueEntry: [{ id: "1", patientName: "Sarah", waitMinutes: 12 }],
1243
+ * };
1244
+ */
1245
+ type EntityData = Record<string, EntityRow[]>;
1246
+
1247
+ /**
1248
+ * Pattern Types (Auto-Generated)
1249
+ *
1250
+ * DO NOT EDIT MANUALLY — regenerated by almadar-pattern-sync `patterns` command.
1251
+ *
1252
+ * Generated: 2026-07-13T15:27:57.844Z
1253
+ * Pattern count: 261
1254
+ */
1255
+
1256
+ /**
1257
+ * Object-typed pattern prop value. Represents dynamic config objects
1258
+ * within pattern props (e.g., style, assetManifest, payload).
1259
+ */
1260
+ type PatternPropValue = Record<string, FieldValue | undefined>;
1261
+ /**
1262
+ * All valid pattern type names from @almadar/core/patterns registry.
1263
+ * Use this type in render-ui effects for compile-time validation.
1264
+ */
1265
+ type PatternType = 'about-page-template' | 'accordion' | 'action-palette' | 'action-tile' | 'activation-block' | 'alert' | 'algorithm-canvas' | 'animated-counter' | 'animated-graphic' | 'animated-reveal' | 'article-section' | 'aside' | 'atlas-image' | 'atlas-panel' | 'auth-layout' | 'avatar' | 'badge' | 'behavior-view' | 'biology-canvas' | 'bloom-quiz-block' | 'book-chapter-view' | 'book-cover-page' | 'book-nav-bar' | 'book-table-of-contents' | 'book-viewer' | 'box' | 'branching-logic-builder' | 'breadcrumb' | 'button' | 'calendar-grid' | 'canvas' | 'canvas-2d' | 'card' | 'carousel' | 'case-study-card' | 'case-study-organism' | 'center' | 'chart' | 'chart-legend' | 'chat-bar' | 'checkbox' | 'chemistry-canvas' | 'choice-button' | 'code-block' | 'code-runner-panel' | 'community-links' | 'conditional-wrapper' | 'confetti-effect' | 'confirm-dialog' | 'connection-block' | 'container' | 'content-renderer' | 'content-section' | 'control-button' | 'control-grid' | 'counter-template' | 'cta-banner' | 'dashboard-grid' | 'dashboard-layout' | 'data-grid' | 'data-list' | 'date-range-picker' | 'date-range-selector' | 'day-cell' | 'detail-panel' | 'dialog' | 'dialogue-bubble' | 'divider' | 'doc-breadcrumb' | 'doc-pagination' | 'doc-search' | 'doc-sidebar' | 'doc-toc' | 'document-viewer' | 'draw-shape' | 'draw-shape-layer' | 'draw-sprite' | 'draw-sprite-layer' | 'draw-text' | 'draw-text-layer' | 'drawer' | 'drawer-slot' | 'edge-decoration' | 'empty-state' | 'entity-cards' | 'entity-list' | 'entity-table' | 'error-boundary' | 'error-state' | 'feature-card' | 'feature-detail-page-template' | 'feature-grid' | 'feature-grid-organism' | 'file-tree' | 'filter-group' | 'filter-pill' | 'flex' | 'flip-card' | 'flip-container' | 'floating-action-button' | 'form' | 'form-actions' | 'form-field' | 'form-layout' | 'form-section' | 'form-section-header' | 'game-audio-toggle' | 'game-hud' | 'game-icon' | 'game-menu' | 'game-shell' | 'generic-app-template' | 'geometric-pattern' | 'gradient-divider' | 'graph-canvas' | 'graph-view' | 'grid' | 'header' | 'health-bar' | 'hero-organism' | 'hero-section' | 'hstack' | 'icon' | 'infinite-scroll-sentinel' | 'input' | 'input-group' | 'install-box' | 'jazari-state-machine' | 'label' | 'landing-page-template' | 'law-reference-tooltip' | 'learning-canvas' | 'lightbox' | 'likert-scale' | 'line-chart' | 'loading-state' | 'map-view' | 'markdown-content' | 'marketing-footer' | 'marketing-stat-card' | 'master-detail' | 'master-detail-layout' | 'math-canvas' | 'matrix-question' | 'media-gallery' | 'menu' | 'meter' | 'modal' | 'modal-slot' | 'module-card' | 'navigation' | 'notification' | 'number-stepper' | 'option-constraint-group' | 'orbital-visualization' | 'overlay' | 'page-header' | 'pagination' | 'pattern-tile' | 'physics-canvas' | 'popover' | 'positioned-canvas' | 'pricing-card' | 'pricing-grid' | 'pricing-organism' | 'pricing-page-template' | 'progress-bar' | 'progress-dots' | 'pull-quote' | 'pull-to-refresh' | 'qr-scanner' | 'quiz-block' | 'radio' | 'range-slider' | 'reflection-block' | 'relation-select' | 'repeatable-form-section' | 'reply-tree' | 'rich-block-editor' | 'runtime-debugger' | 'scaled-diagram' | 'score-display' | 'search-input' | 'section' | 'section-header' | 'segment-renderer' | 'select' | 'sequence-bar' | 'service-catalog' | 'showcase-card' | 'showcase-organism' | 'side-panel' | 'sidebar' | 'signature-pad' | 'simple-grid' | 'skeleton' | 'social-proof' | 'sortable-list' | 'spacer' | 'sparkline' | 'spinner' | 'split' | 'split-pane' | 'split-section' | 'stack' | 'star-rating' | 'stat-badge' | 'stat-card' | 'stat-display' | 'state-graph' | 'state-json-view' | 'state-machine-view' | 'stats-grid' | 'stats-organism' | 'status-dot' | 'step-flow' | 'step-flow-organism' | 'subagent-trace-panel' | 'svg-branch' | 'svg-connection' | 'svg-flow' | 'svg-grid' | 'svg-lobe' | 'svg-mesh' | 'svg-morph' | 'svg-node' | 'svg-pulse' | 'svg-ring' | 'svg-shield' | 'svg-stack' | 'swipeable-row' | 'switch' | 'tabbed-container' | 'table-view' | 'tabs' | 'tag-cloud' | 'tag-input' | 'team-card' | 'team-organism' | 'text-highlight' | 'textarea' | 'theme-toggle' | 'time-slot-cell' | 'timeline' | 'timer-display' | 'toast-slot' | 'tooltip' | 'trait-frame' | 'trait-slot' | 'trend-indicator' | 'typewriter-text' | 'typography' | 'ui-slot-renderer' | 'upload-drop-zone' | 'version-diff' | 'violation-alert' | 'vote-stack' | 'vstack' | 'wizard-container' | 'wizard-navigation' | 'wizard-progress';
1266
+ /**
1267
+ * Pattern props map — each pattern type maps to its valid props interface.
1268
+ */
1269
+ interface PatternPropsMap {
1270
+ 'about-page-template': {
1271
+ type: 'about-page-template';
1272
+ entity: PatternPropValue | string | SExpr;
1273
+ className?: string | SExpr;
1274
+ };
1275
+ 'accordion': {
1276
+ type: 'accordion';
1277
+ items: unknown[] | string | SExpr;
1278
+ multiple?: boolean | string | SExpr;
1279
+ defaultOpenItems?: unknown[] | string | SExpr;
1280
+ defaultOpen?: unknown[] | string | SExpr;
1281
+ openItems?: unknown[] | string | SExpr;
1282
+ onItemToggle?: ((...args: unknown[]) => unknown) | string | SExpr;
1283
+ className?: string | SExpr;
1284
+ toggleEvent?: string | SExpr;
1285
+ };
1286
+ 'action-palette': {
1287
+ type: 'action-palette';
1288
+ actions: unknown[] | string | SExpr;
1289
+ usedActionIds?: unknown[] | string | SExpr;
1290
+ allowDuplicates?: boolean | string | SExpr;
1291
+ categoryColors?: PatternPropValue | string | SExpr;
1292
+ size?: string | SExpr;
1293
+ label?: string | SExpr;
1294
+ className?: string | SExpr;
1295
+ };
1296
+ 'action-tile': {
1297
+ type: 'action-tile';
1298
+ className?: string | SExpr;
1299
+ isLoading?: boolean | string | SExpr;
1300
+ error?: PatternPropValue | string | SExpr;
1301
+ sortBy?: string | SExpr;
1302
+ sortDirection?: string | SExpr;
1303
+ searchValue?: string | SExpr;
1304
+ page?: number | string | SExpr;
1305
+ pageSize?: number | string | SExpr;
1306
+ totalCount?: number | string | SExpr;
1307
+ activeFilters?: PatternPropValue | string | SExpr;
1308
+ selectedIds?: unknown[] | string | SExpr;
1309
+ action: PatternPropValue | string | SExpr;
1310
+ size?: string | SExpr;
1311
+ disabled?: boolean | string | SExpr;
1312
+ categoryColors?: PatternPropValue | string | SExpr;
1313
+ };
1314
+ 'activation-block': {
1315
+ type: 'activation-block';
1316
+ question: string | SExpr;
1317
+ savedResponse?: string | SExpr;
1318
+ saveEvent?: string | SExpr;
1319
+ className?: string | SExpr;
1320
+ };
1321
+ 'alert': {
1322
+ type: 'alert';
1323
+ children?: unknown | string | SExpr;
1324
+ message?: string | SExpr;
1325
+ variant?: string | SExpr;
1326
+ title?: string | SExpr;
1327
+ dismissible?: boolean | string | SExpr;
1328
+ onDismiss?: ((...args: unknown[]) => unknown) | string | SExpr;
1329
+ onClose?: ((...args: unknown[]) => unknown) | string | SExpr;
1330
+ actions?: unknown | string | SExpr;
1331
+ className?: string | SExpr;
1332
+ dismissEvent?: string | SExpr;
1333
+ };
1334
+ 'algorithm-canvas': {
1335
+ type: 'algorithm-canvas';
1336
+ className?: string | SExpr;
1337
+ width?: number | string | SExpr;
1338
+ height?: number | string | SExpr;
1339
+ title?: string | SExpr;
1340
+ backgroundColor?: string | SExpr;
1341
+ bars?: unknown[] | string | SExpr;
1342
+ cells?: unknown[] | string | SExpr;
1343
+ pointers?: unknown[] | string | SExpr;
1344
+ shapes?: unknown[] | string | SExpr;
1345
+ interactive?: boolean | string | SExpr;
1346
+ animate?: boolean | string | SExpr;
1347
+ onShapeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1348
+ isLoading?: boolean | string | SExpr;
1349
+ error?: PatternPropValue | string | SExpr;
1350
+ };
1351
+ 'animated-counter': {
1352
+ type: 'animated-counter';
1353
+ value: number | string | SExpr;
1354
+ duration?: number | string | SExpr;
1355
+ prefix?: string | SExpr;
1356
+ suffix?: string | SExpr;
1357
+ className?: string | SExpr;
1358
+ };
1359
+ 'animated-graphic': {
1360
+ type: 'animated-graphic';
1361
+ className?: string | SExpr;
1362
+ src?: unknown | string | SExpr;
1363
+ svgContent?: string | SExpr;
1364
+ animation?: string | SExpr;
1365
+ animate?: boolean | string | SExpr;
1366
+ duration?: number | string | SExpr;
1367
+ delay?: number | string | SExpr;
1368
+ easing?: string | SExpr;
1369
+ width?: string | number | SExpr;
1370
+ height?: string | number | SExpr;
1371
+ strokeColor?: string | SExpr;
1372
+ fillColor?: string | SExpr;
1373
+ alt?: string | SExpr;
1374
+ };
1375
+ 'animated-reveal': {
1376
+ type: 'animated-reveal';
1377
+ className?: string | SExpr;
1378
+ trigger?: string | SExpr;
1379
+ animation?: string | SExpr;
1380
+ duration?: number | string | SExpr;
1381
+ delay?: number | string | SExpr;
1382
+ threshold?: number | string | SExpr;
1383
+ once?: boolean | string | SExpr;
1384
+ animate?: boolean | string | SExpr;
1385
+ easing?: string | SExpr;
1386
+ children: unknown | ((...args: unknown[]) => unknown) | string | SExpr;
1387
+ };
1388
+ 'article-section': {
1389
+ type: 'article-section';
1390
+ title: string | SExpr;
1391
+ children: unknown | string | SExpr;
1392
+ maxWidth?: string | SExpr;
1393
+ className?: string | SExpr;
1394
+ };
1395
+ 'aside': {
1396
+ type: 'aside';
1397
+ className?: string | SExpr;
1398
+ children?: unknown | string | SExpr;
1399
+ };
1400
+ 'atlas-image': {
1401
+ type: 'atlas-image';
1402
+ asset?: PatternPropValue | string | SExpr;
1403
+ size?: number | string | SExpr;
1404
+ width?: number | string | SExpr;
1405
+ height?: number | string | SExpr;
1406
+ fill?: boolean | string | SExpr;
1407
+ fit?: string | SExpr;
1408
+ alt?: string | SExpr;
1409
+ className?: string | SExpr;
1410
+ style?: PatternPropValue | string | SExpr;
1411
+ 'aria-hidden'?: boolean | string | SExpr;
1412
+ };
1413
+ 'atlas-panel': {
1414
+ type: 'atlas-panel';
1415
+ asset?: PatternPropValue | string | SExpr;
1416
+ borderSlice?: number | string | SExpr;
1417
+ borderWidth?: number | string | SExpr;
1418
+ mode?: string | SExpr;
1419
+ className?: string | SExpr;
1420
+ style?: PatternPropValue | string | SExpr;
1421
+ children?: unknown | string | SExpr;
1422
+ 'aria-hidden'?: boolean | string | SExpr;
1423
+ };
1424
+ 'auth-layout': {
1425
+ type: 'auth-layout';
1426
+ appName?: string | SExpr;
1427
+ logo?: unknown | string | SExpr;
1428
+ backgroundImage?: unknown | string | SExpr;
1429
+ showBranding?: boolean | string | SExpr;
1430
+ brandingContent?: unknown | string | SExpr;
1431
+ };
1432
+ 'avatar': {
1433
+ type: 'avatar';
1434
+ src?: unknown | string | SExpr;
1435
+ alt?: string | SExpr;
1436
+ name?: string | SExpr;
1437
+ initials?: string | SExpr;
1438
+ icon?: unknown | string | SExpr;
1439
+ size?: string | SExpr;
1440
+ status?: string | SExpr;
1441
+ badge?: string | number | SExpr;
1442
+ className?: string | SExpr;
1443
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1444
+ action?: string | SExpr;
1445
+ actionPayload?: PatternPropValue | string | SExpr;
1446
+ };
1447
+ 'badge': {
1448
+ type: 'badge';
1449
+ className?: string | SExpr;
1450
+ variant?: string | SExpr;
1451
+ size?: string | SExpr;
1452
+ amount?: number | string | SExpr;
1453
+ label?: string | number | SExpr;
1454
+ icon?: unknown | string | SExpr;
1455
+ iconAsset?: PatternPropValue | string | SExpr;
1456
+ onRemove?: ((...args: unknown[]) => unknown) | string | SExpr;
1457
+ removeLabel?: string | SExpr;
1458
+ };
1459
+ 'behavior-view': {
1460
+ type: 'behavior-view';
1461
+ data: PatternPropValue | string | SExpr;
1462
+ };
1463
+ 'biology-canvas': {
1464
+ type: 'biology-canvas';
1465
+ className?: string | SExpr;
1466
+ width?: number | string | SExpr;
1467
+ height?: number | string | SExpr;
1468
+ title?: string | SExpr;
1469
+ backgroundColor?: string | SExpr;
1470
+ nodes?: unknown[] | string | SExpr;
1471
+ edges?: unknown[] | string | SExpr;
1472
+ shapes?: unknown[] | string | SExpr;
1473
+ interactive?: boolean | string | SExpr;
1474
+ animate?: boolean | string | SExpr;
1475
+ onShapeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1476
+ isLoading?: boolean | string | SExpr;
1477
+ error?: PatternPropValue | string | SExpr;
1478
+ };
1479
+ 'bloom-quiz-block': {
1480
+ type: 'bloom-quiz-block';
1481
+ level: string | SExpr;
1482
+ question: string | SExpr;
1483
+ answer: string | SExpr;
1484
+ index?: number | string | SExpr;
1485
+ isAnswered?: boolean | string | SExpr;
1486
+ answerEvent?: string | SExpr;
1487
+ className?: string | SExpr;
1488
+ };
1489
+ 'book-chapter-view': {
1490
+ type: 'book-chapter-view';
1491
+ className?: string | SExpr;
1492
+ chapter: PatternPropValue | string | SExpr;
1493
+ orbitalSchema?: PatternPropValue | string | SExpr;
1494
+ direction?: string | SExpr;
1495
+ };
1496
+ 'book-cover-page': {
1497
+ type: 'book-cover-page';
1498
+ className?: string | SExpr;
1499
+ title: string | SExpr;
1500
+ subtitle?: string | SExpr;
1501
+ author?: string | SExpr;
1502
+ coverImageUrl?: unknown | string | SExpr;
1503
+ direction?: string | SExpr;
1504
+ };
1505
+ 'book-nav-bar': {
1506
+ type: 'book-nav-bar';
1507
+ className?: string | SExpr;
1508
+ currentPage: number | string | SExpr;
1509
+ totalPages: number | string | SExpr;
1510
+ chapterTitle?: string | SExpr;
1511
+ direction?: string | SExpr;
1512
+ };
1513
+ 'book-table-of-contents': {
1514
+ type: 'book-table-of-contents';
1515
+ className?: string | SExpr;
1516
+ parts: PatternPropValue | unknown[] | string | SExpr;
1517
+ currentChapterId?: string | SExpr;
1518
+ direction?: string | SExpr;
1519
+ };
1520
+ 'book-viewer': {
1521
+ type: 'book-viewer';
1522
+ className?: string | SExpr;
1523
+ isLoading?: boolean | string | SExpr;
1524
+ error?: PatternPropValue | string | SExpr;
1525
+ sortBy?: string | SExpr;
1526
+ sortDirection?: string | SExpr;
1527
+ searchValue?: string | SExpr;
1528
+ page?: number | string | SExpr;
1529
+ pageSize?: number | string | SExpr;
1530
+ totalCount?: number | string | SExpr;
1531
+ activeFilters?: PatternPropValue | string | SExpr;
1532
+ selectedIds?: unknown[] | string | SExpr;
1533
+ entity?: PatternPropValue | unknown[] | string | SExpr;
1534
+ initialPage?: number | string | SExpr;
1535
+ fieldMap?: PatternPropValue | string | SExpr;
1536
+ };
1537
+ 'box': {
1538
+ type: 'box';
1539
+ className?: string | SExpr;
1540
+ 'data-theme'?: string | SExpr;
1541
+ padding?: string | SExpr;
1542
+ paddingX?: string | SExpr;
1543
+ paddingY?: string | SExpr;
1544
+ margin?: string | SExpr;
1545
+ marginX?: string | SExpr;
1546
+ marginY?: string | SExpr;
1547
+ bg?: string | SExpr;
1548
+ border?: boolean | string | SExpr;
1549
+ rounded?: string | SExpr;
1550
+ shadow?: string | SExpr;
1551
+ display?: string | SExpr;
1552
+ fullWidth?: boolean | string | SExpr;
1553
+ fullHeight?: boolean | string | SExpr;
1554
+ overflow?: string | SExpr;
1555
+ position?: string | SExpr;
1556
+ as?: unknown | string | SExpr;
1557
+ action?: string | SExpr;
1558
+ actionPayload?: PatternPropValue | string | SExpr;
1559
+ hoverEvent?: string | SExpr;
1560
+ tapReveal?: boolean | string | SExpr;
1561
+ maxWidth?: string | SExpr;
1562
+ children?: unknown | string | SExpr;
1563
+ };
1564
+ 'branching-logic-builder': {
1565
+ type: 'branching-logic-builder';
1566
+ questions: unknown[] | PatternPropValue | string | SExpr;
1567
+ rules: unknown[] | PatternPropValue | string | SExpr;
1568
+ onRulesChange?: ((...args: unknown[]) => unknown) | string | SExpr;
1569
+ rulesChangeEvent?: string | SExpr;
1570
+ readOnly?: boolean | string | SExpr;
1571
+ className?: string | SExpr;
1572
+ };
1573
+ 'breadcrumb': {
1574
+ type: 'breadcrumb';
1575
+ items: unknown[] | string | SExpr;
1576
+ separator?: unknown | string | SExpr;
1577
+ maxItems?: number | string | SExpr;
1578
+ className?: string | SExpr;
1579
+ };
1580
+ 'button': {
1581
+ type: 'button';
1582
+ className?: string | SExpr;
1583
+ variant?: string | SExpr;
1584
+ size?: string | SExpr;
1585
+ isLoading?: boolean | string | SExpr;
1586
+ leftIcon?: unknown | string | SExpr;
1587
+ rightIcon?: unknown | string | SExpr;
1588
+ icon?: unknown | string | SExpr;
1589
+ iconRight?: unknown | string | SExpr;
1590
+ iconAsset?: PatternPropValue | string | SExpr;
1591
+ action?: string | SExpr;
1592
+ actionPayload?: PatternPropValue | string | SExpr;
1593
+ label?: string | SExpr;
1594
+ disabled?: boolean | string | SExpr;
1595
+ 'data-testid'?: string | SExpr;
1596
+ };
1597
+ 'calendar-grid': {
1598
+ type: 'calendar-grid';
1599
+ weekStart?: unknown | string | SExpr;
1600
+ timeSlots?: unknown[] | string | SExpr;
1601
+ events?: PatternPropValue | unknown[] | string | SExpr;
1602
+ onSlotClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1603
+ onDayClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1604
+ onEventClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1605
+ className?: string | SExpr;
1606
+ longPressEvent?: string | SExpr;
1607
+ longPressPayload?: PatternPropValue | string | SExpr;
1608
+ swipeLeftEvent?: string | SExpr;
1609
+ swipeRightEvent?: string | SExpr;
1610
+ dayWindow?: number | string | SExpr;
1611
+ };
1612
+ 'canvas': {
1613
+ type: 'canvas';
1614
+ mode?: string | SExpr;
1615
+ drawables?: unknown[] | string | SExpr;
1616
+ camera?: PatternPropValue | string | SExpr;
1617
+ projection?: string | SExpr;
1618
+ className?: string | SExpr;
1619
+ isLoading?: boolean | string | SExpr;
1620
+ unitScale?: number | string | SExpr;
1621
+ showMinimap?: boolean | string | SExpr;
1622
+ backgroundImage?: unknown | PatternPropValue | string | SExpr;
1623
+ backgroundColor?: string | SExpr;
1624
+ worldWidth?: number | string | SExpr;
1625
+ worldHeight?: number | string | SExpr;
1626
+ pixelsPerUnit?: number | string | SExpr;
1627
+ showGrid?: boolean | string | SExpr;
1628
+ shadows?: boolean | string | SExpr;
1629
+ showCoordinates?: boolean | string | SExpr;
1630
+ showTileInfo?: boolean | string | SExpr;
1631
+ fogOfWar?: unknown[] | string | SExpr;
1632
+ tileClickEvent?: string | SExpr;
1633
+ unitClickEvent?: string | SExpr;
1634
+ tileHoverEvent?: string | SExpr;
1635
+ tileLeaveEvent?: string | SExpr;
1636
+ featureClickEvent?: string | SExpr;
1637
+ keyMap?: PatternPropValue | string | SExpr;
1638
+ keyUpMap?: PatternPropValue | string | SExpr;
1639
+ };
1640
+ 'canvas-2d': {
1641
+ type: 'canvas-2d';
1642
+ className?: string | SExpr;
1643
+ isLoading?: boolean | string | SExpr;
1644
+ error?: PatternPropValue | string | SExpr;
1645
+ projection?: string | SExpr;
1646
+ drawables?: unknown[] | string | SExpr;
1647
+ backgroundImage?: unknown | PatternPropValue | string | SExpr;
1648
+ tileClickEvent?: string | SExpr;
1649
+ unitClickEvent?: string | SExpr;
1650
+ tileHoverEvent?: string | SExpr;
1651
+ tileLeaveEvent?: string | SExpr;
1652
+ keyMap?: PatternPropValue | string | SExpr;
1653
+ keyUpMap?: PatternPropValue | string | SExpr;
1654
+ camera?: string | SExpr;
1655
+ scale?: number | string | SExpr;
1656
+ showMinimap?: boolean | string | SExpr;
1657
+ followTarget?: PatternPropValue | string | SExpr;
1658
+ cameraPos?: PatternPropValue | string | SExpr;
1659
+ bgColor?: string | SExpr;
1660
+ };
1661
+ 'card': {
1662
+ type: 'card';
1663
+ className?: string | SExpr;
1664
+ variant?: string | SExpr;
1665
+ padding?: string | SExpr;
1666
+ title?: string | SExpr;
1667
+ subtitle?: string | SExpr;
1668
+ shadow?: string | SExpr;
1669
+ look?: string | SExpr;
1670
+ children?: unknown | string | SExpr;
1671
+ action?: string | SExpr;
1672
+ loading?: boolean | string | SExpr;
1673
+ };
1674
+ 'carousel': {
1675
+ type: 'carousel';
1676
+ items: unknown[] | string | SExpr;
1677
+ renderItem?: ((...args: unknown[]) => unknown) | string | SExpr;
1678
+ children?: ((...args: unknown[]) => unknown) | string | SExpr;
1679
+ autoPlay?: boolean | string | SExpr;
1680
+ autoPlayInterval?: number | string | SExpr;
1681
+ showDots?: boolean | string | SExpr;
1682
+ showArrows?: boolean | string | SExpr;
1683
+ loop?: boolean | string | SExpr;
1684
+ slideChangeEvent?: string | SExpr;
1685
+ slideChangePayload?: PatternPropValue | string | SExpr;
1686
+ className?: string | SExpr;
1687
+ };
1688
+ 'case-study-card': {
1689
+ type: 'case-study-card';
1690
+ title: string | SExpr;
1691
+ description: string | SExpr;
1692
+ category: string | SExpr;
1693
+ categoryColor?: string | SExpr;
1694
+ href: string | SExpr;
1695
+ linkLabel?: string | SExpr;
1696
+ className?: string | SExpr;
1697
+ };
1698
+ 'case-study-organism': {
1699
+ type: 'case-study-organism';
1700
+ className?: string | SExpr;
1701
+ isLoading?: boolean | string | SExpr;
1702
+ error?: PatternPropValue | string | SExpr;
1703
+ sortBy?: string | SExpr;
1704
+ sortDirection?: string | SExpr;
1705
+ searchValue?: string | SExpr;
1706
+ page?: number | string | SExpr;
1707
+ pageSize?: number | string | SExpr;
1708
+ totalCount?: number | string | SExpr;
1709
+ activeFilters?: PatternPropValue | string | SExpr;
1710
+ selectedIds?: unknown[] | string | SExpr;
1711
+ entity?: PatternPropValue | unknown[] | string | SExpr;
1712
+ heading?: string | SExpr;
1713
+ subtitle?: string | SExpr;
1714
+ };
1715
+ 'center': {
1716
+ type: 'center';
1717
+ inline?: boolean | string | SExpr;
1718
+ horizontal?: boolean | string | SExpr;
1719
+ vertical?: boolean | string | SExpr;
1720
+ minHeight?: string | number | SExpr;
1721
+ fullHeight?: boolean | string | SExpr;
1722
+ fullWidth?: boolean | string | SExpr;
1723
+ className?: string | SExpr;
1724
+ style?: PatternPropValue | string | SExpr;
1725
+ children: unknown | string | SExpr;
1726
+ as?: unknown | string | SExpr;
1727
+ };
1728
+ 'chart': {
1729
+ type: 'chart';
1730
+ title?: string | SExpr;
1731
+ subtitle?: string | SExpr;
1732
+ chartType?: string | SExpr;
1733
+ look?: string | SExpr;
1734
+ series?: unknown[] | string | SExpr;
1735
+ data?: unknown[] | string | SExpr;
1736
+ scatterData?: unknown[] | string | SExpr;
1737
+ height?: number | string | SExpr;
1738
+ showLegend?: boolean | string | SExpr;
1739
+ showValues?: boolean | string | SExpr;
1740
+ stack?: string | SExpr;
1741
+ timeAxis?: boolean | string | SExpr;
1742
+ drillEvent?: string | SExpr;
1743
+ actions?: unknown[] | string | SExpr;
1744
+ isLoading?: boolean | string | SExpr;
1745
+ error?: PatternPropValue | string | SExpr;
1746
+ className?: string | SExpr;
1747
+ };
1748
+ 'chart-legend': {
1749
+ type: 'chart-legend';
1750
+ items: unknown[] | string | SExpr;
1751
+ className?: string | SExpr;
1752
+ direction?: string | SExpr;
1753
+ };
1754
+ 'chat-bar': {
1755
+ type: 'chat-bar';
1756
+ className?: string | SExpr;
1757
+ isLoading?: boolean | string | SExpr;
1758
+ error?: PatternPropValue | string | SExpr;
1759
+ sortBy?: string | SExpr;
1760
+ sortDirection?: string | SExpr;
1761
+ searchValue?: string | SExpr;
1762
+ page?: number | string | SExpr;
1763
+ pageSize?: number | string | SExpr;
1764
+ totalCount?: number | string | SExpr;
1765
+ activeFilters?: PatternPropValue | string | SExpr;
1766
+ selectedIds?: unknown[] | string | SExpr;
1767
+ status?: string | SExpr;
1768
+ activeGate?: string | SExpr;
1769
+ jepaValidity?: number | string | SExpr;
1770
+ placeholder?: string | SExpr;
1771
+ context?: string | SExpr;
1772
+ };
1773
+ 'checkbox': {
1774
+ type: 'checkbox';
1775
+ className?: string | SExpr;
1776
+ checked?: boolean | string | SExpr;
1777
+ defaultChecked?: boolean | string | SExpr;
1778
+ label?: string | SExpr;
1779
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
1780
+ };
1781
+ 'chemistry-canvas': {
1782
+ type: 'chemistry-canvas';
1783
+ className?: string | SExpr;
1784
+ width?: number | string | SExpr;
1785
+ height?: number | string | SExpr;
1786
+ title?: string | SExpr;
1787
+ backgroundColor?: string | SExpr;
1788
+ atoms?: unknown[] | string | SExpr;
1789
+ bonds?: unknown[] | string | SExpr;
1790
+ arrows?: unknown[] | string | SExpr;
1791
+ shapes?: unknown[] | string | SExpr;
1792
+ interactive?: boolean | string | SExpr;
1793
+ animate?: boolean | string | SExpr;
1794
+ onShapeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1795
+ isLoading?: boolean | string | SExpr;
1796
+ error?: PatternPropValue | string | SExpr;
1797
+ };
1798
+ 'choice-button': {
1799
+ type: 'choice-button';
1800
+ text: string | SExpr;
1801
+ index?: number | string | SExpr;
1802
+ assetUrl?: PatternPropValue | string | SExpr;
1803
+ icon?: unknown | string | SExpr;
1804
+ disabled?: boolean | string | SExpr;
1805
+ selected?: boolean | string | SExpr;
1806
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
1807
+ action?: string | SExpr;
1808
+ payload?: PatternPropValue | string | SExpr;
1809
+ className?: string | SExpr;
1810
+ };
1811
+ 'code-block': {
1812
+ type: 'code-block';
1813
+ code?: string | SExpr;
1814
+ language?: string | SExpr;
1815
+ showCopyButton?: boolean | string | SExpr;
1816
+ showLanguageBadge?: boolean | string | SExpr;
1817
+ maxHeight?: string | number | SExpr;
1818
+ foldable?: boolean | string | SExpr;
1819
+ className?: string | SExpr;
1820
+ editable?: boolean | string | SExpr;
1821
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
1822
+ errorLines?: PatternPropValue | string | SExpr;
1823
+ title?: string | SExpr;
1824
+ mode?: string | SExpr;
1825
+ diff?: unknown[] | string | SExpr;
1826
+ oldValue?: string | SExpr;
1827
+ newValue?: string | SExpr;
1828
+ showLineNumbers?: boolean | string | SExpr;
1829
+ wordWrap?: boolean | string | SExpr;
1830
+ files?: unknown[] | string | SExpr;
1831
+ actions?: unknown[] | string | SExpr;
1832
+ isLoading?: boolean | string | SExpr;
1833
+ error?: PatternPropValue | string | SExpr;
1834
+ showCopy?: boolean | string | SExpr;
1835
+ };
1836
+ 'code-runner-panel': {
1837
+ type: 'code-runner-panel';
1838
+ code: string | SExpr;
1839
+ language: string | SExpr;
1840
+ runnable?: boolean | string | SExpr;
1841
+ onRun?: ((...args: unknown[]) => unknown) | string | SExpr;
1842
+ runEvent?: string | SExpr;
1843
+ className?: string | SExpr;
1844
+ };
1845
+ 'community-links': {
1846
+ type: 'community-links';
1847
+ github?: PatternPropValue | string | SExpr;
1848
+ discord?: PatternPropValue | string | SExpr;
1849
+ twitter?: PatternPropValue | string | SExpr;
1850
+ heading?: string | SExpr;
1851
+ subtitle?: string | SExpr;
1852
+ className?: string | SExpr;
1853
+ };
1854
+ 'conditional-wrapper': {
1855
+ type: 'conditional-wrapper';
1856
+ condition?: unknown | string | SExpr;
1857
+ context: PatternPropValue | string | SExpr;
1858
+ children: unknown | string | SExpr;
1859
+ fallback?: unknown | string | SExpr;
1860
+ animate?: boolean | string | SExpr;
1861
+ };
1862
+ 'confetti-effect': {
1863
+ type: 'confetti-effect';
1864
+ trigger: boolean | string | SExpr;
1865
+ duration?: number | string | SExpr;
1866
+ particleCount?: number | string | SExpr;
1867
+ className?: string | SExpr;
1868
+ };
1869
+ 'confirm-dialog': {
1870
+ type: 'confirm-dialog';
1871
+ isOpen?: boolean | string | SExpr;
1872
+ onClose?: ((...args: unknown[]) => unknown) | string | SExpr;
1873
+ onConfirm?: ((...args: unknown[]) => unknown) | string | SExpr;
1874
+ title: string | SExpr;
1875
+ message?: string | unknown | SExpr;
1876
+ description?: string | unknown | SExpr;
1877
+ confirmText?: string | SExpr;
1878
+ confirmLabel?: string | SExpr;
1879
+ cancelText?: string | SExpr;
1880
+ cancelLabel?: string | SExpr;
1881
+ variant?: string | SExpr;
1882
+ size?: string | SExpr;
1883
+ isLoading?: boolean | string | SExpr;
1884
+ error?: PatternPropValue | string | SExpr;
1885
+ className?: string | SExpr;
1886
+ };
1887
+ 'connection-block': {
1888
+ type: 'connection-block';
1889
+ content: string | SExpr;
1890
+ className?: string | SExpr;
1891
+ };
1892
+ 'container': {
1893
+ type: 'container';
1894
+ size?: string | SExpr;
1895
+ maxWidth?: string | SExpr;
1896
+ padding?: string | SExpr;
1897
+ center?: boolean | string | SExpr;
1898
+ className?: string | SExpr;
1899
+ children?: unknown | string | SExpr;
1900
+ as?: unknown | string | SExpr;
1901
+ };
1902
+ 'content-renderer': {
1903
+ type: 'content-renderer';
1904
+ className?: string | SExpr;
1905
+ isLoading?: boolean | string | SExpr;
1906
+ error?: PatternPropValue | string | SExpr;
1907
+ sortBy?: string | SExpr;
1908
+ sortDirection?: string | SExpr;
1909
+ searchValue?: string | SExpr;
1910
+ page?: number | string | SExpr;
1911
+ pageSize?: number | string | SExpr;
1912
+ totalCount?: number | string | SExpr;
1913
+ activeFilters?: PatternPropValue | string | SExpr;
1914
+ selectedIds?: unknown[] | string | SExpr;
1915
+ content?: string | SExpr;
1916
+ segments?: unknown[] | string | SExpr;
1917
+ direction?: string | SExpr;
1918
+ };
1919
+ 'content-section': {
1920
+ type: 'content-section';
1921
+ children: unknown | string | SExpr;
1922
+ background?: string | SExpr;
1923
+ padding?: string | SExpr;
1924
+ id?: string | SExpr;
1925
+ className?: string | SExpr;
1926
+ };
1927
+ 'control-button': {
1928
+ type: 'control-button';
1929
+ assetUrl?: PatternPropValue | string | SExpr;
1930
+ label?: string | SExpr;
1931
+ icon?: unknown | string | SExpr;
1932
+ size?: string | SExpr;
1933
+ shape?: string | SExpr;
1934
+ variant?: string | SExpr;
1935
+ onPress?: ((...args: unknown[]) => unknown) | string | SExpr;
1936
+ onRelease?: ((...args: unknown[]) => unknown) | string | SExpr;
1937
+ pressEvent?: string | SExpr;
1938
+ releaseEvent?: string | SExpr;
1939
+ pressed?: boolean | string | SExpr;
1940
+ disabled?: boolean | string | SExpr;
1941
+ className?: string | SExpr;
1942
+ };
1943
+ 'control-grid': {
1944
+ type: 'control-grid';
1945
+ kind: string | SExpr;
1946
+ buttons?: unknown[] | string | SExpr;
1947
+ layout?: string | SExpr;
1948
+ includeDiagonals?: boolean | string | SExpr;
1949
+ onAction?: ((...args: unknown[]) => unknown) | string | SExpr;
1950
+ actionEvent?: string | SExpr;
1951
+ onDirection?: ((...args: unknown[]) => unknown) | string | SExpr;
1952
+ directionEvent?: string | SExpr;
1953
+ directionEvents?: PatternPropValue | string | SExpr;
1954
+ directionReleaseEvents?: PatternPropValue | string | SExpr;
1955
+ directionAssets?: PatternPropValue | string | SExpr;
1956
+ size?: string | SExpr;
1957
+ disabled?: boolean | string | SExpr;
1958
+ className?: string | SExpr;
1959
+ };
1960
+ 'counter-template': {
1961
+ type: 'counter-template';
1962
+ entity: PatternPropValue | string | SExpr;
1963
+ className?: string | SExpr;
1964
+ onIncrement?: ((...args: unknown[]) => unknown) | string | SExpr;
1965
+ onDecrement?: ((...args: unknown[]) => unknown) | string | SExpr;
1966
+ onReset?: ((...args: unknown[]) => unknown) | string | SExpr;
1967
+ incrementEvent?: string | SExpr;
1968
+ decrementEvent?: string | SExpr;
1969
+ resetEvent?: string | SExpr;
1970
+ title?: string | SExpr;
1971
+ showReset?: boolean | string | SExpr;
1972
+ size?: string | SExpr;
1973
+ variant?: string | SExpr;
1974
+ };
1975
+ 'cta-banner': {
1976
+ type: 'cta-banner';
1977
+ title: string | SExpr;
1978
+ subtitle?: string | SExpr;
1979
+ primaryAction?: PatternPropValue | string | SExpr;
1980
+ secondaryAction?: PatternPropValue | string | SExpr;
1981
+ background?: string | SExpr;
1982
+ align?: string | SExpr;
1983
+ className?: string | SExpr;
1984
+ };
1985
+ 'dashboard-grid': {
1986
+ type: 'dashboard-grid';
1987
+ className?: string | SExpr;
1988
+ isLoading?: boolean | string | SExpr;
1989
+ error?: PatternPropValue | string | SExpr;
1990
+ sortBy?: string | SExpr;
1991
+ sortDirection?: string | SExpr;
1992
+ searchValue?: string | SExpr;
1993
+ page?: number | string | SExpr;
1994
+ pageSize?: number | string | SExpr;
1995
+ totalCount?: number | string | SExpr;
1996
+ activeFilters?: PatternPropValue | string | SExpr;
1997
+ selectedIds?: unknown[] | string | SExpr;
1998
+ columns?: number | string | SExpr;
1999
+ gap?: string | SExpr;
2000
+ cells: unknown[] | string | SExpr;
2001
+ };
2002
+ 'dashboard-layout': {
2003
+ type: 'dashboard-layout';
2004
+ appName?: string | SExpr;
2005
+ logo?: unknown | string | SExpr;
2006
+ navItems?: unknown[] | string | SExpr;
2007
+ user?: PatternPropValue | string | SExpr;
2008
+ headerActions?: unknown | string | SExpr;
2009
+ showSearch?: boolean | string | SExpr;
2010
+ searchEvent?: string | SExpr;
2011
+ onSearchSubmit?: ((...args: unknown[]) => unknown) | string | SExpr;
2012
+ topBarActions?: unknown[] | string | SExpr;
2013
+ notifications?: unknown[] | string | SExpr;
2014
+ notificationClickEvent?: string | SExpr;
2015
+ onNotificationClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2016
+ showThemeToggle?: boolean | string | SExpr;
2017
+ sidebarFooter?: unknown | string | SExpr;
2018
+ currentPath?: string | SExpr;
2019
+ onSignOut?: ((...args: unknown[]) => unknown) | string | SExpr;
2020
+ layoutMode?: string | SExpr;
2021
+ children?: unknown | string | SExpr;
2022
+ };
2023
+ 'data-grid': {
2024
+ type: 'data-grid';
2025
+ dragGroup?: string | SExpr;
2026
+ accepts?: string | SExpr;
2027
+ sortable?: boolean | string | SExpr;
2028
+ dropEvent?: string | SExpr;
2029
+ reorderEvent?: string | SExpr;
2030
+ positionEvent?: string | SExpr;
2031
+ dndItemIdField?: string | SExpr;
2032
+ dndRoot?: boolean | string | SExpr;
2033
+ entity: PatternPropValue | unknown[] | string | SExpr;
2034
+ fields?: unknown[] | string | SExpr;
2035
+ columns?: unknown[] | string | SExpr;
2036
+ itemActions?: unknown[] | string | SExpr;
2037
+ maxInlineActions?: number | string | SExpr;
2038
+ scrollX?: boolean | string | SExpr;
2039
+ cols?: number | string | SExpr;
2040
+ gap?: string | SExpr;
2041
+ minCardWidth?: number | string | SExpr;
2042
+ className?: string | SExpr;
2043
+ isLoading?: boolean | string | SExpr;
2044
+ error?: PatternPropValue | string | SExpr;
2045
+ imageField?: string | SExpr;
2046
+ selectable?: boolean | string | SExpr;
2047
+ selectionEvent?: string | SExpr;
2048
+ infiniteScroll?: boolean | string | SExpr;
2049
+ loadMoreEvent?: string | SExpr;
2050
+ hasMore?: boolean | string | SExpr;
2051
+ children?: ((...args: unknown[]) => unknown) | string | SExpr;
2052
+ renderItem?: ((...args: unknown[]) => unknown) | string | SExpr;
2053
+ pageSize?: number | string | SExpr;
2054
+ look?: string | SExpr;
2055
+ };
2056
+ 'data-list': {
2057
+ type: 'data-list';
2058
+ dragGroup?: string | SExpr;
2059
+ accepts?: string | SExpr;
2060
+ sortable?: boolean | string | SExpr;
2061
+ dropEvent?: string | SExpr;
2062
+ reorderEvent?: string | SExpr;
2063
+ positionEvent?: string | SExpr;
2064
+ dndItemIdField?: string | SExpr;
2065
+ dndRoot?: boolean | string | SExpr;
2066
+ entity: PatternPropValue | unknown[] | string | SExpr;
2067
+ fields?: unknown[] | string | SExpr;
2068
+ columns?: unknown[] | string | SExpr;
2069
+ itemActions?: unknown[] | string | SExpr;
2070
+ maxInlineActions?: number | string | SExpr;
2071
+ itemClickEvent?: string | SExpr;
2072
+ gap?: string | SExpr;
2073
+ variant?: string | SExpr;
2074
+ groupBy?: string | SExpr;
2075
+ senderField?: string | SExpr;
2076
+ currentUser?: string | SExpr;
2077
+ className?: string | SExpr;
2078
+ isLoading?: boolean | string | SExpr;
2079
+ error?: PatternPropValue | string | SExpr;
2080
+ reorderable?: boolean | string | SExpr;
2081
+ swipeLeftEvent?: string | SExpr;
2082
+ swipeLeftActions?: unknown[] | string | SExpr;
2083
+ swipeRightEvent?: string | SExpr;
2084
+ swipeRightActions?: unknown[] | string | SExpr;
2085
+ longPressEvent?: string | SExpr;
2086
+ infiniteScroll?: boolean | string | SExpr;
2087
+ loadMoreEvent?: string | SExpr;
2088
+ hasMore?: boolean | string | SExpr;
2089
+ children?: ((...args: unknown[]) => unknown) | string | SExpr;
2090
+ renderItem?: ((...args: unknown[]) => unknown) | string | SExpr;
2091
+ pageSize?: number | string | SExpr;
2092
+ look?: string | SExpr;
2093
+ };
2094
+ 'date-range-picker': {
2095
+ type: 'date-range-picker';
2096
+ from?: string | SExpr;
2097
+ to?: string | SExpr;
2098
+ event?: string | SExpr;
2099
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
2100
+ presets?: unknown[] | string | SExpr;
2101
+ fromLabel?: string | SExpr;
2102
+ toLabel?: string | SExpr;
2103
+ className?: string | SExpr;
2104
+ };
2105
+ 'date-range-selector': {
2106
+ type: 'date-range-selector';
2107
+ options?: unknown[] | string | SExpr;
2108
+ selected?: string | SExpr;
2109
+ onSelect?: ((...args: unknown[]) => unknown) | string | SExpr;
2110
+ className?: string | SExpr;
2111
+ };
2112
+ 'day-cell': {
2113
+ type: 'day-cell';
2114
+ date?: unknown | string | SExpr;
2115
+ isToday?: boolean | string | SExpr;
2116
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2117
+ className?: string | SExpr;
2118
+ };
2119
+ 'detail-panel': {
2120
+ type: 'detail-panel';
2121
+ className?: string | SExpr;
2122
+ isLoading?: boolean | string | SExpr;
2123
+ error?: PatternPropValue | string | SExpr;
2124
+ sortBy?: string | SExpr;
2125
+ sortDirection?: string | SExpr;
2126
+ searchValue?: string | SExpr;
2127
+ page?: number | string | SExpr;
2128
+ pageSize?: number | string | SExpr;
2129
+ totalCount?: number | string | SExpr;
2130
+ activeFilters?: PatternPropValue | string | SExpr;
2131
+ selectedIds?: unknown[] | string | SExpr;
2132
+ entity?: PatternPropValue | string | SExpr;
2133
+ title?: string | SExpr;
2134
+ subtitle?: string | SExpr;
2135
+ status?: PatternPropValue | string | SExpr;
2136
+ avatar?: unknown | string | SExpr;
2137
+ sections?: unknown[] | string | SExpr;
2138
+ actions?: unknown[] | string | SExpr;
2139
+ footer?: unknown | string | SExpr;
2140
+ slideOver?: boolean | string | SExpr;
2141
+ fields: unknown[] | string | SExpr;
2142
+ fieldNames?: unknown[] | string | SExpr;
2143
+ initialData?: PatternPropValue | string | SExpr;
2144
+ mode?: string | SExpr;
2145
+ position?: string | SExpr;
2146
+ width?: string | SExpr;
2147
+ displayFields?: unknown[] | string | SExpr;
2148
+ showActions?: boolean | string | SExpr;
2149
+ };
2150
+ 'dialog': {
2151
+ type: 'dialog';
2152
+ className?: string | SExpr;
2153
+ children?: unknown | string | SExpr;
2154
+ };
2155
+ 'dialogue-bubble': {
2156
+ type: 'dialogue-bubble';
2157
+ speaker?: string | SExpr;
2158
+ text: string | SExpr;
2159
+ portrait?: PatternPropValue | string | SExpr;
2160
+ position?: string | SExpr;
2161
+ mood?: string | SExpr;
2162
+ revealedChars?: number | string | SExpr;
2163
+ className?: string | SExpr;
2164
+ };
2165
+ 'divider': {
2166
+ type: 'divider';
2167
+ orientation?: string | SExpr;
2168
+ label?: string | SExpr;
2169
+ variant?: string | SExpr;
2170
+ className?: string | SExpr;
2171
+ };
2172
+ 'doc-breadcrumb': {
2173
+ type: 'doc-breadcrumb';
2174
+ items: unknown[] | string | SExpr;
2175
+ className?: string | SExpr;
2176
+ };
2177
+ 'doc-pagination': {
2178
+ type: 'doc-pagination';
2179
+ prev?: PatternPropValue | string | SExpr;
2180
+ next?: PatternPropValue | string | SExpr;
2181
+ className?: string | SExpr;
2182
+ };
2183
+ 'doc-search': {
2184
+ type: 'doc-search';
2185
+ placeholder?: string | SExpr;
2186
+ onSearch?: ((...args: unknown[]) => unknown) | string | SExpr;
2187
+ className?: string | SExpr;
2188
+ };
2189
+ 'doc-sidebar': {
2190
+ type: 'doc-sidebar';
2191
+ items: unknown[] | string | SExpr;
2192
+ className?: string | SExpr;
2193
+ };
2194
+ 'doc-toc': {
2195
+ type: 'doc-toc';
2196
+ items: unknown[] | string | SExpr;
2197
+ activeId?: string | SExpr;
2198
+ className?: string | SExpr;
2199
+ };
2200
+ 'document-viewer': {
2201
+ type: 'document-viewer';
2202
+ title?: string | SExpr;
2203
+ src?: unknown | string | SExpr;
2204
+ content?: string | SExpr;
2205
+ documentType?: string | SExpr;
2206
+ currentPage?: number | string | SExpr;
2207
+ totalPages?: number | string | SExpr;
2208
+ height?: number | string | SExpr;
2209
+ showToolbar?: boolean | string | SExpr;
2210
+ showDownload?: boolean | string | SExpr;
2211
+ showPrint?: boolean | string | SExpr;
2212
+ actions?: unknown[] | string | SExpr;
2213
+ documents?: unknown[] | string | SExpr;
2214
+ isLoading?: boolean | string | SExpr;
2215
+ error?: PatternPropValue | string | SExpr;
2216
+ className?: string | SExpr;
2217
+ };
2218
+ 'draw-shape': {
2219
+ type: 'draw-shape';
2220
+ id?: string | SExpr;
2221
+ shape: string | SExpr;
2222
+ position: PatternPropValue | string | SExpr;
2223
+ anchor?: PatternPropValue | string | SExpr;
2224
+ width?: number | string | SExpr;
2225
+ height?: number | string | SExpr;
2226
+ radiusX?: number | string | SExpr;
2227
+ radiusY?: number | string | SExpr;
2228
+ offsetX?: number | string | SExpr;
2229
+ offsetY?: number | string | SExpr;
2230
+ points?: unknown[] | string | SExpr;
2231
+ fill?: string | SExpr;
2232
+ stroke?: string | SExpr;
2233
+ strokeWidth?: number | string | SExpr;
2234
+ opacity?: number | string | SExpr;
2235
+ };
2236
+ 'draw-shape-layer': {
2237
+ type: 'draw-shape-layer';
2238
+ id?: string | SExpr;
2239
+ items: unknown[] | string | SExpr;
2240
+ };
2241
+ 'draw-sprite': {
2242
+ type: 'draw-sprite';
2243
+ id?: string | SExpr;
2244
+ position: PatternPropValue | string | SExpr;
2245
+ asset: PatternPropValue | string | SExpr;
2246
+ anchor?: PatternPropValue | string | SExpr;
2247
+ width?: number | string | SExpr;
2248
+ height?: number | string | SExpr;
2249
+ frame?: PatternPropValue | string | SExpr;
2250
+ animation?: string | SExpr;
2251
+ flipX?: boolean | string | SExpr;
2252
+ rotation?: number | string | SExpr;
2253
+ opacity?: number | string | SExpr;
2254
+ shadow?: PatternPropValue | string | SExpr;
2255
+ };
2256
+ 'draw-sprite-layer': {
2257
+ type: 'draw-sprite-layer';
2258
+ id?: string | SExpr;
2259
+ items: unknown[] | string | SExpr;
2260
+ };
2261
+ 'draw-text': {
2262
+ type: 'draw-text';
2263
+ id?: string | SExpr;
2264
+ text: string | SExpr;
2265
+ position: PatternPropValue | string | SExpr;
2266
+ anchor?: PatternPropValue | string | SExpr;
2267
+ offsetX?: number | string | SExpr;
2268
+ offsetY?: number | string | SExpr;
2269
+ color: string | SExpr;
2270
+ font?: string | SExpr;
2271
+ align?: PatternPropValue | string | SExpr;
2272
+ baseline?: PatternPropValue | string | SExpr;
2273
+ opacity?: number | string | SExpr;
2274
+ };
2275
+ 'draw-text-layer': {
2276
+ type: 'draw-text-layer';
2277
+ id?: string | SExpr;
2278
+ items: unknown[] | string | SExpr;
2279
+ };
2280
+ 'drawer': {
2281
+ type: 'drawer';
2282
+ isOpen?: boolean | string | SExpr;
2283
+ onClose?: ((...args: unknown[]) => unknown) | string | SExpr;
2284
+ title?: string | SExpr;
2285
+ children?: unknown | string | SExpr;
2286
+ footer?: unknown | string | SExpr;
2287
+ position?: string | SExpr;
2288
+ width?: string | SExpr;
2289
+ showCloseButton?: boolean | string | SExpr;
2290
+ closeOnOverlayClick?: boolean | string | SExpr;
2291
+ closeOnEscape?: boolean | string | SExpr;
2292
+ className?: string | SExpr;
2293
+ closeEvent?: string | SExpr;
2294
+ };
2295
+ 'drawer-slot': {
2296
+ type: 'drawer-slot';
2297
+ children?: unknown | string | SExpr;
2298
+ title?: string | SExpr;
2299
+ position?: string | SExpr;
2300
+ size?: string | SExpr;
2301
+ className?: string | SExpr;
2302
+ isLoading?: boolean | string | SExpr;
2303
+ error?: PatternPropValue | string | SExpr;
2304
+ entity?: string | SExpr;
2305
+ sourceTrait?: string | SExpr;
2306
+ };
2307
+ 'edge-decoration': {
2308
+ type: 'edge-decoration';
2309
+ variant?: string | SExpr;
2310
+ side?: string | SExpr;
2311
+ opacity?: number | string | SExpr;
2312
+ color?: string | SExpr;
2313
+ strokeWidth?: number | string | SExpr;
2314
+ width?: number | string | SExpr;
2315
+ className?: string | SExpr;
2316
+ };
2317
+ 'empty-state': {
2318
+ type: 'empty-state';
2319
+ icon?: unknown | string | SExpr;
2320
+ title?: string | SExpr;
2321
+ message?: string | SExpr;
2322
+ description?: string | SExpr;
2323
+ actionLabel?: string | SExpr;
2324
+ onAction?: ((...args: unknown[]) => unknown) | string | SExpr;
2325
+ className?: string | SExpr;
2326
+ destructive?: boolean | string | SExpr;
2327
+ variant?: string | SExpr;
2328
+ actionEvent?: string | SExpr;
2329
+ look?: string | SExpr;
2330
+ };
2331
+ 'entity-cards': {
2332
+ type: 'entity-cards';
2333
+ entity?: PatternPropValue | unknown[] | string | SExpr;
2334
+ className?: string | SExpr;
2335
+ isLoading?: boolean | string | SExpr;
2336
+ error?: PatternPropValue | string | SExpr;
2337
+ sortBy?: string | SExpr;
2338
+ sortDirection?: string | SExpr;
2339
+ searchValue?: string | SExpr;
2340
+ page?: number | string | SExpr;
2341
+ pageSize?: number | string | SExpr;
2342
+ totalCount?: number | string | SExpr;
2343
+ activeFilters?: PatternPropValue | string | SExpr;
2344
+ selectedIds?: unknown[] | string | SExpr;
2345
+ minCardWidth?: number | string | SExpr;
2346
+ maxCols?: number | string | SExpr;
2347
+ gap?: string | SExpr;
2348
+ alignItems?: string | SExpr;
2349
+ children?: unknown | string | SExpr;
2350
+ fields: unknown[] | string | SExpr;
2351
+ fieldNames?: unknown[] | string | SExpr;
2352
+ columns?: unknown[] | string | SExpr;
2353
+ itemActions?: unknown[] | string | SExpr;
2354
+ showTotal?: boolean | string | SExpr;
2355
+ showAvatar?: boolean | string | SExpr;
2356
+ variant?: string | SExpr;
2357
+ imageField?: string | SExpr;
2358
+ };
2359
+ 'entity-list': {
2360
+ type: 'entity-list';
2361
+ className?: string | SExpr;
2362
+ isLoading?: boolean | string | SExpr;
2363
+ error?: PatternPropValue | string | SExpr;
2364
+ sortBy?: string | SExpr;
2365
+ sortDirection?: string | SExpr;
2366
+ searchValue?: string | SExpr;
2367
+ page?: number | string | SExpr;
2368
+ pageSize?: number | string | SExpr;
2369
+ totalCount?: number | string | SExpr;
2370
+ activeFilters?: PatternPropValue | string | SExpr;
2371
+ selectedIds?: unknown[] | string | SExpr;
2372
+ entity?: PatternPropValue | unknown[] | string | SExpr;
2373
+ entityType?: string | SExpr;
2374
+ selectable?: boolean | string | SExpr;
2375
+ itemActions?: ((...args: unknown[]) => unknown) | unknown[] | string | SExpr;
2376
+ showDividers?: boolean | string | SExpr;
2377
+ variant?: string | SExpr;
2378
+ emptyMessage?: string | SExpr;
2379
+ renderItem?: ((...args: unknown[]) => unknown) | string | SExpr;
2380
+ children?: unknown | string | SExpr;
2381
+ fields: unknown[] | string | SExpr;
2382
+ fieldNames?: unknown[] | string | SExpr;
2383
+ };
2384
+ 'entity-table': {
2385
+ type: 'entity-table';
2386
+ className?: string | SExpr;
2387
+ isLoading?: boolean | string | SExpr;
2388
+ error?: PatternPropValue | string | SExpr;
2389
+ sortBy?: string | SExpr;
2390
+ sortDirection?: string | SExpr;
2391
+ searchValue?: string | SExpr;
2392
+ page?: number | string | SExpr;
2393
+ pageSize?: number | string | SExpr;
2394
+ totalCount?: number | string | SExpr;
2395
+ activeFilters?: PatternPropValue | string | SExpr;
2396
+ selectedIds?: unknown[] | string | SExpr;
2397
+ entity?: PatternPropValue | unknown[] | string | SExpr;
2398
+ fields: unknown[] | string | SExpr;
2399
+ columns?: unknown[] | string | SExpr;
2400
+ itemActions?: unknown[] | string | SExpr;
2401
+ emptyIcon?: unknown | string | SExpr;
2402
+ emptyTitle?: string | SExpr;
2403
+ emptyDescription?: string | SExpr;
2404
+ emptyAction?: PatternPropValue | string | SExpr;
2405
+ selectable?: boolean | string | SExpr;
2406
+ searchable?: boolean | string | SExpr;
2407
+ searchPlaceholder?: string | SExpr;
2408
+ rowActions?: unknown[] | string | SExpr;
2409
+ bulkActions?: unknown[] | string | SExpr;
2410
+ headerActions?: unknown | string | SExpr;
2411
+ showTotal?: boolean | string | SExpr;
2412
+ look?: string | SExpr;
2413
+ };
2414
+ 'error-boundary': {
2415
+ type: 'error-boundary';
2416
+ children: unknown | string | SExpr;
2417
+ fallback?: unknown | ((...args: unknown[]) => unknown) | string | SExpr;
2418
+ className?: string | SExpr;
2419
+ onError?: ((...args: unknown[]) => unknown) | string | SExpr;
2420
+ };
2421
+ 'error-state': {
2422
+ type: 'error-state';
2423
+ title?: string | SExpr;
2424
+ message?: string | SExpr;
2425
+ description?: string | SExpr;
2426
+ onRetry?: ((...args: unknown[]) => unknown) | string | SExpr;
2427
+ className?: string | SExpr;
2428
+ retryEvent?: string | SExpr;
2429
+ };
2430
+ 'feature-card': {
2431
+ type: 'feature-card';
2432
+ icon?: unknown | string | SExpr;
2433
+ title: string | SExpr;
2434
+ description: string | SExpr;
2435
+ href?: string | SExpr;
2436
+ linkLabel?: string | SExpr;
2437
+ variant?: string | SExpr;
2438
+ size?: string | SExpr;
2439
+ className?: string | SExpr;
2440
+ };
2441
+ 'feature-detail-page-template': {
2442
+ type: 'feature-detail-page-template';
2443
+ entity: PatternPropValue | string | SExpr;
2444
+ className?: string | SExpr;
2445
+ };
2446
+ 'feature-grid': {
2447
+ type: 'feature-grid';
2448
+ items: unknown[] | string | SExpr;
2449
+ columns?: number | string | SExpr;
2450
+ gap?: string | SExpr;
2451
+ className?: string | SExpr;
2452
+ };
2453
+ 'feature-grid-organism': {
2454
+ type: 'feature-grid-organism';
2455
+ className?: string | SExpr;
2456
+ isLoading?: boolean | string | SExpr;
2457
+ error?: PatternPropValue | string | SExpr;
2458
+ sortBy?: string | SExpr;
2459
+ sortDirection?: string | SExpr;
2460
+ searchValue?: string | SExpr;
2461
+ page?: number | string | SExpr;
2462
+ pageSize?: number | string | SExpr;
2463
+ totalCount?: number | string | SExpr;
2464
+ activeFilters?: PatternPropValue | string | SExpr;
2465
+ selectedIds?: unknown[] | string | SExpr;
2466
+ entity?: PatternPropValue | unknown[] | string | SExpr;
2467
+ columns?: number | string | SExpr;
2468
+ heading?: string | SExpr;
2469
+ subtitle?: string | SExpr;
2470
+ };
2471
+ 'file-tree': {
2472
+ type: 'file-tree';
2473
+ tree: unknown[] | string | SExpr;
2474
+ selectedPath?: string | SExpr;
2475
+ onFileSelect?: ((...args: unknown[]) => unknown) | string | SExpr;
2476
+ className?: string | SExpr;
2477
+ indent?: number | string | SExpr;
2478
+ };
2479
+ 'filter-group': {
2480
+ type: 'filter-group';
2481
+ entity: string | SExpr;
2482
+ filters: unknown[] | string | SExpr;
2483
+ onFilterChange?: ((...args: unknown[]) => unknown) | string | SExpr;
2484
+ onClearAll?: ((...args: unknown[]) => unknown) | string | SExpr;
2485
+ className?: string | SExpr;
2486
+ variant?: string | SExpr;
2487
+ showIcon?: boolean | string | SExpr;
2488
+ query?: string | SExpr;
2489
+ isLoading?: boolean | string | SExpr;
2490
+ look?: string | SExpr;
2491
+ };
2492
+ 'filter-pill': {
2493
+ type: 'filter-pill';
2494
+ className?: string | SExpr;
2495
+ variant?: string | SExpr;
2496
+ size?: string | SExpr;
2497
+ label?: string | number | SExpr;
2498
+ icon?: unknown | string | SExpr;
2499
+ onRemove?: ((...args: unknown[]) => unknown) | string | SExpr;
2500
+ removable?: boolean | string | SExpr;
2501
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2502
+ clickEvent?: string | SExpr;
2503
+ removeEvent?: string | SExpr;
2504
+ };
2505
+ 'flex': {
2506
+ type: 'flex';
2507
+ direction?: string | SExpr;
2508
+ wrap?: string | SExpr;
2509
+ align?: string | SExpr;
2510
+ justify?: string | SExpr;
2511
+ gap?: string | SExpr;
2512
+ inline?: boolean | string | SExpr;
2513
+ grow?: boolean | number | string | SExpr;
2514
+ shrink?: boolean | number | string | SExpr;
2515
+ basis?: string | number | SExpr;
2516
+ className?: string | SExpr;
2517
+ children: unknown | string | SExpr;
2518
+ as?: unknown | string | SExpr;
2519
+ };
2520
+ 'flip-card': {
2521
+ type: 'flip-card';
2522
+ front: unknown | string | SExpr;
2523
+ back: unknown | string | SExpr;
2524
+ flipped?: boolean | string | SExpr;
2525
+ onFlip?: ((...args: unknown[]) => unknown) | string | SExpr;
2526
+ className?: string | SExpr;
2527
+ height?: string | SExpr;
2528
+ };
2529
+ 'flip-container': {
2530
+ type: 'flip-container';
2531
+ flipped: boolean | string | SExpr;
2532
+ className?: string | SExpr;
2533
+ children: unknown | string | SExpr;
2534
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2535
+ };
2536
+ 'floating-action-button': {
2537
+ type: 'floating-action-button';
2538
+ action?: string | SExpr;
2539
+ actionPayload?: PatternPropValue | string | SExpr;
2540
+ actions?: unknown[] | string | SExpr;
2541
+ icon?: unknown | string | SExpr;
2542
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2543
+ variant?: string | SExpr;
2544
+ label?: string | SExpr;
2545
+ position?: string | SExpr;
2546
+ className?: string | SExpr;
2547
+ };
2548
+ 'form': {
2549
+ type: 'form';
2550
+ children?: unknown | string | SExpr;
2551
+ onSubmit?: string | SExpr;
2552
+ onCancel?: string | SExpr;
2553
+ layout?: string | SExpr;
2554
+ gap?: string | SExpr;
2555
+ className?: string | SExpr;
2556
+ entity?: PatternPropValue | unknown[] | string | SExpr;
2557
+ mode?: string | SExpr;
2558
+ fields: unknown[] | string | SExpr;
2559
+ initialData?: PatternPropValue | string | SExpr;
2560
+ isLoading?: boolean | string | SExpr;
2561
+ error?: PatternPropValue | string | SExpr;
2562
+ submitLabel?: string | SExpr;
2563
+ cancelLabel?: string | SExpr;
2564
+ showCancel?: boolean | string | SExpr;
2565
+ showSubmit?: boolean | string | SExpr;
2566
+ title?: string | SExpr;
2567
+ submitEvent?: string | SExpr;
2568
+ cancelEvent?: string | SExpr;
2569
+ relationsData?: PatternPropValue | string | SExpr;
2570
+ relationsLoading?: PatternPropValue | string | SExpr;
2571
+ conditionalFields?: PatternPropValue | boolean | string | SExpr;
2572
+ hiddenCalculations?: unknown[] | boolean | string | SExpr;
2573
+ violationTriggers?: unknown[] | boolean | string | SExpr;
2574
+ evaluationContext?: PatternPropValue | string | SExpr;
2575
+ sections?: unknown[] | string | SExpr;
2576
+ onFieldChange?: ((...args: unknown[]) => unknown) | string | SExpr;
2577
+ configPath?: string | SExpr;
2578
+ repeatable?: boolean | string | SExpr;
2579
+ };
2580
+ 'form-actions': {
2581
+ type: 'form-actions';
2582
+ className?: string | SExpr;
2583
+ isLoading?: boolean | string | SExpr;
2584
+ error?: PatternPropValue | string | SExpr;
2585
+ sortBy?: string | SExpr;
2586
+ sortDirection?: string | SExpr;
2587
+ searchValue?: string | SExpr;
2588
+ page?: number | string | SExpr;
2589
+ pageSize?: number | string | SExpr;
2590
+ totalCount?: number | string | SExpr;
2591
+ activeFilters?: PatternPropValue | string | SExpr;
2592
+ selectedIds?: unknown[] | string | SExpr;
2593
+ children: unknown | string | SExpr;
2594
+ sticky?: boolean | string | SExpr;
2595
+ align?: string | SExpr;
2596
+ };
2597
+ 'form-field': {
2598
+ type: 'form-field';
2599
+ label: string | SExpr;
2600
+ required?: boolean | string | SExpr;
2601
+ error?: string | SExpr;
2602
+ hint?: string | SExpr;
2603
+ className?: string | SExpr;
2604
+ children: unknown | string | SExpr;
2605
+ };
2606
+ 'form-layout': {
2607
+ type: 'form-layout';
2608
+ className?: string | SExpr;
2609
+ isLoading?: boolean | string | SExpr;
2610
+ error?: PatternPropValue | string | SExpr;
2611
+ sortBy?: string | SExpr;
2612
+ sortDirection?: string | SExpr;
2613
+ searchValue?: string | SExpr;
2614
+ page?: number | string | SExpr;
2615
+ pageSize?: number | string | SExpr;
2616
+ totalCount?: number | string | SExpr;
2617
+ activeFilters?: PatternPropValue | string | SExpr;
2618
+ selectedIds?: unknown[] | string | SExpr;
2619
+ children: unknown | string | SExpr;
2620
+ dividers?: boolean | string | SExpr;
2621
+ };
2622
+ 'form-section': {
2623
+ type: 'form-section';
2624
+ children?: unknown | string | SExpr;
2625
+ onSubmit?: string | SExpr;
2626
+ onCancel?: string | SExpr;
2627
+ layout?: string | SExpr;
2628
+ gap?: string | SExpr;
2629
+ className?: string | SExpr;
2630
+ entity?: PatternPropValue | unknown[] | string | SExpr;
2631
+ mode?: string | SExpr;
2632
+ fields: unknown[] | string | SExpr;
2633
+ initialData?: PatternPropValue | string | SExpr;
2634
+ isLoading?: boolean | string | SExpr;
2635
+ error?: PatternPropValue | string | SExpr;
2636
+ submitLabel?: string | SExpr;
2637
+ cancelLabel?: string | SExpr;
2638
+ showCancel?: boolean | string | SExpr;
2639
+ showSubmit?: boolean | string | SExpr;
2640
+ title?: string | SExpr;
2641
+ submitEvent?: string | SExpr;
2642
+ cancelEvent?: string | SExpr;
2643
+ relationsData?: PatternPropValue | string | SExpr;
2644
+ relationsLoading?: PatternPropValue | string | SExpr;
2645
+ conditionalFields?: PatternPropValue | boolean | string | SExpr;
2646
+ hiddenCalculations?: unknown[] | boolean | string | SExpr;
2647
+ violationTriggers?: unknown[] | boolean | string | SExpr;
2648
+ evaluationContext?: PatternPropValue | string | SExpr;
2649
+ sections?: unknown[] | string | SExpr;
2650
+ onFieldChange?: ((...args: unknown[]) => unknown) | string | SExpr;
2651
+ configPath?: string | SExpr;
2652
+ repeatable?: boolean | string | SExpr;
2653
+ };
2654
+ 'form-section-header': {
2655
+ type: 'form-section-header';
2656
+ title: string | SExpr;
2657
+ subtitle?: string | SExpr;
2658
+ isCollapsed?: boolean | string | SExpr;
2659
+ onToggle?: ((...args: unknown[]) => unknown) | string | SExpr;
2660
+ badge?: string | SExpr;
2661
+ badgeVariant?: string | SExpr;
2662
+ icon?: unknown | string | SExpr;
2663
+ hasErrors?: boolean | string | SExpr;
2664
+ isComplete?: boolean | string | SExpr;
2665
+ className?: string | SExpr;
2666
+ };
2667
+ 'game-audio-toggle': {
2668
+ type: 'game-audio-toggle';
2669
+ size?: string | SExpr;
2670
+ className?: string | SExpr;
2671
+ isLoading?: boolean | string | SExpr;
2672
+ error?: PatternPropValue | string | SExpr;
2673
+ onAsset?: PatternPropValue | string | SExpr;
2674
+ offAsset?: PatternPropValue | string | SExpr;
2675
+ };
2676
+ 'game-hud': {
2677
+ type: 'game-hud';
2678
+ position?: string | SExpr;
2679
+ stats?: unknown[] | string | SExpr;
2680
+ items?: unknown[] | string | SExpr;
2681
+ elements?: unknown[] | string | SExpr;
2682
+ size?: string | SExpr;
2683
+ className?: string | SExpr;
2684
+ transparent?: boolean | string | SExpr;
2685
+ };
2686
+ 'game-icon': {
2687
+ type: 'game-icon';
2688
+ assetUrl?: PatternPropValue | string | SExpr;
2689
+ icon: unknown | string | SExpr;
2690
+ size?: number | string | SExpr;
2691
+ alt?: string | SExpr;
2692
+ className?: string | SExpr;
2693
+ };
2694
+ 'game-menu': {
2695
+ type: 'game-menu';
2696
+ title: string | SExpr;
2697
+ subtitle?: string | SExpr;
2698
+ options?: unknown[] | string | SExpr;
2699
+ menuItems?: unknown[] | string | SExpr;
2700
+ onSelect?: ((...args: unknown[]) => unknown) | string | SExpr;
2701
+ background?: string | SExpr;
2702
+ logo?: PatternPropValue | string | SExpr;
2703
+ className?: string | SExpr;
2704
+ };
2705
+ 'game-shell': {
2706
+ type: 'game-shell';
2707
+ appName?: string | SExpr;
2708
+ hud?: unknown | string | SExpr;
2709
+ addons?: unknown | string | SExpr;
2710
+ controls?: unknown | string | SExpr;
2711
+ overlay?: unknown | string | SExpr;
2712
+ className?: string | SExpr;
2713
+ showTopBar?: boolean | string | SExpr;
2714
+ children?: unknown | string | SExpr;
2715
+ backgroundAsset?: PatternPropValue | string | SExpr;
2716
+ hudBackgroundAsset?: PatternPropValue | string | SExpr;
2717
+ fontFamily?: string | SExpr;
2718
+ };
2719
+ 'generic-app-template': {
2720
+ type: 'generic-app-template';
2721
+ entity: PatternPropValue | string | SExpr;
2722
+ className?: string | SExpr;
2723
+ title: string | SExpr;
2724
+ subtitle?: string | SExpr;
2725
+ children: unknown | string | SExpr;
2726
+ headerActions?: unknown | string | SExpr;
2727
+ footer?: unknown | string | SExpr;
2728
+ };
2729
+ 'geometric-pattern': {
2730
+ type: 'geometric-pattern';
2731
+ variant?: string | SExpr;
2732
+ mode?: string | SExpr;
2733
+ opacity?: number | string | SExpr;
2734
+ color?: string | SExpr;
2735
+ scale?: number | string | SExpr;
2736
+ strokeWidth?: number | string | SExpr;
2737
+ children?: unknown | string | SExpr;
2738
+ className?: string | SExpr;
2739
+ };
2740
+ 'gradient-divider': {
2741
+ type: 'gradient-divider';
2742
+ color?: string | SExpr;
2743
+ className?: string | SExpr;
2744
+ };
2745
+ 'graph-canvas': {
2746
+ type: 'graph-canvas';
2747
+ title?: string | SExpr;
2748
+ nodes?: unknown[] | string | SExpr;
2749
+ edges?: unknown[] | string | SExpr;
2750
+ height?: number | string | SExpr;
2751
+ showLabels?: boolean | string | SExpr;
2752
+ interactive?: boolean | string | SExpr;
2753
+ draggable?: boolean | string | SExpr;
2754
+ actions?: unknown[] | string | SExpr;
2755
+ onNodeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2756
+ onNodeDoubleClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2757
+ nodeClickEvent?: string | SExpr;
2758
+ selectedNodeId?: string | SExpr;
2759
+ repulsion?: number | string | SExpr;
2760
+ linkDistance?: number | string | SExpr;
2761
+ nodeSpacing?: number | string | SExpr;
2762
+ linkOpacity?: number | string | SExpr;
2763
+ layout?: string | SExpr;
2764
+ isLoading?: boolean | string | SExpr;
2765
+ error?: PatternPropValue | string | SExpr;
2766
+ className?: string | SExpr;
2767
+ };
2768
+ 'graph-view': {
2769
+ type: 'graph-view';
2770
+ nodes: unknown[] | string | SExpr;
2771
+ edges: unknown[] | string | SExpr;
2772
+ onNodeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2773
+ onNodeHover?: ((...args: unknown[]) => unknown) | string | SExpr;
2774
+ width?: number | string | SExpr;
2775
+ height?: number | string | SExpr;
2776
+ className?: string | SExpr;
2777
+ showLabels?: boolean | string | SExpr;
2778
+ zoomToFit?: boolean | string | SExpr;
2779
+ };
2780
+ 'grid': {
2781
+ type: 'grid';
2782
+ cols?: number | string | PatternPropValue | SExpr;
2783
+ rows?: number | string | SExpr;
2784
+ gap?: string | SExpr;
2785
+ rowGap?: string | SExpr;
2786
+ colGap?: string | SExpr;
2787
+ alignItems?: string | SExpr;
2788
+ justifyItems?: string | SExpr;
2789
+ flow?: string | SExpr;
2790
+ className?: string | SExpr;
2791
+ style?: PatternPropValue | string | SExpr;
2792
+ children: unknown | string | SExpr;
2793
+ as?: unknown | string | SExpr;
2794
+ };
2795
+ 'header': {
2796
+ type: 'header';
2797
+ logo?: unknown | string | SExpr;
2798
+ logoSrc?: unknown | string | SExpr;
2799
+ brandName?: string | SExpr;
2800
+ navigationItems?: unknown[] | string | SExpr;
2801
+ showMenuToggle?: boolean | string | SExpr;
2802
+ isMenuOpen?: boolean | string | SExpr;
2803
+ onMenuToggle?: ((...args: unknown[]) => unknown) | string | SExpr;
2804
+ showSearch?: boolean | string | SExpr;
2805
+ searchPlaceholder?: string | SExpr;
2806
+ onSearch?: ((...args: unknown[]) => unknown) | string | SExpr;
2807
+ userAvatar?: PatternPropValue | string | SExpr;
2808
+ userName?: string | SExpr;
2809
+ onUserClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2810
+ actions?: unknown | string | SExpr;
2811
+ sticky?: boolean | string | SExpr;
2812
+ variant?: string | SExpr;
2813
+ look?: string | SExpr;
2814
+ onLogoClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2815
+ className?: string | SExpr;
2816
+ isLoading?: boolean | string | SExpr;
2817
+ error?: PatternPropValue | string | SExpr;
2818
+ };
2819
+ 'health-bar': {
2820
+ type: 'health-bar';
2821
+ current: number | string | SExpr;
2822
+ max: number | string | SExpr;
2823
+ format?: string | SExpr;
2824
+ level?: number | string | SExpr;
2825
+ showLabel?: boolean | string | SExpr;
2826
+ labelSuffix?: string | SExpr;
2827
+ size?: string | SExpr;
2828
+ className?: string | SExpr;
2829
+ animated?: boolean | string | SExpr;
2830
+ frameAsset?: PatternPropValue | string | SExpr;
2831
+ fillAsset?: PatternPropValue | string | SExpr;
2832
+ };
2833
+ 'hero-organism': {
2834
+ type: 'hero-organism';
2835
+ className?: string | SExpr;
2836
+ isLoading?: boolean | string | SExpr;
2837
+ error?: PatternPropValue | string | SExpr;
2838
+ sortBy?: string | SExpr;
2839
+ sortDirection?: string | SExpr;
2840
+ searchValue?: string | SExpr;
2841
+ page?: number | string | SExpr;
2842
+ pageSize?: number | string | SExpr;
2843
+ totalCount?: number | string | SExpr;
2844
+ activeFilters?: PatternPropValue | string | SExpr;
2845
+ selectedIds?: unknown[] | string | SExpr;
2846
+ entity?: PatternPropValue | string | SExpr;
2847
+ children?: unknown | string | SExpr;
2848
+ };
2849
+ 'hero-section': {
2850
+ type: 'hero-section';
2851
+ tag?: string | SExpr;
2852
+ tagVariant?: string | SExpr;
2853
+ title: string | SExpr;
2854
+ titleAccent?: string | SExpr;
2855
+ subtitle: string | SExpr;
2856
+ primaryAction?: PatternPropValue | string | SExpr;
2857
+ secondaryAction?: PatternPropValue | string | SExpr;
2858
+ installCommand?: string | SExpr;
2859
+ image?: PatternPropValue | string | SExpr;
2860
+ imagePosition?: string | SExpr;
2861
+ background?: string | SExpr;
2862
+ align?: string | SExpr;
2863
+ backgroundElement?: unknown | string | SExpr;
2864
+ children?: unknown | string | SExpr;
2865
+ className?: string | SExpr;
2866
+ };
2867
+ 'hstack': {
2868
+ type: 'hstack';
2869
+ gap?: string | SExpr;
2870
+ align?: string | SExpr;
2871
+ justify?: string | SExpr;
2872
+ wrap?: boolean | string | SExpr;
2873
+ reverse?: boolean | string | SExpr;
2874
+ flex?: boolean | string | SExpr;
2875
+ className?: string | SExpr;
2876
+ style?: PatternPropValue | string | SExpr;
2877
+ children?: unknown | string | SExpr;
2878
+ as?: unknown | string | SExpr;
2879
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2880
+ onKeyDown?: ((...args: unknown[]) => unknown) | string | SExpr;
2881
+ role?: string | SExpr;
2882
+ tabIndex?: number | string | SExpr;
2883
+ action?: string | SExpr;
2884
+ actionPayload?: PatternPropValue | string | SExpr;
2885
+ responsive?: boolean | string | SExpr;
2886
+ };
2887
+ 'icon': {
2888
+ type: 'icon';
2889
+ icon?: unknown | string | SExpr;
2890
+ name?: string | SExpr;
2891
+ size?: string | SExpr;
2892
+ color?: string | SExpr;
2893
+ animation?: string | SExpr;
2894
+ className?: string | SExpr;
2895
+ strokeWidth?: number | string | SExpr;
2896
+ style?: PatternPropValue | string | SExpr;
2897
+ };
2898
+ 'infinite-scroll-sentinel': {
2899
+ type: 'infinite-scroll-sentinel';
2900
+ loadMoreEvent: string | SExpr;
2901
+ loadMorePayload?: PatternPropValue | string | SExpr;
2902
+ isLoading?: boolean | string | SExpr;
2903
+ hasMore?: boolean | string | SExpr;
2904
+ threshold?: string | SExpr;
2905
+ className?: string | SExpr;
2906
+ };
2907
+ 'input': {
2908
+ type: 'input';
2909
+ className?: string | SExpr;
2910
+ placeholder?: string | SExpr;
2911
+ value?: string | number | SExpr;
2912
+ disabled?: boolean | string | SExpr;
2913
+ action?: string | SExpr;
2914
+ inputType?: string | SExpr;
2915
+ label?: string | SExpr;
2916
+ helperText?: string | SExpr;
2917
+ error?: string | SExpr;
2918
+ leftIcon?: unknown | string | SExpr;
2919
+ rightIcon?: unknown | string | SExpr;
2920
+ icon?: unknown | string | SExpr;
2921
+ clearable?: boolean | string | SExpr;
2922
+ onClear?: ((...args: unknown[]) => unknown) | string | SExpr;
2923
+ options?: unknown[] | string | SExpr;
2924
+ rows?: number | string | SExpr;
2925
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
2926
+ };
2927
+ 'input-group': {
2928
+ type: 'input-group';
2929
+ className?: string | SExpr;
2930
+ placeholder?: string | SExpr;
2931
+ value?: string | number | SExpr;
2932
+ disabled?: boolean | string | SExpr;
2933
+ action?: string | SExpr;
2934
+ inputType?: string | SExpr;
2935
+ label?: string | SExpr;
2936
+ helperText?: string | SExpr;
2937
+ error?: string | SExpr;
2938
+ leftIcon?: unknown | string | SExpr;
2939
+ rightIcon?: unknown | string | SExpr;
2940
+ clearable?: boolean | string | SExpr;
2941
+ onClear?: ((...args: unknown[]) => unknown) | string | SExpr;
2942
+ options?: unknown[] | string | SExpr;
2943
+ rows?: number | string | SExpr;
2944
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
2945
+ leftAddon?: unknown | unknown | string | SExpr;
2946
+ rightAddon?: unknown | unknown | string | SExpr;
2947
+ };
2948
+ 'install-box': {
2949
+ type: 'install-box';
2950
+ command: string | SExpr;
2951
+ label?: string | SExpr;
2952
+ className?: string | SExpr;
2953
+ };
2954
+ 'jazari-state-machine': {
2955
+ type: 'jazari-state-machine';
2956
+ className?: string | SExpr;
2957
+ isLoading?: boolean | string | SExpr;
2958
+ error?: PatternPropValue | string | SExpr;
2959
+ schema?: PatternPropValue | string | SExpr;
2960
+ trait?: PatternPropValue | string | SExpr;
2961
+ traitIndex?: number | string | SExpr;
2962
+ entityFields?: unknown[] | string | SExpr;
2963
+ direction?: string | SExpr;
2964
+ };
2965
+ 'label': {
2966
+ type: 'label';
2967
+ className?: string | SExpr;
2968
+ text?: string | SExpr;
2969
+ htmlFor?: string | SExpr;
2970
+ required?: boolean | string | SExpr;
2971
+ };
2972
+ 'landing-page-template': {
2973
+ type: 'landing-page-template';
2974
+ entity: PatternPropValue | string | SExpr;
2975
+ className?: string | SExpr;
2976
+ variant?: string | SExpr;
2977
+ featureColumns?: number | string | SExpr;
2978
+ };
2979
+ 'law-reference-tooltip': {
2980
+ type: 'law-reference-tooltip';
2981
+ reference: PatternPropValue | string | SExpr;
2982
+ children: unknown | string | SExpr;
2983
+ position?: string | SExpr;
2984
+ className?: string | SExpr;
2985
+ };
2986
+ 'learning-canvas': {
2987
+ type: 'learning-canvas';
2988
+ className?: string | SExpr;
2989
+ width?: number | string | SExpr;
2990
+ height?: number | string | SExpr;
2991
+ backgroundColor?: string | SExpr;
2992
+ shapes?: unknown[] | string | SExpr;
2993
+ interactive?: boolean | string | SExpr;
2994
+ animate?: boolean | string | SExpr;
2995
+ onShapeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
2996
+ onShapeHover?: ((...args: unknown[]) => unknown) | string | SExpr;
2997
+ isLoading?: boolean | string | SExpr;
2998
+ error?: PatternPropValue | string | SExpr;
2999
+ };
3000
+ 'lightbox': {
3001
+ type: 'lightbox';
3002
+ images: unknown[] | string | SExpr;
3003
+ currentIndex?: number | string | SExpr;
3004
+ isOpen?: boolean | string | SExpr;
3005
+ showCounter?: boolean | string | SExpr;
3006
+ closeAction?: string | SExpr;
3007
+ onClose?: ((...args: unknown[]) => unknown) | string | SExpr;
3008
+ onIndexChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3009
+ className?: string | SExpr;
3010
+ };
3011
+ 'likert-scale': {
3012
+ type: 'likert-scale';
3013
+ question?: string | SExpr;
3014
+ options?: unknown[] | string | SExpr;
3015
+ value?: number | string | SExpr;
3016
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3017
+ changeEvent?: string | SExpr;
3018
+ disabled?: boolean | string | SExpr;
3019
+ size?: string | SExpr;
3020
+ variant?: string | SExpr;
3021
+ className?: string | SExpr;
3022
+ };
3023
+ 'line-chart': {
3024
+ type: 'line-chart';
3025
+ data: unknown[] | string | SExpr;
3026
+ width?: number | string | SExpr;
3027
+ height?: number | string | SExpr;
3028
+ showGrid?: boolean | string | SExpr;
3029
+ showValues?: boolean | string | SExpr;
3030
+ showArea?: boolean | string | SExpr;
3031
+ lineColor?: string | SExpr;
3032
+ areaColor?: string | SExpr;
3033
+ className?: string | SExpr;
3034
+ };
3035
+ 'loading-state': {
3036
+ type: 'loading-state';
3037
+ title?: string | SExpr;
3038
+ message?: string | SExpr;
3039
+ className?: string | SExpr;
3040
+ };
3041
+ 'map-view': {
3042
+ type: 'map-view';
3043
+ markers?: unknown[] | string | SExpr;
3044
+ routes?: unknown[] | string | SExpr;
3045
+ centerLat?: number | string | SExpr;
3046
+ centerLng?: number | string | SExpr;
3047
+ zoom?: number | string | SExpr;
3048
+ height?: string | SExpr;
3049
+ onMarkerClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3050
+ onMapClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3051
+ mapClickEvent?: string | SExpr;
3052
+ markerClickEvent?: string | SExpr;
3053
+ showClickedPin?: boolean | string | SExpr;
3054
+ className?: string | SExpr;
3055
+ showAttribution?: boolean | string | SExpr;
3056
+ };
3057
+ 'markdown-content': {
3058
+ type: 'markdown-content';
3059
+ content: string | SExpr;
3060
+ direction?: string | SExpr;
3061
+ className?: string | SExpr;
3062
+ };
3063
+ 'marketing-footer': {
3064
+ type: 'marketing-footer';
3065
+ columns: unknown[] | string | SExpr;
3066
+ copyright?: string | SExpr;
3067
+ logo?: PatternPropValue | string | SExpr;
3068
+ className?: string | SExpr;
3069
+ };
3070
+ 'marketing-stat-card': {
3071
+ type: 'marketing-stat-card';
3072
+ value: string | SExpr;
3073
+ label: string | SExpr;
3074
+ size?: string | SExpr;
3075
+ className?: string | SExpr;
3076
+ };
3077
+ 'master-detail': {
3078
+ type: 'master-detail';
3079
+ className?: string | SExpr;
3080
+ isLoading?: boolean | string | SExpr;
3081
+ error?: PatternPropValue | string | SExpr;
3082
+ sortBy?: string | SExpr;
3083
+ sortDirection?: string | SExpr;
3084
+ searchValue?: string | SExpr;
3085
+ page?: number | string | SExpr;
3086
+ pageSize?: number | string | SExpr;
3087
+ totalCount?: number | string | SExpr;
3088
+ activeFilters?: PatternPropValue | string | SExpr;
3089
+ selectedIds?: unknown[] | string | SExpr;
3090
+ entity?: PatternPropValue | unknown[] | string | SExpr;
3091
+ masterFields: unknown[] | string | SExpr;
3092
+ detailFields?: unknown[] | string | SExpr;
3093
+ loading?: boolean | string | SExpr;
3094
+ };
3095
+ 'master-detail-layout': {
3096
+ type: 'master-detail-layout';
3097
+ master: unknown | string | SExpr;
3098
+ detail: unknown | string | SExpr;
3099
+ emptyDetail?: unknown | string | SExpr;
3100
+ hasSelection?: boolean | string | SExpr;
3101
+ masterWidth?: string | SExpr;
3102
+ className?: string | SExpr;
3103
+ masterClassName?: string | SExpr;
3104
+ detailClassName?: string | SExpr;
3105
+ };
3106
+ 'math-canvas': {
3107
+ type: 'math-canvas';
3108
+ className?: string | SExpr;
3109
+ width?: number | string | SExpr;
3110
+ height?: number | string | SExpr;
3111
+ title?: string | SExpr;
3112
+ xMin?: number | string | SExpr;
3113
+ xMax?: number | string | SExpr;
3114
+ yMin?: number | string | SExpr;
3115
+ yMax?: number | string | SExpr;
3116
+ showAxes?: boolean | string | SExpr;
3117
+ showGrid?: boolean | string | SExpr;
3118
+ gridStep?: number | string | SExpr;
3119
+ curves?: unknown[] | string | SExpr;
3120
+ points?: unknown[] | string | SExpr;
3121
+ vectors?: unknown[] | string | SExpr;
3122
+ shapes?: unknown[] | string | SExpr;
3123
+ interactive?: boolean | string | SExpr;
3124
+ animate?: boolean | string | SExpr;
3125
+ onShapeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3126
+ isLoading?: boolean | string | SExpr;
3127
+ error?: PatternPropValue | string | SExpr;
3128
+ };
3129
+ 'matrix-question': {
3130
+ type: 'matrix-question';
3131
+ title?: string | SExpr;
3132
+ rows: unknown[] | string | SExpr;
3133
+ columns?: unknown[] | string | SExpr;
3134
+ values?: PatternPropValue | string | SExpr;
3135
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3136
+ changeEvent?: string | SExpr;
3137
+ disabled?: boolean | string | SExpr;
3138
+ size?: string | SExpr;
3139
+ className?: string | SExpr;
3140
+ };
3141
+ 'media-gallery': {
3142
+ type: 'media-gallery';
3143
+ className?: string | SExpr;
3144
+ isLoading?: boolean | string | SExpr;
3145
+ error?: PatternPropValue | string | SExpr;
3146
+ sortBy?: string | SExpr;
3147
+ sortDirection?: string | SExpr;
3148
+ searchValue?: string | SExpr;
3149
+ page?: number | string | SExpr;
3150
+ pageSize?: number | string | SExpr;
3151
+ totalCount?: number | string | SExpr;
3152
+ activeFilters?: PatternPropValue | string | SExpr;
3153
+ selectedIds?: unknown[] | string | SExpr;
3154
+ entity?: PatternPropValue | unknown[] | string | SExpr;
3155
+ title?: string | SExpr;
3156
+ items?: unknown[] | string | SExpr;
3157
+ columns?: number | string | SExpr;
3158
+ selectable?: boolean | string | SExpr;
3159
+ selectedItems?: unknown[] | string | SExpr;
3160
+ selectionEvent?: string | SExpr;
3161
+ showUpload?: boolean | string | SExpr;
3162
+ actions?: unknown[] | string | SExpr;
3163
+ aspectRatio?: string | SExpr;
3164
+ };
3165
+ 'menu': {
3166
+ type: 'menu';
3167
+ trigger: unknown | string | SExpr;
3168
+ items: unknown[] | string | SExpr;
3169
+ position?: string | SExpr;
3170
+ className?: string | SExpr;
3171
+ header?: unknown | string | SExpr;
3172
+ footer?: unknown | string | SExpr;
3173
+ };
3174
+ 'meter': {
3175
+ type: 'meter';
3176
+ value: number | string | SExpr;
3177
+ min?: number | string | SExpr;
3178
+ max?: number | string | SExpr;
3179
+ label?: string | SExpr;
3180
+ unit?: string | SExpr;
3181
+ variant?: string | SExpr;
3182
+ thresholds?: unknown[] | string | SExpr;
3183
+ segments?: number | string | SExpr;
3184
+ showValue?: boolean | string | SExpr;
3185
+ size?: string | SExpr;
3186
+ actions?: unknown[] | string | SExpr;
3187
+ isLoading?: boolean | string | SExpr;
3188
+ error?: PatternPropValue | string | SExpr;
3189
+ className?: string | SExpr;
3190
+ };
3191
+ 'modal': {
3192
+ type: 'modal';
3193
+ isOpen?: boolean | string | SExpr;
3194
+ onClose?: ((...args: unknown[]) => unknown) | string | SExpr;
3195
+ title?: string | SExpr;
3196
+ children?: unknown | string | SExpr;
3197
+ footer?: unknown | string | SExpr;
3198
+ size?: string | SExpr;
3199
+ showCloseButton?: boolean | string | SExpr;
3200
+ closeOnOverlayClick?: boolean | string | SExpr;
3201
+ closeOnEscape?: boolean | string | SExpr;
3202
+ className?: string | SExpr;
3203
+ closeEvent?: string | SExpr;
3204
+ swipeDownToClose?: boolean | string | SExpr;
3205
+ look?: string | SExpr;
3206
+ };
3207
+ 'modal-slot': {
3208
+ type: 'modal-slot';
3209
+ children?: unknown | string | SExpr;
3210
+ title?: string | SExpr;
3211
+ size?: string | SExpr;
3212
+ className?: string | SExpr;
3213
+ isLoading?: boolean | string | SExpr;
3214
+ error?: PatternPropValue | string | SExpr;
3215
+ entity?: string | SExpr;
3216
+ sourceTrait?: string | SExpr;
3217
+ };
3218
+ 'module-card': {
3219
+ type: 'module-card';
3220
+ data: PatternPropValue | string | SExpr;
3221
+ };
3222
+ 'navigation': {
3223
+ type: 'navigation';
3224
+ items: unknown[] | string | SExpr;
3225
+ orientation?: string | SExpr;
3226
+ className?: string | SExpr;
3227
+ isLoading?: boolean | string | SExpr;
3228
+ error?: PatternPropValue | string | SExpr;
3229
+ };
3230
+ 'notification': {
3231
+ type: 'notification';
3232
+ variant?: string | SExpr;
3233
+ message: string | SExpr;
3234
+ title?: string | SExpr;
3235
+ duration?: number | string | SExpr;
3236
+ dismissible?: boolean | string | SExpr;
3237
+ onDismiss?: ((...args: unknown[]) => unknown) | string | SExpr;
3238
+ actionLabel?: string | SExpr;
3239
+ onAction?: ((...args: unknown[]) => unknown) | string | SExpr;
3240
+ badge?: string | number | SExpr;
3241
+ className?: string | SExpr;
3242
+ dismissEvent?: string | SExpr;
3243
+ actionEvent?: string | SExpr;
3244
+ };
3245
+ 'number-stepper': {
3246
+ type: 'number-stepper';
3247
+ value?: number | string | SExpr;
3248
+ min?: number | string | SExpr;
3249
+ max?: number | string | SExpr;
3250
+ step?: number | string | SExpr;
3251
+ size?: string | SExpr;
3252
+ disabled?: boolean | string | SExpr;
3253
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3254
+ action?: string | SExpr;
3255
+ actionPayload?: PatternPropValue | string | SExpr;
3256
+ className?: string | SExpr;
3257
+ label?: string | SExpr;
3258
+ };
3259
+ 'option-constraint-group': {
3260
+ type: 'option-constraint-group';
3261
+ groupId: string | SExpr;
3262
+ title: string | SExpr;
3263
+ description?: string | SExpr;
3264
+ options: unknown[] | string | SExpr;
3265
+ constraint?: PatternPropValue | string | SExpr;
3266
+ selected?: unknown[] | string | SExpr;
3267
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3268
+ changeEvent?: string | SExpr;
3269
+ size?: string | SExpr;
3270
+ className?: string | SExpr;
3271
+ };
3272
+ 'orbital-visualization': {
3273
+ type: 'orbital-visualization';
3274
+ schema?: PatternPropValue | string | SExpr;
3275
+ complexity?: number | string | SExpr;
3276
+ size?: string | SExpr;
3277
+ showLabel?: boolean | string | SExpr;
3278
+ animated?: boolean | string | SExpr;
3279
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3280
+ className?: string | SExpr;
3281
+ isLoading?: boolean | string | SExpr;
3282
+ error?: PatternPropValue | string | SExpr;
3283
+ };
3284
+ 'overlay': {
3285
+ type: 'overlay';
3286
+ isVisible?: boolean | string | SExpr;
3287
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3288
+ className?: string | SExpr;
3289
+ blur?: boolean | string | SExpr;
3290
+ action?: string | SExpr;
3291
+ };
3292
+ 'page-header': {
3293
+ type: 'page-header';
3294
+ title?: string | number | SExpr;
3295
+ subtitle?: string | number | SExpr;
3296
+ showBack?: boolean | string | SExpr;
3297
+ backEvent?: string | SExpr;
3298
+ breadcrumbs?: unknown[] | string | SExpr;
3299
+ status?: PatternPropValue | string | SExpr;
3300
+ actions?: unknown[] | string | SExpr;
3301
+ isLoading?: boolean | string | SExpr;
3302
+ error?: PatternPropValue | string | SExpr;
3303
+ tabs?: unknown[] | string | SExpr;
3304
+ activeTab?: string | SExpr;
3305
+ onTabChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3306
+ children?: unknown | string | SExpr;
3307
+ className?: string | SExpr;
3308
+ };
3309
+ 'pagination': {
3310
+ type: 'pagination';
3311
+ currentPage: number | string | SExpr;
3312
+ totalPages: number | string | SExpr;
3313
+ onPageChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3314
+ showPageSize?: boolean | string | SExpr;
3315
+ pageSizeOptions?: unknown[] | string | SExpr;
3316
+ pageSize?: number | string | SExpr;
3317
+ onPageSizeChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3318
+ showJumpToPage?: boolean | string | SExpr;
3319
+ showTotal?: boolean | string | SExpr;
3320
+ totalItems?: number | string | SExpr;
3321
+ maxVisiblePages?: number | string | SExpr;
3322
+ className?: string | SExpr;
3323
+ pageChangeEvent?: string | SExpr;
3324
+ pageSizeChangeEvent?: string | SExpr;
3325
+ };
3326
+ 'pattern-tile': {
3327
+ type: 'pattern-tile';
3328
+ variant?: string | SExpr;
3329
+ size?: number | string | SExpr;
3330
+ color?: string | SExpr;
3331
+ strokeWidth?: number | string | SExpr;
3332
+ className?: string | SExpr;
3333
+ };
3334
+ 'physics-canvas': {
3335
+ type: 'physics-canvas';
3336
+ className?: string | SExpr;
3337
+ width?: number | string | SExpr;
3338
+ height?: number | string | SExpr;
3339
+ title?: string | SExpr;
3340
+ backgroundColor?: string | SExpr;
3341
+ bodies?: unknown[] | string | SExpr;
3342
+ constraints?: unknown[] | string | SExpr;
3343
+ showVelocity?: boolean | string | SExpr;
3344
+ showForces?: boolean | string | SExpr;
3345
+ velocityScale?: number | string | SExpr;
3346
+ forceScale?: number | string | SExpr;
3347
+ shapes?: unknown[] | string | SExpr;
3348
+ interactive?: boolean | string | SExpr;
3349
+ animate?: boolean | string | SExpr;
3350
+ onShapeClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3351
+ isLoading?: boolean | string | SExpr;
3352
+ error?: PatternPropValue | string | SExpr;
3353
+ };
3354
+ 'popover': {
3355
+ type: 'popover';
3356
+ content: unknown | string | SExpr;
3357
+ children: unknown | string | SExpr;
3358
+ position?: string | SExpr;
3359
+ trigger?: string | SExpr;
3360
+ showArrow?: boolean | string | SExpr;
3361
+ className?: string | SExpr;
3362
+ };
3363
+ 'positioned-canvas': {
3364
+ type: 'positioned-canvas';
3365
+ items: PatternPropValue | unknown[] | string | SExpr;
3366
+ width?: number | string | SExpr;
3367
+ height?: number | string | SExpr;
3368
+ selectedId?: string | SExpr;
3369
+ editable?: boolean | string | SExpr;
3370
+ onSelect?: ((...args: unknown[]) => unknown) | string | SExpr;
3371
+ onMove?: ((...args: unknown[]) => unknown) | string | SExpr;
3372
+ selectEvent?: string | SExpr;
3373
+ moveEvent?: string | SExpr;
3374
+ className?: string | SExpr;
3375
+ };
3376
+ 'pricing-card': {
3377
+ type: 'pricing-card';
3378
+ name: string | SExpr;
3379
+ price: string | SExpr;
3380
+ description?: string | SExpr;
3381
+ features: unknown[] | string | SExpr;
3382
+ action: PatternPropValue | string | SExpr;
3383
+ highlighted?: boolean | string | SExpr;
3384
+ badge?: string | SExpr;
3385
+ className?: string | SExpr;
3386
+ };
3387
+ 'pricing-grid': {
3388
+ type: 'pricing-grid';
3389
+ plans: unknown[] | string | SExpr;
3390
+ className?: string | SExpr;
3391
+ };
3392
+ 'pricing-organism': {
3393
+ type: 'pricing-organism';
3394
+ className?: string | SExpr;
3395
+ isLoading?: boolean | string | SExpr;
3396
+ error?: PatternPropValue | string | SExpr;
3397
+ sortBy?: string | SExpr;
3398
+ sortDirection?: string | SExpr;
3399
+ searchValue?: string | SExpr;
3400
+ page?: number | string | SExpr;
3401
+ pageSize?: number | string | SExpr;
3402
+ totalCount?: number | string | SExpr;
3403
+ activeFilters?: PatternPropValue | string | SExpr;
3404
+ selectedIds?: unknown[] | string | SExpr;
3405
+ entity?: PatternPropValue | unknown[] | string | SExpr;
3406
+ heading?: string | SExpr;
3407
+ subtitle?: string | SExpr;
3408
+ };
3409
+ 'pricing-page-template': {
3410
+ type: 'pricing-page-template';
3411
+ entity: PatternPropValue | string | SExpr;
3412
+ className?: string | SExpr;
3413
+ };
3414
+ 'progress-bar': {
3415
+ type: 'progress-bar';
3416
+ value: number | string | SExpr;
3417
+ max?: number | string | SExpr;
3418
+ progressType?: string | SExpr;
3419
+ variant?: string | SExpr;
3420
+ color?: string | SExpr;
3421
+ showPercentage?: boolean | string | SExpr;
3422
+ showLabel?: boolean | string | SExpr;
3423
+ label?: string | SExpr;
3424
+ size?: string | SExpr;
3425
+ steps?: number | string | SExpr;
3426
+ className?: string | SExpr;
3427
+ };
3428
+ 'progress-dots': {
3429
+ type: 'progress-dots';
3430
+ count: number | string | SExpr;
3431
+ currentIndex: number | string | SExpr;
3432
+ getState?: ((...args: unknown[]) => unknown) | string | SExpr;
3433
+ onDotClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3434
+ className?: string | SExpr;
3435
+ size?: string | SExpr;
3436
+ };
3437
+ 'pull-quote': {
3438
+ type: 'pull-quote';
3439
+ children: string | SExpr;
3440
+ className?: string | SExpr;
3441
+ };
3442
+ 'pull-to-refresh': {
3443
+ type: 'pull-to-refresh';
3444
+ refreshEvent: string | SExpr;
3445
+ refreshPayload?: PatternPropValue | string | SExpr;
3446
+ threshold?: number | string | SExpr;
3447
+ children: unknown | string | SExpr;
3448
+ className?: string | SExpr;
3449
+ };
3450
+ 'qr-scanner': {
3451
+ type: 'qr-scanner';
3452
+ onScan?: ((...args: unknown[]) => unknown) | string | SExpr;
3453
+ scanEvent?: string | SExpr;
3454
+ onError?: ((...args: unknown[]) => unknown) | string | SExpr;
3455
+ facingMode?: string | SExpr;
3456
+ paused?: boolean | string | SExpr;
3457
+ showOverlay?: boolean | string | SExpr;
3458
+ showCameraControls?: boolean | string | SExpr;
3459
+ fallback?: unknown | string | SExpr;
3460
+ className?: string | SExpr;
3461
+ };
3462
+ 'quiz-block': {
3463
+ type: 'quiz-block';
3464
+ question: string | SExpr;
3465
+ answer: string | SExpr;
3466
+ className?: string | SExpr;
3467
+ };
3468
+ 'radio': {
3469
+ type: 'radio';
3470
+ className?: string | SExpr;
3471
+ options?: unknown[] | string | SExpr;
3472
+ value?: string | SExpr;
3473
+ action?: string | SExpr;
3474
+ label?: string | SExpr;
3475
+ helperText?: string | SExpr;
3476
+ error?: string | SExpr;
3477
+ size?: string | SExpr;
3478
+ };
3479
+ 'range-slider': {
3480
+ type: 'range-slider';
3481
+ className?: string | SExpr;
3482
+ min?: number | string | SExpr;
3483
+ max?: number | string | SExpr;
3484
+ value?: number | string | SExpr;
3485
+ step?: number | string | SExpr;
3486
+ showTooltip?: boolean | string | SExpr;
3487
+ showTicks?: boolean | string | SExpr;
3488
+ buffered?: number | string | SExpr;
3489
+ size?: string | SExpr;
3490
+ disabled?: boolean | string | SExpr;
3491
+ action?: string | SExpr;
3492
+ actionPayload?: PatternPropValue | string | SExpr;
3493
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3494
+ formatValue?: ((...args: unknown[]) => unknown) | string | SExpr;
3495
+ };
3496
+ 'reflection-block': {
3497
+ type: 'reflection-block';
3498
+ prompt: string | SExpr;
3499
+ index: number | string | SExpr;
3500
+ savedNote?: string | SExpr;
3501
+ saveEvent?: string | SExpr;
3502
+ className?: string | SExpr;
3503
+ };
3504
+ 'relation-select': {
3505
+ type: 'relation-select';
3506
+ value?: string | SExpr;
3507
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3508
+ options: unknown[] | string | SExpr;
3509
+ placeholder?: string | SExpr;
3510
+ required?: boolean | string | SExpr;
3511
+ disabled?: boolean | string | SExpr;
3512
+ isLoading?: boolean | string | SExpr;
3513
+ error?: string | SExpr;
3514
+ clearable?: boolean | string | SExpr;
3515
+ name?: string | SExpr;
3516
+ className?: string | SExpr;
3517
+ searchPlaceholder?: string | SExpr;
3518
+ emptyMessage?: string | SExpr;
3519
+ };
3520
+ 'repeatable-form-section': {
3521
+ type: 'repeatable-form-section';
3522
+ sectionType: string | SExpr;
3523
+ title: string | SExpr;
3524
+ items: unknown[] | string | SExpr;
3525
+ renderItem: ((...args: unknown[]) => unknown) | string | SExpr;
3526
+ minItems?: number | string | SExpr;
3527
+ maxItems?: number | string | SExpr;
3528
+ allowReorder?: boolean | string | SExpr;
3529
+ addLabel?: string | SExpr;
3530
+ emptyMessage?: string | SExpr;
3531
+ readOnly?: boolean | string | SExpr;
3532
+ className?: string | SExpr;
3533
+ onAdd?: ((...args: unknown[]) => unknown) | string | SExpr;
3534
+ onRemove?: ((...args: unknown[]) => unknown) | string | SExpr;
3535
+ onReorder?: ((...args: unknown[]) => unknown) | string | SExpr;
3536
+ trackAddedInState?: boolean | string | SExpr;
3537
+ currentState?: string | SExpr;
3538
+ showAuditInfo?: boolean | string | SExpr;
3539
+ };
3540
+ 'reply-tree': {
3541
+ type: 'reply-tree';
3542
+ nodes: PatternPropValue | unknown[] | string | SExpr;
3543
+ maxDepth?: number | string | SExpr;
3544
+ onVote?: ((...args: unknown[]) => unknown) | string | SExpr;
3545
+ onReply?: ((...args: unknown[]) => unknown) | string | SExpr;
3546
+ onFlag?: ((...args: unknown[]) => unknown) | string | SExpr;
3547
+ onContinueThread?: ((...args: unknown[]) => unknown) | string | SExpr;
3548
+ voteEvent?: string | SExpr;
3549
+ replyEvent?: string | SExpr;
3550
+ flagEvent?: string | SExpr;
3551
+ continueThreadEvent?: string | SExpr;
3552
+ showActions?: boolean | string | SExpr;
3553
+ className?: string | SExpr;
3554
+ };
3555
+ 'rich-block-editor': {
3556
+ type: 'rich-block-editor';
3557
+ initialBlocks?: PatternPropValue | unknown[] | string | SExpr;
3558
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3559
+ changeEvent?: string | SExpr;
3560
+ readOnly?: boolean | string | SExpr;
3561
+ placeholder?: string | SExpr;
3562
+ enableBlocks?: boolean | string | SExpr;
3563
+ showToolbar?: boolean | string | SExpr;
3564
+ className?: string | SExpr;
3565
+ };
3566
+ 'runtime-debugger': {
3567
+ type: 'runtime-debugger';
3568
+ position?: string | SExpr;
3569
+ defaultCollapsed?: boolean | string | SExpr;
3570
+ className?: string | SExpr;
3571
+ mode?: string | SExpr;
3572
+ defaultTab?: string | SExpr;
3573
+ schema?: PatternPropValue | string | SExpr;
3574
+ };
3575
+ 'scaled-diagram': {
3576
+ type: 'scaled-diagram';
3577
+ children: unknown | string | SExpr;
3578
+ className?: string | SExpr;
3579
+ };
3580
+ 'score-display': {
3581
+ type: 'score-display';
3582
+ assetUrl?: PatternPropValue | string | SExpr;
3583
+ value: number | string | SExpr;
3584
+ score?: number | string | SExpr;
3585
+ label?: string | SExpr;
3586
+ icon?: unknown | string | SExpr;
3587
+ size?: string | SExpr;
3588
+ className?: string | SExpr;
3589
+ locale?: string | SExpr;
3590
+ };
3591
+ 'search-input': {
3592
+ type: 'search-input';
3593
+ value?: string | SExpr;
3594
+ onSearch?: ((...args: unknown[]) => unknown) | string | SExpr;
3595
+ debounceMs?: number | string | SExpr;
3596
+ isLoading?: boolean | string | SExpr;
3597
+ placeholder?: string | SExpr;
3598
+ clearable?: boolean | string | SExpr;
3599
+ className?: string | SExpr;
3600
+ event?: string | SExpr;
3601
+ entity?: string | SExpr;
3602
+ query?: string | SExpr;
3603
+ };
3604
+ 'section': {
3605
+ type: 'section';
3606
+ title?: string | SExpr;
3607
+ description?: string | SExpr;
3608
+ action?: unknown | string | SExpr;
3609
+ padding?: string | SExpr;
3610
+ variant?: string | SExpr;
3611
+ divider?: boolean | string | SExpr;
3612
+ className?: string | SExpr;
3613
+ children: unknown | string | SExpr;
3614
+ headerClassName?: string | SExpr;
3615
+ contentClassName?: string | SExpr;
3616
+ as?: unknown | string | SExpr;
3617
+ isLoading?: boolean | string | SExpr;
3618
+ error?: PatternPropValue | string | SExpr;
3619
+ };
3620
+ 'section-header': {
3621
+ type: 'section-header';
3622
+ title: string | SExpr;
3623
+ subtitle?: string | SExpr;
3624
+ align?: string | SExpr;
3625
+ level?: number | string | SExpr;
3626
+ className?: string | SExpr;
3627
+ };
3628
+ 'segment-renderer': {
3629
+ type: 'segment-renderer';
3630
+ segments: unknown[] | string | SExpr;
3631
+ className?: string | SExpr;
3632
+ containerClassName?: string | SExpr;
3633
+ userProgress?: PatternPropValue | string | SExpr;
3634
+ onRunCodeSimulation?: ((...args: unknown[]) => unknown) | string | SExpr;
3635
+ onRenderVisualization?: ((...args: unknown[]) => unknown) | string | SExpr;
3636
+ };
3637
+ 'select': {
3638
+ type: 'select';
3639
+ className?: string | SExpr;
3640
+ options?: unknown[] | string | SExpr;
3641
+ groups?: unknown[] | string | SExpr;
3642
+ placeholder?: string | SExpr;
3643
+ value?: string | unknown[] | SExpr;
3644
+ action?: string | SExpr;
3645
+ error?: string | SExpr;
3646
+ multiple?: boolean | string | SExpr;
3647
+ searchable?: boolean | string | SExpr;
3648
+ clearable?: boolean | string | SExpr;
3649
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3650
+ onValueChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3651
+ };
3652
+ 'sequence-bar': {
3653
+ type: 'sequence-bar';
3654
+ slots: unknown[] | string | SExpr;
3655
+ maxSlots: number | string | SExpr;
3656
+ onSlotDrop?: ((...args: unknown[]) => unknown) | string | SExpr;
3657
+ onSlotRemove?: ((...args: unknown[]) => unknown) | string | SExpr;
3658
+ slotDropEvent?: string | SExpr;
3659
+ slotRemoveEvent?: string | SExpr;
3660
+ playing?: boolean | string | SExpr;
3661
+ currentStep?: number | string | SExpr;
3662
+ categoryColors?: PatternPropValue | string | SExpr;
3663
+ slotFeedback?: unknown[] | string | SExpr;
3664
+ size?: string | SExpr;
3665
+ className?: string | SExpr;
3666
+ };
3667
+ 'service-catalog': {
3668
+ type: 'service-catalog';
3669
+ services: unknown[] | string | SExpr;
3670
+ className?: string | SExpr;
3671
+ };
3672
+ 'showcase-card': {
3673
+ type: 'showcase-card';
3674
+ title: string | SExpr;
3675
+ description?: string | SExpr;
3676
+ image: PatternPropValue | string | SExpr;
3677
+ href?: string | SExpr;
3678
+ badge?: string | SExpr;
3679
+ accentColor?: string | SExpr;
3680
+ className?: string | SExpr;
3681
+ };
3682
+ 'showcase-organism': {
3683
+ type: 'showcase-organism';
3684
+ className?: string | SExpr;
3685
+ isLoading?: boolean | string | SExpr;
3686
+ error?: PatternPropValue | string | SExpr;
3687
+ sortBy?: string | SExpr;
3688
+ sortDirection?: string | SExpr;
3689
+ searchValue?: string | SExpr;
3690
+ page?: number | string | SExpr;
3691
+ pageSize?: number | string | SExpr;
3692
+ totalCount?: number | string | SExpr;
3693
+ activeFilters?: PatternPropValue | string | SExpr;
3694
+ selectedIds?: unknown[] | string | SExpr;
3695
+ entity?: PatternPropValue | unknown[] | string | SExpr;
3696
+ columns?: number | string | SExpr;
3697
+ heading?: string | SExpr;
3698
+ subtitle?: string | SExpr;
3699
+ };
3700
+ 'side-panel': {
3701
+ type: 'side-panel';
3702
+ title: string | SExpr;
3703
+ children: unknown | string | SExpr;
3704
+ isOpen: boolean | string | SExpr;
3705
+ onClose: ((...args: unknown[]) => unknown) | string | SExpr;
3706
+ width?: string | SExpr;
3707
+ position?: string | SExpr;
3708
+ showOverlay?: boolean | string | SExpr;
3709
+ className?: string | SExpr;
3710
+ closeEvent?: string | SExpr;
3711
+ };
3712
+ 'sidebar': {
3713
+ type: 'sidebar';
3714
+ className?: string | SExpr;
3715
+ isLoading?: boolean | string | SExpr;
3716
+ error?: PatternPropValue | string | SExpr;
3717
+ logo?: unknown | string | SExpr;
3718
+ logoSrc?: unknown | string | SExpr;
3719
+ brandName?: string | SExpr;
3720
+ items: unknown[] | string | SExpr;
3721
+ userSection?: unknown | string | SExpr;
3722
+ footerContent?: unknown | string | SExpr;
3723
+ collapsed?: boolean | string | SExpr;
3724
+ defaultCollapsed?: boolean | string | SExpr;
3725
+ collapseChangeEvent?: string | SExpr;
3726
+ hideCollapseButton?: boolean | string | SExpr;
3727
+ showCloseButton?: boolean | string | SExpr;
3728
+ closeEvent?: string | SExpr;
3729
+ logoClickEvent?: string | SExpr;
3730
+ };
3731
+ 'signature-pad': {
3732
+ type: 'signature-pad';
3733
+ label?: string | SExpr;
3734
+ helperText?: string | SExpr;
3735
+ strokeColor?: string | SExpr;
3736
+ strokeWidth?: number | string | SExpr;
3737
+ height?: number | string | SExpr;
3738
+ readOnly?: boolean | string | SExpr;
3739
+ value?: string | SExpr;
3740
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3741
+ signEvent?: string | SExpr;
3742
+ clearEvent?: string | SExpr;
3743
+ isLoading?: boolean | string | SExpr;
3744
+ error?: PatternPropValue | string | SExpr;
3745
+ className?: string | SExpr;
3746
+ };
3747
+ 'simple-grid': {
3748
+ type: 'simple-grid';
3749
+ minChildWidth?: number | string | SExpr;
3750
+ maxCols?: number | string | SExpr;
3751
+ cols?: number | string | SExpr;
3752
+ gap?: string | SExpr;
3753
+ className?: string | SExpr;
3754
+ children: unknown | string | SExpr;
3755
+ };
3756
+ 'skeleton': {
3757
+ type: 'skeleton';
3758
+ variant?: string | SExpr;
3759
+ rows?: number | string | SExpr;
3760
+ columns?: number | string | SExpr;
3761
+ fields?: number | string | SExpr;
3762
+ className?: string | SExpr;
3763
+ };
3764
+ 'social-proof': {
3765
+ type: 'social-proof';
3766
+ items: unknown[] | string | SExpr;
3767
+ variant?: string | SExpr;
3768
+ className?: string | SExpr;
3769
+ };
3770
+ 'sortable-list': {
3771
+ type: 'sortable-list';
3772
+ items: PatternPropValue | unknown[] | string | SExpr;
3773
+ renderItem: ((...args: unknown[]) => unknown) | string | SExpr;
3774
+ reorderEvent: string | SExpr;
3775
+ reorderPayload?: PatternPropValue | string | SExpr;
3776
+ dragHandlePosition?: string | SExpr;
3777
+ className?: string | SExpr;
3778
+ };
3779
+ 'spacer': {
3780
+ type: 'spacer';
3781
+ size?: string | SExpr;
3782
+ axis?: string | SExpr;
3783
+ className?: string | SExpr;
3784
+ };
3785
+ 'sparkline': {
3786
+ type: 'sparkline';
3787
+ data: unknown[] | string | SExpr;
3788
+ color?: string | SExpr;
3789
+ width?: number | string | SExpr;
3790
+ height?: number | string | SExpr;
3791
+ strokeWidth?: number | string | SExpr;
3792
+ fill?: boolean | string | SExpr;
3793
+ className?: string | SExpr;
3794
+ };
3795
+ 'spinner': {
3796
+ type: 'spinner';
3797
+ className?: string | SExpr;
3798
+ size?: string | SExpr;
3799
+ overlay?: boolean | string | SExpr;
3800
+ };
3801
+ 'split': {
3802
+ type: 'split';
3803
+ ratio?: string | SExpr;
3804
+ gap?: string | SExpr;
3805
+ reverse?: boolean | string | SExpr;
3806
+ stackOnMobile?: boolean | string | SExpr;
3807
+ stackBreakpoint?: string | SExpr;
3808
+ align?: string | SExpr;
3809
+ className?: string | SExpr;
3810
+ leftClassName?: string | SExpr;
3811
+ rightClassName?: string | SExpr;
3812
+ children: unknown[] | string | SExpr;
3813
+ isLoading?: boolean | string | SExpr;
3814
+ error?: PatternPropValue | string | SExpr;
3815
+ };
3816
+ 'split-pane': {
3817
+ type: 'split-pane';
3818
+ direction?: string | SExpr;
3819
+ ratio?: number | string | SExpr;
3820
+ minSize?: number | string | SExpr;
3821
+ resizable?: boolean | string | SExpr;
3822
+ left: unknown | string | SExpr;
3823
+ right: unknown | string | SExpr;
3824
+ className?: string | SExpr;
3825
+ leftClassName?: string | SExpr;
3826
+ rightClassName?: string | SExpr;
3827
+ };
3828
+ 'split-section': {
3829
+ type: 'split-section';
3830
+ title: string | SExpr;
3831
+ description: string | unknown | SExpr;
3832
+ bullets?: unknown[] | string | SExpr;
3833
+ image?: PatternPropValue | string | SExpr;
3834
+ imagePosition?: string | SExpr;
3835
+ background?: string | SExpr;
3836
+ children?: unknown | string | SExpr;
3837
+ className?: string | SExpr;
3838
+ };
3839
+ 'stack': {
3840
+ type: 'stack';
3841
+ direction?: string | SExpr;
3842
+ gap?: string | SExpr;
3843
+ align?: string | SExpr;
3844
+ justify?: string | SExpr;
3845
+ wrap?: boolean | string | SExpr;
3846
+ reverse?: boolean | string | SExpr;
3847
+ flex?: boolean | string | SExpr;
3848
+ className?: string | SExpr;
3849
+ style?: PatternPropValue | string | SExpr;
3850
+ children?: unknown | string | SExpr;
3851
+ as?: unknown | string | SExpr;
3852
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
3853
+ onKeyDown?: ((...args: unknown[]) => unknown) | string | SExpr;
3854
+ role?: string | SExpr;
3855
+ tabIndex?: number | string | SExpr;
3856
+ action?: string | SExpr;
3857
+ actionPayload?: PatternPropValue | string | SExpr;
3858
+ responsive?: boolean | string | SExpr;
3859
+ };
3860
+ 'star-rating': {
3861
+ type: 'star-rating';
3862
+ value?: number | string | SExpr;
3863
+ max?: number | string | SExpr;
3864
+ readOnly?: boolean | string | SExpr;
3865
+ precision?: string | SExpr;
3866
+ size?: string | SExpr;
3867
+ action?: string | SExpr;
3868
+ actionPayload?: PatternPropValue | string | SExpr;
3869
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
3870
+ className?: string | SExpr;
3871
+ label?: string | SExpr;
3872
+ };
3873
+ 'stat-badge': {
3874
+ type: 'stat-badge';
3875
+ assetUrl?: PatternPropValue | string | SExpr;
3876
+ iconUrl?: PatternPropValue | string | SExpr;
3877
+ label: string | SExpr;
3878
+ value?: number | string | SExpr;
3879
+ max?: number | string | SExpr;
3880
+ source?: string | SExpr;
3881
+ field?: string | SExpr;
3882
+ format?: string | SExpr;
3883
+ icon?: unknown | string | SExpr;
3884
+ size?: string | SExpr;
3885
+ variant?: string | SExpr;
3886
+ className?: string | SExpr;
3887
+ };
3888
+ 'stat-card': {
3889
+ type: 'stat-card';
3890
+ className?: string | SExpr;
3891
+ isLoading?: boolean | string | SExpr;
3892
+ error?: PatternPropValue | string | SExpr;
3893
+ sortBy?: string | SExpr;
3894
+ sortDirection?: string | SExpr;
3895
+ searchValue?: string | SExpr;
3896
+ page?: number | string | SExpr;
3897
+ pageSize?: number | string | SExpr;
3898
+ totalCount?: number | string | SExpr;
3899
+ activeFilters?: PatternPropValue | string | SExpr;
3900
+ selectedIds?: unknown[] | string | SExpr;
3901
+ entity?: PatternPropValue | unknown[] | string | SExpr;
3902
+ label?: string | SExpr;
3903
+ title?: string | SExpr;
3904
+ value?: string | number | unknown[] | SExpr;
3905
+ previousValue?: number | string | SExpr;
3906
+ currentValue?: number | string | SExpr;
3907
+ trend?: number | string | SExpr;
3908
+ trendDirection?: string | SExpr;
3909
+ invertTrend?: boolean | string | SExpr;
3910
+ icon?: unknown | string | SExpr;
3911
+ iconBg?: string | SExpr;
3912
+ iconColor?: string | SExpr;
3913
+ subtitle?: string | SExpr;
3914
+ action?: PatternPropValue | string | SExpr;
3915
+ metrics?: unknown[] | string | SExpr;
3916
+ compact?: boolean | string | SExpr;
3917
+ sparklineData?: unknown[] | string | SExpr;
3918
+ };
3919
+ 'stat-display': {
3920
+ type: 'stat-display';
3921
+ label: string | SExpr;
3922
+ value: number | string | SExpr;
3923
+ max?: number | string | SExpr;
3924
+ target?: number | string | SExpr;
3925
+ trend?: number | string | SExpr;
3926
+ trendPolarity?: string | SExpr;
3927
+ trendFormat?: string | SExpr;
3928
+ sparklineData?: unknown[] | string | SExpr;
3929
+ clickEvent?: string | SExpr;
3930
+ prefix?: string | SExpr;
3931
+ suffix?: string | SExpr;
3932
+ icon?: unknown | string | SExpr;
3933
+ iconBg?: string | SExpr;
3934
+ iconColor?: string | SExpr;
3935
+ format?: string | SExpr;
3936
+ size?: string | SExpr;
3937
+ variant?: string | SExpr;
3938
+ compact?: boolean | string | SExpr;
3939
+ look?: string | SExpr;
3940
+ className?: string | SExpr;
3941
+ isLoading?: boolean | string | SExpr;
3942
+ error?: PatternPropValue | string | SExpr;
3943
+ };
3944
+ 'state-graph': {
3945
+ type: 'state-graph';
3946
+ states: unknown[] | string | SExpr;
3947
+ transitions?: unknown[] | string | SExpr;
3948
+ currentState?: string | SExpr;
3949
+ selectedState?: string | SExpr;
3950
+ addingFrom?: string | SExpr;
3951
+ initialState?: string | SExpr;
3952
+ width?: number | string | SExpr;
3953
+ height?: number | string | SExpr;
3954
+ nodeClickEvent?: string | SExpr;
3955
+ className?: string | SExpr;
3956
+ };
3957
+ 'state-json-view': {
3958
+ type: 'state-json-view';
3959
+ name: string | SExpr;
3960
+ initialState: string | SExpr;
3961
+ states: unknown[] | string | SExpr;
3962
+ transitions: unknown[] | string | SExpr;
3963
+ label?: string | SExpr;
3964
+ defaultExpanded?: boolean | string | SExpr;
3965
+ className?: string | SExpr;
3966
+ };
3967
+ 'state-machine-view': {
3968
+ type: 'state-machine-view';
3969
+ className?: string | SExpr;
3970
+ isLoading?: boolean | string | SExpr;
3971
+ error?: PatternPropValue | string | SExpr;
3972
+ layoutData?: PatternPropValue | string | SExpr;
3973
+ renderStateNode?: ((...args: unknown[]) => unknown) | string | SExpr;
3974
+ };
3975
+ 'stats-grid': {
3976
+ type: 'stats-grid';
3977
+ stats: unknown[] | string | SExpr;
3978
+ columns?: number | string | SExpr;
3979
+ className?: string | SExpr;
3980
+ };
3981
+ 'stats-organism': {
3982
+ type: 'stats-organism';
3983
+ className?: string | SExpr;
3984
+ isLoading?: boolean | string | SExpr;
3985
+ error?: PatternPropValue | string | SExpr;
3986
+ sortBy?: string | SExpr;
3987
+ sortDirection?: string | SExpr;
3988
+ searchValue?: string | SExpr;
3989
+ page?: number | string | SExpr;
3990
+ pageSize?: number | string | SExpr;
3991
+ totalCount?: number | string | SExpr;
3992
+ activeFilters?: PatternPropValue | string | SExpr;
3993
+ selectedIds?: unknown[] | string | SExpr;
3994
+ entity?: PatternPropValue | unknown[] | string | SExpr;
3995
+ columns?: number | string | SExpr;
3996
+ };
3997
+ 'status-dot': {
3998
+ type: 'status-dot';
3999
+ className?: string | SExpr;
4000
+ status?: string | SExpr;
4001
+ pulse?: boolean | string | SExpr;
4002
+ size?: string | SExpr;
4003
+ label?: string | SExpr;
4004
+ };
4005
+ 'step-flow': {
4006
+ type: 'step-flow';
4007
+ steps: unknown[] | string | SExpr;
4008
+ orientation?: string | SExpr;
4009
+ showConnectors?: boolean | string | SExpr;
4010
+ className?: string | SExpr;
4011
+ };
4012
+ 'step-flow-organism': {
4013
+ type: 'step-flow-organism';
4014
+ className?: string | SExpr;
4015
+ isLoading?: boolean | string | SExpr;
4016
+ error?: PatternPropValue | string | SExpr;
4017
+ sortBy?: string | SExpr;
4018
+ sortDirection?: string | SExpr;
4019
+ searchValue?: string | SExpr;
4020
+ page?: number | string | SExpr;
4021
+ pageSize?: number | string | SExpr;
4022
+ totalCount?: number | string | SExpr;
4023
+ activeFilters?: PatternPropValue | string | SExpr;
4024
+ selectedIds?: unknown[] | string | SExpr;
4025
+ entity?: PatternPropValue | unknown[] | string | SExpr;
4026
+ orientation?: string | SExpr;
4027
+ showConnectors?: boolean | string | SExpr;
4028
+ heading?: string | SExpr;
4029
+ subtitle?: string | SExpr;
4030
+ };
4031
+ 'subagent-trace-panel': {
4032
+ type: 'subagent-trace-panel';
4033
+ className?: string | SExpr;
4034
+ isLoading?: boolean | string | SExpr;
4035
+ error?: PatternPropValue | string | SExpr;
4036
+ sortBy?: string | SExpr;
4037
+ sortDirection?: string | SExpr;
4038
+ searchValue?: string | SExpr;
4039
+ page?: number | string | SExpr;
4040
+ pageSize?: number | string | SExpr;
4041
+ totalCount?: number | string | SExpr;
4042
+ activeFilters?: PatternPropValue | string | SExpr;
4043
+ selectedIds?: unknown[] | string | SExpr;
4044
+ subagents: unknown[] | string | SExpr;
4045
+ focusedOrbital?: string | SExpr;
4046
+ disclosureLevel: number | string | SExpr;
4047
+ open: boolean | string | SExpr;
4048
+ onClose?: ((...args: unknown[]) => unknown) | string | SExpr;
4049
+ coordinatorActivities?: unknown[] | string | SExpr;
4050
+ coordinatorMessages?: unknown[] | string | SExpr;
4051
+ mode?: string | SExpr;
4052
+ };
4053
+ 'svg-branch': {
4054
+ type: 'svg-branch';
4055
+ x?: number | string | SExpr;
4056
+ y?: number | string | SExpr;
4057
+ variant?: string | SExpr;
4058
+ branches?: number | string | SExpr;
4059
+ size?: number | string | SExpr;
4060
+ color?: string | SExpr;
4061
+ opacity?: number | string | SExpr;
4062
+ className?: string | SExpr;
4063
+ asRoot?: boolean | string | SExpr;
4064
+ width?: number | string | SExpr;
4065
+ height?: number | string | SExpr;
4066
+ };
4067
+ 'svg-connection': {
4068
+ type: 'svg-connection';
4069
+ x1?: number | string | SExpr;
4070
+ y1?: number | string | SExpr;
4071
+ x2?: number | string | SExpr;
4072
+ y2?: number | string | SExpr;
4073
+ variant?: string | SExpr;
4074
+ color?: string | SExpr;
4075
+ strokeWidth?: number | string | SExpr;
4076
+ opacity?: number | string | SExpr;
4077
+ className?: string | SExpr;
4078
+ asRoot?: boolean | string | SExpr;
4079
+ width?: number | string | SExpr;
4080
+ height?: number | string | SExpr;
4081
+ };
4082
+ 'svg-flow': {
4083
+ type: 'svg-flow';
4084
+ points?: unknown[] | string | SExpr;
4085
+ color?: string | SExpr;
4086
+ strokeWidth?: number | string | SExpr;
4087
+ animated?: boolean | string | SExpr;
4088
+ opacity?: number | string | SExpr;
4089
+ className?: string | SExpr;
4090
+ asRoot?: boolean | string | SExpr;
4091
+ width?: number | string | SExpr;
4092
+ height?: number | string | SExpr;
4093
+ };
4094
+ 'svg-grid': {
4095
+ type: 'svg-grid';
4096
+ x?: number | string | SExpr;
4097
+ y?: number | string | SExpr;
4098
+ cols?: number | string | SExpr;
4099
+ rows?: number | string | SExpr;
4100
+ spacing?: number | string | SExpr;
4101
+ nodeRadius?: number | string | SExpr;
4102
+ color?: string | SExpr;
4103
+ opacity?: number | string | SExpr;
4104
+ className?: string | SExpr;
4105
+ highlights?: unknown[] | string | SExpr;
4106
+ asRoot?: boolean | string | SExpr;
4107
+ width?: number | string | SExpr;
4108
+ height?: number | string | SExpr;
4109
+ };
4110
+ 'svg-lobe': {
4111
+ type: 'svg-lobe';
4112
+ cx?: number | string | SExpr;
4113
+ cy?: number | string | SExpr;
4114
+ rx?: number | string | SExpr;
4115
+ ry?: number | string | SExpr;
4116
+ rotation?: number | string | SExpr;
4117
+ shells?: number | string | SExpr;
4118
+ color?: string | SExpr;
4119
+ opacity?: number | string | SExpr;
4120
+ className?: string | SExpr;
4121
+ asRoot?: boolean | string | SExpr;
4122
+ width?: number | string | SExpr;
4123
+ height?: number | string | SExpr;
4124
+ };
4125
+ 'svg-mesh': {
4126
+ type: 'svg-mesh';
4127
+ cx?: number | string | SExpr;
4128
+ cy?: number | string | SExpr;
4129
+ nodes?: number | string | SExpr;
4130
+ radius?: number | string | SExpr;
4131
+ color?: string | SExpr;
4132
+ connectionDensity?: number | string | SExpr;
4133
+ opacity?: number | string | SExpr;
4134
+ className?: string | SExpr;
4135
+ asRoot?: boolean | string | SExpr;
4136
+ width?: number | string | SExpr;
4137
+ height?: number | string | SExpr;
4138
+ };
4139
+ 'svg-morph': {
4140
+ type: 'svg-morph';
4141
+ x?: number | string | SExpr;
4142
+ y?: number | string | SExpr;
4143
+ size?: number | string | SExpr;
4144
+ variant?: string | SExpr;
4145
+ color?: string | SExpr;
4146
+ opacity?: number | string | SExpr;
4147
+ className?: string | SExpr;
4148
+ asRoot?: boolean | string | SExpr;
4149
+ width?: number | string | SExpr;
4150
+ height?: number | string | SExpr;
4151
+ };
4152
+ 'svg-node': {
4153
+ type: 'svg-node';
4154
+ x?: number | string | SExpr;
4155
+ y?: number | string | SExpr;
4156
+ r?: number | string | SExpr;
4157
+ variant?: string | SExpr;
4158
+ color?: string | SExpr;
4159
+ opacity?: number | string | SExpr;
4160
+ className?: string | SExpr;
4161
+ label?: string | SExpr;
4162
+ asRoot?: boolean | string | SExpr;
4163
+ width?: number | string | SExpr;
4164
+ height?: number | string | SExpr;
4165
+ };
4166
+ 'svg-pulse': {
4167
+ type: 'svg-pulse';
4168
+ cx?: number | string | SExpr;
4169
+ cy?: number | string | SExpr;
4170
+ rings?: number | string | SExpr;
4171
+ maxRadius?: number | string | SExpr;
4172
+ color?: string | SExpr;
4173
+ animated?: boolean | string | SExpr;
4174
+ opacity?: number | string | SExpr;
4175
+ className?: string | SExpr;
4176
+ asRoot?: boolean | string | SExpr;
4177
+ width?: number | string | SExpr;
4178
+ height?: number | string | SExpr;
4179
+ };
4180
+ 'svg-ring': {
4181
+ type: 'svg-ring';
4182
+ cx?: number | string | SExpr;
4183
+ cy?: number | string | SExpr;
4184
+ r?: number | string | SExpr;
4185
+ variant?: string | SExpr;
4186
+ color?: string | SExpr;
4187
+ strokeWidth?: number | string | SExpr;
4188
+ opacity?: number | string | SExpr;
4189
+ className?: string | SExpr;
4190
+ label?: string | SExpr;
4191
+ asRoot?: boolean | string | SExpr;
4192
+ width?: number | string | SExpr;
4193
+ height?: number | string | SExpr;
4194
+ };
4195
+ 'svg-shield': {
4196
+ type: 'svg-shield';
4197
+ x?: number | string | SExpr;
4198
+ y?: number | string | SExpr;
4199
+ size?: number | string | SExpr;
4200
+ variant?: string | SExpr;
4201
+ color?: string | SExpr;
4202
+ opacity?: number | string | SExpr;
4203
+ className?: string | SExpr;
4204
+ asRoot?: boolean | string | SExpr;
4205
+ width?: number | string | SExpr;
4206
+ height?: number | string | SExpr;
4207
+ };
4208
+ 'svg-stack': {
4209
+ type: 'svg-stack';
4210
+ x?: number | string | SExpr;
4211
+ y?: number | string | SExpr;
4212
+ layers?: number | string | SExpr;
4213
+ width?: number | string | SExpr;
4214
+ height?: number | string | SExpr;
4215
+ color?: string | SExpr;
4216
+ opacity?: number | string | SExpr;
4217
+ className?: string | SExpr;
4218
+ labels?: unknown[] | string | SExpr;
4219
+ asRoot?: boolean | string | SExpr;
4220
+ svgWidth?: number | string | SExpr;
4221
+ svgHeight?: number | string | SExpr;
4222
+ };
4223
+ 'swipeable-row': {
4224
+ type: 'swipeable-row';
4225
+ leftActions?: unknown[] | string | SExpr;
4226
+ rightActions?: unknown[] | string | SExpr;
4227
+ threshold?: number | string | SExpr;
4228
+ children: unknown | string | SExpr;
4229
+ itemData?: PatternPropValue | string | SExpr;
4230
+ className?: string | SExpr;
4231
+ };
4232
+ 'switch': {
4233
+ type: 'switch';
4234
+ checked?: boolean | string | SExpr;
4235
+ defaultChecked?: boolean | string | SExpr;
4236
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
4237
+ disabled?: boolean | string | SExpr;
4238
+ label?: string | SExpr;
4239
+ id?: string | SExpr;
4240
+ name?: string | SExpr;
4241
+ className?: string | SExpr;
4242
+ };
4243
+ 'tabbed-container': {
4244
+ type: 'tabbed-container';
4245
+ tabs: unknown[] | string | SExpr;
4246
+ defaultTab?: string | SExpr;
4247
+ activeTab?: string | SExpr;
4248
+ onTabChange?: ((...args: unknown[]) => unknown) | string | SExpr;
4249
+ position?: string | SExpr;
4250
+ className?: string | SExpr;
4251
+ };
4252
+ 'table-view': {
4253
+ type: 'table-view';
4254
+ dragGroup?: string | SExpr;
4255
+ accepts?: string | SExpr;
4256
+ sortable?: boolean | string | SExpr;
4257
+ dropEvent?: string | SExpr;
4258
+ reorderEvent?: string | SExpr;
4259
+ positionEvent?: string | SExpr;
4260
+ dndItemIdField?: string | SExpr;
4261
+ dndRoot?: boolean | string | SExpr;
4262
+ entity: PatternPropValue | unknown[] | string | SExpr;
4263
+ columns?: unknown[] | string | SExpr;
4264
+ fields?: unknown[] | string | SExpr;
4265
+ itemActions?: unknown[] | string | SExpr;
4266
+ maxInlineActions?: number | string | SExpr;
4267
+ selectable?: boolean | string | SExpr;
4268
+ selectEvent?: string | SExpr;
4269
+ selectedIds?: unknown[] | string | SExpr;
4270
+ sortEvent?: string | SExpr;
4271
+ sortColumn?: string | SExpr;
4272
+ sortDirection?: string | SExpr;
4273
+ className?: string | SExpr;
4274
+ emptyMessage?: string | SExpr;
4275
+ isLoading?: boolean | string | SExpr;
4276
+ error?: PatternPropValue | string | SExpr;
4277
+ groupBy?: string | SExpr;
4278
+ pageSize?: number | string | SExpr;
4279
+ children?: ((...args: unknown[]) => unknown) | string | SExpr;
4280
+ renderItem?: ((...args: unknown[]) => unknown) | string | SExpr;
4281
+ look?: string | SExpr;
4282
+ };
4283
+ 'tabs': {
4284
+ type: 'tabs';
4285
+ items?: unknown[] | string | SExpr;
4286
+ tabs?: unknown[] | string | SExpr;
4287
+ defaultActiveTab?: string | SExpr;
4288
+ activeTab?: string | SExpr;
4289
+ onTabChange?: ((...args: unknown[]) => unknown) | string | SExpr;
4290
+ tabChangeEvent?: string | SExpr;
4291
+ variant?: string | SExpr;
4292
+ orientation?: string | SExpr;
4293
+ className?: string | SExpr;
4294
+ };
4295
+ 'tag-cloud': {
4296
+ type: 'tag-cloud';
4297
+ tags: unknown[] | string | SExpr;
4298
+ variant?: string | SExpr;
4299
+ className?: string | SExpr;
4300
+ };
4301
+ 'tag-input': {
4302
+ type: 'tag-input';
4303
+ value: unknown[] | string | SExpr;
4304
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
4305
+ placeholder?: string | SExpr;
4306
+ disabled?: boolean | string | SExpr;
4307
+ variant?: string | SExpr;
4308
+ unique?: boolean | string | SExpr;
4309
+ helperText?: string | SExpr;
4310
+ className?: string | SExpr;
4311
+ addEvent?: string | SExpr;
4312
+ removeEvent?: string | SExpr;
4313
+ };
4314
+ 'team-card': {
4315
+ type: 'team-card';
4316
+ name: string | SExpr;
4317
+ nameAr?: string | SExpr;
4318
+ role: string | SExpr;
4319
+ bio: string | SExpr;
4320
+ avatar?: unknown | PatternPropValue | string | SExpr;
4321
+ className?: string | SExpr;
4322
+ };
4323
+ 'team-organism': {
4324
+ type: 'team-organism';
4325
+ className?: string | SExpr;
4326
+ isLoading?: boolean | string | SExpr;
4327
+ error?: PatternPropValue | string | SExpr;
4328
+ sortBy?: string | SExpr;
4329
+ sortDirection?: string | SExpr;
4330
+ searchValue?: string | SExpr;
4331
+ page?: number | string | SExpr;
4332
+ pageSize?: number | string | SExpr;
4333
+ totalCount?: number | string | SExpr;
4334
+ activeFilters?: PatternPropValue | string | SExpr;
4335
+ selectedIds?: unknown[] | string | SExpr;
4336
+ entity?: PatternPropValue | unknown[] | string | SExpr;
4337
+ heading?: string | SExpr;
4338
+ subtitle?: string | SExpr;
4339
+ };
4340
+ 'text-highlight': {
4341
+ type: 'text-highlight';
4342
+ highlightType: string | SExpr;
4343
+ isActive?: boolean | string | SExpr;
4344
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4345
+ onMouseEnter?: ((...args: unknown[]) => unknown) | string | SExpr;
4346
+ onMouseLeave?: ((...args: unknown[]) => unknown) | string | SExpr;
4347
+ annotationId?: string | SExpr;
4348
+ className?: string | SExpr;
4349
+ children: unknown | string | SExpr;
4350
+ action?: string | SExpr;
4351
+ hoverEvent?: string | SExpr;
4352
+ };
4353
+ 'textarea': {
4354
+ type: 'textarea';
4355
+ className?: string | SExpr;
4356
+ placeholder?: string | SExpr;
4357
+ rows?: number | string | SExpr;
4358
+ action?: string | SExpr;
4359
+ error?: string | SExpr;
4360
+ onChange?: ((...args: unknown[]) => unknown) | string | SExpr;
4361
+ };
4362
+ 'theme-toggle': {
4363
+ type: 'theme-toggle';
4364
+ className?: string | SExpr;
4365
+ size?: string | SExpr;
4366
+ showLabel?: boolean | string | SExpr;
4367
+ };
4368
+ 'time-slot-cell': {
4369
+ type: 'time-slot-cell';
4370
+ time: string | SExpr;
4371
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4372
+ className?: string | SExpr;
4373
+ children?: unknown | string | SExpr;
4374
+ isOccupied?: boolean | string | SExpr;
4375
+ };
4376
+ 'timeline': {
4377
+ type: 'timeline';
4378
+ className?: string | SExpr;
4379
+ isLoading?: boolean | string | SExpr;
4380
+ error?: PatternPropValue | string | SExpr;
4381
+ entity?: PatternPropValue | unknown[] | string | SExpr;
4382
+ title?: string | SExpr;
4383
+ items?: unknown[] | string | SExpr;
4384
+ fields: unknown[] | string | SExpr;
4385
+ itemActions?: unknown[] | string | SExpr;
4386
+ look?: string | SExpr;
4387
+ };
4388
+ 'timer-display': {
4389
+ type: 'timer-display';
4390
+ seconds: number | string | SExpr;
4391
+ running?: boolean | string | SExpr;
4392
+ format?: string | SExpr;
4393
+ size?: string | SExpr;
4394
+ className?: string | SExpr;
4395
+ lowThreshold?: number | string | SExpr;
4396
+ iconAsset?: PatternPropValue | string | SExpr;
4397
+ };
4398
+ 'toast-slot': {
4399
+ type: 'toast-slot';
4400
+ children?: unknown | string | SExpr;
4401
+ variant?: string | SExpr;
4402
+ title?: string | SExpr;
4403
+ duration?: number | string | SExpr;
4404
+ className?: string | SExpr;
4405
+ isLoading?: boolean | string | SExpr;
4406
+ error?: PatternPropValue | string | SExpr;
4407
+ entity?: string | SExpr;
4408
+ sourceTrait?: string | SExpr;
4409
+ };
4410
+ 'tooltip': {
4411
+ type: 'tooltip';
4412
+ content: unknown | string | SExpr;
4413
+ children: unknown | string | SExpr;
4414
+ position?: string | SExpr;
4415
+ delay?: number | string | SExpr;
4416
+ hideDelay?: number | string | SExpr;
4417
+ showArrow?: boolean | string | SExpr;
4418
+ className?: string | SExpr;
4419
+ };
4420
+ 'trait-frame': {
4421
+ type: 'trait-frame';
4422
+ traitName: string | SExpr;
4423
+ fallback?: unknown | string | SExpr;
4424
+ };
4425
+ 'trait-slot': {
4426
+ type: 'trait-slot';
4427
+ slotNumber: number | string | SExpr;
4428
+ equippedItem?: PatternPropValue | string | SExpr;
4429
+ locked?: boolean | string | SExpr;
4430
+ lockLabel?: string | SExpr;
4431
+ selected?: boolean | string | SExpr;
4432
+ size?: string | SExpr;
4433
+ showTooltip?: boolean | string | SExpr;
4434
+ categoryColors?: PatternPropValue | string | SExpr;
4435
+ tooltipFrameUrl?: PatternPropValue | string | SExpr;
4436
+ className?: string | SExpr;
4437
+ isLoading?: boolean | string | SExpr;
4438
+ error?: PatternPropValue | string | SExpr;
4439
+ onItemDrop?: ((...args: unknown[]) => unknown) | string | SExpr;
4440
+ draggable?: boolean | string | SExpr;
4441
+ onDragStart?: ((...args: unknown[]) => unknown) | string | SExpr;
4442
+ feedback?: string | SExpr;
4443
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4444
+ onRemove?: ((...args: unknown[]) => unknown) | string | SExpr;
4445
+ clickEvent?: string | SExpr;
4446
+ removeEvent?: string | SExpr;
4447
+ dropEvent?: string | SExpr;
4448
+ };
4449
+ 'trend-indicator': {
4450
+ type: 'trend-indicator';
4451
+ className?: string | SExpr;
4452
+ value?: number | string | SExpr;
4453
+ direction?: string | SExpr;
4454
+ showValue?: boolean | string | SExpr;
4455
+ invert?: boolean | string | SExpr;
4456
+ label?: string | SExpr;
4457
+ size?: string | SExpr;
4458
+ };
4459
+ 'typewriter-text': {
4460
+ type: 'typewriter-text';
4461
+ text: string | SExpr;
4462
+ speed?: number | string | SExpr;
4463
+ startDelay?: number | string | SExpr;
4464
+ className?: string | SExpr;
4465
+ onComplete?: ((...args: unknown[]) => unknown) | string | SExpr;
4466
+ };
4467
+ 'typography': {
4468
+ type: 'typography';
4469
+ variant?: string | SExpr;
4470
+ level?: number | string | SExpr;
4471
+ color?: string | SExpr;
4472
+ align?: string | SExpr;
4473
+ weight?: string | SExpr;
4474
+ size?: string | SExpr;
4475
+ truncate?: boolean | string | SExpr;
4476
+ overflow?: string | SExpr;
4477
+ as?: unknown | string | SExpr;
4478
+ id?: string | SExpr;
4479
+ className?: string | SExpr;
4480
+ style?: PatternPropValue | string | SExpr;
4481
+ content?: unknown | string | SExpr;
4482
+ children?: unknown | string | SExpr;
4483
+ };
4484
+ 'ui-slot-renderer': {
4485
+ type: 'ui-slot-renderer';
4486
+ includeHud?: boolean | string | SExpr;
4487
+ hudMode?: string | SExpr;
4488
+ includeFloating?: boolean | string | SExpr;
4489
+ className?: string | SExpr;
4490
+ isLoading?: boolean | string | SExpr;
4491
+ error?: PatternPropValue | string | SExpr;
4492
+ entity?: string | SExpr;
4493
+ suspense?: boolean | PatternPropValue | string | SExpr;
4494
+ };
4495
+ 'upload-drop-zone': {
4496
+ type: 'upload-drop-zone';
4497
+ accept?: string | SExpr;
4498
+ maxSize?: number | string | SExpr;
4499
+ maxFiles?: number | string | SExpr;
4500
+ label?: string | SExpr;
4501
+ description?: string | SExpr;
4502
+ icon?: unknown | string | SExpr;
4503
+ disabled?: boolean | string | SExpr;
4504
+ action?: string | SExpr;
4505
+ actionPayload?: PatternPropValue | string | SExpr;
4506
+ onFiles?: ((...args: unknown[]) => unknown) | string | SExpr;
4507
+ className?: string | SExpr;
4508
+ };
4509
+ 'version-diff': {
4510
+ type: 'version-diff';
4511
+ revisions: unknown[] | PatternPropValue | string | SExpr;
4512
+ beforeId?: string | SExpr;
4513
+ afterId?: string | SExpr;
4514
+ view?: string | SExpr;
4515
+ onSelectBefore?: ((...args: unknown[]) => unknown) | string | SExpr;
4516
+ onSelectAfter?: ((...args: unknown[]) => unknown) | string | SExpr;
4517
+ onRevert?: ((...args: unknown[]) => unknown) | string | SExpr;
4518
+ selectBeforeEvent?: string | SExpr;
4519
+ selectAfterEvent?: string | SExpr;
4520
+ revertEvent?: string | SExpr;
4521
+ language?: string | SExpr;
4522
+ className?: string | SExpr;
4523
+ };
4524
+ 'violation-alert': {
4525
+ type: 'violation-alert';
4526
+ violation: PatternPropValue | string | SExpr;
4527
+ severity?: string | SExpr;
4528
+ dismissible?: boolean | string | SExpr;
4529
+ onDismiss?: ((...args: unknown[]) => unknown) | string | SExpr;
4530
+ onNavigateToField?: ((...args: unknown[]) => unknown) | string | SExpr;
4531
+ compact?: boolean | string | SExpr;
4532
+ className?: string | SExpr;
4533
+ message?: string | SExpr;
4534
+ };
4535
+ 'vote-stack': {
4536
+ type: 'vote-stack';
4537
+ count: number | string | SExpr;
4538
+ userVote?: string | SExpr;
4539
+ onVote?: ((...args: unknown[]) => unknown) | string | SExpr;
4540
+ voteEvent?: string | SExpr;
4541
+ disabled?: boolean | string | SExpr;
4542
+ size?: string | SExpr;
4543
+ variant?: string | SExpr;
4544
+ className?: string | SExpr;
4545
+ label?: string | SExpr;
4546
+ };
4547
+ 'vstack': {
4548
+ type: 'vstack';
4549
+ gap?: string | SExpr;
4550
+ align?: string | SExpr;
4551
+ justify?: string | SExpr;
4552
+ wrap?: boolean | string | SExpr;
4553
+ reverse?: boolean | string | SExpr;
4554
+ flex?: boolean | string | SExpr;
4555
+ className?: string | SExpr;
4556
+ style?: PatternPropValue | string | SExpr;
4557
+ children?: unknown | string | SExpr;
4558
+ as?: unknown | string | SExpr;
4559
+ onClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4560
+ onKeyDown?: ((...args: unknown[]) => unknown) | string | SExpr;
4561
+ role?: string | SExpr;
4562
+ tabIndex?: number | string | SExpr;
4563
+ action?: string | SExpr;
4564
+ actionPayload?: PatternPropValue | string | SExpr;
4565
+ responsive?: boolean | string | SExpr;
4566
+ };
4567
+ 'wizard-container': {
4568
+ type: 'wizard-container';
4569
+ steps: unknown[] | string | SExpr;
4570
+ currentStep?: number | string | SExpr;
4571
+ onStepChange?: ((...args: unknown[]) => unknown) | string | SExpr;
4572
+ onComplete?: ((...args: unknown[]) => unknown) | string | SExpr;
4573
+ showProgress?: boolean | string | SExpr;
4574
+ allowBack?: boolean | string | SExpr;
4575
+ compact?: boolean | string | SExpr;
4576
+ className?: string | SExpr;
4577
+ isLoading?: boolean | string | SExpr;
4578
+ error?: PatternPropValue | string | SExpr;
4579
+ nextEvent?: string | SExpr;
4580
+ backEvent?: string | SExpr;
4581
+ completeEvent?: string | SExpr;
4582
+ };
4583
+ 'wizard-navigation': {
4584
+ type: 'wizard-navigation';
4585
+ currentStep: number | string | SExpr;
4586
+ totalSteps: number | string | SExpr;
4587
+ isValid?: boolean | string | SExpr;
4588
+ showBack?: boolean | string | SExpr;
4589
+ showNext?: boolean | string | SExpr;
4590
+ showComplete?: boolean | string | SExpr;
4591
+ backLabel?: string | SExpr;
4592
+ nextLabel?: string | SExpr;
4593
+ completeLabel?: string | SExpr;
4594
+ onBack?: string | SExpr;
4595
+ onNext?: string | SExpr;
4596
+ onComplete?: string | SExpr;
4597
+ onBackClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4598
+ onNextClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4599
+ onCompleteClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4600
+ compact?: boolean | string | SExpr;
4601
+ className?: string | SExpr;
4602
+ };
4603
+ 'wizard-progress': {
4604
+ type: 'wizard-progress';
4605
+ steps?: unknown[] | string | SExpr;
4606
+ currentStep: number | string | SExpr;
4607
+ onStepClick?: ((...args: unknown[]) => unknown) | string | SExpr;
4608
+ allowNavigation?: boolean | string | SExpr;
4609
+ compact?: boolean | string | SExpr;
4610
+ className?: string | SExpr;
4611
+ stepClickEvent?: string | SExpr;
4612
+ };
4613
+ }
4614
+ /**
4615
+ * Get the props type for a specific pattern.
4616
+ */
4617
+ type PatternProps<T extends PatternType> = PatternPropsMap[T];
4618
+ /**
4619
+ * Type-safe pattern configuration.
4620
+ */
4621
+ type PatternConfig<T extends PatternType = PatternType> = PatternPropsMap[T];
4622
+ /**
4623
+ * Discriminated union of all pattern configs.
4624
+ */
4625
+ type AnyPatternConfig = PatternPropsMap[PatternType];
4626
+ /**
4627
+ * Array of all pattern type names (for runtime validation).
4628
+ */
4629
+ declare const PATTERN_TYPES: PatternType[];
4630
+ /**
4631
+ * Check if a string is a valid pattern type.
4632
+ */
4633
+ declare function isValidPatternType(type: string): type is PatternType;
4634
+
4635
+ export { type PatternConfig as $, type AnyPatternConfig as A, CameraModeSchema as B, CAMERA_MODES as C, CameraSchema as D, type EntityField as E, type FieldValue as F, ENTITY_ROLES as G, type EntityData as H, type EntityFieldInput as I, EntityFieldSchema as J, EntityPersistenceSchema as K, type EntityRole as L, EntityRoleSchema as M, EntitySchema as N, type EntityWith as O, type EnumEntityField as P, type Field as Q, type RelationConfig as R, type FieldFormat as S, FieldFormatSchema as T, FieldSchema as U, type FieldType as V, FieldTypeSchema as W, type OrbitalEntity as X, type OrbitalEntityInput as Y, OrbitalEntitySchema as Z, PATTERN_TYPES as _, type EntityPersistence as a, type PatternProps as a0, type PatternPropsMap as a1, type PatternType as a2, RelationConfigSchema as a3, type RelationEntityField as a4, SPRITE_DIRECTIONS as a5, type ScalarEntityField as a6, type ScenePos as a7, ScenePosSchema as a8, type SemanticAssetRef as a9, type SemanticAssetRefInput as aa, SemanticAssetRefSchema as ab, type SpriteDirection as ac, SpriteDirectionSchema as ad, type SpriteSheetAtlas as ae, type SpriteSheetAtlasInput as af, SpriteSheetAtlasSchema as ag, type SubTexture as ah, SubTextureSchema as ai, type TextureAtlas as aj, TextureAtlasSchema as ak, type Tilesheet as al, TilesheetSchema as am, VISUAL_STYLES as an, type VisualStyle as ao, VisualStyleSchema as ap, createAssetKey as aq, deriveCollection as ar, getDefaultAnimationsForRole as as, isFieldValue as at, isRuntimeEntity as au, isValidPatternType as av, parseAssetKey as aw, persistenceModeAllowsOverrides as ax, validateAssetAnimations as ay, type EntityRow as b, type Entity as c, ANIMATION_NAMES as d, ASSET_ASPECTS as e, ASSET_DIMENSIONS as f, type AnimationDef as g, type AnimationDefInput as h, AnimationDefSchema as i, type AnimationName as j, AnimationNameSchema as k, type ArrayEntityField as l, type Asset as m, type AssetAspect as n, AssetAspectSchema as o, type AssetCatalog as p, type AssetCatalogEntry as q, type AssetCatalogEntryInput as r, AssetCatalogEntrySchema as s, AssetCatalogSchema as t, type AssetDimension as u, AssetDimensionSchema as v, AssetSchema as w, type AssetUrl as x, type Camera as y, type CameraMode as z };