magick-ui 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -85,6 +85,88 @@ var component_schema_default = {
85
85
  },
86
86
  $schema: "http://json-schema.org/draft-07/schema#"
87
87
  },
88
+ "tool-button": {
89
+ $ref: "#/definitions/tool-button",
90
+ definitions: {
91
+ "tool-button": {
92
+ type: "object",
93
+ properties: {
94
+ type: {
95
+ type: "string",
96
+ const: "tool-button"
97
+ },
98
+ props: {
99
+ type: "object",
100
+ properties: {
101
+ variant: {
102
+ type: "string",
103
+ enum: [
104
+ "primary",
105
+ "outline",
106
+ "destructive"
107
+ ],
108
+ description: "Button style. Defaults to 'primary'"
109
+ },
110
+ size: {
111
+ type: "string",
112
+ enum: [
113
+ "md",
114
+ "lg"
115
+ ],
116
+ description: "Button size. Defaults to 'md'"
117
+ },
118
+ state: {
119
+ type: "string",
120
+ enum: [
121
+ "loading",
122
+ "default"
123
+ ],
124
+ description: "Button state. Defaults to 'default'"
125
+ },
126
+ onlyIcon: {
127
+ type: "boolean",
128
+ description: "Icon-only mode with square padding"
129
+ },
130
+ disabled: {
131
+ type: "boolean"
132
+ }
133
+ },
134
+ additionalProperties: false
135
+ },
136
+ children: {
137
+ type: "array",
138
+ items: {
139
+ type: "object",
140
+ properties: {
141
+ type: {
142
+ type: "string"
143
+ },
144
+ props: {
145
+ type: "object",
146
+ additionalProperties: {}
147
+ },
148
+ children: {
149
+ type: "array",
150
+ items: {}
151
+ }
152
+ },
153
+ required: [
154
+ "type"
155
+ ],
156
+ additionalProperties: false
157
+ },
158
+ description: "Button content"
159
+ }
160
+ },
161
+ required: [
162
+ "type"
163
+ ],
164
+ additionalProperties: false,
165
+ description: "A toolbar action button with loading state"
166
+ }
167
+ },
168
+ $schema: "http://json-schema.org/draft-07/schema#"
169
+ },
88
170
  card: {
89
171
  $ref: "#/definitions/card",
90
172
  definitions: {
@@ -387,6 +469,55 @@ var component_schema_default = {
387
469
  },
388
470
  $schema: "http://json-schema.org/draft-07/schema#"
389
471
  },
472
+ "card-action": {
473
+ $ref: "#/definitions/card-action",
474
+ definitions: {
475
+ "card-action": {
476
+ type: "object",
477
+ properties: {
478
+ type: {
479
+ type: "string",
480
+ const: "card-action"
481
+ },
482
+ props: {
483
+ type: "object",
484
+ properties: {},
485
+ additionalProperties: false
486
+ },
487
+ children: {
488
+ type: "array",
489
+ items: {
490
+ type: "object",
491
+ properties: {
492
+ type: {
493
+ type: "string"
494
+ },
495
+ props: {
496
+ type: "object",
497
+ additionalProperties: {}
498
+ },
499
+ children: {
500
+ type: "array",
501
+ items: {}
502
+ }
503
+ },
504
+ required: [
505
+ "type"
506
+ ],
507
+ additionalProperties: false
508
+ },
509
+ description: "Action elements (buttons, links) placed at the top-right of a card header"
510
+ }
511
+ },
512
+ required: [
513
+ "type"
514
+ ],
515
+ additionalProperties: false,
516
+ description: "An action area positioned at the top-right of a card"
517
+ }
518
+ },
519
+ $schema: "http://json-schema.org/draft-07/schema#"
520
+ },
390
521
  form: {
391
522
  $ref: "#/definitions/form",
392
523
  definitions: {
@@ -3090,169 +3221,604 @@ var component_schema_default = {
3090
3221
  },
3091
3222
  $schema: "http://json-schema.org/draft-07/schema#"
3092
3223
  },
3093
- sheet: {
3094
- $ref: "#/definitions/sheet",
3224
+ calendar: {
3225
+ $ref: "#/definitions/calendar",
3095
3226
  definitions: {
3096
- sheet: {
3227
+ calendar: {
3097
3228
  type: "object",
3098
3229
  properties: {
3099
3230
  type: {
3100
3231
  type: "string",
3101
- const: "sheet"
3232
+ const: "calendar"
3102
3233
  },
3103
3234
  props: {
3104
3235
  type: "object",
3105
- properties: {},
3106
- additionalProperties: false
3107
- },
3108
- children: {
3109
- type: "array",
3110
- items: {
3111
- type: "object",
3112
- properties: {
3113
- type: {
3114
- type: "string"
3115
- },
3116
- props: {
3117
- type: "object",
3118
- additionalProperties: {}
3119
- },
3120
- children: {
3121
- type: "array",
3122
- items: {}
3123
- }
3236
+ properties: {
3237
+ showOutsideDays: {
3238
+ type: "boolean",
3239
+ description: "Show days from adjacent months. Defaults to true"
3124
3240
  },
3125
- required: [
3126
- "type"
3127
- ],
3128
- additionalProperties: false
3241
+ captionLayout: {
3242
+ type: "string",
3243
+ enum: [
3244
+ "label",
3245
+ "dropdown",
3246
+ "dropdown-months",
3247
+ "dropdown-years"
3248
+ ],
3249
+ description: "Caption display mode. Defaults to 'label'"
3250
+ },
3251
+ buttonVariant: {
3252
+ type: "string",
3253
+ enum: [
3254
+ "primary",
3255
+ "secondary",
3256
+ "outline",
3257
+ "destructive",
3258
+ "ghost",
3259
+ "soft"
3260
+ ],
3261
+ description: "Navigation button style. Defaults to 'ghost'"
3262
+ },
3263
+ mode: {
3264
+ type: "string",
3265
+ enum: [
3266
+ "single",
3267
+ "multiple",
3268
+ "range"
3269
+ ],
3270
+ description: "Selection mode"
3271
+ },
3272
+ numberOfMonths: {
3273
+ type: "number",
3274
+ description: "Number of months to display"
3275
+ },
3276
+ disabled: {
3277
+ type: "boolean"
3278
+ }
3129
3279
  },
3130
- description: "Compose with sheet-trigger and sheet-content"
3280
+ additionalProperties: false
3131
3281
  }
3132
3282
  },
3133
3283
  required: [
3134
3284
  "type"
3135
3285
  ],
3136
3286
  additionalProperties: false,
3137
- description: "A slide-out panel overlay"
3287
+ description: "A date calendar for picking dates or date ranges"
3138
3288
  }
3139
3289
  },
3140
3290
  $schema: "http://json-schema.org/draft-07/schema#"
3141
3291
  },
3142
- "sheet-trigger": {
3143
- $ref: "#/definitions/sheet-trigger",
3292
+ "file-input": {
3293
+ $ref: "#/definitions/file-input",
3144
3294
  definitions: {
3145
- "sheet-trigger": {
3295
+ "file-input": {
3146
3296
  type: "object",
3147
3297
  properties: {
3148
3298
  type: {
3149
3299
  type: "string",
3150
- const: "sheet-trigger"
3300
+ const: "file-input"
3151
3301
  },
3152
3302
  props: {
3153
3303
  type: "object",
3154
- properties: {},
3155
- additionalProperties: false
3156
- },
3157
- children: {
3158
- type: "array",
3159
- items: {
3160
- type: "object",
3161
- properties: {
3162
- type: {
3163
- type: "string"
3164
- },
3165
- props: {
3166
- type: "object",
3167
- additionalProperties: {}
3168
- },
3169
- children: {
3170
- type: "array",
3171
- items: {}
3172
- }
3304
+ properties: {
3305
+ label: {
3306
+ type: "string",
3307
+ description: "Label text above the input"
3173
3308
  },
3174
- required: [
3175
- "type"
3176
- ],
3177
- additionalProperties: false
3309
+ helperText: {
3310
+ type: "string",
3311
+ description: "Helper text below the input"
3312
+ },
3313
+ error: {
3314
+ type: "boolean",
3315
+ description: "Show error styling. Defaults to false"
3316
+ },
3317
+ accept: {
3318
+ type: "string",
3319
+ description: "Accepted file types, e.g. 'image/*,.pdf'"
3320
+ },
3321
+ multiple: {
3322
+ type: "boolean",
3323
+ description: "Allow multiple files. Defaults to false"
3324
+ },
3325
+ disabled: {
3326
+ type: "boolean"
3327
+ }
3178
3328
  },
3179
- description: "The element that opens the sheet"
3329
+ additionalProperties: false
3180
3330
  }
3181
3331
  },
3182
3332
  required: [
3183
3333
  "type"
3184
3334
  ],
3185
3335
  additionalProperties: false,
3186
- description: "Trigger element that opens a sheet"
3336
+ description: "A file input with choose-file button and upload progress"
3187
3337
  }
3188
3338
  },
3189
3339
  $schema: "http://json-schema.org/draft-07/schema#"
3190
3340
  },
3191
- "sheet-content": {
3192
- $ref: "#/definitions/sheet-content",
3341
+ "tool-toggle": {
3342
+ $ref: "#/definitions/tool-toggle",
3193
3343
  definitions: {
3194
- "sheet-content": {
3344
+ "tool-toggle": {
3195
3345
  type: "object",
3196
3346
  properties: {
3197
3347
  type: {
3198
3348
  type: "string",
3199
- const: "sheet-content"
3349
+ const: "tool-toggle"
3200
3350
  },
3201
3351
  props: {
3202
3352
  type: "object",
3203
3353
  properties: {
3204
- side: {
3354
+ icon: {
3205
3355
  type: "string",
3206
- enum: [
3207
- "top",
3208
- "right",
3209
- "bottom",
3210
- "left"
3211
- ],
3212
- description: "Slide-in direction. Defaults to 'right'"
3356
+ description: "Icon name (resolved by the renderer)"
3213
3357
  },
3214
- showCloseButton: {
3358
+ dropdown: {
3215
3359
  type: "boolean",
3216
- description: "Show close button. Defaults to true"
3360
+ description: "Show dropdown chevron"
3217
3361
  }
3218
3362
  },
3219
3363
  additionalProperties: false
3220
- },
3221
- children: {
3222
- type: "array",
3223
- items: {
3224
- type: "object",
3225
- properties: {
3226
- type: {
3227
- type: "string"
3228
- },
3229
- props: {
3230
- type: "object",
3231
- additionalProperties: {}
3232
- },
3233
- children: {
3234
- type: "array",
3235
- items: {}
3236
- }
3237
- },
3238
- required: [
3239
- "type"
3240
- ],
3241
- additionalProperties: false
3242
- },
3243
- description: "Sheet body content"
3244
3364
  }
3245
3365
  },
3246
3366
  required: [
3247
3367
  "type"
3248
3368
  ],
3249
3369
  additionalProperties: false,
3250
- description: "Content panel of a sheet"
3370
+ description: "A round toggle button used in toolbars, optionally with a dropdown"
3251
3371
  }
3252
3372
  },
3253
3373
  $schema: "http://json-schema.org/draft-07/schema#"
3254
3374
  },
3255
- "sheet-header": {
3375
+ "toggle-dropdown-button": {
3376
+ $ref: "#/definitions/toggle-dropdown-button",
3377
+ definitions: {
3378
+ "toggle-dropdown-button": {
3379
+ type: "object",
3380
+ properties: {
3381
+ type: {
3382
+ type: "string",
3383
+ const: "toggle-dropdown-button"
3384
+ },
3385
+ props: {
3386
+ type: "object",
3387
+ properties: {
3388
+ type: {
3389
+ type: "string",
3390
+ enum: [
3391
+ "text",
3392
+ "icon"
3393
+ ],
3394
+ description: "Button content type"
3395
+ },
3396
+ selected: {
3397
+ type: "boolean",
3398
+ description: "Whether the button is selected"
3399
+ },
3400
+ variant: {
3401
+ type: "string",
3402
+ enum: [
3403
+ "primary",
3404
+ "secondary",
3405
+ "destructive"
3406
+ ],
3407
+ description: "Button color variant"
3408
+ }
3409
+ },
3410
+ required: [
3411
+ "type",
3412
+ "selected",
3413
+ "variant"
3414
+ ],
3415
+ additionalProperties: false
3416
+ }
3417
+ },
3418
+ required: [
3419
+ "type",
3420
+ "props"
3421
+ ],
3422
+ additionalProperties: false,
3423
+ description: "A split toggle button with an attached dropdown trigger"
3424
+ }
3425
+ },
3426
+ $schema: "http://json-schema.org/draft-07/schema#"
3427
+ },
3428
+ "icon-container": {
3429
+ $ref: "#/definitions/icon-container",
3430
+ definitions: {
3431
+ "icon-container": {
3432
+ type: "object",
3433
+ properties: {
3434
+ type: {
3435
+ type: "string",
3436
+ const: "icon-container"
3437
+ },
3438
+ props: {
3439
+ type: "object",
3440
+ properties: {
3441
+ icon: {
3442
+ type: "string",
3443
+ description: "Icon name (resolved by the renderer)"
3444
+ },
3445
+ size: {
3446
+ type: "string",
3447
+ enum: [
3448
+ "xs",
3449
+ "sm",
3450
+ "md",
3451
+ "lg",
3452
+ "xl",
3453
+ "2xl",
3454
+ "3xl",
3455
+ "4xl",
3456
+ "5xl",
3457
+ "6xl",
3458
+ "auto"
3459
+ ],
3460
+ description: "Icon size. Defaults to 'sm'"
3461
+ },
3462
+ colorInFill: {
3463
+ type: "boolean",
3464
+ description: "Apply fill colors to SVG paths. Defaults to true"
3465
+ },
3466
+ disableTheme: {
3467
+ type: "boolean",
3468
+ description: "Disable theme-aware coloring. Defaults to false"
3469
+ }
3470
+ },
3471
+ additionalProperties: false
3472
+ },
3473
+ children: {
3474
+ type: "array",
3475
+ items: {
3476
+ type: "object",
3477
+ properties: {
3478
+ type: {
3479
+ type: "string"
3480
+ },
3481
+ props: {
3482
+ type: "object",
3483
+ additionalProperties: {}
3484
+ },
3485
+ children: {
3486
+ type: "array",
3487
+ items: {}
3488
+ }
3489
+ },
3490
+ required: [
3491
+ "type"
3492
+ ],
3493
+ additionalProperties: false
3494
+ },
3495
+ description: "Icon element"
3496
+ }
3497
+ },
3498
+ required: [
3499
+ "type"
3500
+ ],
3501
+ additionalProperties: false,
3502
+ description: "A sized container for static icons with theme-aware coloring"
3503
+ }
3504
+ },
3505
+ $schema: "http://json-schema.org/draft-07/schema#"
3506
+ },
3507
+ "icon-profile": {
3508
+ $ref: "#/definitions/icon-profile",
3509
+ definitions: {
3510
+ "icon-profile": {
3511
+ type: "object",
3512
+ properties: {
3513
+ type: {
3514
+ type: "string",
3515
+ const: "icon-profile"
3516
+ },
3517
+ props: {
3518
+ type: "object",
3519
+ properties: {
3520
+ icon: {
3521
+ type: "string",
3522
+ description: "Icon name (resolved by the renderer)"
3523
+ },
3524
+ color: {
3525
+ type: "string",
3526
+ enum: [
3527
+ "red",
3528
+ "orange",
3529
+ "amber",
3530
+ "yellow",
3531
+ "lime",
3532
+ "green",
3533
+ "emerald",
3534
+ "teal",
3535
+ "cyan",
3536
+ "sky",
3537
+ "blue",
3538
+ "indigo",
3539
+ "violet",
3540
+ "purple",
3541
+ "fuchsia",
3542
+ "pink",
3543
+ "rose",
3544
+ "slate"
3545
+ ],
3546
+ description: "Background glow and icon color. Defaults to 'red'"
3547
+ },
3548
+ size: {
3549
+ type: "string",
3550
+ enum: [
3551
+ "26",
3552
+ "32",
3553
+ "40",
3554
+ "48",
3555
+ "56",
3556
+ "64"
3557
+ ],
3558
+ description: "Size in pixels. Defaults to '64'"
3559
+ },
3560
+ externalIcon: {
3561
+ type: "boolean",
3562
+ description: "Whether the icon is external"
3563
+ }
3564
+ },
3565
+ required: [
3566
+ "icon"
3567
+ ],
3568
+ additionalProperties: false
3569
+ }
3570
+ },
3571
+ required: [
3572
+ "type",
3573
+ "props"
3574
+ ],
3575
+ additionalProperties: false,
3576
+ description: "An icon with a colored radial glow background"
3577
+ }
3578
+ },
3579
+ $schema: "http://json-schema.org/draft-07/schema#"
3580
+ },
3581
+ "button-with-tooltip": {
3582
+ $ref: "#/definitions/button-with-tooltip",
3583
+ definitions: {
3584
+ "button-with-tooltip": {
3585
+ type: "object",
3586
+ properties: {
3587
+ type: {
3588
+ type: "string",
3589
+ const: "button-with-tooltip"
3590
+ },
3591
+ props: {
3592
+ type: "object",
3593
+ properties: {
3594
+ content: {
3595
+ type: "string",
3596
+ description: "Tooltip text"
3597
+ },
3598
+ position: {
3599
+ type: "string",
3600
+ enum: [
3601
+ "top",
3602
+ "top-center",
3603
+ "top-left",
3604
+ "top-right",
3605
+ "bottom",
3606
+ "bottom-left",
3607
+ "bottom-center",
3608
+ "bottom-right",
3609
+ "left",
3610
+ "right"
3611
+ ],
3612
+ description: "Tooltip placement"
3613
+ },
3614
+ withArrow: {
3615
+ type: "boolean",
3616
+ description: "Show an arrow pointer"
3617
+ }
3618
+ },
3619
+ required: [
3620
+ "content"
3621
+ ],
3622
+ additionalProperties: false
3623
+ },
3624
+ children: {
3625
+ type: "array",
3626
+ items: {
3627
+ type: "object",
3628
+ properties: {
3629
+ type: {
3630
+ type: "string"
3631
+ },
3632
+ props: {
3633
+ type: "object",
3634
+ additionalProperties: {}
3635
+ },
3636
+ children: {
3637
+ type: "array",
3638
+ items: {}
3639
+ }
3640
+ },
3641
+ required: [
3642
+ "type"
3643
+ ],
3644
+ additionalProperties: false
3645
+ },
3646
+ description: "The button element to wrap with a tooltip"
3647
+ }
3648
+ },
3649
+ required: [
3650
+ "type",
3651
+ "props"
3652
+ ],
3653
+ additionalProperties: false,
3654
+ description: "A button wrapped with a tooltip that appears on hover"
3655
+ }
3656
+ },
3657
+ $schema: "http://json-schema.org/draft-07/schema#"
3658
+ },
3659
+ sheet: {
3660
+ $ref: "#/definitions/sheet",
3661
+ definitions: {
3662
+ sheet: {
3663
+ type: "object",
3664
+ properties: {
3665
+ type: {
3666
+ type: "string",
3667
+ const: "sheet"
3668
+ },
3669
+ props: {
3670
+ type: "object",
3671
+ properties: {},
3672
+ additionalProperties: false
3673
+ },
3674
+ children: {
3675
+ type: "array",
3676
+ items: {
3677
+ type: "object",
3678
+ properties: {
3679
+ type: {
3680
+ type: "string"
3681
+ },
3682
+ props: {
3683
+ type: "object",
3684
+ additionalProperties: {}
3685
+ },
3686
+ children: {
3687
+ type: "array",
3688
+ items: {}
3689
+ }
3690
+ },
3691
+ required: [
3692
+ "type"
3693
+ ],
3694
+ additionalProperties: false
3695
+ },
3696
+ description: "Compose with sheet-trigger and sheet-content"
3697
+ }
3698
+ },
3699
+ required: [
3700
+ "type"
3701
+ ],
3702
+ additionalProperties: false,
3703
+ description: "A slide-out panel overlay"
3704
+ }
3705
+ },
3706
+ $schema: "http://json-schema.org/draft-07/schema#"
3707
+ },
3708
+ "sheet-trigger": {
3709
+ $ref: "#/definitions/sheet-trigger",
3710
+ definitions: {
3711
+ "sheet-trigger": {
3712
+ type: "object",
3713
+ properties: {
3714
+ type: {
3715
+ type: "string",
3716
+ const: "sheet-trigger"
3717
+ },
3718
+ props: {
3719
+ type: "object",
3720
+ properties: {},
3721
+ additionalProperties: false
3722
+ },
3723
+ children: {
3724
+ type: "array",
3725
+ items: {
3726
+ type: "object",
3727
+ properties: {
3728
+ type: {
3729
+ type: "string"
3730
+ },
3731
+ props: {
3732
+ type: "object",
3733
+ additionalProperties: {}
3734
+ },
3735
+ children: {
3736
+ type: "array",
3737
+ items: {}
3738
+ }
3739
+ },
3740
+ required: [
3741
+ "type"
3742
+ ],
3743
+ additionalProperties: false
3744
+ },
3745
+ description: "The element that opens the sheet"
3746
+ }
3747
+ },
3748
+ required: [
3749
+ "type"
3750
+ ],
3751
+ additionalProperties: false,
3752
+ description: "Trigger element that opens a sheet"
3753
+ }
3754
+ },
3755
+ $schema: "http://json-schema.org/draft-07/schema#"
3756
+ },
3757
+ "sheet-content": {
3758
+ $ref: "#/definitions/sheet-content",
3759
+ definitions: {
3760
+ "sheet-content": {
3761
+ type: "object",
3762
+ properties: {
3763
+ type: {
3764
+ type: "string",
3765
+ const: "sheet-content"
3766
+ },
3767
+ props: {
3768
+ type: "object",
3769
+ properties: {
3770
+ side: {
3771
+ type: "string",
3772
+ enum: [
3773
+ "top",
3774
+ "right",
3775
+ "bottom",
3776
+ "left"
3777
+ ],
3778
+ description: "Slide-in direction. Defaults to 'right'"
3779
+ },
3780
+ showCloseButton: {
3781
+ type: "boolean",
3782
+ description: "Show close button. Defaults to true"
3783
+ }
3784
+ },
3785
+ additionalProperties: false
3786
+ },
3787
+ children: {
3788
+ type: "array",
3789
+ items: {
3790
+ type: "object",
3791
+ properties: {
3792
+ type: {
3793
+ type: "string"
3794
+ },
3795
+ props: {
3796
+ type: "object",
3797
+ additionalProperties: {}
3798
+ },
3799
+ children: {
3800
+ type: "array",
3801
+ items: {}
3802
+ }
3803
+ },
3804
+ required: [
3805
+ "type"
3806
+ ],
3807
+ additionalProperties: false
3808
+ },
3809
+ description: "Sheet body content"
3810
+ }
3811
+ },
3812
+ required: [
3813
+ "type"
3814
+ ],
3815
+ additionalProperties: false,
3816
+ description: "Content panel of a sheet"
3817
+ }
3818
+ },
3819
+ $schema: "http://json-schema.org/draft-07/schema#"
3820
+ },
3821
+ "sheet-header": {
3256
3822
  $ref: "#/definitions/sheet-header",
3257
3823
  definitions: {
3258
3824
  "sheet-header": {
@@ -4161,6 +4727,929 @@ var component_schema_default = {
4161
4727
  }
4162
4728
  };
4163
4729
 
4730
+ // src/types.ts
4731
+ import { z } from "zod";
4732
+ var uiNodeSchema = z.lazy(
4733
+ () => z.object({
4734
+ type: z.string(),
4735
+ props: z.record(z.unknown()).optional(),
4736
+ children: z.array(uiNodeSchema).optional()
4737
+ })
4738
+ );
4739
+
4740
+ // src/ui/Button/schema.ts
4741
+ import { z as z2 } from "zod";
4742
+ var buttonSchema = z2.object({
4743
+ type: z2.literal("button"),
4744
+ props: z2.object({
4745
+ label: z2.string().optional().describe("Button text"),
4746
+ variant: z2.enum(["primary", "secondary", "outline", "destructive", "ghost", "soft"]).optional().describe("Button style. Defaults to 'primary'"),
4747
+ size: z2.enum(["sm", "md", "lg"]).optional().describe("Button size. Defaults to 'md'"),
4748
+ url: z2.string().optional().describe("URL to open when clicked"),
4749
+ disabled: z2.boolean().optional().describe("Whether the button is disabled")
4750
+ }).optional(),
4751
+ children: z2.array(uiNodeSchema).optional()
4752
+ }).describe("An action button");
4753
+ var toolButtonSchema = z2.object({
4754
+ type: z2.literal("tool-button"),
4755
+ props: z2.object({
4756
+ variant: z2.enum(["primary", "outline", "destructive"]).optional().describe("Button style. Defaults to 'primary'"),
4757
+ size: z2.enum(["md", "lg"]).optional().describe("Button size. Defaults to 'md'"),
4758
+ state: z2.enum(["loading", "default"]).optional().describe("Button state. Defaults to 'default'"),
4759
+ onlyIcon: z2.boolean().optional().describe("Icon-only mode with square padding"),
4760
+ disabled: z2.boolean().optional()
4761
+ }).optional(),
4762
+ children: z2.array(uiNodeSchema).optional().describe("Button content")
4763
+ }).describe("A toolbar action button with loading state");
4764
+
4765
+ // src/ui/Card/schema.ts
4766
+ import { z as z3 } from "zod";
4767
+ var cardSchema = z3.object({
4768
+ type: z3.literal("card"),
4769
+ props: z3.object({}).optional(),
4770
+ children: z3.array(uiNodeSchema).optional().describe("Compose with card-header, card-content, card-footer")
4771
+ }).describe("Container card");
4772
+ var cardHeaderSchema = z3.object({
4773
+ type: z3.literal("card-header"),
4774
+ props: z3.object({}).optional(),
4775
+ children: z3.array(uiNodeSchema).optional().describe("Place card-title and card-description inside")
4776
+ }).describe("Header section of a card");
4777
+ var cardTitleSchema = z3.object({
4778
+ type: z3.literal("card-title"),
4779
+ props: z3.object({
4780
+ children: z3.string().optional().describe("Title text")
4781
+ }).optional(),
4782
+ children: z3.array(uiNodeSchema).optional()
4783
+ }).describe("Title inside a card-header");
4784
+ var cardDescriptionSchema = z3.object({
4785
+ type: z3.literal("card-description"),
4786
+ props: z3.object({
4787
+ children: z3.string().optional().describe("Description text")
4788
+ }).optional(),
4789
+ children: z3.array(uiNodeSchema).optional()
4790
+ }).describe("Description text inside a card-header");
4791
+ var cardContentSchema = z3.object({
4792
+ type: z3.literal("card-content"),
4793
+ props: z3.object({}).optional(),
4794
+ children: z3.array(uiNodeSchema).optional().describe("Main content area")
4795
+ }).describe("Main content area of a card");
4796
+ var cardFooterSchema = z3.object({
4797
+ type: z3.literal("card-footer"),
4798
+ props: z3.object({}).optional(),
4799
+ children: z3.array(uiNodeSchema).optional().describe("Footer area, typically for actions")
4800
+ }).describe("Footer section of a card");
4801
+ var cardActionSchema = z3.object({
4802
+ type: z3.literal("card-action"),
4803
+ props: z3.object({}).optional(),
4804
+ children: z3.array(uiNodeSchema).optional().describe("Action elements (buttons, links) placed at the top-right of a card header")
4805
+ }).describe("An action area positioned at the top-right of a card");
4806
+
4807
+ // src/ui/form/schema.ts
4808
+ import { z as z4 } from "zod";
4809
+ var formSchema = z4.object({
4810
+ type: z4.literal("form"),
4811
+ props: z4.object({
4812
+ id: z4.string().describe("Unique form ID")
4813
+ }),
4814
+ children: z4.array(uiNodeSchema).optional().describe("Form field components")
4815
+ }).describe("A form container. Wrap form fields inside.");
4816
+
4817
+ // src/ui/Input/schema.ts
4818
+ import { z as z5 } from "zod";
4819
+ var inputFieldSchema = z5.object({
4820
+ type: z5.literal("input-field"),
4821
+ props: z5.object({
4822
+ name: z5.string().describe("Field name (maps to form data key)"),
4823
+ label: z5.string().optional().describe("Label text above the input"),
4824
+ placeholder: z5.string().optional().describe("Placeholder text"),
4825
+ type: z5.enum(["text", "email", "number", "url", "search", "tel"]).optional().describe("Input type. Defaults to 'text'"),
4826
+ required: z5.boolean().optional().describe("Whether the field is required"),
4827
+ disabled: z5.boolean().optional()
4828
+ })
4829
+ }).describe("A text input field inside a form");
4830
+
4831
+ // src/ui/PasswordInput/schema.ts
4832
+ import { z as z6 } from "zod";
4833
+ var passwordFieldSchema = z6.object({
4834
+ type: z6.literal("password-field"),
4835
+ props: z6.object({
4836
+ name: z6.string().describe("Field name"),
4837
+ label: z6.string().optional().describe("Label text"),
4838
+ placeholder: z6.string().optional()
4839
+ })
4840
+ }).describe("A password input field with show/hide toggle");
4841
+
4842
+ // src/ui/TextAreaInput/schema.ts
4843
+ import { z as z7 } from "zod";
4844
+ var textareaFieldSchema = z7.object({
4845
+ type: z7.literal("textarea-field"),
4846
+ props: z7.object({
4847
+ name: z7.string().describe("Field name"),
4848
+ label: z7.string().optional().describe("Label text"),
4849
+ placeholder: z7.string().optional(),
4850
+ rows: z7.number().optional().describe("Number of visible rows")
4851
+ })
4852
+ }).describe("A multi-line text input field");
4853
+
4854
+ // src/ui/SelectInput/schema.ts
4855
+ import { z as z8 } from "zod";
4856
+ var selectFieldSchema = z8.object({
4857
+ type: z8.literal("select-field"),
4858
+ props: z8.object({
4859
+ name: z8.string().describe("Field name"),
4860
+ label: z8.string().optional().describe("Label text"),
4861
+ placeholder: z8.string().optional(),
4862
+ options: z8.array(z8.object({
4863
+ label: z8.string().describe("Display text"),
4864
+ value: z8.string().describe("Option value")
4865
+ })).describe("Array of selectable options"),
4866
+ required: z8.boolean().optional()
4867
+ })
4868
+ }).describe("A dropdown select field");
4869
+
4870
+ // src/ui/Checkbox/schema.ts
4871
+ import { z as z9 } from "zod";
4872
+ var checkboxFieldSchema = z9.object({
4873
+ type: z9.literal("checkbox-field"),
4874
+ props: z9.object({
4875
+ name: z9.string().describe("Field name"),
4876
+ label: z9.string().optional().describe("Checkbox label text")
4877
+ })
4878
+ }).describe("A checkbox field");
4879
+
4880
+ // src/ui/Radio/schema.ts
4881
+ import { z as z10 } from "zod";
4882
+ var radioFieldSchema = z10.object({
4883
+ type: z10.literal("radio-field"),
4884
+ props: z10.object({
4885
+ name: z10.string().describe("Field name"),
4886
+ label: z10.string().optional().describe("Group label"),
4887
+ options: z10.array(z10.object({
4888
+ label: z10.string().describe("Option label"),
4889
+ value: z10.string().describe("Option value")
4890
+ })).describe("Array of radio options")
4891
+ })
4892
+ }).describe("A radio button group field");
4893
+
4894
+ // src/ui/Switch/schema.ts
4895
+ import { z as z11 } from "zod";
4896
+ var switchFieldSchema = z11.object({
4897
+ type: z11.literal("switch-field"),
4898
+ props: z11.object({
4899
+ name: z11.string().describe("Field name"),
4900
+ label: z11.string().optional().describe("Switch label")
4901
+ })
4902
+ }).describe("A toggle switch field");
4903
+
4904
+ // src/ui/DatePickerInput/schema.ts
4905
+ import { z as z12 } from "zod";
4906
+ var dateFieldSchema = z12.object({
4907
+ type: z12.literal("date-field"),
4908
+ props: z12.object({
4909
+ name: z12.string().describe("Field name"),
4910
+ label: z12.string().optional().describe("Label text"),
4911
+ placeholder: z12.string().optional(),
4912
+ disablePast: z12.boolean().optional().describe("Disable past dates"),
4913
+ required: z12.boolean().optional()
4914
+ })
4915
+ }).describe("A date picker field");
4916
+
4917
+ // src/ui/TimePicker/schema.ts
4918
+ import { z as z13 } from "zod";
4919
+ var timeFieldSchema = z13.object({
4920
+ type: z13.literal("time-field"),
4921
+ props: z13.object({
4922
+ name: z13.string().describe("Field name"),
4923
+ label: z13.string().optional().describe("Label text")
4924
+ })
4925
+ }).describe("A time picker field");
4926
+
4927
+ // src/ui/Combobox/schema.ts
4928
+ import { z as z14 } from "zod";
4929
+ var comboboxFieldSchema = z14.object({
4930
+ type: z14.literal("combobox-field"),
4931
+ props: z14.object({
4932
+ name: z14.string().describe("Field name"),
4933
+ label: z14.string().optional().describe("Label text"),
4934
+ placeholder: z14.string().optional(),
4935
+ options: z14.array(z14.object({
4936
+ label: z14.string().describe("Display text"),
4937
+ value: z14.string().describe("Option value")
4938
+ })).describe("Array of searchable options")
4939
+ })
4940
+ }).describe("A searchable combobox/autocomplete field");
4941
+
4942
+ // src/ui/MultiSelect/schema.ts
4943
+ import { z as z15 } from "zod";
4944
+ var multiSelectFieldSchema = z15.object({
4945
+ type: z15.literal("multi-select-field"),
4946
+ props: z15.object({
4947
+ name: z15.string().describe("Field name"),
4948
+ label: z15.string().optional().describe("Label text"),
4949
+ placeholder: z15.string().optional(),
4950
+ options: z15.array(z15.object({
4951
+ label: z15.string().describe("Display text"),
4952
+ value: z15.string().describe("Option value")
4953
+ })).describe("Array of options for multi-selection")
4954
+ })
4955
+ }).describe("A multi-select dropdown field");
4956
+
4957
+ // src/ui/OTPInput/schema.ts
4958
+ import { z as z16 } from "zod";
4959
+ var otpFieldSchema = z16.object({
4960
+ type: z16.literal("otp-field"),
4961
+ props: z16.object({
4962
+ name: z16.string().describe("Field name"),
4963
+ maxLength: z16.number().optional().describe("Number of OTP digits. Defaults to 6")
4964
+ })
4965
+ }).describe("An OTP (one-time password) input field");
4966
+
4967
+ // src/ui/FileUpload/schema.ts
4968
+ import { z as z17 } from "zod";
4969
+ var fileUploadFieldSchema = z17.object({
4970
+ type: z17.literal("file-upload-field"),
4971
+ props: z17.object({
4972
+ name: z17.string().describe("Field name"),
4973
+ label: z17.string().optional().describe("Label text"),
4974
+ isMultiple: z17.boolean().optional().describe("Allow multiple files"),
4975
+ maxFiles: z17.number().optional().describe("Maximum number of files")
4976
+ })
4977
+ }).describe("A file upload field with drag-and-drop");
4978
+
4979
+ // src/ui/Text/schema.ts
4980
+ import { z as z18 } from "zod";
4981
+ var textSchema = z18.object({
4982
+ type: z18.literal("text"),
4983
+ props: z18.object({
4984
+ children: z18.string().optional().describe("Text content")
4985
+ }).optional(),
4986
+ children: z18.array(uiNodeSchema).optional()
4987
+ }).describe("A paragraph of text");
4988
+
4989
+ // src/ui/Title/schema.ts
4990
+ import { z as z19 } from "zod";
4991
+ var titleSchema = z19.object({
4992
+ type: z19.literal("title"),
4993
+ props: z19.object({
4994
+ children: z19.string().optional().describe("Heading text")
4995
+ }).optional(),
4996
+ children: z19.array(uiNodeSchema).optional()
4997
+ }).describe("A heading / title element");
4998
+
4999
+ // src/ui/Label/schema.ts
5000
+ import { z as z20 } from "zod";
5001
+ var labelSchema = z20.object({
5002
+ type: z20.literal("label"),
5003
+ props: z20.object({
5004
+ children: z20.string().optional().describe("Label text"),
5005
+ htmlFor: z20.string().optional().describe("ID of the form element this label is for")
5006
+ }).optional(),
5007
+ children: z20.array(uiNodeSchema).optional()
5008
+ }).describe("A form label element");
5009
+
5010
+ // src/ui/Badge/schema.ts
5011
+ import { z as z21 } from "zod";
5012
+ var badgeSchema = z21.object({
5013
+ type: z21.literal("badge"),
5014
+ props: z21.object({
5015
+ children: z21.string().optional().describe("Badge text"),
5016
+ type: z21.enum([
5017
+ "primary-hard",
5018
+ "primary-soft",
5019
+ "destructive-hard",
5020
+ "destructive-soft",
5021
+ "secondary-hard",
5022
+ "secondary-soft"
5023
+ ]).optional().describe("Badge style. Defaults to 'primary-hard'"),
5024
+ size: z21.enum(["sm", "md"]).optional().describe("Badge size. Defaults to 'sm'"),
5025
+ rounded: z21.boolean().optional().describe("Fully rounded pill shape")
5026
+ }).optional(),
5027
+ children: z21.array(uiNodeSchema).optional()
5028
+ }).describe("A small status badge / label");
5029
+
5030
+ // src/ui/Tag/schema.ts
5031
+ import { z as z22 } from "zod";
5032
+ var tagSchema = z22.object({
5033
+ type: z22.literal("tag"),
5034
+ props: z22.object({
5035
+ label: z22.string().describe("Tag text"),
5036
+ variant: z22.enum(["primary", "secondary", "destructive"]).optional().describe("Tag color variant. Defaults to 'primary'")
5037
+ })
5038
+ }).describe("A colored tag / pill");
5039
+
5040
+ // src/ui/Chip/schema.ts
5041
+ import { z as z23 } from "zod";
5042
+ var chipSchema = z23.object({
5043
+ type: z23.literal("chip"),
5044
+ props: z23.object({
5045
+ label: z23.string().describe("Chip text"),
5046
+ type: z23.enum(["rounded", "rectangle"]).optional().describe("Chip shape. Defaults to 'rounded'"),
5047
+ color: z23.enum([
5048
+ "slate",
5049
+ "red",
5050
+ "orange",
5051
+ "amber",
5052
+ "yellow",
5053
+ "lime",
5054
+ "green",
5055
+ "emerald",
5056
+ "teal",
5057
+ "cyan",
5058
+ "sky",
5059
+ "blue",
5060
+ "indigo",
5061
+ "violet",
5062
+ "purple",
5063
+ "fuchsia",
5064
+ "pink",
5065
+ "rose"
5066
+ ]).optional().describe("Chip color. Defaults to 'slate'"),
5067
+ dot: z23.boolean().optional().describe("Show a colored dot indicator"),
5068
+ avatar: z23.string().optional().describe("Avatar image URL shown inside the chip")
5069
+ })
5070
+ }).describe("A compact chip element with optional color dot or avatar");
5071
+
5072
+ // src/ui/Alert/schema.ts
5073
+ import { z as z24 } from "zod";
5074
+ var alertSchema = z24.object({
5075
+ type: z24.literal("alert"),
5076
+ props: z24.object({
5077
+ variant: z24.enum(["default", "secondary", "destructive"]).optional().describe("Alert style. Defaults to 'default'"),
5078
+ title: z24.string().optional().describe("Alert heading"),
5079
+ description: z24.string().optional().describe("Alert body text")
5080
+ }).optional(),
5081
+ children: z24.array(uiNodeSchema).optional()
5082
+ }).describe("An alert / notice banner");
5083
+
5084
+ // src/ui/Skeleton/schema.ts
5085
+ import { z as z25 } from "zod";
5086
+ var skeletonSchema = z25.object({
5087
+ type: z25.literal("skeleton"),
5088
+ props: z25.object({
5089
+ className: z25.string().optional().describe("Tailwind classes to control width/height, e.g. 'h-4 w-[250px]'")
5090
+ }).optional()
5091
+ }).describe("A loading placeholder skeleton");
5092
+
5093
+ // src/ui/ProgressIndicator/schema.ts
5094
+ import { z as z26 } from "zod";
5095
+ var progressIndicatorSchema = z26.object({
5096
+ type: z26.literal("progress-indicator"),
5097
+ props: z26.object({
5098
+ value: z26.number().describe("Current progress value"),
5099
+ max: z26.number().optional().describe("Maximum value. Defaults to 100"),
5100
+ showPercentage: z26.boolean().optional().describe("Show percentage text. Defaults to true"),
5101
+ variant: z26.enum(["bar", "circle"]).optional().describe("Display style. Defaults to 'bar'")
5102
+ })
5103
+ }).describe("A progress bar or circular progress indicator");
5104
+
5105
+ // src/ui/Avatar/schema.ts
5106
+ import { z as z27 } from "zod";
5107
+ var avatarSchema = z27.object({
5108
+ type: z27.literal("avatar"),
5109
+ props: z27.object({
5110
+ variant: z27.enum(["image", "text", "placeholder"]).describe("Avatar display mode"),
5111
+ fallback: z27.string().describe("Fallback text (initials) when image is unavailable"),
5112
+ imgsrc: z27.string().optional().describe("Image URL (required when variant is 'image')"),
5113
+ size: z27.enum(["xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl", "5xl"]).optional().describe("Avatar size. Defaults to 'md'"),
5114
+ status: z27.enum(["active", "inactive"]).optional().describe("Online status indicator")
5115
+ })
5116
+ }).describe("A user avatar displaying an image, initials, or placeholder");
5117
+
5118
+ // src/ui/AvatarListItem/schema.ts
5119
+ import { z as z28 } from "zod";
5120
+ var avatarListItemSchema = z28.object({
5121
+ type: z28.literal("avatar-list-item"),
5122
+ props: z28.object({
5123
+ avatar: z28.string().describe("Avatar image URL"),
5124
+ name: z28.string().describe("Display name"),
5125
+ email: z28.string().describe("Email address"),
5126
+ isMe: z28.boolean().optional().describe("Highlight as current user")
5127
+ })
5128
+ }).describe("An avatar with name and email, typically used in lists");
5129
+
5130
+ // src/ui/Media/schema.ts
5131
+ import { z as z29 } from "zod";
5132
+ var mediaSchema = z29.object({
5133
+ type: z29.literal("media"),
5134
+ props: z29.object({
5135
+ src: z29.string().describe("Media source URL"),
5136
+ alt: z29.string().optional().describe("Alt text for images"),
5137
+ type: z29.enum(["image", "video"]).optional().describe("Media type. Defaults to 'image'"),
5138
+ aspectRatio: z29.enum(["1:1", "16:9", "9:16", "4:3", "3:4"]).optional().describe("Fixed aspect ratio"),
5139
+ objectFit: z29.enum(["cover", "contain", "fill", "scale-down", "none"]).optional().describe("How the media fills its container. Defaults to 'cover'"),
5140
+ rounded: z29.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]).optional().describe("Border radius"),
5141
+ loading: z29.enum(["lazy", "eager"]).optional().describe("Loading strategy. Defaults to 'lazy'")
5142
+ })
5143
+ }).describe("An image or video media element");
5144
+
5145
+ // src/ui/Grid/schema.ts
5146
+ import { z as z30 } from "zod";
5147
+ var gridSchema = z30.object({
5148
+ type: z30.literal("grid"),
5149
+ props: z30.object({
5150
+ className: z30.string().optional().describe("Tailwind grid classes, e.g. 'grid-cols-2 gap-4'")
5151
+ }).optional(),
5152
+ children: z30.array(uiNodeSchema).optional().describe("Grid items")
5153
+ }).describe("A CSS grid layout container");
5154
+
5155
+ // src/ui/Accordion/schema.ts
5156
+ import { z as z31 } from "zod";
5157
+ var accordionSchema = z31.object({
5158
+ type: z31.literal("accordion"),
5159
+ props: z31.object({
5160
+ type: z31.enum(["single", "multiple"]).optional().describe("Allow one or multiple items open. Defaults to 'single'"),
5161
+ collapsible: z31.boolean().optional().describe("Allow collapsing all items"),
5162
+ defaultValue: z31.union([z31.string(), z31.array(z31.string())]).optional().describe("Initially open item value(s)")
5163
+ }).optional(),
5164
+ children: z31.array(uiNodeSchema).optional().describe("Compose with accordion-item children")
5165
+ }).describe("A collapsible accordion container");
5166
+ var accordionItemSchema = z31.object({
5167
+ type: z31.literal("accordion-item"),
5168
+ props: z31.object({
5169
+ value: z31.string().describe("Unique item identifier")
5170
+ }),
5171
+ children: z31.array(uiNodeSchema).optional().describe("Place accordion-trigger and accordion-content inside")
5172
+ }).describe("A single accordion section");
5173
+ var accordionTriggerSchema = z31.object({
5174
+ type: z31.literal("accordion-trigger"),
5175
+ props: z31.object({
5176
+ children: z31.string().optional().describe("Trigger label text")
5177
+ }).optional(),
5178
+ children: z31.array(uiNodeSchema).optional()
5179
+ }).describe("Clickable header that toggles an accordion-item");
5180
+ var accordionContentSchema = z31.object({
5181
+ type: z31.literal("accordion-content"),
5182
+ props: z31.object({}).optional(),
5183
+ children: z31.array(uiNodeSchema).optional().describe("Content revealed when the item is open")
5184
+ }).describe("Collapsible content area of an accordion-item");
5185
+
5186
+ // src/ui/Tabs/schema.ts
5187
+ import { z as z32 } from "zod";
5188
+ var tabsSchema = z32.object({
5189
+ type: z32.literal("tabs"),
5190
+ props: z32.object({
5191
+ defaultActiveTab: z32.string().describe("Value of the initially active tab"),
5192
+ tabs: z32.array(
5193
+ z32.object({
5194
+ value: z32.string().describe("Unique tab identifier"),
5195
+ label: z32.string().describe("Tab label text"),
5196
+ count: z32.number().optional().describe("Badge count on the tab"),
5197
+ notification: z32.boolean().optional().describe("Show notification dot")
5198
+ })
5199
+ ).describe("Tab definitions"),
5200
+ tabSmall: z32.boolean().optional().describe("Use compact tab styling"),
5201
+ showContent: z32.boolean().optional().describe("Show tab content panels. Defaults to true")
5202
+ }),
5203
+ children: z32.array(uiNodeSchema).optional().describe("Tab content panels (one per tab, in order)")
5204
+ }).describe("A tabbed interface with switchable content panels");
5205
+
5206
+ // src/ui/WrapperCard/schema.ts
5207
+ import { z as z33 } from "zod";
5208
+ var wrapperCardSchema = z33.object({
5209
+ type: z33.literal("wrapper-card"),
5210
+ props: z33.object({}).optional(),
5211
+ children: z33.array(uiNodeSchema).optional().describe("Card body content")
5212
+ }).describe("A simple card wrapper with default padding and border");
5213
+
5214
+ // src/ui/GradientContainer/schema.ts
5215
+ import { z as z34 } from "zod";
5216
+ var gradientContainerSchema = z34.object({
5217
+ type: z34.literal("gradient-container"),
5218
+ props: z34.object({}).optional(),
5219
+ children: z34.array(uiNodeSchema).optional().describe("Content inside the gradient container")
5220
+ }).describe("A container with a gradient background");
5221
+
5222
+ // src/ui/Carousel/schema.ts
5223
+ import { z as z35 } from "zod";
5224
+ var carouselSchema = z35.object({
5225
+ type: z35.literal("carousel"),
5226
+ props: z35.object({
5227
+ orientation: z35.enum(["horizontal", "vertical"]).optional().describe("Scroll direction. Defaults to 'horizontal'")
5228
+ }).optional(),
5229
+ children: z35.array(uiNodeSchema).optional().describe("Place a carousel-content inside")
5230
+ }).describe("A scrollable carousel container");
5231
+ var carouselContentSchema = z35.object({
5232
+ type: z35.literal("carousel-content"),
5233
+ props: z35.object({}).optional(),
5234
+ children: z35.array(uiNodeSchema).optional().describe("Compose with carousel-item children")
5235
+ }).describe("Content track of a carousel");
5236
+ var carouselItemSchema = z35.object({
5237
+ type: z35.literal("carousel-item"),
5238
+ props: z35.object({}).optional(),
5239
+ children: z35.array(uiNodeSchema).optional().describe("Content for this slide")
5240
+ }).describe("A single slide inside a carousel");
5241
+
5242
+ // src/ui/Toggle/schema.ts
5243
+ import { z as z36 } from "zod";
5244
+ var toggleSchema = z36.object({
5245
+ type: z36.literal("toggle"),
5246
+ props: z36.object({
5247
+ active: z36.boolean().optional().describe("Whether the toggle is pressed"),
5248
+ shape: z36.enum(["rectangle", "rounded"]).optional().describe("Toggle shape. Defaults to 'rectangle'"),
5249
+ style: z36.enum(["ghost", "outline", "soft"]).optional().describe("Visual style. Defaults to 'soft'"),
5250
+ size: z36.enum(["sm", "md", "lg"]).optional().describe("Toggle size. Defaults to 'sm'"),
5251
+ disabled: z36.boolean().optional()
5252
+ }).optional(),
5253
+ children: z36.array(uiNodeSchema).optional().describe("Toggle label / content")
5254
+ }).describe("A pressable toggle button");
5255
+
5256
+ // src/ui/Slider/schema.ts
5257
+ import { z as z37 } from "zod";
5258
+ var sliderSchema = z37.object({
5259
+ type: z37.literal("slider"),
5260
+ props: z37.object({
5261
+ defaultValue: z37.union([z37.number(), z37.array(z37.number())]).optional().describe("Initial value or range [min, max]"),
5262
+ min: z37.number().optional().describe("Minimum value. Defaults to 0"),
5263
+ max: z37.number().optional().describe("Maximum value. Defaults to 100"),
5264
+ step: z37.number().optional().describe("Step increment"),
5265
+ disabled: z37.boolean().optional()
5266
+ }).optional()
5267
+ }).describe("A range slider input");
5268
+
5269
+ // src/ui/SearchInput/schema.ts
5270
+ import { z as z38 } from "zod";
5271
+ var searchInputSchema = z38.object({
5272
+ type: z38.literal("search-input"),
5273
+ props: z38.object({
5274
+ searchKey: z38.string().describe("URL query param key for the search value"),
5275
+ placeholder: z38.string().optional().describe("Placeholder text. Defaults to 'Search by...'"),
5276
+ debounceDelay: z38.number().optional().describe("Debounce delay in ms. Defaults to 500"),
5277
+ variant: z38.enum(["ghost", "outline"]).optional().describe("Input style variant"),
5278
+ disabled: z38.boolean().optional()
5279
+ })
5280
+ }).describe("A search input with debounced query param binding");
5281
+
5282
+ // src/ui/IconButton/schema.ts
5283
+ import { z as z39 } from "zod";
5284
+ var iconButtonSchema = z39.object({
5285
+ type: z39.literal("icon-button"),
5286
+ props: z39.object({
5287
+ icon: z39.string().describe("Icon name (resolved by the renderer)"),
5288
+ variant: z39.enum([
5289
+ "primary",
5290
+ "secondary",
5291
+ "destructive",
5292
+ "outline",
5293
+ "ghost",
5294
+ "soft",
5295
+ "ai-filled",
5296
+ "ai-outline",
5297
+ "glass"
5298
+ ]).optional().describe("Button style. Defaults to 'primary'"),
5299
+ size: z39.enum(["xs", "sm", "md", "lg"]).optional().describe("Button size. Defaults to 'sm'"),
5300
+ active: z39.boolean().optional().describe("Active / pressed state"),
5301
+ rounded: z39.boolean().optional().describe("Fully round button"),
5302
+ disabled: z39.boolean().optional()
5303
+ })
5304
+ }).describe("An icon-only action button");
5305
+
5306
+ // src/ui/LinkButton/schema.ts
5307
+ import { z as z40 } from "zod";
5308
+ var linkButtonSchema = z40.object({
5309
+ type: z40.literal("link-button"),
5310
+ props: z40.object({
5311
+ href: z40.string().describe("Link URL"),
5312
+ children: z40.string().optional().describe("Link text")
5313
+ }),
5314
+ children: z40.array(uiNodeSchema).optional()
5315
+ }).describe("A button styled as a navigation link");
5316
+
5317
+ // src/ui/ButtonLink/schema.ts
5318
+ import { z as z41 } from "zod";
5319
+ var buttonLinkSchema = z41.object({
5320
+ type: z41.literal("button-link"),
5321
+ props: z41.object({
5322
+ children: z41.string().optional().describe("Link text"),
5323
+ variant: z41.enum(["link", "text-link", "error"]).optional().describe("Link style. Defaults to 'link'"),
5324
+ href: z41.string().optional().describe("Link URL"),
5325
+ disabled: z41.boolean().optional()
5326
+ }).optional(),
5327
+ children: z41.array(uiNodeSchema).optional()
5328
+ }).describe("An inline text link styled as a button");
5329
+
5330
+ // src/ui/SelectHover/schema.ts
5331
+ import { z as z42 } from "zod";
5332
+ var selectHoverSchema = z42.object({
5333
+ type: z42.literal("select-hover"),
5334
+ props: z42.object({
5335
+ options: z42.array(
5336
+ z42.object({
5337
+ label: z42.string().describe("Display text"),
5338
+ value: z42.string().describe("Option value")
5339
+ })
5340
+ ).describe("Array of selectable options"),
5341
+ placeholder: z42.string().optional().describe("Placeholder text. Defaults to 'Select an option'"),
5342
+ value: z42.string().optional().describe("Currently selected value")
5343
+ })
5344
+ }).describe("A hover-activated select dropdown");
5345
+
5346
+ // src/ui/Breadcrumb/schema.ts
5347
+ import { z as z43 } from "zod";
5348
+ var breadcrumbSchema = z43.object({
5349
+ type: z43.literal("breadcrumb"),
5350
+ props: z43.object({
5351
+ items: z43.array(
5352
+ z43.object({
5353
+ label: z43.string().describe("Breadcrumb text"),
5354
+ href: z43.string().optional().describe("Navigation URL"),
5355
+ disabled: z43.boolean().optional()
5356
+ })
5357
+ ).describe("Ordered list of breadcrumb segments")
5358
+ })
5359
+ }).describe("A breadcrumb navigation trail");
5360
+
5361
+ // src/ui/Tooltip/schema.ts
5362
+ import { z as z44 } from "zod";
5363
+ var tooltipSchema = z44.object({
5364
+ type: z44.literal("tooltip"),
5365
+ props: z44.object({
5366
+ content: z44.string().describe("Tooltip text"),
5367
+ position: z44.enum([
5368
+ "top",
5369
+ "top-center",
5370
+ "top-left",
5371
+ "top-right",
5372
+ "bottom",
5373
+ "bottom-left",
5374
+ "bottom-center",
5375
+ "bottom-right",
5376
+ "left",
5377
+ "right"
5378
+ ]).optional().describe("Tooltip placement"),
5379
+ withArrow: z44.boolean().optional().describe("Show an arrow pointer")
5380
+ }),
5381
+ children: z44.array(uiNodeSchema).optional().describe("The trigger element the tooltip wraps")
5382
+ }).describe("A tooltip that appears on hover over its child element");
5383
+
5384
+ // src/ui/Table/schema.ts
5385
+ import { z as z45 } from "zod";
5386
+ var tableSchema = z45.object({
5387
+ type: z45.literal("table"),
5388
+ props: z45.object({
5389
+ columns: z45.array(
5390
+ z45.object({
5391
+ accessorKey: z45.string().describe("Key in the row data object"),
5392
+ header: z45.string().describe("Column header text")
5393
+ })
5394
+ ).describe("Column definitions"),
5395
+ tableData: z45.array(z45.record(z45.unknown())).describe("Array of row data objects")
5396
+ })
5397
+ }).describe("A data table with columns and rows");
5398
+
5399
+ // src/ui/Calendar/schema.ts
5400
+ import { z as z46 } from "zod";
5401
+ var calendarSchema = z46.object({
5402
+ type: z46.literal("calendar"),
5403
+ props: z46.object({
5404
+ showOutsideDays: z46.boolean().optional().describe("Show days from adjacent months. Defaults to true"),
5405
+ captionLayout: z46.enum(["label", "dropdown", "dropdown-months", "dropdown-years"]).optional().describe("Caption display mode. Defaults to 'label'"),
5406
+ buttonVariant: z46.enum(["primary", "secondary", "outline", "destructive", "ghost", "soft"]).optional().describe("Navigation button style. Defaults to 'ghost'"),
5407
+ mode: z46.enum(["single", "multiple", "range"]).optional().describe("Selection mode"),
5408
+ numberOfMonths: z46.number().optional().describe("Number of months to display"),
5409
+ disabled: z46.boolean().optional()
5410
+ }).optional()
5411
+ }).describe("A date calendar for picking dates or date ranges");
5412
+
5413
+ // src/ui/FileInput/schema.ts
5414
+ import { z as z47 } from "zod";
5415
+ var fileInputSchema = z47.object({
5416
+ type: z47.literal("file-input"),
5417
+ props: z47.object({
5418
+ label: z47.string().optional().describe("Label text above the input"),
5419
+ helperText: z47.string().optional().describe("Helper text below the input"),
5420
+ error: z47.boolean().optional().describe("Show error styling. Defaults to false"),
5421
+ accept: z47.string().optional().describe("Accepted file types, e.g. 'image/*,.pdf'"),
5422
+ multiple: z47.boolean().optional().describe("Allow multiple files. Defaults to false"),
5423
+ disabled: z47.boolean().optional()
5424
+ }).optional()
5425
+ }).describe("A file input with choose-file button and upload progress");
5426
+
5427
+ // src/ui/ToolToggle/schema.ts
5428
+ import { z as z48 } from "zod";
5429
+ var toolToggleSchema = z48.object({
5430
+ type: z48.literal("tool-toggle"),
5431
+ props: z48.object({
5432
+ icon: z48.string().optional().describe("Icon name (resolved by the renderer)"),
5433
+ dropdown: z48.boolean().optional().describe("Show dropdown chevron")
5434
+ }).optional()
5435
+ }).describe("A round toggle button used in toolbars, optionally with a dropdown");
5436
+
5437
+ // src/ui/ToggleDropdownButton/schema.ts
5438
+ import { z as z49 } from "zod";
5439
+ var toggleDropdownButtonSchema = z49.object({
5440
+ type: z49.literal("toggle-dropdown-button"),
5441
+ props: z49.object({
5442
+ type: z49.enum(["text", "icon"]).describe("Button content type"),
5443
+ selected: z49.boolean().describe("Whether the button is selected"),
5444
+ variant: z49.enum(["primary", "secondary", "destructive"]).describe("Button color variant")
5445
+ })
5446
+ }).describe("A split toggle button with an attached dropdown trigger");
5447
+
5448
+ // src/ui/IconContainer/schema.ts
5449
+ import { z as z50 } from "zod";
5450
+ var iconContainerSchema = z50.object({
5451
+ type: z50.literal("icon-container"),
5452
+ props: z50.object({
5453
+ icon: z50.string().optional().describe("Icon name (resolved by the renderer)"),
5454
+ size: z50.enum(["xs", "sm", "md", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "auto"]).optional().describe("Icon size. Defaults to 'sm'"),
5455
+ colorInFill: z50.boolean().optional().describe("Apply fill colors to SVG paths. Defaults to true"),
5456
+ disableTheme: z50.boolean().optional().describe("Disable theme-aware coloring. Defaults to false")
5457
+ }).optional(),
5458
+ children: z50.array(uiNodeSchema).optional().describe("Icon element")
5459
+ }).describe("A sized container for static icons with theme-aware coloring");
5460
+
5461
+ // src/ui/IconProfile/schema.ts
5462
+ import { z as z51 } from "zod";
5463
+ var iconProfileSchema = z51.object({
5464
+ type: z51.literal("icon-profile"),
5465
+ props: z51.object({
5466
+ icon: z51.string().describe("Icon name (resolved by the renderer)"),
5467
+ color: z51.enum([
5468
+ "red",
5469
+ "orange",
5470
+ "amber",
5471
+ "yellow",
5472
+ "lime",
5473
+ "green",
5474
+ "emerald",
5475
+ "teal",
5476
+ "cyan",
5477
+ "sky",
5478
+ "blue",
5479
+ "indigo",
5480
+ "violet",
5481
+ "purple",
5482
+ "fuchsia",
5483
+ "pink",
5484
+ "rose",
5485
+ "slate"
5486
+ ]).optional().describe("Background glow and icon color. Defaults to 'red'"),
5487
+ size: z51.enum(["26", "32", "40", "48", "56", "64"]).optional().describe("Size in pixels. Defaults to '64'"),
5488
+ externalIcon: z51.boolean().optional().describe("Whether the icon is external")
5489
+ })
5490
+ }).describe("An icon with a colored radial glow background");
5491
+
5492
+ // src/ui/ButtonWithTooltip/schema.ts
5493
+ import { z as z52 } from "zod";
5494
+ var buttonWithTooltipSchema = z52.object({
5495
+ type: z52.literal("button-with-tooltip"),
5496
+ props: z52.object({
5497
+ content: z52.string().describe("Tooltip text"),
5498
+ position: z52.enum([
5499
+ "top",
5500
+ "top-center",
5501
+ "top-left",
5502
+ "top-right",
5503
+ "bottom",
5504
+ "bottom-left",
5505
+ "bottom-center",
5506
+ "bottom-right",
5507
+ "left",
5508
+ "right"
5509
+ ]).optional().describe("Tooltip placement"),
5510
+ withArrow: z52.boolean().optional().describe("Show an arrow pointer")
5511
+ }),
5512
+ children: z52.array(uiNodeSchema).optional().describe("The button element to wrap with a tooltip")
5513
+ }).describe("A button wrapped with a tooltip that appears on hover");
5514
+
5515
+ // src/ui/Sheet/schema.ts
5516
+ import { z as z53 } from "zod";
5517
+ var sheetSchema = z53.object({
5518
+ type: z53.literal("sheet"),
5519
+ props: z53.object({}).optional(),
5520
+ children: z53.array(uiNodeSchema).optional().describe("Compose with sheet-trigger and sheet-content")
5521
+ }).describe("A slide-out panel overlay");
5522
+ var sheetTriggerSchema = z53.object({
5523
+ type: z53.literal("sheet-trigger"),
5524
+ props: z53.object({}).optional(),
5525
+ children: z53.array(uiNodeSchema).optional().describe("The element that opens the sheet")
5526
+ }).describe("Trigger element that opens a sheet");
5527
+ var sheetContentSchema = z53.object({
5528
+ type: z53.literal("sheet-content"),
5529
+ props: z53.object({
5530
+ side: z53.enum(["top", "right", "bottom", "left"]).optional().describe("Slide-in direction. Defaults to 'right'"),
5531
+ showCloseButton: z53.boolean().optional().describe("Show close button. Defaults to true")
5532
+ }).optional(),
5533
+ children: z53.array(uiNodeSchema).optional().describe("Sheet body content")
5534
+ }).describe("Content panel of a sheet");
5535
+ var sheetHeaderSchema = z53.object({
5536
+ type: z53.literal("sheet-header"),
5537
+ props: z53.object({}).optional(),
5538
+ children: z53.array(uiNodeSchema).optional()
5539
+ }).describe("Header section of a sheet");
5540
+ var sheetFooterSchema = z53.object({
5541
+ type: z53.literal("sheet-footer"),
5542
+ props: z53.object({}).optional(),
5543
+ children: z53.array(uiNodeSchema).optional()
5544
+ }).describe("Footer section of a sheet");
5545
+ var sheetTitleSchema = z53.object({
5546
+ type: z53.literal("sheet-title"),
5547
+ props: z53.object({
5548
+ children: z53.string().optional().describe("Title text")
5549
+ }).optional(),
5550
+ children: z53.array(uiNodeSchema).optional()
5551
+ }).describe("Title inside a sheet-header");
5552
+ var sheetDescriptionSchema = z53.object({
5553
+ type: z53.literal("sheet-description"),
5554
+ props: z53.object({
5555
+ children: z53.string().optional().describe("Description text")
5556
+ }).optional(),
5557
+ children: z53.array(uiNodeSchema).optional()
5558
+ }).describe("Description text inside a sheet-header");
5559
+
5560
+ // src/ui/Dropdown/schema.ts
5561
+ import { z as z54 } from "zod";
5562
+ var dropdownMenuSchema = z54.object({
5563
+ type: z54.literal("dropdown-menu"),
5564
+ props: z54.object({}).optional(),
5565
+ children: z54.array(uiNodeSchema).optional().describe("Compose with dropdown-menu-trigger and dropdown-menu-content")
5566
+ }).describe("A dropdown menu container");
5567
+ var dropdownMenuTriggerSchema = z54.object({
5568
+ type: z54.literal("dropdown-menu-trigger"),
5569
+ props: z54.object({}).optional(),
5570
+ children: z54.array(uiNodeSchema).optional().describe("The element that opens the dropdown")
5571
+ }).describe("Trigger element that opens a dropdown menu");
5572
+ var dropdownMenuContentSchema = z54.object({
5573
+ type: z54.literal("dropdown-menu-content"),
5574
+ props: z54.object({
5575
+ side: z54.enum(["top", "right", "bottom", "left"]).optional(),
5576
+ align: z54.enum(["start", "center", "end"]).optional()
5577
+ }).optional(),
5578
+ children: z54.array(uiNodeSchema).optional().describe("Menu items")
5579
+ }).describe("Content panel of a dropdown menu");
5580
+ var dropdownMenuItemSchema = z54.object({
5581
+ type: z54.literal("dropdown-menu-item"),
5582
+ props: z54.object({
5583
+ children: z54.string().optional().describe("Menu item text"),
5584
+ variant: z54.enum(["default", "destructive"]).optional().describe("Item style. Defaults to 'default'"),
5585
+ disabled: z54.boolean().optional()
5586
+ }).optional(),
5587
+ children: z54.array(uiNodeSchema).optional()
5588
+ }).describe("A single item inside a dropdown menu");
5589
+ var dropdownMenuSeparatorSchema = z54.object({
5590
+ type: z54.literal("dropdown-menu-separator"),
5591
+ props: z54.object({}).optional()
5592
+ }).describe("A visual separator between dropdown menu items");
5593
+ var dropdownMenuLabelSchema = z54.object({
5594
+ type: z54.literal("dropdown-menu-label"),
5595
+ props: z54.object({
5596
+ children: z54.string().optional().describe("Label text")
5597
+ }).optional(),
5598
+ children: z54.array(uiNodeSchema).optional()
5599
+ }).describe("A non-interactive label inside a dropdown menu");
5600
+
5601
+ // src/ui/Popover/schema.ts
5602
+ import { z as z55 } from "zod";
5603
+ var popoverSchema = z55.object({
5604
+ type: z55.literal("popover"),
5605
+ props: z55.object({}).optional(),
5606
+ children: z55.array(uiNodeSchema).optional().describe("Compose with popover-trigger and popover-content")
5607
+ }).describe("A popover overlay container");
5608
+ var popoverTriggerSchema = z55.object({
5609
+ type: z55.literal("popover-trigger"),
5610
+ props: z55.object({}).optional(),
5611
+ children: z55.array(uiNodeSchema).optional().describe("The element that opens the popover")
5612
+ }).describe("Trigger element that opens a popover");
5613
+ var popoverContentSchema = z55.object({
5614
+ type: z55.literal("popover-content"),
5615
+ props: z55.object({
5616
+ align: z55.enum(["start", "center", "end"]).optional().describe("Alignment relative to trigger. Defaults to 'center'"),
5617
+ sideOffset: z55.number().optional().describe("Offset from trigger in px. Defaults to 4")
5618
+ }).optional(),
5619
+ children: z55.array(uiNodeSchema).optional().describe("Popover body content")
5620
+ }).describe("Content panel of a popover");
5621
+
5622
+ // src/ui/ContextMenu/schema.ts
5623
+ import { z as z56 } from "zod";
5624
+ var contextMenuSchema = z56.object({
5625
+ type: z56.literal("context-menu"),
5626
+ props: z56.object({}).optional(),
5627
+ children: z56.array(uiNodeSchema).optional().describe("Compose with context-menu-trigger and context-menu-content")
5628
+ }).describe("A right-click context menu container");
5629
+ var contextMenuTriggerSchema = z56.object({
5630
+ type: z56.literal("context-menu-trigger"),
5631
+ props: z56.object({}).optional(),
5632
+ children: z56.array(uiNodeSchema).optional().describe("The element that triggers the context menu on right-click")
5633
+ }).describe("Trigger area for a context menu");
5634
+ var contextMenuContentSchema = z56.object({
5635
+ type: z56.literal("context-menu-content"),
5636
+ props: z56.object({}).optional(),
5637
+ children: z56.array(uiNodeSchema).optional().describe("Menu items")
5638
+ }).describe("Content panel of a context menu");
5639
+ var contextMenuItemSchema = z56.object({
5640
+ type: z56.literal("context-menu-item"),
5641
+ props: z56.object({
5642
+ children: z56.string().optional().describe("Menu item text"),
5643
+ variant: z56.enum(["default", "destructive"]).optional().describe("Item style. Defaults to 'default'"),
5644
+ disabled: z56.boolean().optional()
5645
+ }).optional(),
5646
+ children: z56.array(uiNodeSchema).optional()
5647
+ }).describe("A single item inside a context menu");
5648
+ var contextMenuSeparatorSchema = z56.object({
5649
+ type: z56.literal("context-menu-separator"),
5650
+ props: z56.object({}).optional()
5651
+ }).describe("A visual separator between context menu items");
5652
+
4164
5653
  // src/schema.ts
4165
5654
  var componentSchema = component_schema_default;
4166
5655
  function getComponentSchemas() {