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.
@@ -137,7 +137,7 @@ interface ButtonProps extends Omit<React$1.ComponentProps<"button">, "prefix" |
137
137
  declare const buttonVariants: (props?: ({
138
138
  variant?: "primary" | "secondary" | "outline" | "destructive" | "ghost" | "soft" | "ai-filled" | "ai-outline" | "glass" | null | undefined;
139
139
  size?: "sm" | "md" | "lg" | null | undefined;
140
- state?: "default" | "loading" | null | undefined;
140
+ state?: "loading" | "default" | null | undefined;
141
141
  } & class_variance_authority_types.ClassProp) | undefined) => string;
142
142
  declare function Button({ className, variant, state, size, prefix, suffix, onlyIcon, asChild, children, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
143
143
 
@@ -152,7 +152,7 @@ interface ToolButtonProps extends Omit<React$1.ComponentProps<"button">, "prefix
152
152
  declare const toolButtonVariants: (props?: ({
153
153
  variant?: "primary" | "outline" | "destructive" | null | undefined;
154
154
  size?: "md" | "lg" | null | undefined;
155
- state?: "default" | "loading" | null | undefined;
155
+ state?: "loading" | "default" | null | undefined;
156
156
  } & class_variance_authority_types.ClassProp) | undefined) => string;
157
157
  declare function ToolButton({ className, variant, state, size, prefix, suffix, onlyIcon, asChild, children, ...props }: ToolButtonProps): react_jsx_runtime.JSX.Element;
158
158
 
@@ -137,7 +137,7 @@ interface ButtonProps extends Omit<React$1.ComponentProps<"button">, "prefix" |
137
137
  declare const buttonVariants: (props?: ({
138
138
  variant?: "primary" | "secondary" | "outline" | "destructive" | "ghost" | "soft" | "ai-filled" | "ai-outline" | "glass" | null | undefined;
139
139
  size?: "sm" | "md" | "lg" | null | undefined;
140
- state?: "default" | "loading" | null | undefined;
140
+ state?: "loading" | "default" | null | undefined;
141
141
  } & class_variance_authority_types.ClassProp) | undefined) => string;
142
142
  declare function Button({ className, variant, state, size, prefix, suffix, onlyIcon, asChild, children, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
143
143
 
@@ -152,7 +152,7 @@ interface ToolButtonProps extends Omit<React$1.ComponentProps<"button">, "prefix
152
152
  declare const toolButtonVariants: (props?: ({
153
153
  variant?: "primary" | "outline" | "destructive" | null | undefined;
154
154
  size?: "md" | "lg" | null | undefined;
155
- state?: "default" | "loading" | null | undefined;
155
+ state?: "loading" | "default" | null | undefined;
156
156
  } & class_variance_authority_types.ClassProp) | undefined) => string;
157
157
  declare function ToolButton({ className, variant, state, size, prefix, suffix, onlyIcon, asChild, children, ...props }: ToolButtonProps): react_jsx_runtime.JSX.Element;
158
158
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magick-ui",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Generative UI primitives, renderer, design tokens, and schema for composing dynamic chat interfaces",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -112,7 +112,7 @@
112
112
  ],
113
113
  "license": "MIT",
114
114
  "scripts": {
115
- "generate-schema": "tsx src/schema/generator.ts",
115
+ "generate-schema": "tsx scripts/generate-schema.ts",
116
116
  "build": "pnpm generate-schema && tsup",
117
117
  "dev": "tsup --watch",
118
118
  "build-tokens": "tsx src/design-tokens/generator.ts",
@@ -84,6 +84,88 @@
84
84
  },
85
85
  "$schema": "http://json-schema.org/draft-07/schema#"
86
86
  },
87
+ "tool-button": {
88
+ "$ref": "#/definitions/tool-button",
89
+ "definitions": {
90
+ "tool-button": {
91
+ "type": "object",
92
+ "properties": {
93
+ "type": {
94
+ "type": "string",
95
+ "const": "tool-button"
96
+ },
97
+ "props": {
98
+ "type": "object",
99
+ "properties": {
100
+ "variant": {
101
+ "type": "string",
102
+ "enum": [
103
+ "primary",
104
+ "outline",
105
+ "destructive"
106
+ ],
107
+ "description": "Button style. Defaults to 'primary'"
108
+ },
109
+ "size": {
110
+ "type": "string",
111
+ "enum": [
112
+ "md",
113
+ "lg"
114
+ ],
115
+ "description": "Button size. Defaults to 'md'"
116
+ },
117
+ "state": {
118
+ "type": "string",
119
+ "enum": [
120
+ "loading",
121
+ "default"
122
+ ],
123
+ "description": "Button state. Defaults to 'default'"
124
+ },
125
+ "onlyIcon": {
126
+ "type": "boolean",
127
+ "description": "Icon-only mode with square padding"
128
+ },
129
+ "disabled": {
130
+ "type": "boolean"
131
+ }
132
+ },
133
+ "additionalProperties": false
134
+ },
135
+ "children": {
136
+ "type": "array",
137
+ "items": {
138
+ "type": "object",
139
+ "properties": {
140
+ "type": {
141
+ "type": "string"
142
+ },
143
+ "props": {
144
+ "type": "object",
145
+ "additionalProperties": {}
146
+ },
147
+ "children": {
148
+ "type": "array",
149
+ "items": {}
150
+ }
151
+ },
152
+ "required": [
153
+ "type"
154
+ ],
155
+ "additionalProperties": false
156
+ },
157
+ "description": "Button content"
158
+ }
159
+ },
160
+ "required": [
161
+ "type"
162
+ ],
163
+ "additionalProperties": false,
164
+ "description": "A toolbar action button with loading state"
165
+ }
166
+ },
167
+ "$schema": "http://json-schema.org/draft-07/schema#"
168
+ },
87
169
  "card": {
88
170
  "$ref": "#/definitions/card",
89
171
  "definitions": {
@@ -386,6 +468,55 @@
386
468
  },
387
469
  "$schema": "http://json-schema.org/draft-07/schema#"
388
470
  },
471
+ "card-action": {
472
+ "$ref": "#/definitions/card-action",
473
+ "definitions": {
474
+ "card-action": {
475
+ "type": "object",
476
+ "properties": {
477
+ "type": {
478
+ "type": "string",
479
+ "const": "card-action"
480
+ },
481
+ "props": {
482
+ "type": "object",
483
+ "properties": {},
484
+ "additionalProperties": false
485
+ },
486
+ "children": {
487
+ "type": "array",
488
+ "items": {
489
+ "type": "object",
490
+ "properties": {
491
+ "type": {
492
+ "type": "string"
493
+ },
494
+ "props": {
495
+ "type": "object",
496
+ "additionalProperties": {}
497
+ },
498
+ "children": {
499
+ "type": "array",
500
+ "items": {}
501
+ }
502
+ },
503
+ "required": [
504
+ "type"
505
+ ],
506
+ "additionalProperties": false
507
+ },
508
+ "description": "Action elements (buttons, links) placed at the top-right of a card header"
509
+ }
510
+ },
511
+ "required": [
512
+ "type"
513
+ ],
514
+ "additionalProperties": false,
515
+ "description": "An action area positioned at the top-right of a card"
516
+ }
517
+ },
518
+ "$schema": "http://json-schema.org/draft-07/schema#"
519
+ },
389
520
  "form": {
390
521
  "$ref": "#/definitions/form",
391
522
  "definitions": {
@@ -3089,6 +3220,441 @@
3089
3220
  },
3090
3221
  "$schema": "http://json-schema.org/draft-07/schema#"
3091
3222
  },
3223
+ "calendar": {
3224
+ "$ref": "#/definitions/calendar",
3225
+ "definitions": {
3226
+ "calendar": {
3227
+ "type": "object",
3228
+ "properties": {
3229
+ "type": {
3230
+ "type": "string",
3231
+ "const": "calendar"
3232
+ },
3233
+ "props": {
3234
+ "type": "object",
3235
+ "properties": {
3236
+ "showOutsideDays": {
3237
+ "type": "boolean",
3238
+ "description": "Show days from adjacent months. Defaults to true"
3239
+ },
3240
+ "captionLayout": {
3241
+ "type": "string",
3242
+ "enum": [
3243
+ "label",
3244
+ "dropdown",
3245
+ "dropdown-months",
3246
+ "dropdown-years"
3247
+ ],
3248
+ "description": "Caption display mode. Defaults to 'label'"
3249
+ },
3250
+ "buttonVariant": {
3251
+ "type": "string",
3252
+ "enum": [
3253
+ "primary",
3254
+ "secondary",
3255
+ "outline",
3256
+ "destructive",
3257
+ "ghost",
3258
+ "soft"
3259
+ ],
3260
+ "description": "Navigation button style. Defaults to 'ghost'"
3261
+ },
3262
+ "mode": {
3263
+ "type": "string",
3264
+ "enum": [
3265
+ "single",
3266
+ "multiple",
3267
+ "range"
3268
+ ],
3269
+ "description": "Selection mode"
3270
+ },
3271
+ "numberOfMonths": {
3272
+ "type": "number",
3273
+ "description": "Number of months to display"
3274
+ },
3275
+ "disabled": {
3276
+ "type": "boolean"
3277
+ }
3278
+ },
3279
+ "additionalProperties": false
3280
+ }
3281
+ },
3282
+ "required": [
3283
+ "type"
3284
+ ],
3285
+ "additionalProperties": false,
3286
+ "description": "A date calendar for picking dates or date ranges"
3287
+ }
3288
+ },
3289
+ "$schema": "http://json-schema.org/draft-07/schema#"
3290
+ },
3291
+ "file-input": {
3292
+ "$ref": "#/definitions/file-input",
3293
+ "definitions": {
3294
+ "file-input": {
3295
+ "type": "object",
3296
+ "properties": {
3297
+ "type": {
3298
+ "type": "string",
3299
+ "const": "file-input"
3300
+ },
3301
+ "props": {
3302
+ "type": "object",
3303
+ "properties": {
3304
+ "label": {
3305
+ "type": "string",
3306
+ "description": "Label text above the input"
3307
+ },
3308
+ "helperText": {
3309
+ "type": "string",
3310
+ "description": "Helper text below the input"
3311
+ },
3312
+ "error": {
3313
+ "type": "boolean",
3314
+ "description": "Show error styling. Defaults to false"
3315
+ },
3316
+ "accept": {
3317
+ "type": "string",
3318
+ "description": "Accepted file types, e.g. 'image/*,.pdf'"
3319
+ },
3320
+ "multiple": {
3321
+ "type": "boolean",
3322
+ "description": "Allow multiple files. Defaults to false"
3323
+ },
3324
+ "disabled": {
3325
+ "type": "boolean"
3326
+ }
3327
+ },
3328
+ "additionalProperties": false
3329
+ }
3330
+ },
3331
+ "required": [
3332
+ "type"
3333
+ ],
3334
+ "additionalProperties": false,
3335
+ "description": "A file input with choose-file button and upload progress"
3336
+ }
3337
+ },
3338
+ "$schema": "http://json-schema.org/draft-07/schema#"
3339
+ },
3340
+ "tool-toggle": {
3341
+ "$ref": "#/definitions/tool-toggle",
3342
+ "definitions": {
3343
+ "tool-toggle": {
3344
+ "type": "object",
3345
+ "properties": {
3346
+ "type": {
3347
+ "type": "string",
3348
+ "const": "tool-toggle"
3349
+ },
3350
+ "props": {
3351
+ "type": "object",
3352
+ "properties": {
3353
+ "icon": {
3354
+ "type": "string",
3355
+ "description": "Icon name (resolved by the renderer)"
3356
+ },
3357
+ "dropdown": {
3358
+ "type": "boolean",
3359
+ "description": "Show dropdown chevron"
3360
+ }
3361
+ },
3362
+ "additionalProperties": false
3363
+ }
3364
+ },
3365
+ "required": [
3366
+ "type"
3367
+ ],
3368
+ "additionalProperties": false,
3369
+ "description": "A round toggle button used in toolbars, optionally with a dropdown"
3370
+ }
3371
+ },
3372
+ "$schema": "http://json-schema.org/draft-07/schema#"
3373
+ },
3374
+ "toggle-dropdown-button": {
3375
+ "$ref": "#/definitions/toggle-dropdown-button",
3376
+ "definitions": {
3377
+ "toggle-dropdown-button": {
3378
+ "type": "object",
3379
+ "properties": {
3380
+ "type": {
3381
+ "type": "string",
3382
+ "const": "toggle-dropdown-button"
3383
+ },
3384
+ "props": {
3385
+ "type": "object",
3386
+ "properties": {
3387
+ "type": {
3388
+ "type": "string",
3389
+ "enum": [
3390
+ "text",
3391
+ "icon"
3392
+ ],
3393
+ "description": "Button content type"
3394
+ },
3395
+ "selected": {
3396
+ "type": "boolean",
3397
+ "description": "Whether the button is selected"
3398
+ },
3399
+ "variant": {
3400
+ "type": "string",
3401
+ "enum": [
3402
+ "primary",
3403
+ "secondary",
3404
+ "destructive"
3405
+ ],
3406
+ "description": "Button color variant"
3407
+ }
3408
+ },
3409
+ "required": [
3410
+ "type",
3411
+ "selected",
3412
+ "variant"
3413
+ ],
3414
+ "additionalProperties": false
3415
+ }
3416
+ },
3417
+ "required": [
3418
+ "type",
3419
+ "props"
3420
+ ],
3421
+ "additionalProperties": false,
3422
+ "description": "A split toggle button with an attached dropdown trigger"
3423
+ }
3424
+ },
3425
+ "$schema": "http://json-schema.org/draft-07/schema#"
3426
+ },
3427
+ "icon-container": {
3428
+ "$ref": "#/definitions/icon-container",
3429
+ "definitions": {
3430
+ "icon-container": {
3431
+ "type": "object",
3432
+ "properties": {
3433
+ "type": {
3434
+ "type": "string",
3435
+ "const": "icon-container"
3436
+ },
3437
+ "props": {
3438
+ "type": "object",
3439
+ "properties": {
3440
+ "icon": {
3441
+ "type": "string",
3442
+ "description": "Icon name (resolved by the renderer)"
3443
+ },
3444
+ "size": {
3445
+ "type": "string",
3446
+ "enum": [
3447
+ "xs",
3448
+ "sm",
3449
+ "md",
3450
+ "lg",
3451
+ "xl",
3452
+ "2xl",
3453
+ "3xl",
3454
+ "4xl",
3455
+ "5xl",
3456
+ "6xl",
3457
+ "auto"
3458
+ ],
3459
+ "description": "Icon size. Defaults to 'sm'"
3460
+ },
3461
+ "colorInFill": {
3462
+ "type": "boolean",
3463
+ "description": "Apply fill colors to SVG paths. Defaults to true"
3464
+ },
3465
+ "disableTheme": {
3466
+ "type": "boolean",
3467
+ "description": "Disable theme-aware coloring. Defaults to false"
3468
+ }
3469
+ },
3470
+ "additionalProperties": false
3471
+ },
3472
+ "children": {
3473
+ "type": "array",
3474
+ "items": {
3475
+ "type": "object",
3476
+ "properties": {
3477
+ "type": {
3478
+ "type": "string"
3479
+ },
3480
+ "props": {
3481
+ "type": "object",
3482
+ "additionalProperties": {}
3483
+ },
3484
+ "children": {
3485
+ "type": "array",
3486
+ "items": {}
3487
+ }
3488
+ },
3489
+ "required": [
3490
+ "type"
3491
+ ],
3492
+ "additionalProperties": false
3493
+ },
3494
+ "description": "Icon element"
3495
+ }
3496
+ },
3497
+ "required": [
3498
+ "type"
3499
+ ],
3500
+ "additionalProperties": false,
3501
+ "description": "A sized container for static icons with theme-aware coloring"
3502
+ }
3503
+ },
3504
+ "$schema": "http://json-schema.org/draft-07/schema#"
3505
+ },
3506
+ "icon-profile": {
3507
+ "$ref": "#/definitions/icon-profile",
3508
+ "definitions": {
3509
+ "icon-profile": {
3510
+ "type": "object",
3511
+ "properties": {
3512
+ "type": {
3513
+ "type": "string",
3514
+ "const": "icon-profile"
3515
+ },
3516
+ "props": {
3517
+ "type": "object",
3518
+ "properties": {
3519
+ "icon": {
3520
+ "type": "string",
3521
+ "description": "Icon name (resolved by the renderer)"
3522
+ },
3523
+ "color": {
3524
+ "type": "string",
3525
+ "enum": [
3526
+ "red",
3527
+ "orange",
3528
+ "amber",
3529
+ "yellow",
3530
+ "lime",
3531
+ "green",
3532
+ "emerald",
3533
+ "teal",
3534
+ "cyan",
3535
+ "sky",
3536
+ "blue",
3537
+ "indigo",
3538
+ "violet",
3539
+ "purple",
3540
+ "fuchsia",
3541
+ "pink",
3542
+ "rose",
3543
+ "slate"
3544
+ ],
3545
+ "description": "Background glow and icon color. Defaults to 'red'"
3546
+ },
3547
+ "size": {
3548
+ "type": "string",
3549
+ "enum": [
3550
+ "26",
3551
+ "32",
3552
+ "40",
3553
+ "48",
3554
+ "56",
3555
+ "64"
3556
+ ],
3557
+ "description": "Size in pixels. Defaults to '64'"
3558
+ },
3559
+ "externalIcon": {
3560
+ "type": "boolean",
3561
+ "description": "Whether the icon is external"
3562
+ }
3563
+ },
3564
+ "required": [
3565
+ "icon"
3566
+ ],
3567
+ "additionalProperties": false
3568
+ }
3569
+ },
3570
+ "required": [
3571
+ "type",
3572
+ "props"
3573
+ ],
3574
+ "additionalProperties": false,
3575
+ "description": "An icon with a colored radial glow background"
3576
+ }
3577
+ },
3578
+ "$schema": "http://json-schema.org/draft-07/schema#"
3579
+ },
3580
+ "button-with-tooltip": {
3581
+ "$ref": "#/definitions/button-with-tooltip",
3582
+ "definitions": {
3583
+ "button-with-tooltip": {
3584
+ "type": "object",
3585
+ "properties": {
3586
+ "type": {
3587
+ "type": "string",
3588
+ "const": "button-with-tooltip"
3589
+ },
3590
+ "props": {
3591
+ "type": "object",
3592
+ "properties": {
3593
+ "content": {
3594
+ "type": "string",
3595
+ "description": "Tooltip text"
3596
+ },
3597
+ "position": {
3598
+ "type": "string",
3599
+ "enum": [
3600
+ "top",
3601
+ "top-center",
3602
+ "top-left",
3603
+ "top-right",
3604
+ "bottom",
3605
+ "bottom-left",
3606
+ "bottom-center",
3607
+ "bottom-right",
3608
+ "left",
3609
+ "right"
3610
+ ],
3611
+ "description": "Tooltip placement"
3612
+ },
3613
+ "withArrow": {
3614
+ "type": "boolean",
3615
+ "description": "Show an arrow pointer"
3616
+ }
3617
+ },
3618
+ "required": [
3619
+ "content"
3620
+ ],
3621
+ "additionalProperties": false
3622
+ },
3623
+ "children": {
3624
+ "type": "array",
3625
+ "items": {
3626
+ "type": "object",
3627
+ "properties": {
3628
+ "type": {
3629
+ "type": "string"
3630
+ },
3631
+ "props": {
3632
+ "type": "object",
3633
+ "additionalProperties": {}
3634
+ },
3635
+ "children": {
3636
+ "type": "array",
3637
+ "items": {}
3638
+ }
3639
+ },
3640
+ "required": [
3641
+ "type"
3642
+ ],
3643
+ "additionalProperties": false
3644
+ },
3645
+ "description": "The button element to wrap with a tooltip"
3646
+ }
3647
+ },
3648
+ "required": [
3649
+ "type",
3650
+ "props"
3651
+ ],
3652
+ "additionalProperties": false,
3653
+ "description": "A button wrapped with a tooltip that appears on hover"
3654
+ }
3655
+ },
3656
+ "$schema": "http://json-schema.org/draft-07/schema#"
3657
+ },
3092
3658
  "sheet": {
3093
3659
  "$ref": "#/definitions/sheet",
3094
3660
  "definitions": {