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