wunderui-mcp 0.1.0 → 1.0.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/README.md CHANGED
@@ -42,6 +42,10 @@ claude mcp add wunderui -- npx -y wunderui-mcp
42
42
 
43
43
  **Windsurf, Cline, Codex, VS Code**: the same shape, in that editor's MCP config.
44
44
 
45
+ ## Installing WunderUI itself
46
+
47
+ The server describes the library; it does not ship it. `@wunderui/react` is not on the public npm registry: Core and Pro licence holders install it from the wunderui-core download (the `wunderui-setup` agent skill does it for you), and the server tells agents exactly that. The Free plan covers the Figma preview and the documentation at [wunderui.com](https://wunderui.com).
48
+
45
49
  ## Where the data comes from
46
50
 
47
51
  `data/design.json` and `data/DESIGN.md` are generated from the WunderUI source with every release: tokens from the stylesheet, props from the built type definitions, names and descriptions from the docs.
package/data/DESIGN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Design context for AI coding agents. Paste this into your prompt, or let your
4
4
  > agent pull it from https://wunderui.com/DESIGN.md.
5
- > Generated from the WunderUI source on 2026-10-07 · @wunderui/react@0.1.0
5
+ > Generated from the WunderUI source on 2026-10-08 · @wunderui/react@0.1.0
6
6
 
7
7
  WunderUI is a React component library and design system: 201
8
8
  documented components in 6 groups, built on Base UI
@@ -11,9 +11,13 @@ kanban, charts, an application shell and a full AI chat set.
11
11
 
12
12
  ## Install
13
13
 
14
- ```bash
15
- npm install @wunderui/react
16
- ```
14
+ Core and Pro licence holders (the wunderui-core download from the purchase). Not on the public npm registry.
15
+
16
+ Unzip the wunderui-core download, run `npm install && npm run build` in it once, then in your project: `npm pack <wunderui-core>/packages/react --pack-destination .wunderui` and `npm install ./.wunderui/<the .tgz>`. The wunderui-setup agent skill does all of it.
17
+
18
+ Do not run `npm install @wunderui/react` — the package is not published, the command fails. Free plan: the 76 free components are MIT source at https://github.com/wunder-ui/wunderui — copy components/, lib/ and styles/wunderui.css into your project (each free component in design.json has a sourceRaw URL). Core and Pro components come with a plan (https://wunderui.com/#pricing).
19
+
20
+ Then wire up the styles and import:
17
21
 
18
22
  ```css
19
23
  /* your Tailwind entry point */
@@ -649,7 +653,7 @@ on an `animate-in` the same way it works on a `transition`.
649
653
 
650
654
  ## Component inventory
651
655
 
652
- **Plans.** 76 components are **Free** (Free License: personal, non-commercial use); 125 are **Pro** and need WunderUI Core or Pro — charts, KPI cards, the data grid, the app layout and navigation, AI & agents. On the Free plan, build only with components marked Free and name the Pro component that would do the job better.
656
+ **Plans.** 76 components are **Free** (MIT, source at https://github.com/wunder-ui/wunderui); 125 are **Pro** and need WunderUI Core or Pro — charts, KPI cards, the data grid, the app layout and navigation, AI & agents. On the Free plan, build only with components marked Free and name the Pro component that would do the job better.
653
657
 
654
658
  ### Primitives
655
659
 
package/data/design.json CHANGED
@@ -4,9 +4,12 @@
4
4
  "version": "0.1.0",
5
5
  "description": "WunderUI — a design system and component library for React.",
6
6
  "site": "https://wunderui.com",
7
- "generatedAt": "2026-10-07",
7
+ "generatedAt": "2026-10-08",
8
8
  "install": {
9
- "npm": "npm install @wunderui/react",
9
+ "available": "Core and Pro licence holders (the wunderui-core download from the purchase). Not on the public npm registry.",
10
+ "package": "Unzip the wunderui-core download, run `npm install && npm run build` in it once, then in your project: `npm pack <wunderui-core>/packages/react --pack-destination .wunderui` and `npm install ./.wunderui/<the .tgz>`. The wunderui-setup agent skill does all of it.",
11
+ "doNot": "Do not run `npm install @wunderui/react` — the package is not published, the command fails.",
12
+ "free": "Free plan: the 76 free components are MIT source at https://github.com/wunder-ui/wunderui — copy components/, lib/ and styles/wunderui.css into your project (each free component in design.json has a sourceRaw URL). Core and Pro components come with a plan (https://wunderui.com/#pricing).",
10
13
  "import": "import { Button, Card } from \"@wunderui/react\"",
11
14
  "styles": "@import \"@wunderui/react/styles.css\";"
12
15
  },
@@ -25,7 +28,7 @@
25
28
  "pro": 125
26
29
  },
27
30
  "plans": {
28
- "free": "Free License (personal, non-commercial use): only components with tier \"free\". Commercial use and every \"pro\" component need WunderUI Core or Pro.",
31
+ "free": "WunderUI Free: the components with tier \"free\" are open source under the MIT License (https://github.com/wunder-ui/wunderui) — any project, commercial included. Every \"pro\" component needs WunderUI Core or Pro.",
29
32
  "core": "WunderUI Core: every component, commercial license.",
30
33
  "pro": "WunderUI Pro: everything in Core plus UI block and template source and all agent skills."
31
34
  },
@@ -462,7 +465,9 @@
462
465
  ],
463
466
  "props": "function Accordion({ className, ...props }: Accordion.Root.Props): React.JSX.Element;",
464
467
  "example": "<Accordion className=\"gap-0\">\n <AccordionItem value=\"profile\" variant=\"divider\">\n <AccordionTrigger icon={<User />} iconVariant=\"plain\" indicatorVariant=\"plus\">\n Profile Settings\n </AccordionTrigger>\n <AccordionContent>Name, avatar and the handle other people see.</AccordionContent>\n </AccordionItem>\n</Accordion>",
465
- "docs": "https://wunderui.com/components/accordion"
468
+ "docs": "https://wunderui.com/components/accordion",
469
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/accordion.tsx",
470
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/accordion.tsx"
466
471
  },
467
472
  {
468
473
  "slug": "avatar",
@@ -483,7 +488,9 @@
483
488
  ],
484
489
  "props": "function Avatar({ className, size, shape, variant, color, ...props }: Avatar.Root.Props & {\n /** Figma Avatar sizes: sm = 24px (2xs), xs = 28px, default = 36px (small), lg = 40px (medium), xl = 44px (large) */\n size?: \"sm\" | \"xs\" | \"default\" | \"lg\" | \"xl\";\n shape?: \"circle\" | \"square\";\n variant?: \"plain\" | \"primary\";\n /** Soft tint for initials avatars; ignored when an image renders. */\n color?: AvatarColor;\n}): React.JSX.Element;\ntype AvatarColor = \"indigo\" | \"blue\" | \"purple\" | \"pink\" | \"red\" | \"orange\" | \"yellow\" | \"green\" | \"alternative\" | \"grey\";",
485
490
  "example": "<Avatar size=\"lg\">\n <AvatarImage src=\"/avatars/03.png\" alt=\"Alina Lorenz\" />\n <AvatarFallback>AL</AvatarFallback>\n</Avatar>\n<Avatar size=\"lg\" variant=\"primary\">\n <AvatarFallback>PM</AvatarFallback>\n</Avatar>",
486
- "docs": "https://wunderui.com/components/avatar"
491
+ "docs": "https://wunderui.com/components/avatar",
492
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/avatar.tsx",
493
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/avatar.tsx"
487
494
  },
488
495
  {
489
496
  "slug": "avatar-group",
@@ -498,7 +505,9 @@
498
505
  ],
499
506
  "props": "function AvatarGroup({ className, children, ...props }: React.ComponentProps<\"div\">): React.JSX.Element;",
500
507
  "example": "<AvatarGroup>\n <Avatar><AvatarImage src=\"/avatars/01.png\" alt=\"Alina\" /><AvatarFallback>AL</AvatarFallback></Avatar>\n <Avatar><AvatarImage src=\"/avatars/08.png\" alt=\"Mira\" /><AvatarFallback>MC</AvatarFallback></Avatar>\n <AvatarGroupCount>+3</AvatarGroupCount>\n</AvatarGroup>",
501
- "docs": "https://wunderui.com/components/avatar-group"
508
+ "docs": "https://wunderui.com/components/avatar-group",
509
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/avatar.tsx",
510
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/avatar.tsx"
502
511
  },
503
512
  {
504
513
  "slug": "badge",
@@ -515,7 +524,9 @@
515
524
  ],
516
525
  "props": "function Badge({ className, shape, color, badgeStyle, style, render, ...props }: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants> & {\n color?: BadgeColor;\n badgeStyle?: BadgeStyle;\n}): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;\ntype BadgeColor = keyof typeof BADGE_COLORS;\ntype BadgeStyle = \"plain\" | \"light\" | \"light_border\" | \"border_color\" | \"border_grey\" | \"ghost\";",
517
526
  "example": "<Badge color=\"green\" badgeStyle=\"light\">Active</Badge>",
518
- "docs": "https://wunderui.com/components/badge"
527
+ "docs": "https://wunderui.com/components/badge",
528
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/badge.tsx",
529
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/badge.tsx"
519
530
  },
520
531
  {
521
532
  "slug": "breadcrumb",
@@ -534,7 +545,9 @@
534
545
  ],
535
546
  "props": "function Breadcrumb({ variant, ...props }: React.ComponentProps<\"nav\"> & {\n variant?: BreadcrumbVariant;\n}): React.JSX.Element;\ntype BreadcrumbVariant = \"plain\" | \"border\" | \"underline\";",
536
547
  "example": "import { Home } from \"lucide-react\"\n\n<Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\"><Home /></BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/components\">Components</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n</Breadcrumb>",
537
- "docs": "https://wunderui.com/components/breadcrumb"
548
+ "docs": "https://wunderui.com/components/breadcrumb",
549
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/breadcrumb.tsx",
550
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/breadcrumb.tsx"
538
551
  },
539
552
  {
540
553
  "slug": "button",
@@ -550,7 +563,9 @@
550
563
  ],
551
564
  "props": "function Button({ className, variant, shape, size, ...props }: Button.Props & VariantProps<typeof buttonVariants>): React.JSX.Element;",
552
565
  "example": "import { Button } from \"@wunderui/react\"\nimport { Plus } from \"lucide-react\"\n\n// Solid, WCAG AA-safe blue button — the default call to action\n<Button variant=\"primary\" size=\"md\">\n <Plus /> Add item\n</Button>",
553
- "docs": "https://wunderui.com/components/button"
566
+ "docs": "https://wunderui.com/components/button",
567
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/button.tsx",
568
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/button.tsx"
554
569
  },
555
570
  {
556
571
  "slug": "icon-button",
@@ -565,7 +580,9 @@
565
580
  ],
566
581
  "props": "function IconButton({ className, variant, shape, size, ...props }: Button.Props & VariantProps<typeof iconButtonVariants>): React.JSX.Element;",
567
582
  "example": "<IconButton variant=\"primary\" shape=\"circle\">\n <Plus />\n</IconButton>",
568
- "docs": "https://wunderui.com/components/icon-button"
583
+ "docs": "https://wunderui.com/components/icon-button",
584
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/icon-button.tsx",
585
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/icon-button.tsx"
569
586
  },
570
587
  {
571
588
  "slug": "button-group",
@@ -579,7 +596,9 @@
579
596
  ],
580
597
  "props": "function ButtonGroup({ shape, className, ...props }: React.ComponentProps<\"div\"> & {\n shape?: ButtonGroupShape;\n}): React.JSX.Element;\ntype ButtonGroupShape = \"rounded\" | \"pill\";",
581
598
  "example": "<ButtonGroup>\n <Button variant=\"plain\">Day</Button>\n <Button variant=\"plain\">Week</Button>\n <Button variant=\"plain\">Month</Button>\n</ButtonGroup>",
582
- "docs": "https://wunderui.com/components/button-group"
599
+ "docs": "https://wunderui.com/components/button-group",
600
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/button-group.tsx",
601
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/button-group.tsx"
583
602
  },
584
603
  {
585
604
  "slug": "card",
@@ -601,7 +620,9 @@
601
620
  ],
602
621
  "props": "function Card({ className, size, variant, ...props }: React.ComponentProps<\"div\"> & {\n size?: \"default\" | \"sm\";\n variant?: CardVariant;\n}): React.JSX.Element;\ntype CardVariant = keyof typeof CARD_VARIANT;",
603
622
  "example": "<Card>\n <CardHeader>\n <CardTitle>Card title</CardTitle>\n <CardDescription>Supporting text.</CardDescription>\n </CardHeader>\n</Card>",
604
- "docs": "https://wunderui.com/components/card"
623
+ "docs": "https://wunderui.com/components/card",
624
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/card.tsx",
625
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/card.tsx"
605
626
  },
606
627
  {
607
628
  "slug": "checkbox",
@@ -618,7 +639,9 @@
618
639
  ],
619
640
  "props": "function Checkbox({ className, ...props }: Checkbox.Root.Props): React.JSX.Element;",
620
641
  "example": "<Checkbox aria-label=\"Example checkbox\" defaultChecked onCheckedChange={setValue} />",
621
- "docs": "https://wunderui.com/components/checkbox"
642
+ "docs": "https://wunderui.com/components/checkbox",
643
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/checkbox.tsx",
644
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/checkbox.tsx"
622
645
  },
623
646
  {
624
647
  "slug": "switch",
@@ -633,7 +656,9 @@
633
656
  ],
634
657
  "props": "function Switch({ className, size, ...props }: Switch.Root.Props & {\n size?: \"sm\" | \"default\";\n}): React.JSX.Element;",
635
658
  "example": "<Switch aria-label=\"Example switch\" defaultChecked onCheckedChange={setValue} />",
636
- "docs": "https://wunderui.com/components/switch"
659
+ "docs": "https://wunderui.com/components/switch",
660
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/switch.tsx",
661
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/switch.tsx"
637
662
  },
638
663
  {
639
664
  "slug": "radio-group",
@@ -648,7 +673,9 @@
648
673
  ],
649
674
  "props": "function RadioGroup({ className, ...props }: RadioGroup.Props): React.JSX.Element;",
650
675
  "example": "<RadioGroup defaultValue=\"pro\">\n <SelectorItemGroup>\n <SelectorItem title=\"Starter\" description=\"1 project · community support\" control={<RadioGroupItem value=\"starter\" />} />\n <SelectorItem title=\"Pro\" description=\"Unlimited projects · €12 per month\" control={<RadioGroupItem value=\"pro\" />} />\n <SelectorItem title=\"Team\" description=\"Shared libraries · €49 per month\" control={<RadioGroupItem value=\"team\" />} />\n </SelectorItemGroup>\n</RadioGroup>",
651
- "docs": "https://wunderui.com/components/radio-group"
676
+ "docs": "https://wunderui.com/components/radio-group",
677
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/radio-group.tsx",
678
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/radio-group.tsx"
652
679
  },
653
680
  {
654
681
  "slug": "input",
@@ -664,7 +691,9 @@
664
691
  ],
665
692
  "props": "function Input({ className, type, size, ref, onInvalid, onInput, onBlur, ...props }: Omit<React.ComponentProps<\"input\">, \"size\"> & VariantProps<typeof inputVariants>): React.JSX.Element;",
666
693
  "example": "<Input size=\"default\" placeholder=\"Email\" />",
667
- "docs": "https://wunderui.com/components/input"
694
+ "docs": "https://wunderui.com/components/input",
695
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/input.tsx",
696
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/input.tsx"
668
697
  },
669
698
  {
670
699
  "slug": "textarea",
@@ -680,7 +709,9 @@
680
709
  ],
681
710
  "props": "function Textarea({ className, size, showCount, maxLength, value, defaultValue, onChange, ...props }: Omit<React.ComponentProps<\"textarea\">, \"size\"> & VariantProps<typeof textareaVariants> & {\n /** Show a \"n/maxLength\" character counter in the bottom-right corner. Requires maxLength. */\n showCount?: boolean;\n}): React.JSX.Element;",
682
711
  "example": "<Textarea placeholder=\"Write a message...\" />",
683
- "docs": "https://wunderui.com/components/textarea"
712
+ "docs": "https://wunderui.com/components/textarea",
713
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/textarea.tsx",
714
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/textarea.tsx"
684
715
  },
685
716
  {
686
717
  "slug": "progress",
@@ -699,7 +730,9 @@
699
730
  ],
700
731
  "props": "function Progress({ className, children, value, ...props }: Progress.Root.Props): React.JSX.Element;",
701
732
  "example": "<Progress value={65} />",
702
- "docs": "https://wunderui.com/components/progress"
733
+ "docs": "https://wunderui.com/components/progress",
734
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/progress.tsx",
735
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/progress.tsx"
703
736
  },
704
737
  {
705
738
  "slug": "slider",
@@ -719,7 +752,9 @@
719
752
  ],
720
753
  "props": "function Slider({ className, children, value, defaultValue, \"aria-label\": ariaLabel, \"aria-labelledby\": ariaLabelledBy, ...props }: Slider.Root.Props): React.JSX.Element;",
721
754
  "example": "<Slider aria-label=\"Value\" defaultValue={40} onValueChange={setValue} />",
722
- "docs": "https://wunderui.com/components/slider"
755
+ "docs": "https://wunderui.com/components/slider",
756
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/slider.tsx",
757
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/slider.tsx"
723
758
  },
724
759
  {
725
760
  "slug": "pagination",
@@ -734,7 +769,9 @@
734
769
  ],
735
770
  "props": "function Pagination({ page, pageCount, onPageChange, className }: PaginationProps): React.JSX.Element;",
736
771
  "example": "<Pagination page={page} pageCount={12} onPageChange={setPage} />",
737
- "docs": "https://wunderui.com/components/pagination"
772
+ "docs": "https://wunderui.com/components/pagination",
773
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/pagination.tsx",
774
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/pagination.tsx"
738
775
  },
739
776
  {
740
777
  "slug": "separator",
@@ -748,7 +785,9 @@
748
785
  ],
749
786
  "props": "function Separator({ className, orientation, dashed, ...props }: Separator.Props & {\n dashed?: boolean;\n}): React.JSX.Element;",
750
787
  "example": "<Separator orientation=\"horizontal\" dashed={false} />",
751
- "docs": "https://wunderui.com/components/separator"
788
+ "docs": "https://wunderui.com/components/separator",
789
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/separator.tsx",
790
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/separator.tsx"
752
791
  },
753
792
  {
754
793
  "slug": "divider-with-label",
@@ -762,7 +801,9 @@
762
801
  ],
763
802
  "props": "function DividerWithLabel({ children, className, }: {\n children: ReactNode;\n className?: string;\n}): React.JSX.Element;",
764
803
  "example": "<DividerWithLabel>OR</DividerWithLabel>",
765
- "docs": "https://wunderui.com/components/divider-with-label"
804
+ "docs": "https://wunderui.com/components/divider-with-label",
805
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/divider-label.tsx",
806
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/divider-label.tsx"
766
807
  },
767
808
  {
768
809
  "slug": "skeleton",
@@ -776,7 +817,9 @@
776
817
  ],
777
818
  "props": "function Skeleton({ className, variant, ...props }: React.ComponentProps<\"div\"> & VariantProps<typeof skeletonVariants>): React.JSX.Element;",
778
819
  "example": "<Skeleton variant=\"title\" />\n<Skeleton variant=\"text\" />",
779
- "docs": "https://wunderui.com/components/skeleton"
820
+ "docs": "https://wunderui.com/components/skeleton",
821
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/skeleton.tsx",
822
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/skeleton.tsx"
780
823
  },
781
824
  {
782
825
  "slug": "tooltip",
@@ -792,7 +835,9 @@
792
835
  ],
793
836
  "props": "function Tooltip({ ...props }: Tooltip.Root.Props): React.JSX.Element;",
794
837
  "example": "<Tooltip>\n <TooltipTrigger render={<Button variant=\"plain\" />}>Hover</TooltipTrigger>\n <TooltipContent>Tooltip text</TooltipContent>\n</Tooltip>",
795
- "docs": "https://wunderui.com/components/tooltip"
838
+ "docs": "https://wunderui.com/components/tooltip",
839
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/tooltip.tsx",
840
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/tooltip.tsx"
796
841
  },
797
842
  {
798
843
  "slug": "dialog",
@@ -816,7 +861,9 @@
816
861
  ],
817
862
  "props": "function Dialog({ ...props }: Dialog.Root.Props): React.JSX.Element;",
818
863
  "example": "<Dialog>\n <DialogTrigger render={<Button />}>Open</DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Title</DialogTitle>\n </DialogHeader>\n </DialogContent>\n</Dialog>",
819
- "docs": "https://wunderui.com/components/dialog"
864
+ "docs": "https://wunderui.com/components/dialog",
865
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/dialog.tsx",
866
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/dialog.tsx"
820
867
  },
821
868
  {
822
869
  "slug": "alert-dialog",
@@ -840,7 +887,9 @@
840
887
  ],
841
888
  "props": "function AlertDialog({ ...props }: AlertDialog.Root.Props): React.JSX.Element;",
842
889
  "example": "<AlertDialog>\n <AlertDialogTrigger render={<Button />}>Delete account</AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Delete account?</AlertDialogTitle>\n <AlertDialogDescription>This cannot be undone.</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction variant=\"destructive\">Delete</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n</AlertDialog>",
843
- "docs": "https://wunderui.com/components/alert-dialog"
890
+ "docs": "https://wunderui.com/components/alert-dialog",
891
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/alert-dialog.tsx",
892
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/alert-dialog.tsx"
844
893
  },
845
894
  {
846
895
  "slug": "collapsible",
@@ -856,7 +905,9 @@
856
905
  ],
857
906
  "props": "function Collapsible({ ...props }: Collapsible.Root.Props): React.JSX.Element;",
858
907
  "example": "<Collapsible defaultOpen>\n <CollapsibleTrigger>Show details</CollapsibleTrigger>\n <CollapsibleContent>Lorem ipsum dolor sit amet...</CollapsibleContent>\n</Collapsible>",
859
- "docs": "https://wunderui.com/components/collapsible"
908
+ "docs": "https://wunderui.com/components/collapsible",
909
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/collapsible.tsx",
910
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/collapsible.tsx"
860
911
  },
861
912
  {
862
913
  "slug": "toggle",
@@ -871,7 +922,9 @@
871
922
  ],
872
923
  "props": "function Toggle({ className, size, ...props }: Toggle.Props & VariantProps<typeof toggleVariants>): React.JSX.Element;",
873
924
  "example": "<Toggle defaultPressed aria-label=\"Bold\">\n <Bold />\n</Toggle>",
874
- "docs": "https://wunderui.com/components/toggle"
925
+ "docs": "https://wunderui.com/components/toggle",
926
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/toggle.tsx",
927
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/toggle.tsx"
875
928
  },
876
929
  {
877
930
  "slug": "meter",
@@ -889,7 +942,9 @@
889
942
  ],
890
943
  "props": "function Meter({ className, children, value, ...props }: Meter.Root.Props): React.JSX.Element;",
891
944
  "example": "<Meter value={72}>\n <MeterLabel>Storage used</MeterLabel>\n <MeterValue />\n</Meter>",
892
- "docs": "https://wunderui.com/components/meter"
945
+ "docs": "https://wunderui.com/components/meter",
946
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/meter.tsx",
947
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/meter.tsx"
893
948
  },
894
949
  {
895
950
  "slug": "kbd",
@@ -904,7 +959,9 @@
904
959
  ],
905
960
  "props": "function Kbd({ className, ...props }: React.ComponentProps<\"kbd\">): React.JSX.Element;",
906
961
  "example": "<KbdGroup>\n <Kbd>⌘</Kbd>\n <Kbd>K</Kbd>\n</KbdGroup>",
907
- "docs": "https://wunderui.com/components/kbd"
962
+ "docs": "https://wunderui.com/components/kbd",
963
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/kbd.tsx",
964
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/kbd.tsx"
908
965
  },
909
966
  {
910
967
  "slug": "spinner",
@@ -918,7 +975,9 @@
918
975
  ],
919
976
  "props": "function Spinner({ className, ...props }: React.ComponentProps<\"svg\">): React.JSX.Element;",
920
977
  "example": "<Spinner />",
921
- "docs": "https://wunderui.com/components/spinner"
978
+ "docs": "https://wunderui.com/components/spinner",
979
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/spinner.tsx",
980
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/spinner.tsx"
922
981
  },
923
982
  {
924
983
  "slug": "toolbar",
@@ -936,7 +995,9 @@
936
995
  ],
937
996
  "props": "function Toolbar({ className, ...props }: Toolbar.Root.Props): React.JSX.Element;",
938
997
  "example": "<Toolbar>\n <ToolbarGroup>\n <ToolbarButton aria-label=\"Bold\"><Bold /></ToolbarButton>\n <ToolbarButton aria-label=\"Italic\"><Italic /></ToolbarButton>\n </ToolbarGroup>\n <ToolbarSeparator />\n</Toolbar>",
939
- "docs": "https://wunderui.com/components/toolbar"
998
+ "docs": "https://wunderui.com/components/toolbar",
999
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/toolbar.tsx",
1000
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/toolbar.tsx"
940
1001
  },
941
1002
  {
942
1003
  "slug": "dropdown-menu",
@@ -982,7 +1043,9 @@
982
1043
  ],
983
1044
  "props": "function HoverCard({ ...props }: PreviewCard.Root.Props): React.JSX.Element;",
984
1045
  "example": "<HoverCard>\n <HoverCardTrigger render={<Button />}>@handle</HoverCardTrigger>\n <HoverCardContent>Profile preview</HoverCardContent>\n</HoverCard>",
985
- "docs": "https://wunderui.com/components/hover-card"
1046
+ "docs": "https://wunderui.com/components/hover-card",
1047
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/hover-card.tsx",
1048
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/hover-card.tsx"
986
1049
  },
987
1050
  {
988
1051
  "slug": "popover",
@@ -999,7 +1062,9 @@
999
1062
  ],
1000
1063
  "props": "function Popover({ ...props }: Popover.Root.Props): React.JSX.Element;",
1001
1064
  "example": "<Popover>\n <PopoverTrigger render={<Button />}>Open</PopoverTrigger>\n <PopoverContent>Content</PopoverContent>\n</Popover>",
1002
- "docs": "https://wunderui.com/components/popover"
1065
+ "docs": "https://wunderui.com/components/popover",
1066
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/popover.tsx",
1067
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/popover.tsx"
1003
1068
  },
1004
1069
  {
1005
1070
  "slug": "table",
@@ -1038,7 +1103,9 @@
1038
1103
  ],
1039
1104
  "props": "function Tabs({ className, orientation, ...props }: Tabs.Root.Props): React.JSX.Element;",
1040
1105
  "example": "<Tabs defaultValue=\"day\">\n <TabsList>\n <TabsTrigger value=\"day\">Day</TabsTrigger>\n </TabsList>\n <TabsContent value=\"day\">...</TabsContent>\n</Tabs>",
1041
- "docs": "https://wunderui.com/components/tabs"
1106
+ "docs": "https://wunderui.com/components/tabs",
1107
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/tabs.tsx",
1108
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/tabs.tsx"
1042
1109
  },
1043
1110
  {
1044
1111
  "slug": "area-chart",
@@ -1239,7 +1306,9 @@
1239
1306
  ],
1240
1307
  "props": "function Agenda({ items, className, }: {\n items: AgendaItem[];\n className?: string;\n}): React.JSX.Element;",
1241
1308
  "example": "<Agenda items={[{ id, time, title, description, color }]} />",
1242
- "docs": "https://wunderui.com/components/agenda"
1309
+ "docs": "https://wunderui.com/components/agenda",
1310
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/agenda.tsx",
1311
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/agenda.tsx"
1243
1312
  },
1244
1313
  {
1245
1314
  "slug": "action-bar",
@@ -1253,7 +1322,9 @@
1253
1322
  ],
1254
1323
  "props": "function ActionBar({ label, children, className, }: {\n label?: ReactNode;\n children: ReactNode;\n className?: string;\n}): React.JSX.Element;",
1255
1324
  "example": "<ActionBar label=\"3 selected\">\n <Button variant=\"plain\" size=\"sm\">Archive</Button>\n</ActionBar>",
1256
- "docs": "https://wunderui.com/components/action-bar"
1325
+ "docs": "https://wunderui.com/components/action-bar",
1326
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/action-bar.tsx",
1327
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/action-bar.tsx"
1257
1328
  },
1258
1329
  {
1259
1330
  "slug": "carousel",
@@ -1267,7 +1338,9 @@
1267
1338
  ],
1268
1339
  "props": "function Carousel({ children, className, label, }: {\n children: React.ReactNode;\n className?: string;\n /** Accessible name of the scrolling region. */\n label?: string;\n}): React.JSX.Element;",
1269
1340
  "example": "<Carousel>\n {items.map((item) => <Card key={item.id}>{item.label}</Card>)}\n</Carousel>",
1270
- "docs": "https://wunderui.com/components/carousel"
1341
+ "docs": "https://wunderui.com/components/carousel",
1342
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/carousel.tsx",
1343
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/carousel.tsx"
1271
1344
  },
1272
1345
  {
1273
1346
  "slug": "data-grid",
@@ -1296,7 +1369,9 @@
1296
1369
  ],
1297
1370
  "props": "function EmptyState({ icon, title, description, action, variant, className, }: {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n /** Frame style — mirrors the Figma Empty State \"Style\" variants. */\n variant?: keyof typeof EMPTY_STATE_VARIANTS;\n className?: string;\n}): React.JSX.Element;",
1298
1371
  "example": "<EmptyState title=\"No results\" description=\"...\" action={<Button>Reset</Button>} />",
1299
- "docs": "https://wunderui.com/components/empty-state"
1372
+ "docs": "https://wunderui.com/components/empty-state",
1373
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/stat-card.tsx",
1374
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/stat-card.tsx"
1300
1375
  },
1301
1376
  {
1302
1377
  "slug": "file-tree",
@@ -1311,7 +1386,9 @@
1311
1386
  ],
1312
1387
  "props": "function FileTree({ data, className, }: {\n data: FileTreeNode[];\n className?: string;\n}): React.JSX.Element;",
1313
1388
  "example": "<FileTree data={[{ id, name, children: [...] }]} />",
1314
- "docs": "https://wunderui.com/components/file-tree"
1389
+ "docs": "https://wunderui.com/components/file-tree",
1390
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/file-tree.tsx",
1391
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/file-tree.tsx"
1315
1392
  },
1316
1393
  {
1317
1394
  "slug": "floating-toc",
@@ -1325,7 +1402,9 @@
1325
1402
  ],
1326
1403
  "props": "function FloatingToc({ items, activeId, onSelect, scrollContainer, className, }: {\n items: TocItem[];\n activeId?: string;\n onSelect?: (id: string) => void;\n /** The element that scrolls the sections, if it is not the page. */\n scrollContainer?: React.RefObject<HTMLElement | null>;\n className?: string;\n}): React.JSX.Element;",
1327
1404
  "example": "const articleRef = React.useRef<HTMLDivElement>(null)\n\n<div ref={articleRef} className=\"overflow-y-auto\">\n <section id=\"why\">…</section>\n <section id=\"setup\">…</section>\n</div>\n<FloatingToc\n items={[{ id: \"why\", label: \"Why tokens\" }, { id: \"setup\", label: \"Set up the theme\" }]}\n scrollContainer={articleRef}\n/>",
1328
- "docs": "https://wunderui.com/components/floating-toc"
1405
+ "docs": "https://wunderui.com/components/floating-toc",
1406
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/floating-toc.tsx",
1407
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/floating-toc.tsx"
1329
1408
  },
1330
1409
  {
1331
1410
  "slug": "holo-card",
@@ -1339,7 +1418,9 @@
1339
1418
  ],
1340
1419
  "props": "function HoloCard({ children, className, }: {\n children: React.ReactNode;\n className?: string;\n}): React.JSX.Element;",
1341
1420
  "example": "<HoloCard>\n <p>Hover to reveal the spotlight effect.</p>\n</HoloCard>",
1342
- "docs": "https://wunderui.com/components/holo-card"
1421
+ "docs": "https://wunderui.com/components/holo-card",
1422
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/holo-card.tsx",
1423
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/holo-card.tsx"
1343
1424
  },
1344
1425
  {
1345
1426
  "slug": "kanban",
@@ -1372,7 +1453,9 @@
1372
1453
  ],
1373
1454
  "props": "function ItemCard({ icon, title, description, meta, action, className, }: {\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n meta?: ReactNode;\n action?: ReactNode;\n className?: string;\n}): React.JSX.Element;",
1374
1455
  "example": "<ItemCardGroup>\n <ItemCard icon={<FileText />} title=\"...\" description=\"...\" />\n</ItemCardGroup>",
1375
- "docs": "https://wunderui.com/components/item-card"
1456
+ "docs": "https://wunderui.com/components/item-card",
1457
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/item-card.tsx",
1458
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/item-card.tsx"
1376
1459
  },
1377
1460
  {
1378
1461
  "slug": "kpi",
@@ -1446,7 +1529,9 @@
1446
1529
  ],
1447
1530
  "props": "function Timeline({ items, className, }: {\n items: TimelineItem[];\n className?: string;\n}): React.JSX.Element;",
1448
1531
  "example": "<Timeline items={[{ id, title, timestamp, color }]} />",
1449
- "docs": "https://wunderui.com/components/timeline"
1532
+ "docs": "https://wunderui.com/components/timeline",
1533
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/timeline.tsx",
1534
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/timeline.tsx"
1450
1535
  },
1451
1536
  {
1452
1537
  "slug": "widget",
@@ -1460,7 +1545,9 @@
1460
1545
  ],
1461
1546
  "props": "function Widget({ title, description, action, footer, children, className, }: {\n title?: ReactNode;\n description?: ReactNode;\n action?: ReactNode;\n footer?: ReactNode;\n children: ReactNode;\n className?: string;\n}): React.JSX.Element;",
1462
1547
  "example": "<Widget title=\"Title\" description=\"...\">\n <YourContent />\n</Widget>",
1463
- "docs": "https://wunderui.com/components/widget"
1548
+ "docs": "https://wunderui.com/components/widget",
1549
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/widget.tsx",
1550
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/widget.tsx"
1464
1551
  },
1465
1552
  {
1466
1553
  "slug": "app-layout",
@@ -1618,7 +1705,9 @@
1618
1705
  ],
1619
1706
  "props": "function NativeSelect({ items, children, ...props }: Select.Root.Props<string>): React.JSX.Element;",
1620
1707
  "example": "<NativeSelect value={value} onValueChange={setValue}>\n <NativeSelectTrigger aria-label=\"Choose an option\"><NativeSelectValue /></NativeSelectTrigger>\n <NativeSelectContent>\n <NativeSelectItem value=\"us\">United States</NativeSelectItem>\n </NativeSelectContent>\n</NativeSelect>",
1621
- "docs": "https://wunderui.com/components/native-select"
1708
+ "docs": "https://wunderui.com/components/native-select",
1709
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/native-select.tsx",
1710
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/native-select.tsx"
1622
1711
  },
1623
1712
  {
1624
1713
  "slug": "inline-select",
@@ -1636,7 +1725,9 @@
1636
1725
  ],
1637
1726
  "props": "function InlineSelect({ items, children, ...props }: Select.Root.Props<string>): React.JSX.Element;",
1638
1727
  "example": "<InlineSelect defaultValue=\"newest\">\n <InlineSelectTrigger aria-label=\"Choose an option\"><InlineSelectValue /></InlineSelectTrigger>\n <InlineSelectContent>...</InlineSelectContent>\n</InlineSelect>",
1639
- "docs": "https://wunderui.com/components/inline-select"
1728
+ "docs": "https://wunderui.com/components/inline-select",
1729
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/inline-select.tsx",
1730
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/inline-select.tsx"
1640
1731
  },
1641
1732
  {
1642
1733
  "slug": "checkbox-button-group",
@@ -1650,7 +1741,9 @@
1650
1741
  ],
1651
1742
  "props": "function CheckboxButtonGroup<Value extends string>({ className, ...props }: ToggleGroup.Props<Value>): React.JSX.Element;",
1652
1743
  "example": "<CheckboxButtonGroup value={value} onValueChange={setValue}>\n <ToggleButton aria-label=\"Bold\" value=\"bold\"><Bold /></ToggleButton>\n</CheckboxButtonGroup>",
1653
- "docs": "https://wunderui.com/components/checkbox-button-group"
1744
+ "docs": "https://wunderui.com/components/checkbox-button-group",
1745
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/toggle-button-group.tsx",
1746
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/toggle-button-group.tsx"
1654
1747
  },
1655
1748
  {
1656
1749
  "slug": "radio-button-group",
@@ -1664,7 +1757,9 @@
1664
1757
  ],
1665
1758
  "props": "function RadioButtonGroup<Value extends string>({ className, ...props }: Omit<ToggleGroup.Props<Value>, \"multiple\">): React.JSX.Element;",
1666
1759
  "example": "<RadioButtonGroup value={value} onValueChange={setValue}>\n <ToggleButton aria-label=\"Align left\" value=\"left\"><AlignLeft /></ToggleButton>\n</RadioButtonGroup>",
1667
- "docs": "https://wunderui.com/components/radio-button-group"
1760
+ "docs": "https://wunderui.com/components/radio-button-group",
1761
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/toggle-button-group.tsx",
1762
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/toggle-button-group.tsx"
1668
1763
  },
1669
1764
  {
1670
1765
  "slug": "number-stepper",
@@ -1678,7 +1773,9 @@
1678
1773
  ],
1679
1774
  "props": "function NumberStepper({ value, onValueChange, min, max, step, format, className, ...props }: Omit<React.ComponentProps<\"div\">, \"children\"> & {\n value: number;\n onValueChange: (value: number) => void;\n min?: number;\n max?: number;\n step?: number;\n /** Formats the displayed value, e.g. `(n) => `${n}%`` */\n format?: (value: number) => React.ReactNode;\n className?: string;\n}): React.JSX.Element;",
1680
1775
  "example": "<NumberStepper value={value} onValueChange={setValue} min={0} max={10} />",
1681
- "docs": "https://wunderui.com/components/number-stepper"
1776
+ "docs": "https://wunderui.com/components/number-stepper",
1777
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/number-stepper.tsx",
1778
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/number-stepper.tsx"
1682
1779
  },
1683
1780
  {
1684
1781
  "slug": "drop-zone",
@@ -1692,7 +1789,9 @@
1692
1789
  ],
1693
1790
  "props": "function DropZone({ onFiles, accept, hint, className, }: {\n onFiles?: (files: FileList) => void;\n accept?: string;\n /** Line under the prompt. Defaults to the accepted types, or \"Any file type\". State your size limit here. */\n hint?: React.ReactNode;\n className?: string;\n}): React.JSX.Element;",
1694
1791
  "example": "<DropZone onFiles={(files) => upload(files)} accept=\"image/*\" />",
1695
- "docs": "https://wunderui.com/components/drop-zone"
1792
+ "docs": "https://wunderui.com/components/drop-zone",
1793
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/drop-zone.tsx",
1794
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/drop-zone.tsx"
1696
1795
  },
1697
1796
  {
1698
1797
  "slug": "rich-text-editor",
@@ -1708,7 +1807,9 @@
1708
1807
  ],
1709
1808
  "props": "function RichTextEditor(props: RichTextEditorProps): React.JSX.Element;",
1710
1809
  "example": "<RichTextEditor content={html} onChange={setHtml} placeholder=\"Write something...\" />",
1711
- "docs": "https://wunderui.com/components/rich-text-editor"
1810
+ "docs": "https://wunderui.com/components/rich-text-editor",
1811
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/rich-text-editor.tsx",
1812
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/rich-text-editor.tsx"
1712
1813
  },
1713
1814
  {
1714
1815
  "slug": "color-picker",
@@ -1724,7 +1825,9 @@
1724
1825
  ],
1725
1826
  "props": "function ColorPicker({ variant, value, defaultValue, onValueChange, alpha, defaultAlpha, onAlphaChange, showAlpha, format, defaultFormat, onFormatChange, swatches, defaultSwatches, onSwatchesChange, title, onClose, className, }: ColorPickerProps): React.JSX.Element;",
1726
1827
  "example": "<ColorPicker value={hex} onValueChange={setHex} />",
1727
- "docs": "https://wunderui.com/components/color-picker"
1828
+ "docs": "https://wunderui.com/components/color-picker",
1829
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/color-picker.tsx",
1830
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/color-picker.tsx"
1728
1831
  },
1729
1832
  {
1730
1833
  "slug": "cell-color-picker",
@@ -1738,7 +1841,9 @@
1738
1841
  ],
1739
1842
  "props": "function CellColorPicker({ value, onValueChange, }: {\n value: string;\n onValueChange: (value: string) => void;\n}): React.JSX.Element;",
1740
1843
  "example": "<CellColorPicker value={color} onValueChange={setColor} />",
1741
- "docs": "https://wunderui.com/components/cell-color-picker"
1844
+ "docs": "https://wunderui.com/components/cell-color-picker",
1845
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/table-cells.tsx",
1846
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/table-cells.tsx"
1742
1847
  },
1743
1848
  {
1744
1849
  "slug": "cell-slider",
@@ -1752,7 +1857,9 @@
1752
1857
  ],
1753
1858
  "props": "function CellSlider({ value, max }: {\n value: number;\n max?: number;\n}): React.JSX.Element;",
1754
1859
  "example": "<CellSlider value={68} max={100} />",
1755
- "docs": "https://wunderui.com/components/cell-slider"
1860
+ "docs": "https://wunderui.com/components/cell-slider",
1861
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/table-cells.tsx",
1862
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/table-cells.tsx"
1756
1863
  },
1757
1864
  {
1758
1865
  "slug": "cell-select",
@@ -1766,7 +1873,9 @@
1766
1873
  ],
1767
1874
  "props": "function CellSelect({ value, onValueChange, options, \"aria-label\": ariaLabel, }: {\n value: string;\n onValueChange: (value: string) => void;\n options: string[];\n /** Name for screen readers — a combobox is not named by its current value. */\n \"aria-label\"?: string;\n}): React.JSX.Element;",
1768
1875
  "example": "<CellSelect value={value} onValueChange={setValue} options={[\"Active\", \"Paused\"]} />",
1769
- "docs": "https://wunderui.com/components/cell-select"
1876
+ "docs": "https://wunderui.com/components/cell-select",
1877
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/table-cells.tsx",
1878
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/table-cells.tsx"
1770
1879
  },
1771
1880
  {
1772
1881
  "slug": "cell-switch",
@@ -1780,7 +1889,9 @@
1780
1889
  ],
1781
1890
  "props": "function CellSwitch({ checked, onCheckedChange, \"aria-label\": ariaLabel, }: {\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n /** Name for screen readers — a cell has no visible label of its own. */\n \"aria-label\"?: string;\n}): React.JSX.Element;",
1782
1891
  "example": "<CellSwitch aria-label=\"Example switch\" checked={checked} onCheckedChange={setChecked} />",
1783
- "docs": "https://wunderui.com/components/cell-switch"
1892
+ "docs": "https://wunderui.com/components/cell-switch",
1893
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/table-cells.tsx",
1894
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/table-cells.tsx"
1784
1895
  },
1785
1896
  {
1786
1897
  "slug": "selector-item",
@@ -1795,7 +1906,9 @@
1795
1906
  ],
1796
1907
  "props": "function SelectorItem({ leading, title, description, control, className, }: {\n leading?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n control: ReactNode;\n className?: string;\n}): React.JSX.Element;",
1797
1908
  "example": "<SelectorItem\n leading={<CreditCard />}\n title=\"Mastercard\"\n description=\"Ending in 4242 · expires 08/28\"\n control={<RadioGroupItem value=\"mastercard\" />}\n/>",
1798
- "docs": "https://wunderui.com/components/selector-item"
1909
+ "docs": "https://wunderui.com/components/selector-item",
1910
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/selector-item.tsx",
1911
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/selector-item.tsx"
1799
1912
  },
1800
1913
  {
1801
1914
  "slug": "label",
@@ -1809,7 +1922,9 @@
1809
1922
  ],
1810
1923
  "props": "function Label({ className, ...props }: React.ComponentProps<\"label\">): React.JSX.Element;",
1811
1924
  "example": "<Label htmlFor=\"email\">Email</Label>",
1812
- "docs": "https://wunderui.com/components/label"
1925
+ "docs": "https://wunderui.com/components/label",
1926
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/label.tsx",
1927
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/label.tsx"
1813
1928
  },
1814
1929
  {
1815
1930
  "slug": "field",
@@ -1829,7 +1944,9 @@
1829
1944
  ],
1830
1945
  "props": "function Field({ className, ...props }: Field.Root.Props): React.JSX.Element;",
1831
1946
  "example": "<Field>\n <FieldLabel>Email</FieldLabel>\n <FieldControl render={<Input type=\"email\" />} />\n <FieldDescription>We&apos;ll never share your email.</FieldDescription>\n</Field>",
1832
- "docs": "https://wunderui.com/components/field"
1947
+ "docs": "https://wunderui.com/components/field",
1948
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/field.tsx",
1949
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/field.tsx"
1833
1950
  },
1834
1951
  {
1835
1952
  "slug": "fieldset",
@@ -1844,7 +1961,9 @@
1844
1961
  ],
1845
1962
  "props": "function Fieldset({ className, ...props }: Fieldset.Root.Props): React.JSX.Element;",
1846
1963
  "example": "<Fieldset>\n <FieldsetLegend>Shipping address</FieldsetLegend>\n <Field>\n <FieldLabel>Street</FieldLabel>\n <FieldControl render={<Input />} />\n </Field>\n</Fieldset>",
1847
- "docs": "https://wunderui.com/components/fieldset"
1964
+ "docs": "https://wunderui.com/components/fieldset",
1965
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/fieldset.tsx",
1966
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/fieldset.tsx"
1848
1967
  },
1849
1968
  {
1850
1969
  "slug": "form",
@@ -1859,7 +1978,9 @@
1859
1978
  ],
1860
1979
  "props": "function Form({ className, ...props }: Form.Props): React.JSX.Element;",
1861
1980
  "example": "<Form onSubmit={handleSubmit}>\n <Field>\n <FieldLabel>Name</FieldLabel>\n <FieldControl render={<Input />} />\n </Field>\n <Button type=\"submit\">Submit</Button>\n</Form>",
1862
- "docs": "https://wunderui.com/components/form"
1981
+ "docs": "https://wunderui.com/components/form",
1982
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/form.tsx",
1983
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/form.tsx"
1863
1984
  },
1864
1985
  {
1865
1986
  "slug": "input-group",
@@ -1874,7 +1995,9 @@
1874
1995
  ],
1875
1996
  "props": "function InputGroup({ className, ...props }: React.ComponentProps<\"div\">): React.JSX.Element;",
1876
1997
  "example": "<InputGroup>\n <InputGroupAddon><Mail /></InputGroupAddon>\n <input placeholder=\"you@example.com\" />\n</InputGroup>",
1877
- "docs": "https://wunderui.com/components/input-group"
1998
+ "docs": "https://wunderui.com/components/input-group",
1999
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/input-group.tsx",
2000
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/input-group.tsx"
1878
2001
  },
1879
2002
  {
1880
2003
  "slug": "number-field",
@@ -1892,7 +2015,9 @@
1892
2015
  ],
1893
2016
  "props": "function NumberField({ ...props }: NumberField.Root.Props): React.JSX.Element;",
1894
2017
  "example": "<NumberField defaultValue={3} min={0} max={10}>\n <NumberFieldGroup>\n <NumberFieldDecrement />\n <NumberFieldInput />\n <NumberFieldIncrement />\n </NumberFieldGroup>\n</NumberField>",
1895
- "docs": "https://wunderui.com/components/number-field"
2018
+ "docs": "https://wunderui.com/components/number-field",
2019
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/number-field.tsx",
2020
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/number-field.tsx"
1896
2021
  },
1897
2022
  {
1898
2023
  "slug": "otp-field",
@@ -1907,7 +2032,9 @@
1907
2032
  ],
1908
2033
  "props": "function OtpField({ className, ...props }: OTPField.Root.Props): React.JSX.Element;",
1909
2034
  "example": "<OtpField length={4}>\n <OtpFieldInput />\n <OtpFieldInput />\n <OtpFieldInput />\n <OtpFieldInput />\n</OtpField>",
1910
- "docs": "https://wunderui.com/components/otp-field"
2035
+ "docs": "https://wunderui.com/components/otp-field",
2036
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/otp-field.tsx",
2037
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/otp-field.tsx"
1911
2038
  },
1912
2039
  {
1913
2040
  "slug": "combobox",
@@ -1931,7 +2058,9 @@
1931
2058
  ],
1932
2059
  "props": "function Combobox(props: Combobox.Root.Props<any, any>): React.JSX.Element;",
1933
2060
  "example": "<Combobox items={frameworks} value={value} onValueChange={setValue}>\n <ComboboxInputGroup>\n <ComboboxInput placeholder=\"Search...\" />\n <ComboboxTrigger />\n </ComboboxInputGroup>\n <ComboboxPopup>\n <ComboboxEmpty>No results.</ComboboxEmpty>\n <ComboboxList>\n {(item) => <ComboboxItem key={item} value={item}>{item}</ComboboxItem>}\n </ComboboxList>\n </ComboboxPopup>\n</Combobox>",
1934
- "docs": "https://wunderui.com/components/combobox"
2061
+ "docs": "https://wunderui.com/components/combobox",
2062
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/combobox.tsx",
2063
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/combobox.tsx"
1935
2064
  },
1936
2065
  {
1937
2066
  "slug": "autocomplete",
@@ -1952,7 +2081,9 @@
1952
2081
  ],
1953
2082
  "props": "function Autocomplete(props: Autocomplete.Root.Props<any>): React.JSX.Element;",
1954
2083
  "example": "<Autocomplete items={fruits}>\n <AutocompleteInputGroup>\n <AutocompleteInput placeholder=\"Type a fruit...\" />\n </AutocompleteInputGroup>\n <AutocompletePopup>\n <AutocompleteEmpty>No matches.</AutocompleteEmpty>\n <AutocompleteList>\n {(item) => <AutocompleteItem key={item}>{item}</AutocompleteItem>}\n </AutocompleteList>\n </AutocompletePopup>\n</Autocomplete>",
1955
- "docs": "https://wunderui.com/components/autocomplete"
2084
+ "docs": "https://wunderui.com/components/autocomplete",
2085
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/autocomplete.tsx",
2086
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/autocomplete.tsx"
1956
2087
  },
1957
2088
  {
1958
2089
  "slug": "calendar",
@@ -1967,7 +2098,9 @@
1967
2098
  ],
1968
2099
  "props": "function Calendar({ mode, selected, onSelect, month, defaultMonth, onMonthChange, className }: CalendarProps): React.JSX.Element;",
1969
2100
  "example": "<Calendar mode=\"single\" selected={date} onSelect={setDate} />",
1970
- "docs": "https://wunderui.com/components/calendar"
2101
+ "docs": "https://wunderui.com/components/calendar",
2102
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/calendar.tsx",
2103
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/calendar.tsx"
1971
2104
  },
1972
2105
  {
1973
2106
  "slug": "date-picker",
@@ -1982,7 +2115,9 @@
1982
2115
  ],
1983
2116
  "props": "function DatePicker(props: DatePickerProps): React.JSX.Element;",
1984
2117
  "example": "<DatePicker value={date} onValueChange={setDate} placeholder=\"Pick a date\" />",
1985
- "docs": "https://wunderui.com/components/date-picker"
2118
+ "docs": "https://wunderui.com/components/date-picker",
2119
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/date-picker.tsx",
2120
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/date-picker.tsx"
1986
2121
  },
1987
2122
  {
1988
2123
  "slug": "chat-message",
@@ -2652,7 +2787,9 @@
2652
2787
  ],
2653
2788
  "props": "function Alert({ variant, size, icon, onClose, className, children, ...props }: React.ComponentProps<\"div\"> & {\n variant?: AlertVariant;\n size?: AlertSize;\n /** Replaces the leading icon (default: a check circle, a warning triangle for negative and warning). `null` hides it. */\n icon?: React.ReactNode;\n onClose?: () => void;\n}): React.JSX.Element;\ntype AlertVariant = \"plain\" | \"positive\" | \"primary\" | \"negative\" | \"warning\";\ntype AlertSize = \"small\" | \"large\";",
2654
2789
  "example": "<Alert variant=\"positive\">\n <AlertTitle>Positive</AlertTitle>\n <AlertDescription>Text for notifications here.</AlertDescription>\n</Alert>",
2655
- "docs": "https://wunderui.com/components/alert"
2790
+ "docs": "https://wunderui.com/components/alert",
2791
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/alert.tsx",
2792
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/alert.tsx"
2656
2793
  },
2657
2794
  {
2658
2795
  "slug": "toast",
@@ -2668,7 +2805,9 @@
2668
2805
  ],
2669
2806
  "props": "function ToastProvider({ children, timeout, ...props }: Toast.Provider.Props): React.JSX.Element;",
2670
2807
  "example": "import { Toaster, useToast } from \"@wunderui/react\"\n\n// wrap your app once\n<Toaster>{children}</Toaster>\n\n// then anywhere inside it\nconst { add } = useToast()\nadd({ type: \"success\", title: \"Successfully saved\", description: \"Your changes have been saved.\" })",
2671
- "docs": "https://wunderui.com/components/toast"
2808
+ "docs": "https://wunderui.com/components/toast",
2809
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/toast.tsx",
2810
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/toast.tsx"
2672
2811
  },
2673
2812
  {
2674
2813
  "slug": "pull-to-refresh",
@@ -2682,7 +2821,9 @@
2682
2821
  ],
2683
2822
  "props": "function PullToRefresh({ onRefresh, threshold, maxPull, children, className, }: PullToRefreshProps): React.JSX.Element;",
2684
2823
  "example": "<PullToRefresh onRefresh={async () => { await refetch() }}>\n <YourCardContent />\n</PullToRefresh>",
2685
- "docs": "https://wunderui.com/components/pull-to-refresh"
2824
+ "docs": "https://wunderui.com/components/pull-to-refresh",
2825
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/pull-to-refresh.tsx",
2826
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/pull-to-refresh.tsx"
2686
2827
  },
2687
2828
  {
2688
2829
  "slug": "rating",
@@ -2699,7 +2840,9 @@
2699
2840
  ],
2700
2841
  "props": "function Rating({ value, onValueChange, max, type, label, readOnly, className, }: {\n value: number;\n onValueChange?: (value: number) => void;\n max?: number;\n type?: RatingType;\n label?: RatingLabel;\n readOnly?: boolean;\n className?: string;\n}): React.JSX.Element;\ntype RatingType = \"stars\" | \"hearts\" | \"emojis\" | \"scale\";\ntype RatingLabel = \"none\" | \"left\" | \"right\" | \"tooltip\";",
2701
2842
  "example": "<Rating value={value} onValueChange={setValue} max={5} />",
2702
- "docs": "https://wunderui.com/components/rating"
2843
+ "docs": "https://wunderui.com/components/rating",
2844
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/rating.tsx",
2845
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/rating.tsx"
2703
2846
  },
2704
2847
  {
2705
2848
  "slug": "number-value",
@@ -2713,7 +2856,9 @@
2713
2856
  ],
2714
2857
  "props": "function NumberValue({ value, delta, trend, trendGood, className, }: {\n value: string;\n delta?: string;\n trend?: \"up\" | \"down\";\n trendGood?: boolean;\n className?: string;\n}): React.JSX.Element;",
2715
2858
  "example": "<NumberValue value=\"1,204\" delta=\"4.2%\" trend=\"up\" trendGood />",
2716
- "docs": "https://wunderui.com/components/number-value"
2859
+ "docs": "https://wunderui.com/components/number-value",
2860
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/number-value.tsx",
2861
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/number-value.tsx"
2717
2862
  },
2718
2863
  {
2719
2864
  "slug": "trend-chip",
@@ -2728,7 +2873,9 @@
2728
2873
  ],
2729
2874
  "props": "function TrendChip({ value, direction, icon, className, }: {\n value: string;\n /** Figma Trend Chip · Trend; `flat` is the old name for `neutral`. */\n direction?: \"up\" | \"down\" | \"neutral\" | \"flat\";\n /** Figma Trend Chip · Icon; the same glyph turns for `down`. */\n icon?: TrendChipIcon;\n className?: string;\n}): React.JSX.Element;\ntype TrendChipIcon = \"trending\" | \"arrow\" | \"arrow-diagonal\" | \"triangle\" | \"circle-trending\" | \"circle-diagonal\" | \"circle-arrow\";",
2730
2875
  "example": "<TrendChip value=\"12.4%\" direction=\"up\" />",
2731
- "docs": "https://wunderui.com/components/trend-chip"
2876
+ "docs": "https://wunderui.com/components/trend-chip",
2877
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/trend-chip.tsx",
2878
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/trend-chip.tsx"
2732
2879
  },
2733
2880
  {
2734
2881
  "slug": "pressable-feedback",
@@ -2742,7 +2889,9 @@
2742
2889
  ],
2743
2890
  "props": "function PressableFeedback({ children, onPress, className, asChild, }: {\n children: React.ReactNode;\n onPress?: () => void;\n className?: string;\n /** Apply the press effect to the child element instead of wrapping it. */\n asChild?: boolean;\n}): React.JSX.Element;",
2744
2891
  "example": "<PressableFeedback onPress={handlePress}>{children}</PressableFeedback>",
2745
- "docs": "https://wunderui.com/components/pressable-feedback"
2892
+ "docs": "https://wunderui.com/components/pressable-feedback",
2893
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/pressable-feedback.tsx",
2894
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/pressable-feedback.tsx"
2746
2895
  },
2747
2896
  {
2748
2897
  "slug": "emoji-reaction-button",
@@ -2756,7 +2905,9 @@
2756
2905
  ],
2757
2906
  "props": "function EmojiReactionButton({ emoji, count, active, onToggle, className, }: {\n emoji: string;\n count: number;\n active?: boolean;\n onToggle?: () => void;\n className?: string;\n}): React.JSX.Element;",
2758
2907
  "example": "<EmojiReactionButton emoji=\"🔥\" count={12} active={active} onToggle={toggle} />",
2759
- "docs": "https://wunderui.com/components/emoji-reaction-button"
2908
+ "docs": "https://wunderui.com/components/emoji-reaction-button",
2909
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/emoji-reaction-button.tsx",
2910
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/emoji-reaction-button.tsx"
2760
2911
  },
2761
2912
  {
2762
2913
  "slug": "emoji-picker",
@@ -2770,7 +2921,9 @@
2770
2921
  ],
2771
2922
  "props": "function EmojiPicker({ emojis, onSelect, className, }: {\n emojis?: string[];\n onSelect?: (emoji: string) => void;\n className?: string;\n}): React.JSX.Element;",
2772
2923
  "example": "<EmojiPicker onSelect={(emoji) => insert(emoji)} />",
2773
- "docs": "https://wunderui.com/components/emoji-picker"
2924
+ "docs": "https://wunderui.com/components/emoji-picker",
2925
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/wunderui/emoji-picker.tsx",
2926
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/wunderui/emoji-picker.tsx"
2774
2927
  },
2775
2928
  {
2776
2929
  "slug": "sheet",
@@ -2790,7 +2943,9 @@
2790
2943
  ],
2791
2944
  "props": "function Sheet({ ...props }: Dialog.Root.Props): React.JSX.Element;",
2792
2945
  "example": "<Sheet open={open} onOpenChange={setOpen}>\n <SheetTrigger render={<Button />}>Open</SheetTrigger>\n <SheetContent side=\"right\">...</SheetContent>\n</Sheet>",
2793
- "docs": "https://wunderui.com/components/sheet"
2946
+ "docs": "https://wunderui.com/components/sheet",
2947
+ "source": "https://github.com/wunder-ui/wunderui/blob/main/components/ui/sheet.tsx",
2948
+ "sourceRaw": "https://raw.githubusercontent.com/wunder-ui/wunderui/main/components/ui/sheet.tsx"
2794
2949
  },
2795
2950
  {
2796
2951
  "slug": "resizable",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wunderui-mcp",
3
- "version": "0.1.0",
3
+ "version": "1.0.2",
4
4
  "description": "MCP server that gives AI coding agents the WunderUI design system: tokens, component props, templates and starters. Works with Claude Code, Cursor, Windsurf, Cline and Codex.",
5
5
  "keywords": [
6
6
  "mcp",
package/src/index.mjs CHANGED
@@ -188,7 +188,7 @@ server.registerTool(
188
188
  inputSchema: {
189
189
  category: z.string().optional().describe(`One of: ${design.categories.join(", ")}`),
190
190
  query: z.string().optional().describe("Free text, matched against name, description and category"),
191
- plan: z.enum(["free", "pro"]).optional().describe("Only components of this plan. Free = Free License (personal use); pro needs WunderUI Core or Pro."),
191
+ plan: z.enum(["free", "pro"]).optional().describe("Only components of this plan. Free = open source under MIT (github.com/wunder-ui/wunderui); pro needs WunderUI Core or Pro."),
192
192
  },
193
193
  },
194
194
  async ({ category, query, plan }) => {
@@ -241,7 +241,9 @@ server.registerTool(
241
241
  title: component.title,
242
242
  category: component.category,
243
243
  plan: component.tier ?? "pro",
244
- planNote: (component.tier ?? "pro") === "free" ? "Free License: personal, non-commercial use." : "Needs WunderUI Core or Pro.",
244
+ planNote: (component.tier ?? "pro") === "free" ? "Free: MIT source, any project — fetch it from sourceRaw." : "Needs WunderUI Core or Pro.",
245
+ source: component.source ?? undefined,
246
+ sourceRaw: component.sourceRaw ?? undefined,
245
247
  description: component.description,
246
248
  import: `import { ${component.exports.slice(0, 4).join(", ")} } from "${design.name}"`,
247
249
  exports: component.exports,