@texuli/spec 0.0.0-stage → 0.1.0-next.1

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.
Files changed (41) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -2
  3. package/dist/build.d.ts +47 -0
  4. package/dist/build.js +65 -0
  5. package/dist/canonical.d.ts +17 -0
  6. package/dist/canonical.js +131 -0
  7. package/dist/catalog.d.ts +41 -0
  8. package/dist/catalog.js +45 -0
  9. package/dist/codegen/index.d.ts +14 -0
  10. package/dist/codegen/index.js +13 -0
  11. package/dist/codegen/kotlin.d.ts +18 -0
  12. package/dist/codegen/kotlin.js +328 -0
  13. package/dist/codegen/shared.d.ts +35 -0
  14. package/dist/codegen/shared.js +69 -0
  15. package/dist/codegen/typescript.d.ts +10 -0
  16. package/dist/codegen/typescript.js +167 -0
  17. package/dist/conformance.d.ts +20 -0
  18. package/dist/conformance.js +124 -0
  19. package/dist/dialect.d.ts +56 -0
  20. package/dist/dialect.js +264 -0
  21. package/dist/format.d.ts +9 -0
  22. package/dist/format.js +48 -0
  23. package/dist/generated/typescript/blueprint.d.ts +125 -0
  24. package/dist/generated/typescript/blueprint.js +3 -0
  25. package/dist/generated/typescript/catalog-schema.d.ts +33 -0
  26. package/dist/generated/typescript/catalog-schema.js +3 -0
  27. package/dist/generated/typescript/diagnostics.d.ts +12 -0
  28. package/dist/generated/typescript/diagnostics.js +3 -0
  29. package/dist/generated/typescript/manifest.d.ts +9 -0
  30. package/dist/generated/typescript/manifest.js +3 -0
  31. package/dist/generated/typescript/vocabulary.d.ts +972 -0
  32. package/dist/generated/typescript/vocabulary.js +140 -0
  33. package/dist/index.d.ts +17 -0
  34. package/dist/index.js +13 -0
  35. package/dist/validate.d.ts +27 -0
  36. package/dist/validate.js +143 -0
  37. package/dist/version.d.ts +2 -0
  38. package/dist/version.js +2 -0
  39. package/dist/versioning.d.ts +39 -0
  40. package/dist/versioning.js +87 -0
  41. package/package.json +36 -4
@@ -0,0 +1,972 @@
1
+ /** The built catalog this vocabulary was projected from. */
2
+ export declare const SPEC_CATALOG_HASH = "b073e30b4c8b1a30b3ef3ccb372e552d2d88e584616b74591c6c32923b471376";
3
+ /** Every closed component id, sorted. */
4
+ export declare const SPEC_COMPONENT_IDS: readonly ["alert", "alert-dialog", "analytics-grid", "app-nav", "badge", "banner", "blocks-code", "blocks-data", "blocks-diagram", "blocks-embed", "blocks-interactive", "blocks-map", "blocks-media", "blocks-structure", "blocks-text", "breadcrumb", "button", "button-group", "callout", "card", "charts-area", "charts-bar", "charts-bubble", "charts-bullet", "charts-canvas-renderer", "charts-cartesian", "charts-combo", "charts-donut", "charts-funnel", "charts-gauge", "charts-geo-map", "charts-geo-point-map", "charts-heatmap", "charts-line", "charts-network", "charts-pie", "charts-progress-ring", "charts-sankey", "charts-scatter", "charts-sparkline", "charts-stacked-bar", "charts-sunburst", "charts-treemap", "checkbox", "chip", "code", "combobox", "command-palette", "content-layout", "context-menu", "context-menu-trigger", "deck-slide", "description", "detail-panel", "dialog", "drawer", "dropdown-menu", "dropdown-menu-content", "dropdown-menu-item", "dropdown-menu-trigger", "empty-state", "error-state", "field", "field-error", "form", "hover-card", "hover-card-content", "icon-button", "inline-text", "input", "input-group", "kbd", "kpi", "label", "layout-auth-split", "layout-blog", "layout-card", "layout-chrome", "layout-dashboard-grid", "layout-deck", "layout-doc", "layout-docs", "layout-drawer", "layout-dual-sidebar", "layout-editorial", "layout-grid", "layout-host", "layout-landing", "layout-marketing", "layout-page", "layout-pricing", "layout-settings", "layout-sidebar", "layout-top-nav", "layout-wizard", "media-composition-canvas", "media-composition-svg", "media-image", "menubar", "menubar-trigger", "multi-select", "nav-icon", "navigation-menu", "pagination", "popover", "popover-content", "radio", "radio-group", "responsive-modal", "screen-outlet", "select", "select-content", "select-group", "select-item", "select-label", "select-portal", "select-separator", "select-trigger", "select-value", "select-viewport", "sheet", "sidebar", "split-view", "stat", "stepper", "switch", "table", "tag", "text-counter", "textarea", "timeline", "toaster", "tooltip"];
5
+ export type SpecComponentId = (typeof SPEC_COMPONENT_IDS)[number];
6
+ /** The props a blueprint may set on each component (platform extensions left out). */
7
+ export interface SpecComponentProps {
8
+ alert: {
9
+ actionHref?: string;
10
+ actionLabel?: string;
11
+ dismissLabel?: string;
12
+ dismissible?: boolean;
13
+ hideIcon?: boolean;
14
+ text?: string;
15
+ title?: string;
16
+ tone?: 'info' | 'success' | 'warning' | 'error' | 'brand' | 'neutral';
17
+ };
18
+ 'alert-dialog': {
19
+ cancelLabel?: string;
20
+ confirmLabel?: string;
21
+ description?: string;
22
+ destructive?: boolean;
23
+ errorFallback?: string;
24
+ open?: boolean;
25
+ title: string;
26
+ };
27
+ 'analytics-grid': {
28
+ columns?: number;
29
+ dense?: boolean;
30
+ gap?: string;
31
+ label?: string;
32
+ minItem?: number;
33
+ };
34
+ 'app-nav': {
35
+ collapsed?: boolean;
36
+ collapsible?: boolean;
37
+ drawerTitle?: string;
38
+ hrefTrust?: 'developer' | 'untrusted';
39
+ items?: readonly unknown[];
40
+ label?: string;
41
+ menuLabel?: string;
42
+ mobileOpen?: boolean;
43
+ sections?: readonly unknown[];
44
+ variant?: 'default' | 'inset';
45
+ };
46
+ badge: {
47
+ label?: string;
48
+ variant?: 'default' | 'secondary' | 'outline' | 'success' | 'warning' | 'destructive' | 'info' | 'neutral';
49
+ };
50
+ banner: {
51
+ actionHref?: string;
52
+ actionLabel?: string;
53
+ dismissLabel?: string;
54
+ dismissible?: boolean;
55
+ hideIcon?: boolean;
56
+ text?: string;
57
+ title?: string;
58
+ tone?: 'info' | 'success' | 'warning' | 'error' | 'brand' | 'neutral';
59
+ };
60
+ 'blocks-code': {
61
+ block: Readonly<Record<string, unknown>>;
62
+ copyable?: boolean;
63
+ highlights?: readonly unknown[];
64
+ hostStep?: number;
65
+ labels?: Readonly<Record<string, unknown>>;
66
+ lineNumbers?: boolean;
67
+ step?: number;
68
+ };
69
+ 'blocks-data': {
70
+ block: Readonly<Record<string, unknown>>;
71
+ labels?: Readonly<Record<string, unknown>>;
72
+ mode?: 'light' | 'dark';
73
+ };
74
+ 'blocks-diagram': {
75
+ block: Readonly<Record<string, unknown>>;
76
+ };
77
+ 'blocks-embed': {
78
+ block: Readonly<Record<string, unknown>>;
79
+ labels?: Readonly<Record<string, unknown>>;
80
+ };
81
+ 'blocks-interactive': {
82
+ block: Readonly<Record<string, unknown>>;
83
+ labels?: Readonly<Record<string, unknown>>;
84
+ };
85
+ 'blocks-map': {
86
+ block: Readonly<Record<string, unknown>>;
87
+ headingLevel?: number;
88
+ labels?: Readonly<Record<string, unknown>>;
89
+ locale?: string;
90
+ };
91
+ 'blocks-media': {
92
+ block: Readonly<Record<string, unknown>>;
93
+ labels?: Readonly<Record<string, unknown>>;
94
+ };
95
+ 'blocks-structure': {
96
+ block: Readonly<Record<string, unknown>>;
97
+ labels?: Readonly<Record<string, unknown>>;
98
+ };
99
+ 'blocks-text': {
100
+ block: Readonly<Record<string, unknown>>;
101
+ labels?: Readonly<Record<string, unknown>>;
102
+ };
103
+ breadcrumb: {
104
+ hrefTrust?: 'developer' | 'untrusted';
105
+ items: readonly unknown[];
106
+ label?: string;
107
+ maxItems?: number;
108
+ separatorLabel?: string;
109
+ size?: 'sm' | 'md' | 'lg';
110
+ };
111
+ button: {
112
+ autoLoading?: boolean;
113
+ disabled?: boolean;
114
+ href?: string;
115
+ hrefTrust?: 'developer' | 'untrusted';
116
+ label?: string;
117
+ loading?: boolean;
118
+ loadingLabel?: string;
119
+ size?: 'sm' | 'md' | 'lg' | 'icon';
120
+ type?: 'button' | 'submit' | 'reset';
121
+ variant?: 'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link';
122
+ };
123
+ 'button-group': {
124
+ attached?: boolean;
125
+ label?: string;
126
+ orientation?: 'horizontal' | 'vertical';
127
+ };
128
+ callout: {
129
+ actionHref?: string;
130
+ actionLabel?: string;
131
+ dismissLabel?: string;
132
+ dismissible?: boolean;
133
+ hideIcon?: boolean;
134
+ text?: string;
135
+ title?: string;
136
+ tone?: 'info' | 'success' | 'warning' | 'error' | 'brand' | 'neutral';
137
+ };
138
+ card: {
139
+ href?: string;
140
+ hrefTrust?: 'developer' | 'untrusted';
141
+ linkLabel?: string;
142
+ variant?: 'elevated' | 'flat';
143
+ };
144
+ 'charts-area': {
145
+ annotations?: string;
146
+ description: string;
147
+ fullDomain?: string;
148
+ interactive?: string;
149
+ mode?: 'light' | 'dark';
150
+ series: readonly unknown[];
151
+ title: string;
152
+ visibleDomain?: string;
153
+ };
154
+ 'charts-bar': {
155
+ annotations?: string;
156
+ description: string;
157
+ fullDomain?: string;
158
+ interactive?: string;
159
+ mode?: 'light' | 'dark';
160
+ series: readonly unknown[];
161
+ title: string;
162
+ visibleDomain?: string;
163
+ };
164
+ 'charts-bubble': {
165
+ annotations?: string;
166
+ description: string;
167
+ height?: number;
168
+ interactive?: string;
169
+ mode?: 'light' | 'dark';
170
+ points: readonly unknown[];
171
+ series?: readonly unknown[];
172
+ title: string;
173
+ width?: number;
174
+ };
175
+ 'charts-bullet': {
176
+ description?: string;
177
+ format?: Readonly<Record<string, unknown>>;
178
+ label: string;
179
+ labels?: Readonly<Record<string, unknown>>;
180
+ max?: number;
181
+ ranges?: readonly unknown[];
182
+ target?: number;
183
+ value: number;
184
+ };
185
+ 'charts-canvas-renderer': {
186
+ height: number;
187
+ kind: 'line' | 'area' | 'bar' | 'stacked-bar' | 'combo';
188
+ series: readonly unknown[];
189
+ width: number;
190
+ };
191
+ 'charts-cartesian': {
192
+ annotations?: string;
193
+ description: string;
194
+ fullDomain?: string;
195
+ interactive?: string;
196
+ kind: 'line' | 'area' | 'bar' | 'stacked-bar' | 'combo';
197
+ mode?: 'light' | 'dark';
198
+ series: readonly unknown[];
199
+ title: string;
200
+ visibleDomain?: string;
201
+ };
202
+ 'charts-combo': {
203
+ annotations?: string;
204
+ description: string;
205
+ fullDomain?: string;
206
+ interactive?: string;
207
+ mode?: 'light' | 'dark';
208
+ series: readonly unknown[];
209
+ title: string;
210
+ visibleDomain?: string;
211
+ };
212
+ 'charts-donut': {
213
+ data: readonly unknown[];
214
+ description: string;
215
+ innerRatio?: string;
216
+ labels: Readonly<Record<string, unknown>>;
217
+ padAngle?: string;
218
+ size?: number;
219
+ title: string;
220
+ };
221
+ 'charts-funnel': {
222
+ description?: string;
223
+ height?: number;
224
+ labels?: Readonly<Record<string, unknown>>;
225
+ orientation?: 'vertical' | 'horizontal';
226
+ steps: readonly unknown[];
227
+ title: string;
228
+ width?: number;
229
+ };
230
+ 'charts-gauge': {
231
+ bandLabels?: readonly unknown[];
232
+ description?: string;
233
+ format?: Readonly<Record<string, unknown>>;
234
+ label: string;
235
+ labels?: Readonly<Record<string, unknown>>;
236
+ max?: number;
237
+ min?: number;
238
+ size?: number;
239
+ thickness?: number;
240
+ thresholds?: readonly unknown[];
241
+ value: number;
242
+ };
243
+ 'charts-geo-map': {
244
+ data: Readonly<Record<string, unknown>>;
245
+ description: string;
246
+ height?: number;
247
+ labels?: Readonly<Record<string, unknown>>;
248
+ shape?: readonly unknown[];
249
+ title: string;
250
+ width?: number;
251
+ };
252
+ 'charts-geo-point-map': {
253
+ description: string;
254
+ height?: number;
255
+ labels?: Readonly<Record<string, unknown>>;
256
+ points: readonly unknown[];
257
+ shape?: readonly unknown[];
258
+ title: string;
259
+ width?: number;
260
+ };
261
+ 'charts-heatmap': {
262
+ annotations?: string;
263
+ cells: readonly unknown[];
264
+ description: string;
265
+ height?: number;
266
+ interactive?: string;
267
+ mode?: 'light' | 'dark';
268
+ title: string;
269
+ width?: number;
270
+ };
271
+ 'charts-line': {
272
+ annotations?: string;
273
+ description: string;
274
+ fullDomain?: string;
275
+ interactive?: string;
276
+ mode?: 'light' | 'dark';
277
+ series: readonly unknown[];
278
+ title: string;
279
+ visibleDomain?: string;
280
+ };
281
+ 'charts-network': {
282
+ description?: string;
283
+ height?: number;
284
+ labels?: Readonly<Record<string, unknown>>;
285
+ links: readonly unknown[];
286
+ nodes: readonly unknown[];
287
+ title: string;
288
+ width?: number;
289
+ };
290
+ 'charts-pie': {
291
+ data: readonly unknown[];
292
+ description: string;
293
+ innerRatio?: string;
294
+ labels: Readonly<Record<string, unknown>>;
295
+ padAngle?: string;
296
+ size?: number;
297
+ title: string;
298
+ };
299
+ 'charts-progress-ring': {
300
+ description?: string;
301
+ format?: Readonly<Record<string, unknown>>;
302
+ label: string;
303
+ labels?: Readonly<Record<string, unknown>>;
304
+ max?: number;
305
+ size?: number;
306
+ thickness?: number;
307
+ value: number;
308
+ };
309
+ 'charts-sankey': {
310
+ description?: string;
311
+ height?: number;
312
+ labels?: Readonly<Record<string, unknown>>;
313
+ links: readonly unknown[];
314
+ nodes: readonly unknown[];
315
+ title: string;
316
+ width?: number;
317
+ };
318
+ 'charts-scatter': {
319
+ annotations?: string;
320
+ description: string;
321
+ height?: number;
322
+ interactive?: string;
323
+ mode?: 'light' | 'dark';
324
+ points: readonly unknown[];
325
+ series?: readonly unknown[];
326
+ title: string;
327
+ width?: number;
328
+ };
329
+ 'charts-sparkline': {
330
+ description?: string;
331
+ format?: Readonly<Record<string, unknown>>;
332
+ height?: number;
333
+ label: string;
334
+ labels?: Readonly<Record<string, unknown>>;
335
+ period?: string;
336
+ showLast?: boolean;
337
+ values: readonly unknown[];
338
+ variant?: 'line' | 'area' | 'bar';
339
+ };
340
+ 'charts-stacked-bar': {
341
+ annotations?: string;
342
+ description: string;
343
+ fullDomain?: string;
344
+ interactive?: string;
345
+ mode?: 'light' | 'dark';
346
+ series: readonly unknown[];
347
+ title: string;
348
+ visibleDomain?: string;
349
+ };
350
+ 'charts-sunburst': {
351
+ description: string;
352
+ innerRatio?: string;
353
+ labels: Readonly<Record<string, unknown>>;
354
+ padAngle?: string;
355
+ root: Readonly<Record<string, unknown>>;
356
+ size?: number;
357
+ title: string;
358
+ };
359
+ 'charts-treemap': {
360
+ description: string;
361
+ height?: number;
362
+ labels: Readonly<Record<string, unknown>>;
363
+ padding?: number;
364
+ root: Readonly<Record<string, unknown>>;
365
+ title: string;
366
+ width?: number;
367
+ };
368
+ checkbox: {
369
+ checked?: boolean;
370
+ defaultChecked?: boolean;
371
+ defaultIndeterminate?: boolean;
372
+ description?: string;
373
+ disabled?: boolean;
374
+ id?: string;
375
+ indeterminate?: boolean;
376
+ label?: string;
377
+ name?: string;
378
+ required?: boolean;
379
+ size?: 'sm' | 'md';
380
+ value?: string;
381
+ };
382
+ chip: {
383
+ disabled?: boolean;
384
+ label: string;
385
+ selected?: boolean;
386
+ type?: 'button' | 'submit' | 'reset';
387
+ variant?: 'default' | 'secondary' | 'outline' | 'success' | 'warning' | 'destructive' | 'info' | 'neutral';
388
+ };
389
+ code: {
390
+ language?: string;
391
+ value?: string;
392
+ variant?: 'inline' | 'block';
393
+ };
394
+ combobox: {
395
+ defaultInputValue?: string;
396
+ disabled?: boolean;
397
+ form?: string;
398
+ inputValue?: string;
399
+ items?: readonly unknown[];
400
+ multiple?: boolean;
401
+ name?: string;
402
+ open?: boolean;
403
+ required?: boolean;
404
+ requiredMessage?: string;
405
+ size?: 'sm' | 'md' | 'lg';
406
+ variant?: 'outline' | 'soft';
407
+ };
408
+ 'command-palette': {
409
+ debounceMs?: number;
410
+ description?: string;
411
+ emptyLabel?: string;
412
+ errorLabel?: string;
413
+ loadingLabel?: string;
414
+ open?: boolean;
415
+ placeholder?: string;
416
+ recentEmptyLabel?: string;
417
+ recentItems?: readonly unknown[];
418
+ recentLabel?: string;
419
+ shortcut?: boolean;
420
+ size?: 'sm' | 'md' | 'lg';
421
+ title?: string;
422
+ variant?: 'outline' | 'soft';
423
+ };
424
+ 'content-layout': {
425
+ kind: 'docs' | 'blog' | 'editorial';
426
+ nav?: Readonly<Record<string, unknown>>;
427
+ options?: Readonly<Record<string, unknown>>;
428
+ path?: string;
429
+ storageKey?: string;
430
+ };
431
+ 'context-menu': {
432
+ open?: boolean;
433
+ };
434
+ 'context-menu-trigger': {
435
+ disabled?: boolean;
436
+ };
437
+ 'deck-slide': {
438
+ master?: 'title' | 'section' | 'content' | 'two-column' | 'media-left' | 'media-right' | 'quote' | 'closing';
439
+ notes?: string;
440
+ slideId: string;
441
+ title?: string;
442
+ transition?: 'none' | 'fade' | 'fade-up';
443
+ };
444
+ description: Record<string, never>;
445
+ 'detail-panel': {
446
+ closeOnEscape?: boolean;
447
+ dismissOutside?: boolean;
448
+ side?: 'top' | 'right' | 'bottom' | 'left' | 'start' | 'end' | 'center';
449
+ size?: 'sm' | 'md' | 'lg' | 'xl';
450
+ };
451
+ dialog: {
452
+ closeLabel?: string;
453
+ description?: string;
454
+ hideClose?: boolean;
455
+ open?: boolean;
456
+ size?: 'sm' | 'md' | 'lg' | 'xl';
457
+ title: string;
458
+ };
459
+ drawer: {
460
+ closeOnEscape?: boolean;
461
+ dismissOutside?: boolean;
462
+ side?: 'top' | 'right' | 'bottom' | 'left' | 'start' | 'end' | 'center';
463
+ size?: 'sm' | 'md' | 'lg' | 'xl';
464
+ };
465
+ 'dropdown-menu': {
466
+ open?: boolean;
467
+ };
468
+ 'dropdown-menu-content': {
469
+ align?: 'start' | 'center' | 'end';
470
+ side?: 'top' | 'right' | 'bottom' | 'left';
471
+ sideOffset?: number;
472
+ size?: 'sm' | 'md' | 'lg';
473
+ variant?: 'default' | 'soft';
474
+ };
475
+ 'dropdown-menu-item': {
476
+ closeOnSelect?: boolean;
477
+ disabled?: boolean;
478
+ inset?: boolean;
479
+ shortcut?: string;
480
+ textValue?: string;
481
+ };
482
+ 'dropdown-menu-trigger': {
483
+ size?: 'sm' | 'md' | 'lg';
484
+ variant?: 'default' | 'soft';
485
+ };
486
+ 'empty-state': {
487
+ description?: string;
488
+ size?: 'sm' | 'md';
489
+ title: string;
490
+ };
491
+ 'error-state': {
492
+ message?: string;
493
+ retryLabel?: string;
494
+ title?: string;
495
+ };
496
+ field: {
497
+ description?: string;
498
+ disabled?: boolean;
499
+ error?: string;
500
+ hideLabel?: boolean;
501
+ id?: string;
502
+ label: string;
503
+ orientation?: 'vertical' | 'horizontal';
504
+ required?: boolean;
505
+ };
506
+ 'field-error': {
507
+ show?: boolean;
508
+ };
509
+ form: {
510
+ errors?: Readonly<Record<string, unknown>>;
511
+ layout?: 'stack' | 'grid';
512
+ noValidate?: boolean;
513
+ };
514
+ 'hover-card': {
515
+ open?: boolean;
516
+ };
517
+ 'hover-card-content': {
518
+ arrow?: boolean;
519
+ size?: 'sm' | 'md' | 'lg';
520
+ variant?: 'elevated' | 'flat';
521
+ };
522
+ 'icon-button': {
523
+ autoLoading?: boolean;
524
+ disabled?: boolean;
525
+ href?: string;
526
+ label: string;
527
+ loading?: boolean;
528
+ variant?: 'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link';
529
+ };
530
+ 'inline-text': {
531
+ text: string;
532
+ };
533
+ input: {
534
+ clearLabel?: string;
535
+ clearable?: boolean;
536
+ disabled?: boolean;
537
+ readonly?: boolean;
538
+ type?: string;
539
+ value?: string;
540
+ };
541
+ 'input-group': {
542
+ clearLabel?: string;
543
+ clearable?: boolean;
544
+ disabled?: boolean;
545
+ inputProps?: Readonly<Record<string, unknown>>;
546
+ invalid?: boolean;
547
+ readonly?: boolean;
548
+ value?: string;
549
+ };
550
+ kbd: {
551
+ label?: string;
552
+ };
553
+ kpi: {
554
+ comparisonLabel?: string;
555
+ currency?: string;
556
+ href?: string;
557
+ hrefTrust?: 'developer' | 'untrusted';
558
+ label: string;
559
+ loading?: boolean;
560
+ positive?: 'up' | 'down';
561
+ previous?: number;
562
+ unit?: 'number' | 'compact' | 'cents' | 'percent';
563
+ value?: number;
564
+ variant?: 'elevated' | 'flat';
565
+ };
566
+ label: {
567
+ required?: boolean;
568
+ size?: 'sm' | 'md';
569
+ srOnly?: boolean;
570
+ };
571
+ 'layout-auth-split': {
572
+ brandDescription?: string;
573
+ brandEyebrow?: string;
574
+ brandTitle?: string;
575
+ formLabel?: string;
576
+ panelLabel?: string;
577
+ };
578
+ 'layout-blog': {
579
+ nav?: Readonly<Record<string, unknown>>;
580
+ options?: Readonly<Record<string, unknown>>;
581
+ path?: string;
582
+ storageKey?: string;
583
+ };
584
+ 'layout-card': {
585
+ title?: string;
586
+ };
587
+ 'layout-chrome': {
588
+ compact?: boolean;
589
+ hrefTrust?: 'developer' | 'untrusted';
590
+ mainId?: string;
591
+ nav?: Readonly<Record<string, unknown>>;
592
+ part: 'skip' | 'brand' | 'actions' | 'user';
593
+ skipLabel?: string;
594
+ };
595
+ 'layout-dashboard-grid': {
596
+ hrefTrust?: 'developer' | 'untrusted';
597
+ nav?: Readonly<Record<string, unknown>>;
598
+ options?: Readonly<Record<string, unknown>>;
599
+ path?: string;
600
+ storageKey?: string;
601
+ };
602
+ 'layout-deck': {
603
+ aspect?: '16:9' | '4:3' | '1:1';
604
+ description?: string;
605
+ locale?: string;
606
+ masters?: readonly unknown[];
607
+ settings?: Readonly<Record<string, unknown>>;
608
+ slides?: readonly unknown[];
609
+ title?: string;
610
+ };
611
+ 'layout-doc': {
612
+ title?: string;
613
+ toc?: boolean;
614
+ };
615
+ 'layout-docs': {
616
+ nav?: Readonly<Record<string, unknown>>;
617
+ options?: Readonly<Record<string, unknown>>;
618
+ path?: string;
619
+ storageKey?: string;
620
+ };
621
+ 'layout-drawer': {
622
+ closeLabel?: string;
623
+ label: string;
624
+ open?: boolean;
625
+ };
626
+ 'layout-dual-sidebar': {
627
+ closeLabel?: string;
628
+ menuLabel?: string;
629
+ nav?: Readonly<Record<string, unknown>>;
630
+ options?: Readonly<Record<string, unknown>>;
631
+ path?: string;
632
+ skipLabel?: string;
633
+ storageKey?: string;
634
+ };
635
+ 'layout-editorial': {
636
+ nav?: Readonly<Record<string, unknown>>;
637
+ options?: Readonly<Record<string, unknown>>;
638
+ path?: string;
639
+ storageKey?: string;
640
+ };
641
+ 'layout-grid': {
642
+ columns?: number;
643
+ gap?: string;
644
+ };
645
+ 'layout-host': {
646
+ dir?: 'ltr' | 'rtl';
647
+ layout: 'sidebar' | 'rail' | 'top-nav' | 'dual-sidebar' | 'master-detail' | 'dashboard-grid' | 'docs' | 'blog' | 'editorial' | 'marketing' | 'mobile-tabs' | 'mobile-drawer' | 'wizard' | 'auth-split' | 'custom';
648
+ loadingLabel?: string;
649
+ nav?: Readonly<Record<string, unknown>>;
650
+ options?: Readonly<Record<string, unknown>>;
651
+ path?: string;
652
+ storageKey?: string;
653
+ };
654
+ 'layout-landing': Record<string, never>;
655
+ 'layout-marketing': {
656
+ contentLabel?: string;
657
+ heroLabel?: string;
658
+ nav?: Readonly<Record<string, unknown>>;
659
+ navigationLabel?: string;
660
+ options?: Readonly<Record<string, unknown>>;
661
+ path?: string;
662
+ storageKey?: string;
663
+ };
664
+ 'layout-page': {
665
+ description?: string;
666
+ title?: string;
667
+ };
668
+ 'layout-pricing': {
669
+ description?: string;
670
+ footnote?: string;
671
+ plans?: readonly unknown[];
672
+ title?: string;
673
+ };
674
+ 'layout-settings': {
675
+ active?: string;
676
+ backLabel?: string;
677
+ description?: string;
678
+ navLabel?: string;
679
+ sections: readonly unknown[];
680
+ startWithList?: boolean;
681
+ title?: string;
682
+ };
683
+ 'layout-sidebar': {
684
+ closeLabel?: string;
685
+ menuLabel?: string;
686
+ nav?: Readonly<Record<string, unknown>>;
687
+ options?: Readonly<Record<string, unknown>>;
688
+ path?: string;
689
+ skipLabel?: string;
690
+ storageKey?: string;
691
+ };
692
+ 'layout-top-nav': {
693
+ closeLabel?: string;
694
+ menuLabel?: string;
695
+ nav?: Readonly<Record<string, unknown>>;
696
+ options?: Readonly<Record<string, unknown>>;
697
+ path?: string;
698
+ skipLabel?: string;
699
+ storageKey?: string;
700
+ };
701
+ 'layout-wizard': {
702
+ backLabel?: string;
703
+ current?: number;
704
+ description?: string;
705
+ finishLabel?: string;
706
+ nextLabel?: string;
707
+ steps?: readonly unknown[];
708
+ title?: string;
709
+ };
710
+ 'media-composition-canvas': {
711
+ background?: string;
712
+ composition: Readonly<Record<string, unknown>>;
713
+ dir?: 'ltr' | 'rtl';
714
+ fontFamily?: string;
715
+ label?: string;
716
+ labels?: Readonly<Record<string, unknown>>;
717
+ pixelRatio?: number;
718
+ trust?: 'developer' | 'untrusted';
719
+ };
720
+ 'media-composition-svg': {
721
+ composition: Readonly<Record<string, unknown>>;
722
+ description?: string;
723
+ focusable?: boolean;
724
+ title?: string;
725
+ trust?: 'developer' | 'untrusted';
726
+ validate?: boolean;
727
+ };
728
+ 'media-image': {
729
+ actionLabel?: string;
730
+ alt: string;
731
+ fetchPriority?: 'high' | 'low' | 'auto';
732
+ fit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';
733
+ focalPoint?: Readonly<Record<string, unknown>>;
734
+ height?: number;
735
+ href?: string;
736
+ labels?: Readonly<Record<string, unknown>>;
737
+ loading?: 'eager' | 'lazy';
738
+ placeholder?: Readonly<Record<string, unknown>>;
739
+ sizes?: string;
740
+ src: string;
741
+ srcset?: string;
742
+ trust?: 'developer' | 'untrusted';
743
+ width?: number;
744
+ widths?: readonly unknown[];
745
+ };
746
+ menubar: {
747
+ dir?: 'ltr' | 'rtl';
748
+ loop?: boolean;
749
+ value?: string;
750
+ };
751
+ 'menubar-trigger': {
752
+ disabled?: boolean;
753
+ size?: 'sm' | 'md' | 'lg';
754
+ variant?: 'default' | 'soft';
755
+ };
756
+ 'multi-select': {
757
+ defaultInputValue?: string;
758
+ disabled?: boolean;
759
+ form?: string;
760
+ inputValue?: string;
761
+ items?: readonly unknown[];
762
+ name?: string;
763
+ open?: boolean;
764
+ required?: boolean;
765
+ requiredMessage?: string;
766
+ size?: 'sm' | 'md' | 'lg';
767
+ variant?: 'outline' | 'soft';
768
+ };
769
+ 'nav-icon': {
770
+ label?: string;
771
+ };
772
+ 'navigation-menu': {
773
+ delayDuration?: number;
774
+ dir?: 'ltr' | 'rtl';
775
+ orientation?: 'horizontal' | 'vertical';
776
+ value?: string;
777
+ };
778
+ pagination: {
779
+ label?: string;
780
+ page?: number;
781
+ pageCount: number;
782
+ size?: 'sm' | 'md' | 'lg';
783
+ variant?: 'outline' | 'soft';
784
+ };
785
+ popover: {
786
+ open?: boolean;
787
+ };
788
+ 'popover-content': {
789
+ align?: 'start' | 'center' | 'end';
790
+ arrow?: boolean;
791
+ side?: 'top' | 'right' | 'bottom' | 'left';
792
+ sideOffset?: number;
793
+ size?: 'sm' | 'md' | 'lg';
794
+ variant?: 'elevated' | 'flat';
795
+ };
796
+ radio: {
797
+ card?: boolean;
798
+ description?: string;
799
+ disabled?: boolean;
800
+ id?: string;
801
+ label?: string;
802
+ size?: 'sm' | 'md';
803
+ value: string;
804
+ };
805
+ 'radio-group': {
806
+ disabled?: boolean;
807
+ items?: readonly unknown[];
808
+ loop?: boolean;
809
+ name?: string;
810
+ orientation?: 'vertical' | 'horizontal';
811
+ readonly?: boolean;
812
+ required?: boolean;
813
+ size?: 'sm' | 'md';
814
+ value?: string;
815
+ variant?: 'default' | 'card';
816
+ };
817
+ 'responsive-modal': {
818
+ side?: 'top' | 'right' | 'bottom' | 'left' | 'start' | 'end' | 'center';
819
+ size?: 'sm' | 'md' | 'lg' | 'xl';
820
+ };
821
+ 'screen-outlet': Record<string, never>;
822
+ select: {
823
+ defaultValue?: string;
824
+ disabled?: boolean;
825
+ form?: string;
826
+ items?: readonly unknown[];
827
+ name?: string;
828
+ open?: boolean;
829
+ positioning?: boolean;
830
+ required?: boolean;
831
+ sideOffset?: number;
832
+ size?: 'sm' | 'md' | 'lg';
833
+ type?: 'single';
834
+ value?: string;
835
+ variant?: 'outline' | 'soft';
836
+ };
837
+ 'select-content': {
838
+ size?: 'sm' | 'md' | 'lg';
839
+ };
840
+ 'select-group': Record<string, never>;
841
+ 'select-item': {
842
+ description?: string;
843
+ disabled?: boolean;
844
+ label?: string;
845
+ value: string;
846
+ };
847
+ 'select-label': Record<string, never>;
848
+ 'select-portal': Record<string, never>;
849
+ 'select-separator': Record<string, never>;
850
+ 'select-trigger': {
851
+ size?: 'sm' | 'md' | 'lg';
852
+ variant?: 'outline' | 'soft';
853
+ };
854
+ 'select-value': {
855
+ placeholder?: string;
856
+ };
857
+ 'select-viewport': Record<string, never>;
858
+ sheet: {
859
+ closeOnEscape?: boolean;
860
+ dismissOutside?: boolean;
861
+ modal?: boolean;
862
+ side?: 'top' | 'right' | 'bottom' | 'left' | 'start' | 'end' | 'center';
863
+ size?: 'sm' | 'md' | 'lg' | 'xl';
864
+ };
865
+ sidebar: {
866
+ collapseLabel?: string;
867
+ collapsed?: boolean;
868
+ collapsible?: boolean;
869
+ drawer?: boolean;
870
+ expandLabel?: string;
871
+ hrefTrust?: 'developer' | 'untrusted';
872
+ items?: readonly unknown[];
873
+ label?: string;
874
+ sections?: readonly unknown[];
875
+ variant?: 'default' | 'inset';
876
+ };
877
+ 'split-view': {
878
+ detailActive?: boolean;
879
+ detailLabel?: string;
880
+ listLabel?: string;
881
+ };
882
+ stat: {
883
+ hint?: string;
884
+ label: string;
885
+ positive?: 'up' | 'down';
886
+ trend?: 'up' | 'down' | 'neutral';
887
+ variant?: 'elevated' | 'flat';
888
+ };
889
+ stepper: {
890
+ completed?: readonly unknown[];
891
+ current: number;
892
+ label?: string;
893
+ orientation?: 'horizontal' | 'vertical';
894
+ steps: readonly unknown[];
895
+ };
896
+ switch: {
897
+ checked?: boolean;
898
+ defaultChecked?: boolean;
899
+ description?: string;
900
+ disabled?: boolean;
901
+ id?: string;
902
+ label?: string;
903
+ name?: string;
904
+ required?: boolean;
905
+ size?: 'sm' | 'md';
906
+ value?: string;
907
+ };
908
+ table: {
909
+ busy?: boolean;
910
+ density?: 'compact' | 'default' | 'comfortable';
911
+ label?: string;
912
+ maxBlockSize?: string;
913
+ stack?: 'never' | 'sm' | 'md';
914
+ stickyHeader?: boolean;
915
+ variant?: 'plain' | 'striped' | 'grid';
916
+ wrapperClass?: string;
917
+ };
918
+ tag: {
919
+ disabled?: boolean;
920
+ label: string;
921
+ removeLabel?: string;
922
+ variant?: 'default' | 'secondary' | 'outline' | 'success' | 'warning' | 'destructive' | 'info' | 'neutral';
923
+ };
924
+ 'text-counter': {
925
+ autosize?: boolean;
926
+ disabled?: boolean;
927
+ id?: string;
928
+ invalid?: boolean;
929
+ label?: string;
930
+ maxlength?: number;
931
+ name?: string;
932
+ placeholder?: string;
933
+ readonly?: boolean;
934
+ remainingLabel?: string;
935
+ required?: boolean;
936
+ rows?: number;
937
+ showAfter?: number;
938
+ tag?: 'input' | 'textarea';
939
+ type?: string;
940
+ value?: string;
941
+ };
942
+ textarea: {
943
+ autosize?: boolean;
944
+ disabled?: boolean;
945
+ readonly?: boolean;
946
+ rows?: number;
947
+ value?: string;
948
+ };
949
+ timeline: {
950
+ hrefTrust?: 'developer' | 'untrusted';
951
+ items?: readonly unknown[];
952
+ label?: string;
953
+ messages?: Readonly<Record<string, unknown>>;
954
+ orientation?: 'vertical' | 'horizontal';
955
+ };
956
+ toaster: {
957
+ dismissLabel?: string;
958
+ label?: string;
959
+ offset?: string;
960
+ position?: 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end';
961
+ };
962
+ tooltip: {
963
+ align?: 'start' | 'center' | 'end';
964
+ content: string;
965
+ delayDuration?: number;
966
+ disabled?: boolean;
967
+ open?: boolean;
968
+ shortcut?: string;
969
+ side?: 'top' | 'right' | 'bottom' | 'left';
970
+ sideOffset?: number;
971
+ };
972
+ }