@kjaniec-dev/ui-mcp 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1101 @@
1
+ [
2
+ {
3
+ "name": "Button",
4
+ "importPath": "import { Button } from \"@kjaniec-dev/ui\";",
5
+ "description": "React component Button.",
6
+ "props": [
7
+ {
8
+ "name": "loading",
9
+ "type": "boolean",
10
+ "optional": true,
11
+ "defaultValue": null,
12
+ "description": "Shows a spinner and disables interaction."
13
+ },
14
+ {
15
+ "name": "leadingIcon",
16
+ "type": "React.ReactNode",
17
+ "optional": true,
18
+ "defaultValue": null,
19
+ "description": "Icon rendered before the label."
20
+ },
21
+ {
22
+ "name": "trailingIcon",
23
+ "type": "React.ReactNode",
24
+ "optional": true,
25
+ "defaultValue": null,
26
+ "description": "Icon rendered after the label."
27
+ },
28
+ {
29
+ "name": "variant",
30
+ "type": "\"primary\" | \"secondary\" | \"outline\" | \"ghost\" | \"danger\"",
31
+ "optional": true,
32
+ "defaultValue": "\"primary\"",
33
+ "description": "Style variant of the component: variant."
34
+ },
35
+ {
36
+ "name": "size",
37
+ "type": "\"sm\" | \"md\" | \"lg\" | \"icon\" | \"icon-sm\"",
38
+ "optional": true,
39
+ "defaultValue": "\"md\"",
40
+ "description": "Style variant of the component: size."
41
+ }
42
+ ],
43
+ "cva": {
44
+ "variants": {
45
+ "variant": [
46
+ "primary",
47
+ "secondary",
48
+ "outline",
49
+ "ghost",
50
+ "danger"
51
+ ],
52
+ "size": [
53
+ "sm",
54
+ "md",
55
+ "lg",
56
+ "icon",
57
+ "icon-sm"
58
+ ]
59
+ },
60
+ "defaultVariants": {
61
+ "variant": "primary",
62
+ "size": "md"
63
+ }
64
+ },
65
+ "usageSnippet": "<Button variant=\"primary\">Primary</Button>"
66
+ },
67
+ {
68
+ "name": "Badge",
69
+ "importPath": "import { Badge } from \"@kjaniec-dev/ui\";",
70
+ "description": "React component Badge.",
71
+ "props": [
72
+ {
73
+ "name": "dot",
74
+ "type": "boolean",
75
+ "optional": true,
76
+ "defaultValue": null,
77
+ "description": "Render a leading status dot."
78
+ },
79
+ {
80
+ "name": "variant",
81
+ "type": "\"neutral\" | \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"solid\"",
82
+ "optional": true,
83
+ "defaultValue": "\"neutral\"",
84
+ "description": "Style variant of the component: variant."
85
+ }
86
+ ],
87
+ "cva": {
88
+ "variants": {
89
+ "variant": [
90
+ "neutral",
91
+ "primary",
92
+ "secondary",
93
+ "success",
94
+ "warning",
95
+ "danger",
96
+ "info",
97
+ "solid"
98
+ ]
99
+ },
100
+ "defaultVariants": {
101
+ "variant": "neutral"
102
+ }
103
+ },
104
+ "usageSnippet": "<Badge variant=\"neutral\">Neutral</Badge>"
105
+ },
106
+ {
107
+ "name": "Alert",
108
+ "importPath": "import { Alert } from \"@kjaniec-dev/ui\";",
109
+ "description": "React component Alert.",
110
+ "props": [
111
+ {
112
+ "name": "icon",
113
+ "type": "React.ReactNode",
114
+ "optional": true,
115
+ "defaultValue": null,
116
+ "description": "Optional leading icon (e.g. an SVG). Inherits the variant color."
117
+ },
118
+ {
119
+ "name": "title",
120
+ "type": "React.ReactNode",
121
+ "optional": true,
122
+ "defaultValue": null,
123
+ "description": ""
124
+ },
125
+ {
126
+ "name": "variant",
127
+ "type": "\"info\" | \"success\" | \"warning\" | \"danger\"",
128
+ "optional": true,
129
+ "defaultValue": "\"info\"",
130
+ "description": "Style variant of the component: variant."
131
+ }
132
+ ],
133
+ "cva": {
134
+ "variants": {
135
+ "variant": [
136
+ "info",
137
+ "success",
138
+ "warning",
139
+ "danger"
140
+ ]
141
+ },
142
+ "defaultVariants": {
143
+ "variant": "info"
144
+ }
145
+ },
146
+ "usageSnippet": "<Alert variant=\"info\" icon={InfoIcon} title=\"Information\">A short informational message for the user.</Alert>"
147
+ },
148
+ {
149
+ "name": "Spinner",
150
+ "importPath": "import { Spinner } from \"@kjaniec-dev/ui\";",
151
+ "description": "React component Spinner.",
152
+ "props": [
153
+ {
154
+ "name": "size",
155
+ "type": "number",
156
+ "optional": true,
157
+ "defaultValue": "24",
158
+ "description": "Diameter in px. Default 24."
159
+ }
160
+ ],
161
+ "cva": null,
162
+ "usageSnippet": "<Spinner size={18} />"
163
+ },
164
+ {
165
+ "name": "Progress",
166
+ "importPath": "import { Progress } from \"@kjaniec-dev/ui\";",
167
+ "description": "React component Progress.",
168
+ "props": [
169
+ {
170
+ "name": "value",
171
+ "type": "number",
172
+ "optional": true,
173
+ "defaultValue": "0",
174
+ "description": "0–100."
175
+ },
176
+ {
177
+ "name": "tone",
178
+ "type": "\"primary\" | \"secondary\"",
179
+ "optional": true,
180
+ "defaultValue": "\"primary\"",
181
+ "description": ""
182
+ },
183
+ {
184
+ "name": "barClassName",
185
+ "type": "string",
186
+ "optional": true,
187
+ "defaultValue": null,
188
+ "description": "Extra classes applied to the inner bar span — use for animation, transform-origin, etc."
189
+ }
190
+ ],
191
+ "cva": null,
192
+ "usageSnippet": "<Progress {...args} />"
193
+ },
194
+ {
195
+ "name": "Input",
196
+ "importPath": "import { Input } from \"@kjaniec-dev/ui\";",
197
+ "description": "React component Input.",
198
+ "props": [
199
+ {
200
+ "name": "error",
201
+ "type": "boolean",
202
+ "optional": true,
203
+ "defaultValue": null,
204
+ "description": "Visual error state (red border + ring)."
205
+ },
206
+ {
207
+ "name": "leadingIcon",
208
+ "type": "React.ReactNode",
209
+ "optional": true,
210
+ "defaultValue": null,
211
+ "description": "Icon shown inside the field, leading edge."
212
+ }
213
+ ],
214
+ "cva": null,
215
+ "usageSnippet": "<Input placeholder=\"Jane Doe\" />"
216
+ },
217
+ {
218
+ "name": "Textarea",
219
+ "importPath": "import { Textarea } from \"@kjaniec-dev/ui\";",
220
+ "description": "React component Textarea.",
221
+ "props": [
222
+ {
223
+ "name": "error",
224
+ "type": "boolean",
225
+ "optional": true,
226
+ "defaultValue": null,
227
+ "description": ""
228
+ }
229
+ ],
230
+ "cva": null,
231
+ "usageSnippet": "<Textarea placeholder=\"What is this project about?\" />"
232
+ },
233
+ {
234
+ "name": "Label",
235
+ "importPath": "import { Label } from \"@kjaniec-dev/ui\";",
236
+ "description": "React component Label.",
237
+ "props": [
238
+ {
239
+ "name": "required",
240
+ "type": "boolean",
241
+ "optional": true,
242
+ "defaultValue": null,
243
+ "description": "Append a red required marker."
244
+ }
245
+ ],
246
+ "cva": null,
247
+ "usageSnippet": "<Label required>Full name</Label>"
248
+ },
249
+ {
250
+ "name": "Hint",
251
+ "importPath": "import { Hint } from \"@kjaniec-dev/ui\";",
252
+ "description": "React component Hint.",
253
+ "props": [
254
+ {
255
+ "name": "error",
256
+ "type": "boolean",
257
+ "optional": true,
258
+ "defaultValue": null,
259
+ "description": ""
260
+ }
261
+ ],
262
+ "cva": null,
263
+ "usageSnippet": "<Hint>This is how your team will see you.</Hint>"
264
+ },
265
+ {
266
+ "name": "Field",
267
+ "importPath": "import { Field } from \"@kjaniec-dev/ui\";",
268
+ "description": "Vertical label + control + hint group.",
269
+ "props": [],
270
+ "cva": null,
271
+ "usageSnippet": "<Field>\n <Label required>Full name</Label>\n <Input placeholder=\"Jane Doe\" />"
272
+ },
273
+ {
274
+ "name": "Select",
275
+ "importPath": "import { Select } from \"@kjaniec-dev/ui\";",
276
+ "description": "React component Select.",
277
+ "props": [
278
+ {
279
+ "name": "error",
280
+ "type": "boolean",
281
+ "optional": true,
282
+ "defaultValue": null,
283
+ "description": ""
284
+ }
285
+ ],
286
+ "cva": null,
287
+ "usageSnippet": "<Select>\n <option>Administrator</option>\n <option>Editor</option>\n <option>View only</option>\n </Select>"
288
+ },
289
+ {
290
+ "name": "Checkbox",
291
+ "importPath": "import { Checkbox } from \"@kjaniec-dev/ui\";",
292
+ "description": "React component Checkbox.",
293
+ "props": [
294
+ {
295
+ "name": "label",
296
+ "type": "React.ReactNode",
297
+ "optional": true,
298
+ "defaultValue": null,
299
+ "description": ""
300
+ }
301
+ ],
302
+ "cva": null,
303
+ "usageSnippet": "<Checkbox defaultChecked label=\"Email notifications\" />"
304
+ },
305
+ {
306
+ "name": "Radio",
307
+ "importPath": "import { Radio } from \"@kjaniec-dev/ui\";",
308
+ "description": "React component Radio.",
309
+ "props": [
310
+ {
311
+ "name": "label",
312
+ "type": "React.ReactNode",
313
+ "optional": true,
314
+ "defaultValue": null,
315
+ "description": ""
316
+ }
317
+ ],
318
+ "cva": null,
319
+ "usageSnippet": "<Radio name=\"plan\" defaultChecked label=\"Monthly plan\" />"
320
+ },
321
+ {
322
+ "name": "Switch",
323
+ "importPath": "import { Switch } from \"@kjaniec-dev/ui\";",
324
+ "description": "React component Switch.",
325
+ "props": [
326
+ {
327
+ "name": "label",
328
+ "type": "React.ReactNode",
329
+ "optional": true,
330
+ "defaultValue": null,
331
+ "description": ""
332
+ }
333
+ ],
334
+ "cva": null,
335
+ "usageSnippet": "<Switch defaultChecked label=\"Dark mode for new users\" />"
336
+ },
337
+ {
338
+ "name": "Slider",
339
+ "importPath": "import { Slider } from \"@kjaniec-dev/ui\";",
340
+ "description": "Range slider styled with the kit's primary token. Thumb styling lives in a\nscoped <style> tag because pseudo-elements (::-webkit-slider-thumb) can't be\nexpressed as Tailwind utilities.",
341
+ "props": [],
342
+ "cva": null,
343
+ "usageSnippet": "<Slider min={0} max={100} value={v} onChange={(e) => setV(Number(e.target.value))} />"
344
+ },
345
+ {
346
+ "name": "Segmented",
347
+ "importPath": "import { Segmented } from \"@kjaniec-dev/ui\";",
348
+ "description": "Segmented control / single-select toggle group. Controlled.",
349
+ "props": [
350
+ {
351
+ "name": "options",
352
+ "type": "SegmentedOption<T>[]",
353
+ "optional": false,
354
+ "defaultValue": null,
355
+ "description": ""
356
+ },
357
+ {
358
+ "name": "value",
359
+ "type": "T",
360
+ "optional": false,
361
+ "defaultValue": null,
362
+ "description": ""
363
+ },
364
+ {
365
+ "name": "onChange",
366
+ "type": "(value: T) => void",
367
+ "optional": false,
368
+ "defaultValue": null,
369
+ "description": ""
370
+ },
371
+ {
372
+ "name": "className",
373
+ "type": "string",
374
+ "optional": true,
375
+ "defaultValue": null,
376
+ "description": ""
377
+ },
378
+ {
379
+ "name": "\"aria-label\"",
380
+ "type": "string",
381
+ "optional": true,
382
+ "defaultValue": null,
383
+ "description": ""
384
+ }
385
+ ],
386
+ "cva": null,
387
+ "usageSnippet": "<Segmented\n value={v}\n onChange={setV}\n options={[\n { value: \"day\", label: \"Day\" },\n { value: \"week\", label: \"Week\" },\n { value: \"month\", label: \"Month\" },\n ]}\n />"
388
+ },
389
+ {
390
+ "name": "Card",
391
+ "importPath": "import { Card } from \"@kjaniec-dev/ui\";",
392
+ "description": "React component Card.",
393
+ "props": [
394
+ {
395
+ "name": "as",
396
+ "type": "React.ElementType",
397
+ "optional": true,
398
+ "defaultValue": "\"div\"",
399
+ "description": ""
400
+ },
401
+ {
402
+ "name": "elevated",
403
+ "type": "boolean",
404
+ "optional": true,
405
+ "defaultValue": null,
406
+ "description": "Drop the border + heavier shadow for a floating look."
407
+ },
408
+ {
409
+ "name": "interactive",
410
+ "type": "boolean",
411
+ "optional": true,
412
+ "defaultValue": null,
413
+ "description": "Adds hover lift effect — translate-y + shadow. For keyboard accessibility pair with `as=\"a\"` or `as=\"button\"`."
414
+ }
415
+ ],
416
+ "cva": null,
417
+ "usageSnippet": "<Card elevated>\n <CardContent style={{ paddingTop: \"1.35rem\" }}>\n <CardTitle>Q3 Quarterly Report</CardTitle>\n <CardDescription>A summary of results and key product metrics.</CardDescription>\n </CardContent>\n </Card>"
418
+ },
419
+ {
420
+ "name": "CardHeader",
421
+ "importPath": "import { CardHeader } from \"@kjaniec-dev/ui\";",
422
+ "description": "React component CardHeader.",
423
+ "props": [],
424
+ "cva": null,
425
+ "usageSnippet": "<CardHeader>\n <CardTitle>Semantic Article Card</CardTitle>\n <CardDescription>This card renders as an &lt;article&gt; element.</CardDescription>\n </CardHeader>"
426
+ },
427
+ {
428
+ "name": "CardTitle",
429
+ "importPath": "import { CardTitle } from \"@kjaniec-dev/ui\";",
430
+ "description": "React component CardTitle.",
431
+ "props": [],
432
+ "cva": null,
433
+ "usageSnippet": "<CardTitle>Team Workspace</CardTitle>"
434
+ },
435
+ {
436
+ "name": "CardDescription",
437
+ "importPath": "import { CardDescription } from \"@kjaniec-dev/ui\";",
438
+ "description": "React component CardDescription.",
439
+ "props": [],
440
+ "cva": null,
441
+ "usageSnippet": "<CardDescription>Unlimited projects, roles and activity history for your whole team.</CardDescription>"
442
+ },
443
+ {
444
+ "name": "CardContent",
445
+ "importPath": "import { CardContent } from \"@kjaniec-dev/ui\";",
446
+ "description": "Body region with default padding.",
447
+ "props": [],
448
+ "cva": null,
449
+ "usageSnippet": "<CardContent style={{ paddingTop: \"1.35rem\" }}>\n <CardTitle>Q3 Quarterly Report</CardTitle>\n <CardDescription>A summary of results and key product metrics.</CardDescription>\n </CardContent>"
450
+ },
451
+ {
452
+ "name": "CardFooter",
453
+ "importPath": "import { CardFooter } from \"@kjaniec-dev/ui\";",
454
+ "description": "React component CardFooter.",
455
+ "props": [],
456
+ "cva": null,
457
+ "usageSnippet": "<CardFooter>\n <Button size=\"sm\">Choose plan</Button>\n <Button size=\"sm\" variant=\"ghost\">Details</Button>\n </CardFooter>"
458
+ },
459
+ {
460
+ "name": "Stat",
461
+ "importPath": "import { Stat } from \"@kjaniec-dev/ui\";",
462
+ "description": "React component Stat.",
463
+ "props": [
464
+ {
465
+ "name": "label",
466
+ "type": "React.ReactNode",
467
+ "optional": false,
468
+ "defaultValue": null,
469
+ "description": ""
470
+ },
471
+ {
472
+ "name": "value",
473
+ "type": "React.ReactNode",
474
+ "optional": false,
475
+ "defaultValue": null,
476
+ "description": ""
477
+ },
478
+ {
479
+ "name": "delta",
480
+ "type": "React.ReactNode",
481
+ "optional": true,
482
+ "defaultValue": null,
483
+ "description": "e.g. \"+12.3% mdm\""
484
+ },
485
+ {
486
+ "name": "trend",
487
+ "type": "\"up\" | \"down\"",
488
+ "optional": true,
489
+ "defaultValue": null,
490
+ "description": ""
491
+ }
492
+ ],
493
+ "cva": null,
494
+ "usageSnippet": "<Stat label=\"MRR\" value=\"$128.4k\" delta=\"12.3% MoM\" trend=\"up\" />"
495
+ },
496
+ {
497
+ "name": "Avatar",
498
+ "importPath": "import { Avatar } from \"@kjaniec-dev/ui\";",
499
+ "description": "React component Avatar.",
500
+ "props": [
501
+ {
502
+ "name": "src",
503
+ "type": "string",
504
+ "optional": true,
505
+ "defaultValue": null,
506
+ "description": "Image URL; falls back to initials/children when absent."
507
+ },
508
+ {
509
+ "name": "alt",
510
+ "type": "string",
511
+ "optional": true,
512
+ "defaultValue": null,
513
+ "description": ""
514
+ },
515
+ {
516
+ "name": "status",
517
+ "type": "boolean",
518
+ "optional": true,
519
+ "defaultValue": null,
520
+ "description": "Show an online status dot."
521
+ },
522
+ {
523
+ "name": "size",
524
+ "type": "\"sm\" | \"md\" | \"lg\"",
525
+ "optional": true,
526
+ "defaultValue": "\"md\"",
527
+ "description": "Style variant of the component: size."
528
+ },
529
+ {
530
+ "name": "tone",
531
+ "type": "\"secondary\" | \"primary\" | \"info\" | \"muted\"",
532
+ "optional": true,
533
+ "defaultValue": "\"secondary\"",
534
+ "description": "Style variant of the component: tone."
535
+ }
536
+ ],
537
+ "cva": {
538
+ "variants": {
539
+ "size": [
540
+ "sm",
541
+ "md",
542
+ "lg"
543
+ ],
544
+ "tone": [
545
+ "secondary",
546
+ "primary",
547
+ "info",
548
+ "muted"
549
+ ]
550
+ },
551
+ "defaultVariants": {
552
+ "size": "md",
553
+ "tone": "secondary"
554
+ }
555
+ },
556
+ "usageSnippet": "<Avatar size=\"sm\">SM</Avatar>"
557
+ },
558
+ {
559
+ "name": "AvatarGroup",
560
+ "importPath": "import { AvatarGroup } from \"@kjaniec-dev/ui\";",
561
+ "description": "Overlapping cluster of avatars.",
562
+ "props": [
563
+ {
564
+ "name": "size",
565
+ "type": "\"sm\" | \"md\" | \"lg\"",
566
+ "optional": true,
567
+ "defaultValue": "\"md\"",
568
+ "description": "Style variant of the component: size."
569
+ },
570
+ {
571
+ "name": "tone",
572
+ "type": "\"secondary\" | \"primary\" | \"info\" | \"muted\"",
573
+ "optional": true,
574
+ "defaultValue": "\"secondary\"",
575
+ "description": "Style variant of the component: tone."
576
+ }
577
+ ],
578
+ "cva": {
579
+ "variants": {
580
+ "size": [
581
+ "sm",
582
+ "md",
583
+ "lg"
584
+ ],
585
+ "tone": [
586
+ "secondary",
587
+ "primary",
588
+ "info",
589
+ "muted"
590
+ ]
591
+ },
592
+ "defaultVariants": {
593
+ "size": "md",
594
+ "tone": "secondary"
595
+ }
596
+ },
597
+ "usageSnippet": "<AvatarGroup>\n <Avatar>AK</Avatar>\n <Avatar tone=\"primary\">MR</Avatar>\n <Avatar tone=\"info\">JN</Avatar>\n <Avatar tone=\"muted\">+9</Avatar>\n </AvatarGroup>"
598
+ },
599
+ {
600
+ "name": "Tabs",
601
+ "importPath": "import { Tabs } from \"@kjaniec-dev/ui\";",
602
+ "description": "React component Tabs.",
603
+ "props": [
604
+ {
605
+ "name": "value",
606
+ "type": "string",
607
+ "optional": true,
608
+ "defaultValue": null,
609
+ "description": "Controlled active value."
610
+ },
611
+ {
612
+ "name": "defaultValue",
613
+ "type": "string",
614
+ "optional": true,
615
+ "defaultValue": null,
616
+ "description": "Uncontrolled initial value."
617
+ },
618
+ {
619
+ "name": "onValueChange",
620
+ "type": "(value: string) => void",
621
+ "optional": true,
622
+ "defaultValue": null,
623
+ "description": ""
624
+ }
625
+ ],
626
+ "cva": null,
627
+ "usageSnippet": "<Tabs defaultValue=\"overview\">\n <TabsList>\n <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n <TabsTrigger value=\"activity\">Activity</TabsTrigger>\n <TabsTrigger value=\"settings\">Settings</TabsTrigger>\n </TabsList>\n <TabsContent value=\"overview\">A dashboard with key metrics and quick actions.</TabsContent>\n <TabsContent value=\"activity\">An event timeline: sign-ins, edits and comments.</TabsContent>\n <TabsContent value=\"settings\">Workspace preferences, permissions and integrations.</TabsContent>\n </Tabs>"
628
+ },
629
+ {
630
+ "name": "TabsList",
631
+ "importPath": "import { TabsList } from \"@kjaniec-dev/ui\";",
632
+ "description": "React component TabsList.",
633
+ "props": [],
634
+ "cva": null,
635
+ "usageSnippet": "<TabsList>\n <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n <TabsTrigger value=\"activity\">Activity</TabsTrigger>\n <TabsTrigger value=\"settings\">Settings</TabsTrigger>\n </TabsList>"
636
+ },
637
+ {
638
+ "name": "TabsTrigger",
639
+ "importPath": "import { TabsTrigger } from \"@kjaniec-dev/ui\";",
640
+ "description": "React component TabsTrigger.",
641
+ "props": [
642
+ {
643
+ "name": "value",
644
+ "type": "string",
645
+ "optional": false,
646
+ "defaultValue": null,
647
+ "description": ""
648
+ }
649
+ ],
650
+ "cva": null,
651
+ "usageSnippet": "<TabsTrigger value=\"overview\">Overview</TabsTrigger>"
652
+ },
653
+ {
654
+ "name": "TabsContent",
655
+ "importPath": "import { TabsContent } from \"@kjaniec-dev/ui\";",
656
+ "description": "React component TabsContent.",
657
+ "props": [
658
+ {
659
+ "name": "value",
660
+ "type": "string",
661
+ "optional": false,
662
+ "defaultValue": null,
663
+ "description": ""
664
+ }
665
+ ],
666
+ "cva": null,
667
+ "usageSnippet": "<TabsContent value=\"overview\">A dashboard with key metrics and quick actions.</TabsContent>"
668
+ },
669
+ {
670
+ "name": "Accordion",
671
+ "importPath": "import { Accordion } from \"@kjaniec-dev/ui\";",
672
+ "description": "React component Accordion.",
673
+ "props": [
674
+ {
675
+ "name": "type",
676
+ "type": "\"single\" | \"multiple\"",
677
+ "optional": true,
678
+ "defaultValue": "\"single\"",
679
+ "description": "\"single\" closes others when one opens."
680
+ },
681
+ {
682
+ "name": "defaultValue",
683
+ "type": "string[]",
684
+ "optional": true,
685
+ "defaultValue": "[]",
686
+ "description": ""
687
+ }
688
+ ],
689
+ "cva": null,
690
+ "usageSnippet": "<Accordion type=\"single\" defaultValue={[\"a\"]}>\n <AccordionItem value=\"a\"><AccordionTrigger>How does billing work?</AccordionTrigger><AccordionContent>Monthly or annually — the annual plan includes two months free.</AccordionContent></AccordionItem>\n <AccordionItem value=\"b\"><AccordionTrigger>Can I change my plan later?</AccordionTrigger><AccordionContent>Yes, at any time. The difference is prorated.</AccordionContent></AccordionItem>\n <AccordionItem value=\"c\"><AccordionTrigger>What payment methods are supported?</AccordionTrigger><AccordionContent>Visa, Mastercard and Apple Pay.</AccordionContent></AccordionItem>\n </Accordion>"
691
+ },
692
+ {
693
+ "name": "AccordionItem",
694
+ "importPath": "import { AccordionItem } from \"@kjaniec-dev/ui\";",
695
+ "description": "React component AccordionItem.",
696
+ "props": [
697
+ {
698
+ "name": "value",
699
+ "type": "string",
700
+ "optional": false,
701
+ "defaultValue": null,
702
+ "description": ""
703
+ }
704
+ ],
705
+ "cva": null,
706
+ "usageSnippet": "<AccordionItem value=\"a\"><AccordionTrigger>How does billing work?</AccordionTrigger><AccordionContent>Monthly or annually — the annual plan includes two months free.</AccordionContent></AccordionItem>"
707
+ },
708
+ {
709
+ "name": "AccordionTrigger",
710
+ "importPath": "import { AccordionTrigger } from \"@kjaniec-dev/ui\";",
711
+ "description": "React component AccordionTrigger.",
712
+ "props": [],
713
+ "cva": null,
714
+ "usageSnippet": "<AccordionTrigger>How does billing work?</AccordionTrigger>"
715
+ },
716
+ {
717
+ "name": "AccordionContent",
718
+ "importPath": "import { AccordionContent } from \"@kjaniec-dev/ui\";",
719
+ "description": "React component AccordionContent.",
720
+ "props": [],
721
+ "cva": null,
722
+ "usageSnippet": "<AccordionContent>Monthly or annually — the annual plan includes two months free.</AccordionContent>"
723
+ },
724
+ {
725
+ "name": "DropdownMenu",
726
+ "importPath": "import { DropdownMenu } from \"@kjaniec-dev/ui\";",
727
+ "description": "React component DropdownMenu.",
728
+ "props": [
729
+ {
730
+ "name": "align",
731
+ "type": "\"start\" | \"end\"",
732
+ "optional": true,
733
+ "defaultValue": "\"start\"",
734
+ "description": ""
735
+ }
736
+ ],
737
+ "cva": null,
738
+ "usageSnippet": "<DropdownMenu>\n <DropdownMenuTrigger>\n <Button variant=\"outline\">Actions</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem>Edit</DropdownMenuItem>\n <DropdownMenuItem>Duplicate</DropdownMenuItem>\n <DropdownMenuSeparator />"
739
+ },
740
+ {
741
+ "name": "DropdownMenuTrigger",
742
+ "importPath": "import { DropdownMenuTrigger } from \"@kjaniec-dev/ui\";",
743
+ "description": "React component DropdownMenuTrigger.",
744
+ "props": [],
745
+ "cva": null,
746
+ "usageSnippet": "<DropdownMenuTrigger>\n <Button variant=\"outline\">Actions</Button>\n </DropdownMenuTrigger>"
747
+ },
748
+ {
749
+ "name": "DropdownMenuContent",
750
+ "importPath": "import { DropdownMenuContent } from \"@kjaniec-dev/ui\";",
751
+ "description": "React component DropdownMenuContent.",
752
+ "props": [
753
+ {
754
+ "name": "align",
755
+ "type": "\"start\" | \"end\"",
756
+ "optional": true,
757
+ "defaultValue": "\"start\"",
758
+ "description": ""
759
+ }
760
+ ],
761
+ "cva": null,
762
+ "usageSnippet": "<DropdownMenuContent>\n <DropdownMenuItem>Edit</DropdownMenuItem>\n <DropdownMenuItem>Duplicate</DropdownMenuItem>\n <DropdownMenuSeparator />"
763
+ },
764
+ {
765
+ "name": "DropdownMenuItem",
766
+ "importPath": "import { DropdownMenuItem } from \"@kjaniec-dev/ui\";",
767
+ "description": "React component DropdownMenuItem.",
768
+ "props": [
769
+ {
770
+ "name": "danger",
771
+ "type": "boolean",
772
+ "optional": true,
773
+ "defaultValue": null,
774
+ "description": ""
775
+ },
776
+ {
777
+ "name": "icon",
778
+ "type": "React.ReactNode",
779
+ "optional": true,
780
+ "defaultValue": null,
781
+ "description": ""
782
+ }
783
+ ],
784
+ "cva": null,
785
+ "usageSnippet": "<DropdownMenuItem>Edit</DropdownMenuItem>"
786
+ },
787
+ {
788
+ "name": "DropdownMenuSeparator",
789
+ "importPath": "import { DropdownMenuSeparator } from \"@kjaniec-dev/ui\";",
790
+ "description": "React component DropdownMenuSeparator.",
791
+ "props": [],
792
+ "cva": null,
793
+ "usageSnippet": "<DropdownMenuSeparator />"
794
+ },
795
+ {
796
+ "name": "Breadcrumb",
797
+ "importPath": "import { Breadcrumb } from \"@kjaniec-dev/ui\";",
798
+ "description": "React component Breadcrumb.",
799
+ "props": [
800
+ {
801
+ "name": "current",
802
+ "type": "boolean",
803
+ "optional": true,
804
+ "defaultValue": null,
805
+ "description": "Marks the trailing current page (non-link, emphasized)."
806
+ }
807
+ ],
808
+ "cva": null,
809
+ "usageSnippet": "<Breadcrumb>\n <BreadcrumbItem href=\"#\">Workspace</BreadcrumbItem>\n <BreadcrumbSeparator />"
810
+ },
811
+ {
812
+ "name": "BreadcrumbItem",
813
+ "importPath": "import { BreadcrumbItem } from \"@kjaniec-dev/ui\";",
814
+ "description": "React component BreadcrumbItem.",
815
+ "props": [
816
+ {
817
+ "name": "current",
818
+ "type": "boolean",
819
+ "optional": true,
820
+ "defaultValue": null,
821
+ "description": "Marks the trailing current page (non-link, emphasized)."
822
+ }
823
+ ],
824
+ "cva": null,
825
+ "usageSnippet": "<BreadcrumbItem href=\"#\">Workspace</BreadcrumbItem>"
826
+ },
827
+ {
828
+ "name": "BreadcrumbSeparator",
829
+ "importPath": "import { BreadcrumbSeparator } from \"@kjaniec-dev/ui\";",
830
+ "description": "React component BreadcrumbSeparator.",
831
+ "props": [],
832
+ "cva": null,
833
+ "usageSnippet": "<BreadcrumbSeparator />"
834
+ },
835
+ {
836
+ "name": "Pagination",
837
+ "importPath": "import { Pagination } from \"@kjaniec-dev/ui\";",
838
+ "description": "React component Pagination.",
839
+ "props": [
840
+ {
841
+ "name": "page",
842
+ "type": "number",
843
+ "optional": false,
844
+ "defaultValue": null,
845
+ "description": ""
846
+ },
847
+ {
848
+ "name": "pageCount",
849
+ "type": "number",
850
+ "optional": false,
851
+ "defaultValue": null,
852
+ "description": ""
853
+ },
854
+ {
855
+ "name": "onPageChange",
856
+ "type": "(page: number) => void",
857
+ "optional": false,
858
+ "defaultValue": null,
859
+ "description": ""
860
+ },
861
+ {
862
+ "name": "siblingCount",
863
+ "type": "number",
864
+ "optional": true,
865
+ "defaultValue": null,
866
+ "description": "How many numbered buttons to show around the edges. Default 5."
867
+ },
868
+ {
869
+ "name": "className",
870
+ "type": "string",
871
+ "optional": true,
872
+ "defaultValue": null,
873
+ "description": ""
874
+ }
875
+ ],
876
+ "cva": null,
877
+ "usageSnippet": "<Pagination page={page} pageCount={9} onPageChange={setPage} />"
878
+ },
879
+ {
880
+ "name": "Table",
881
+ "importPath": "import { Table } from \"@kjaniec-dev/ui\";",
882
+ "description": "React component Table.",
883
+ "props": [
884
+ {
885
+ "name": "numeric",
886
+ "type": "boolean",
887
+ "optional": true,
888
+ "defaultValue": null,
889
+ "description": "Right-align with tabular numerals."
890
+ }
891
+ ],
892
+ "cva": null,
893
+ "usageSnippet": "<Table>\n <TableHeader>\n <TableRow>\n <TableHead>User</TableHead>\n <TableHead>Role</TableHead>\n <TableHead>Status</TableHead>\n <TableHead numeric>Projects</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\" tone=\"primary\">AK</Avatar>Anna Kowalski</div></TableCell>\n <TableCell>Administrator</TableCell>\n <TableCell><Badge variant=\"success\" dot>Active</Badge></TableCell>\n <TableCell numeric>24</TableCell>\n </TableRow>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\">MR</Avatar>Michael Rutkowski</div></TableCell>\n <TableCell>Editor</TableCell>\n <TableCell><Badge variant=\"warning\" dot>Invited</Badge></TableCell>\n <TableCell numeric>12</TableCell>\n </TableRow>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\" tone=\"info\">JN</Avatar>Julia Nowak</div></TableCell>\n <TableCell>Viewer</TableCell>\n <TableCell><Badge>Inactive</Badge></TableCell>\n <TableCell numeric>3</TableCell>\n </TableRow>\n </TableBody>\n </Table>"
894
+ },
895
+ {
896
+ "name": "TableWrap",
897
+ "importPath": "import { TableWrap } from \"@kjaniec-dev/ui\";",
898
+ "description": "Rounded, bordered wrapper around a <Table>.",
899
+ "props": [],
900
+ "cva": null,
901
+ "usageSnippet": "<TableWrap>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>User</TableHead>\n <TableHead>Role</TableHead>\n <TableHead>Status</TableHead>\n <TableHead numeric>Projects</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\" tone=\"primary\">AK</Avatar>Anna Kowalski</div></TableCell>\n <TableCell>Administrator</TableCell>\n <TableCell><Badge variant=\"success\" dot>Active</Badge></TableCell>\n <TableCell numeric>24</TableCell>\n </TableRow>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\">MR</Avatar>Michael Rutkowski</div></TableCell>\n <TableCell>Editor</TableCell>\n <TableCell><Badge variant=\"warning\" dot>Invited</Badge></TableCell>\n <TableCell numeric>12</TableCell>\n </TableRow>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\" tone=\"info\">JN</Avatar>Julia Nowak</div></TableCell>\n <TableCell>Viewer</TableCell>\n <TableCell><Badge>Inactive</Badge></TableCell>\n <TableCell numeric>3</TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </TableWrap>"
902
+ },
903
+ {
904
+ "name": "TableHeader",
905
+ "importPath": "import { TableHeader } from \"@kjaniec-dev/ui\";",
906
+ "description": "React component TableHeader.",
907
+ "props": [],
908
+ "cva": null,
909
+ "usageSnippet": "<TableHeader>\n <TableRow>\n <TableHead>User</TableHead>\n <TableHead>Role</TableHead>\n <TableHead>Status</TableHead>\n <TableHead numeric>Projects</TableHead>\n </TableRow>\n </TableHeader>"
910
+ },
911
+ {
912
+ "name": "TableBody",
913
+ "importPath": "import { TableBody } from \"@kjaniec-dev/ui\";",
914
+ "description": "React component TableBody.",
915
+ "props": [],
916
+ "cva": null,
917
+ "usageSnippet": "<TableBody>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\" tone=\"primary\">AK</Avatar>Anna Kowalski</div></TableCell>\n <TableCell>Administrator</TableCell>\n <TableCell><Badge variant=\"success\" dot>Active</Badge></TableCell>\n <TableCell numeric>24</TableCell>\n </TableRow>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\">MR</Avatar>Michael Rutkowski</div></TableCell>\n <TableCell>Editor</TableCell>\n <TableCell><Badge variant=\"warning\" dot>Invited</Badge></TableCell>\n <TableCell numeric>12</TableCell>\n </TableRow>\n <TableRow>\n <TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\" tone=\"info\">JN</Avatar>Julia Nowak</div></TableCell>\n <TableCell>Viewer</TableCell>\n <TableCell><Badge>Inactive</Badge></TableCell>\n <TableCell numeric>3</TableCell>\n </TableRow>\n </TableBody>"
918
+ },
919
+ {
920
+ "name": "TableRow",
921
+ "importPath": "import { TableRow } from \"@kjaniec-dev/ui\";",
922
+ "description": "React component TableRow.",
923
+ "props": [],
924
+ "cva": null,
925
+ "usageSnippet": "<TableRow>\n <TableHead>User</TableHead>\n <TableHead>Role</TableHead>\n <TableHead>Status</TableHead>\n <TableHead numeric>Projects</TableHead>\n </TableRow>"
926
+ },
927
+ {
928
+ "name": "TableHead",
929
+ "importPath": "import { TableHead } from \"@kjaniec-dev/ui\";",
930
+ "description": "React component TableHead.",
931
+ "props": [],
932
+ "cva": null,
933
+ "usageSnippet": "<TableHead>User</TableHead>"
934
+ },
935
+ {
936
+ "name": "TableCell",
937
+ "importPath": "import { TableCell } from \"@kjaniec-dev/ui\";",
938
+ "description": "React component TableCell.",
939
+ "props": [
940
+ {
941
+ "name": "numeric",
942
+ "type": "boolean",
943
+ "optional": true,
944
+ "defaultValue": null,
945
+ "description": "Right-align with tabular numerals."
946
+ }
947
+ ],
948
+ "cva": null,
949
+ "usageSnippet": "<TableCell><div style={{ display: \"flex\", alignItems: \"center\", gap: 10 }}><Avatar size=\"sm\" tone=\"primary\">AK</Avatar>Anna Kowalski</div></TableCell>"
950
+ },
951
+ {
952
+ "name": "Tooltip",
953
+ "importPath": "import { Tooltip } from \"@kjaniec-dev/ui\";",
954
+ "description": "CSS-only hover/focus tooltip positioned above the trigger.",
955
+ "props": [
956
+ {
957
+ "name": "content",
958
+ "type": "React.ReactNode",
959
+ "optional": false,
960
+ "defaultValue": null,
961
+ "description": ""
962
+ },
963
+ {
964
+ "name": "children",
965
+ "type": "React.ReactNode",
966
+ "optional": false,
967
+ "defaultValue": null,
968
+ "description": ""
969
+ },
970
+ {
971
+ "name": "className",
972
+ "type": "string",
973
+ "optional": true,
974
+ "defaultValue": null,
975
+ "description": ""
976
+ }
977
+ ],
978
+ "cva": null,
979
+ "usageSnippet": "<Tooltip content=\"Contextual tooltip\">\n <Button variant=\"outline\">Hover over me</Button>\n </Tooltip>"
980
+ },
981
+ {
982
+ "name": "Modal",
983
+ "importPath": "import { Modal } from \"@kjaniec-dev/ui\";",
984
+ "description": "Centered overlay dialog. Closes on backdrop click and Escape. Includes focus trap and restore.",
985
+ "props": [
986
+ {
987
+ "name": "open",
988
+ "type": "boolean",
989
+ "optional": false,
990
+ "defaultValue": null,
991
+ "description": ""
992
+ },
993
+ {
994
+ "name": "onClose",
995
+ "type": "() => void",
996
+ "optional": false,
997
+ "defaultValue": null,
998
+ "description": ""
999
+ },
1000
+ {
1001
+ "name": "children",
1002
+ "type": "React.ReactNode",
1003
+ "optional": false,
1004
+ "defaultValue": null,
1005
+ "description": ""
1006
+ },
1007
+ {
1008
+ "name": "width",
1009
+ "type": "number",
1010
+ "optional": true,
1011
+ "defaultValue": "440",
1012
+ "description": "Max width of the panel. Default 440px."
1013
+ },
1014
+ {
1015
+ "name": "className",
1016
+ "type": "string",
1017
+ "optional": true,
1018
+ "defaultValue": null,
1019
+ "description": ""
1020
+ },
1021
+ {
1022
+ "name": "showClose",
1023
+ "type": "boolean",
1024
+ "optional": true,
1025
+ "defaultValue": "true",
1026
+ "description": ""
1027
+ }
1028
+ ],
1029
+ "cva": null,
1030
+ "usageSnippet": "<Modal open={open} onClose={() => setOpen(false)}>\n <ModalTitle>Delete project “Q3 Launch”?</ModalTitle>\n <ModalDescription>This action cannot be undone. All files and activity history will be permanently deleted.</ModalDescription>\n <ModalActions>\n <Button variant=\"ghost\" onClick={() => setOpen(false)}>Cancel</Button>\n <Button variant=\"danger\" onClick={() => setOpen(false)}>Delete project</Button>\n </ModalActions>\n </Modal>"
1031
+ },
1032
+ {
1033
+ "name": "ModalTitle",
1034
+ "importPath": "import { ModalTitle } from \"@kjaniec-dev/ui\";",
1035
+ "description": "React component ModalTitle.",
1036
+ "props": [],
1037
+ "cva": null,
1038
+ "usageSnippet": "<ModalTitle>Delete project “Q3 Launch”?</ModalTitle>"
1039
+ },
1040
+ {
1041
+ "name": "ModalDescription",
1042
+ "importPath": "import { ModalDescription } from \"@kjaniec-dev/ui\";",
1043
+ "description": "React component ModalDescription.",
1044
+ "props": [],
1045
+ "cva": null,
1046
+ "usageSnippet": "<ModalDescription>This action cannot be undone. All files and activity history will be permanently deleted.</ModalDescription>"
1047
+ },
1048
+ {
1049
+ "name": "ModalActions",
1050
+ "importPath": "import { ModalActions } from \"@kjaniec-dev/ui\";",
1051
+ "description": "React component ModalActions.",
1052
+ "props": [],
1053
+ "cva": null,
1054
+ "usageSnippet": "<ModalActions>\n <Button variant=\"ghost\" onClick={() => setOpen(false)}>Cancel</Button>\n <Button variant=\"danger\" onClick={() => setOpen(false)}>Delete project</Button>\n </ModalActions>"
1055
+ },
1056
+ {
1057
+ "name": "ToastProvider",
1058
+ "importPath": "import { ToastProvider } from \"@kjaniec-dev/ui\";",
1059
+ "description": "React component ToastProvider.",
1060
+ "props": [],
1061
+ "cva": null,
1062
+ "usageSnippet": "<ToastProvider>\n <ToastDemo />"
1063
+ },
1064
+ {
1065
+ "name": "PageHeader",
1066
+ "importPath": "import { PageHeader } from \"@kjaniec-dev/ui\";",
1067
+ "description": "React component PageHeader.",
1068
+ "props": [
1069
+ {
1070
+ "name": "eyebrow",
1071
+ "type": "string",
1072
+ "optional": true,
1073
+ "defaultValue": null,
1074
+ "description": ""
1075
+ },
1076
+ {
1077
+ "name": "title",
1078
+ "type": "string",
1079
+ "optional": false,
1080
+ "defaultValue": null,
1081
+ "description": ""
1082
+ },
1083
+ {
1084
+ "name": "description",
1085
+ "type": "string",
1086
+ "optional": true,
1087
+ "defaultValue": null,
1088
+ "description": ""
1089
+ },
1090
+ {
1091
+ "name": "actions",
1092
+ "type": "React.ReactNode",
1093
+ "optional": true,
1094
+ "defaultValue": null,
1095
+ "description": ""
1096
+ }
1097
+ ],
1098
+ "cva": null,
1099
+ "usageSnippet": "<PageHeader\n eyebrow=\"Open source\"\n title=\"Projects\"\n description=\"Things I've built and shipped.\"\n actions={\n <>\n <Button size=\"sm\">View all</Button>\n <Button size=\"sm\" variant=\"ghost\">GitHub</Button>\n </>"
1100
+ }
1101
+ ]