@lfrprazeres/ui 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +46 -6
  2. package/dist/charts/chart-data-table.d.ts +30 -0
  3. package/dist/charts/chart-data-table.d.ts.map +1 -0
  4. package/dist/charts/chart-data-table.js +34 -0
  5. package/dist/charts/chart-data-table.js.map +1 -0
  6. package/dist/charts/chart-frame.d.ts +33 -0
  7. package/dist/charts/chart-frame.d.ts.map +1 -0
  8. package/dist/charts/chart-frame.js +35 -0
  9. package/dist/charts/chart-frame.js.map +1 -0
  10. package/dist/charts/chart-legend-list.d.ts +20 -0
  11. package/dist/charts/chart-legend-list.d.ts.map +1 -0
  12. package/dist/charts/chart-legend-list.js +38 -0
  13. package/dist/charts/chart-legend-list.js.map +1 -0
  14. package/dist/charts/chart-ramp.d.ts +7 -0
  15. package/dist/charts/chart-ramp.d.ts.map +1 -0
  16. package/dist/charts/chart-ramp.js +16 -0
  17. package/dist/charts/chart-ramp.js.map +1 -0
  18. package/dist/charts/donut-chart.d.ts +16 -0
  19. package/dist/charts/donut-chart.d.ts.map +1 -0
  20. package/dist/charts/donut-chart.js +78 -0
  21. package/dist/charts/donut-chart.js.map +1 -0
  22. package/dist/charts/index.d.ts +10 -0
  23. package/dist/charts/index.js +9 -0
  24. package/dist/charts/line-chart.d.ts +38 -0
  25. package/dist/charts/line-chart.d.ts.map +1 -0
  26. package/dist/charts/line-chart.js +89 -0
  27. package/dist/charts/line-chart.js.map +1 -0
  28. package/dist/charts/types.d.ts +35 -0
  29. package/dist/charts/types.d.ts.map +1 -0
  30. package/dist/charts/use-cartesian-chart.d.ts +35 -0
  31. package/dist/charts/use-cartesian-chart.d.ts.map +1 -0
  32. package/dist/charts/use-cartesian-chart.js +48 -0
  33. package/dist/charts/use-cartesian-chart.js.map +1 -0
  34. package/dist/components/chip.d.ts +7 -4
  35. package/dist/components/chip.d.ts.map +1 -1
  36. package/dist/components/chip.js +15 -11
  37. package/dist/components/chip.js.map +1 -1
  38. package/dist/components/file-dropzone.d.ts +24 -0
  39. package/dist/components/file-dropzone.d.ts.map +1 -0
  40. package/dist/components/file-dropzone.js +70 -0
  41. package/dist/components/file-dropzone.js.map +1 -0
  42. package/dist/components/index.d.ts +4 -2
  43. package/dist/components/index.js +3 -1
  44. package/dist/components/marquee.d.ts +7 -1
  45. package/dist/components/marquee.d.ts.map +1 -1
  46. package/dist/components/marquee.js +33 -9
  47. package/dist/components/marquee.js.map +1 -1
  48. package/dist/components/search-combobox-option.js +24 -0
  49. package/dist/components/search-combobox-option.js.map +1 -0
  50. package/dist/components/search-combobox.d.ts +35 -0
  51. package/dist/components/search-combobox.d.ts.map +1 -0
  52. package/dist/components/search-combobox.js +128 -0
  53. package/dist/components/search-combobox.js.map +1 -0
  54. package/dist/components/theme-toggle.d.ts +13 -2
  55. package/dist/components/theme-toggle.d.ts.map +1 -1
  56. package/dist/components/theme-toggle.js +6 -3
  57. package/dist/components/theme-toggle.js.map +1 -1
  58. package/dist/elements/avatar.d.ts +1 -1
  59. package/dist/elements/badge.d.ts +1 -1
  60. package/dist/elements/button.d.ts +1 -1
  61. package/dist/elements/chart.d.ts +47 -0
  62. package/dist/elements/chart.d.ts.map +1 -0
  63. package/dist/elements/chart.js +151 -0
  64. package/dist/elements/chart.js.map +1 -0
  65. package/dist/elements/checkbox.d.ts +1 -1
  66. package/dist/elements/dialog.d.ts +1 -1
  67. package/dist/elements/dropdown-menu.d.ts +1 -1
  68. package/dist/elements/index.d.ts +4 -1
  69. package/dist/elements/index.js +4 -1
  70. package/dist/elements/label.d.ts +1 -1
  71. package/dist/elements/popover.d.ts +1 -1
  72. package/dist/elements/select.d.ts +1 -1
  73. package/dist/elements/separator.d.ts +1 -1
  74. package/dist/elements/switch.d.ts +1 -1
  75. package/dist/elements/table.d.ts +13 -0
  76. package/dist/elements/table.d.ts.map +1 -0
  77. package/dist/elements/table.js +68 -0
  78. package/dist/elements/table.js.map +1 -0
  79. package/dist/elements/toggle-group.d.ts +12 -0
  80. package/dist/elements/toggle-group.d.ts.map +1 -0
  81. package/dist/elements/toggle-group.js +50 -0
  82. package/dist/elements/toggle-group.js.map +1 -0
  83. package/dist/elements/toggle.d.ts +12 -0
  84. package/dist/elements/toggle.d.ts.map +1 -0
  85. package/dist/elements/toggle.js +38 -0
  86. package/dist/elements/toggle.js.map +1 -0
  87. package/dist/index.d.ts +7 -2
  88. package/dist/index.js +6 -1
  89. package/dist/tokens/palettes/base.css +3 -3
  90. package/dist/tokens/palettes/cyberpunk.css +4 -4
  91. package/dist/tokens/palettes/gold.css +2 -2
  92. package/dist/tokens/palettes/minimal.css +1 -1
  93. package/package.json +11 -2
@@ -0,0 +1,68 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/elements/table.tsx
5
+ function Table({ className, ...props }) {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ className: "relative w-full overflow-x-auto",
8
+ "data-slot": "table-container",
9
+ children: /* @__PURE__ */ jsx("table", {
10
+ className: cn("w-full caption-bottom text-sm", className),
11
+ "data-slot": "table",
12
+ ...props
13
+ })
14
+ });
15
+ }
16
+ function TableHeader({ className, ...props }) {
17
+ return /* @__PURE__ */ jsx("thead", {
18
+ className: cn("[&_tr]:border-b", className),
19
+ "data-slot": "table-header",
20
+ ...props
21
+ });
22
+ }
23
+ function TableBody({ className, ...props }) {
24
+ return /* @__PURE__ */ jsx("tbody", {
25
+ className: cn("[&_tr:last-child]:border-0", className),
26
+ "data-slot": "table-body",
27
+ ...props
28
+ });
29
+ }
30
+ function TableFooter({ className, ...props }) {
31
+ return /* @__PURE__ */ jsx("tfoot", {
32
+ className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
33
+ "data-slot": "table-footer",
34
+ ...props
35
+ });
36
+ }
37
+ function TableRow({ className, ...props }) {
38
+ return /* @__PURE__ */ jsx("tr", {
39
+ className: cn("border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted", className),
40
+ "data-slot": "table-row",
41
+ ...props
42
+ });
43
+ }
44
+ function TableHead({ className, ...props }) {
45
+ return /* @__PURE__ */ jsx("th", {
46
+ className: cn("h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
47
+ "data-slot": "table-head",
48
+ ...props
49
+ });
50
+ }
51
+ function TableCell({ className, ...props }) {
52
+ return /* @__PURE__ */ jsx("td", {
53
+ className: cn("whitespace-nowrap p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
54
+ "data-slot": "table-cell",
55
+ ...props
56
+ });
57
+ }
58
+ function TableCaption({ className, ...props }) {
59
+ return /* @__PURE__ */ jsx("caption", {
60
+ className: cn("mt-4 text-muted-foreground text-sm", className),
61
+ "data-slot": "table-caption",
62
+ ...props
63
+ });
64
+ }
65
+ //#endregion
66
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
67
+
68
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../src/elements/table.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/cn\";\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div\n className=\"relative w-full overflow-x-auto\"\n data-slot=\"table-container\"\n >\n <table\n className={cn(\"w-full caption-bottom text-sm\", className)}\n data-slot=\"table\"\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n className={cn(\"[&_tr]:border-b\", className)}\n data-slot=\"table-header\"\n {...props}\n />\n );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n data-slot=\"table-body\"\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n data-slot=\"table-footer\"\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 has-aria-expanded:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n data-slot=\"table-row\"\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n className={cn(\n \"h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n data-slot=\"table-head\"\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n className={cn(\n \"whitespace-nowrap p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n data-slot=\"table-cell\"\n {...props}\n />\n );\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n className={cn(\"mt-4 text-muted-foreground text-sm\", className)}\n data-slot=\"table-caption\"\n {...props}\n />\n );\n}\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n};\n"],"mappings":";;;;AAMA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAwC;CACrE,OACE,oBAAC,OAAD;EACE,WAAU;EACV,aAAU;EAEV,UAAA,oBAAC,SAAD;GACE,WAAW,GAAG,iCAAiC,SAAS;GACxD,aAAU;GACV,GAAI;EACL,CAAA;CACE,CAAA;AAET;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAwC;CAC3E,OACE,oBAAC,SAAD;EACE,WAAW,GAAG,mBAAmB,SAAS;EAC1C,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAwC;CACzE,OACE,oBAAC,SAAD;EACE,WAAW,GAAG,8BAA8B,SAAS;EACrD,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAwC;CAC3E,OACE,oBAAC,SAAD;EACE,WAAW,GACT,2DACA,SACF;EACA,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,SAAS,EAAE,WAAW,GAAG,SAAqC;CACrE,OACE,oBAAC,MAAD;EACE,WAAW,GACT,6GACA,SACF;EACA,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAqC;CACtE,OACE,oBAAC,MAAD;EACE,WAAW,GACT,sJACA,SACF;EACA,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAqC;CACtE,OACE,oBAAC,MAAD;EACE,WAAW,GACT,0GACA,SACF;EACA,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EACpB,WACA,GAAG,SAC+B;CAClC,OACE,oBAAC,WAAD;EACE,WAAW,GAAG,sCAAsC,SAAS;EAC7D,aAAU;EACV,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,12 @@
1
+ import { toggleVariants } from "./toggle.js";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as React from "react";
4
+ import { ToggleGroup } from "radix-ui";
5
+ //#region src/elements/toggle-group.d.ts
6
+ declare function ToggleGroup$1({ className, variant, size, spacing, children, ...props }: React.ComponentProps<typeof ToggleGroup.Root> & VariantProps<typeof toggleVariants> & {
7
+ spacing?: number;
8
+ }): React.JSX.Element;
9
+ declare function ToggleGroupItem({ className, children, variant, size, ...props }: React.ComponentProps<typeof ToggleGroup.Item> & VariantProps<typeof toggleVariants>): React.JSX.Element;
10
+ //#endregion
11
+ export { ToggleGroup$1 as ToggleGroup, ToggleGroupItem };
12
+ //# sourceMappingURL=toggle-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.d.ts","names":[],"sources":["../../src/elements/toggle-group.tsx"],"mappings":";;;;;iBAkBS,gBACP,WACA,SACA,MACA,SACA,aACG,SACF,MAAM,sBAAsB,YAAqB,QAClD,oBAAoB;EAClB;IACD,MAAA,IAAA;iBAqBM,kBACP,WACA,UACA,SACA,SACG,SACF,MAAM,sBAAsB,YAAqB,QAClD,oBAAoB,kBAAe,MAAA,IAAA"}
@@ -0,0 +1,50 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { toggleVariants } from "./toggle.js";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import * as React from "react";
6
+ import { ToggleGroup } from "radix-ui";
7
+ //#region src/elements/toggle-group.tsx
8
+ const ToggleGroupContext = React.createContext({
9
+ size: "default",
10
+ spacing: 0,
11
+ variant: "default"
12
+ });
13
+ function ToggleGroup$1({ className, variant, size, spacing = 0, children, ...props }) {
14
+ return /* @__PURE__ */ jsx(ToggleGroup.Root, {
15
+ className: cn("group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs", className),
16
+ "data-size": size,
17
+ "data-slot": "toggle-group",
18
+ "data-spacing": spacing,
19
+ "data-variant": variant,
20
+ style: { "--gap": spacing },
21
+ ...props,
22
+ children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, {
23
+ value: {
24
+ size,
25
+ spacing,
26
+ variant
27
+ },
28
+ children
29
+ })
30
+ });
31
+ }
32
+ function ToggleGroupItem({ className, children, variant, size, ...props }) {
33
+ const context = React.useContext(ToggleGroupContext);
34
+ return /* @__PURE__ */ jsx(ToggleGroup.Item, {
35
+ className: cn(toggleVariants({
36
+ size: context.size || size,
37
+ variant: context.variant || variant
38
+ }), "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10", "data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:first:border-l data-[spacing=0]:first:rounded-l-md", className),
39
+ "data-size": context.size || size,
40
+ "data-slot": "toggle-group-item",
41
+ "data-spacing": context.spacing,
42
+ "data-variant": context.variant || variant,
43
+ ...props,
44
+ children
45
+ });
46
+ }
47
+ //#endregion
48
+ export { ToggleGroup$1 as ToggleGroup, ToggleGroupItem };
49
+
50
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","names":["ToggleGroup","ToggleGroupPrimitive"],"sources":["../../src/elements/toggle-group.tsx"],"sourcesContent":["\"use client\";\n\nimport type { VariantProps } from \"class-variance-authority\";\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\";\nimport * as React from \"react\";\nimport { toggleVariants } from \"@/elements/toggle\";\nimport { cn } from \"@/lib/cn\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }\n>({\n size: \"default\",\n spacing: 0,\n variant: \"default\",\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }) {\n return (\n <ToggleGroupPrimitive.Root\n className={cn(\n \"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs\",\n className\n )}\n data-size={size}\n data-slot=\"toggle-group\"\n data-spacing={spacing}\n data-variant={variant}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ size, spacing, variant }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n );\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n className={cn(\n toggleVariants({\n size: context.size || size,\n variant: context.variant || variant,\n }),\n \"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10\",\n \"data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:first:border-l data-[spacing=0]:first:rounded-l-md\",\n className\n )}\n data-size={context.size || size}\n data-slot=\"toggle-group-item\"\n data-spacing={context.spacing}\n data-variant={context.variant || variant}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n"],"mappings":";;;;;;;AAQA,MAAM,qBAAqB,MAAM,cAI/B;CACA,MAAM;CACN,SAAS;CACT,SAAS;AACX,CAAC;AAED,SAASA,cAAY,EACnB,WACA,SACA,MACA,UAAU,GACV,UACA,GAAG,SAIA;CACH,OACE,oBAACC,YAAqB,MAAtB;EACE,WAAW,GACT,6IACA,SACF;EACA,aAAW;EACX,aAAU;EACV,gBAAc;EACd,gBAAc;EACd,OAAO,EAAE,SAAS,QAAQ;EAC1B,GAAI;EAEJ,UAAA,oBAAC,mBAAmB,UAApB;GAA6B,OAAO;IAAE;IAAM;IAAS;GAAQ;GAC1D;EAC0B,CAAA;CACJ,CAAA;AAE/B;AAEA,SAAS,gBAAgB,EACvB,WACA,UACA,SACA,MACA,GAAG,SAEkC;CACrC,MAAM,UAAU,MAAM,WAAW,kBAAkB;CAEnD,OACE,oBAACA,YAAqB,MAAtB;EACE,WAAW,GACT,eAAe;GACb,MAAM,QAAQ,QAAQ;GACtB,SAAS,QAAQ,WAAW;EAC9B,CAAC,GACD,8DACA,+OACA,SACF;EACA,aAAW,QAAQ,QAAQ;EAC3B,aAAU;EACV,gBAAc,QAAQ;EACtB,gBAAc,QAAQ,WAAW;EACjC,GAAI;EAEH;CACwB,CAAA;AAE/B"}
@@ -0,0 +1,12 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import * as React from "react";
3
+ import { Toggle } from "radix-ui";
4
+ //#region src/elements/toggle.d.ts
5
+ declare const toggleVariants: (props?: ({
6
+ size?: "default" | "sm" | "lg" | null | undefined;
7
+ variant?: "default" | "outline" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ declare function Toggle$1({ className, variant, size, ...props }: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>): React.JSX.Element;
10
+ //#endregion
11
+ export { Toggle$1 as Toggle, toggleVariants };
12
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","names":[],"sources":["../../src/elements/toggle.tsx"],"mappings":";;;;cAQM,iBAAc;;;6CAoBnB;iBAEQ,WACP,WACA,SACA,SACG,SACF,MAAM,sBAAsB,OAAgB,QAC7C,oBAAoB,kBAAe,MAAA,IAAA"}
@@ -0,0 +1,38 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { cva } from "class-variance-authority";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { Toggle } from "radix-ui";
6
+ //#region src/elements/toggle.tsx
7
+ const toggleVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-none transition-[color,box-shadow] hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
8
+ defaultVariants: {
9
+ size: "default",
10
+ variant: "default"
11
+ },
12
+ variants: {
13
+ size: {
14
+ default: "h-9 min-w-9 px-2",
15
+ lg: "h-10 min-w-10 px-2.5",
16
+ sm: "h-8 min-w-8 px-1.5"
17
+ },
18
+ variant: {
19
+ default: "bg-transparent",
20
+ outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
21
+ }
22
+ }
23
+ });
24
+ function Toggle$1({ className, variant, size, ...props }) {
25
+ return /* @__PURE__ */ jsx(Toggle.Root, {
26
+ className: cn(toggleVariants({
27
+ className,
28
+ size,
29
+ variant
30
+ })),
31
+ "data-slot": "toggle",
32
+ ...props
33
+ });
34
+ }
35
+ //#endregion
36
+ export { Toggle$1 as Toggle, toggleVariants };
37
+
38
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","names":["Toggle","TogglePrimitive"],"sources":["../../src/elements/toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/cn\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-none transition-[color,box-shadow] hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n size: {\n default: \"h-9 min-w-9 px-2\",\n lg: \"h-10 min-w-10 px-2.5\",\n sm: \"h-8 min-w-8 px-1.5\",\n },\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n },\n }\n);\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n className={cn(toggleVariants({ className, size, variant }))}\n data-slot=\"toggle\"\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],"mappings":";;;;;;AAQA,MAAM,iBAAiB,IACrB,ijBACA;CACE,iBAAiB;EACf,MAAM;EACN,SAAS;CACX;CACA,UAAU;EACR,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;EACN;EACA,SAAS;GACP,SAAS;GACT,SACE;EACJ;CACF;AACF,CACF;AAEA,SAASA,SAAO,EACd,WACA,SACA,MACA,GAAG,SAEkC;CACrC,OACE,oBAACC,OAAgB,MAAjB;EACE,WAAW,GAAG,eAAe;GAAE;GAAW;GAAM;EAAQ,CAAC,CAAC;EAC1D,aAAU;EACV,GAAI;CACL,CAAA;AAEL"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { Chip, ChipProps, chipVariants } from "./components/chip.js";
2
+ import { FileDropzone, FileDropzoneProps } from "./components/file-dropzone.js";
2
3
  import { LanguageOption, LanguageSwitcher, LanguageSwitcherProps } from "./components/language-switcher.js";
3
4
  import { Marquee, MarqueeProps } from "./components/marquee.js";
4
5
  import { MessageBubble, MessageBubbleProps, MessageRole } from "./components/message-bubble.js";
6
+ import { SearchCombobox, SearchComboboxProps } from "./components/search-combobox.js";
5
7
  import { StatDirection, StatTile, StatTileProps } from "./components/stat-tile.js";
6
8
  import { StreamingDots, StreamingDotsProps } from "./components/streaming-dots.js";
7
- import { ThemeMode, ThemeToggle, ThemeToggleProps } from "./components/theme-toggle.js";
9
+ import { ThemeMode, ThemeToggle, ThemeToggleLabels, ThemeToggleProps } from "./components/theme-toggle.js";
8
10
  import "./components/index.js";
9
11
  import { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from "./elements/avatar.js";
10
12
  import { Badge, badgeVariants } from "./elements/badge.js";
@@ -21,7 +23,10 @@ import { Separator } from "./elements/separator.js";
21
23
  import { Skeleton } from "./elements/skeleton.js";
22
24
  import { Toaster, toast } from "./elements/sonner.js";
23
25
  import { Switch } from "./elements/switch.js";
26
+ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./elements/table.js";
24
27
  import { Textarea } from "./elements/textarea.js";
28
+ import { Toggle, toggleVariants } from "./elements/toggle.js";
29
+ import { ToggleGroup, ToggleGroupItem } from "./elements/toggle-group.js";
25
30
  import "./elements/index.js";
26
31
  import { cn } from "./lib/cn.js";
27
- export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, ChipProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, Label, LanguageOption, LanguageSwitcher, LanguageSwitcherProps, Marquee, MarqueeProps, MessageBubble, MessageBubbleProps, MessageRole, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, StatDirection, StatTile, StatTileProps, StreamingDots, StreamingDotsProps, Switch, Textarea, ThemeMode, ThemeToggle, ThemeToggleProps, Toaster, badgeVariants, buttonVariants, chipVariants, cn, toast };
32
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, ChipProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileDropzone, FileDropzoneProps, Input, Label, LanguageOption, LanguageSwitcher, LanguageSwitcherProps, Marquee, MarqueeProps, MessageBubble, MessageBubbleProps, MessageRole, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, SearchCombobox, SearchComboboxProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, StatDirection, StatTile, StatTileProps, StreamingDots, StreamingDotsProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, ThemeMode, ThemeToggle, ThemeToggleLabels, ThemeToggleProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, badgeVariants, buttonVariants, chipVariants, cn, toast, toggleVariants };
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import { cn } from "./lib/cn.js";
2
2
  import { Chip, chipVariants } from "./components/chip.js";
3
+ import { FileDropzone } from "./components/file-dropzone.js";
3
4
  import { Button, buttonVariants } from "./elements/button.js";
4
5
  import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./elements/dropdown-menu.js";
5
6
  import { LanguageSwitcher } from "./components/language-switcher.js";
6
7
  import { Marquee } from "./components/marquee.js";
7
8
  import { MessageBubble } from "./components/message-bubble.js";
9
+ import { SearchCombobox } from "./components/search-combobox.js";
8
10
  import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./elements/card.js";
9
11
  import { StatTile } from "./components/stat-tile.js";
10
12
  import { StreamingDots } from "./components/streaming-dots.js";
@@ -21,5 +23,8 @@ import { Separator } from "./elements/separator.js";
21
23
  import { Skeleton } from "./elements/skeleton.js";
22
24
  import { Toaster, toast } from "./elements/sonner.js";
23
25
  import { Switch } from "./elements/switch.js";
26
+ import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./elements/table.js";
24
27
  import { Textarea } from "./elements/textarea.js";
25
- export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, Label, LanguageSwitcher, Marquee, MessageBubble, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, StatTile, StreamingDots, Switch, Textarea, ThemeToggle, Toaster, badgeVariants, buttonVariants, chipVariants, cn, toast };
28
+ import { Toggle, toggleVariants } from "./elements/toggle.js";
29
+ import { ToggleGroup, ToggleGroupItem } from "./elements/toggle-group.js";
30
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileDropzone, Input, Label, LanguageSwitcher, Marquee, MessageBubble, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, SearchCombobox, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, StatTile, StreamingDots, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, ThemeToggle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, badgeVariants, buttonVariants, chipVariants, cn, toast, toggleVariants };
@@ -14,7 +14,7 @@
14
14
  --tertiary: var(--neutral-200);
15
15
  --tertiary-foreground: var(--neutral-900);
16
16
  --muted: var(--neutral-100);
17
- --muted-foreground: var(--neutral-500);
17
+ --muted-foreground: var(--neutral-600);
18
18
  --accent: var(--neutral-100);
19
19
  --accent-foreground: var(--neutral-900);
20
20
  --destructive: var(--rose-600);
@@ -34,8 +34,8 @@
34
34
  --sidebar-accent-foreground: var(--neutral-900);
35
35
  --sidebar-border: var(--neutral-200);
36
36
  --sidebar-ring: var(--neutral-400);
37
- --positive: var(--emerald-600);
38
- --negative: var(--rose-600);
37
+ --positive: var(--emerald-700);
38
+ --negative: var(--rose-700);
39
39
 
40
40
  --motion-duration-fast: var(--duration-fast);
41
41
  --motion-duration-base: var(--duration-base);
@@ -15,12 +15,12 @@
15
15
  --popover-foreground: var(--slate-950);
16
16
  --primary: var(--cyan-700);
17
17
  --primary-foreground: var(--slate-50);
18
- --secondary: var(--fuchsia-600);
18
+ --secondary: var(--fuchsia-700);
19
19
  --secondary-foreground: var(--slate-50);
20
20
  --tertiary: var(--violet-600);
21
21
  --tertiary-foreground: var(--slate-50);
22
22
  --muted: var(--slate-100);
23
- --muted-foreground: var(--slate-500);
23
+ --muted-foreground: var(--slate-600);
24
24
  --accent: var(--cyan-100);
25
25
  --accent-foreground: var(--cyan-900);
26
26
  --destructive: var(--rose-600);
@@ -40,8 +40,8 @@
40
40
  --sidebar-accent-foreground: var(--cyan-900);
41
41
  --sidebar-border: var(--slate-200);
42
42
  --sidebar-ring: var(--cyan-500);
43
- --positive: var(--emerald-600);
44
- --negative: var(--rose-600);
43
+ --positive: var(--emerald-700);
44
+ --negative: var(--rose-700);
45
45
  }
46
46
 
47
47
  .palette-cyberpunk.dark {
@@ -34,8 +34,8 @@
34
34
  --sidebar-accent-foreground: var(--gold-900);
35
35
  --sidebar-border: var(--sand-200);
36
36
  --sidebar-ring: var(--gold-500);
37
- --positive: var(--emerald-600);
38
- --negative: var(--rose-600);
37
+ --positive: var(--emerald-700);
38
+ --negative: var(--rose-700);
39
39
  }
40
40
 
41
41
  .palette-gold.dark {
@@ -60,7 +60,7 @@
60
60
  --muted-foreground: var(--neutral-400);
61
61
  --accent: var(--neutral-800);
62
62
  --accent-foreground: var(--neutral-0);
63
- --destructive: var(--neutral-0);
63
+ --destructive: var(--neutral-400);
64
64
  --border: var(--neutral-0);
65
65
  --input: var(--neutral-0);
66
66
  --ring: var(--neutral-0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lfrprazeres/ui",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "A React design system: shadcn elements, composed components, and a three-tier token contract.",
5
5
  "keywords": [
6
6
  "react",
@@ -23,8 +23,9 @@
23
23
  "type": "module",
24
24
  "exports": {
25
25
  ".": "./dist/index.js",
26
- "./elements": "./dist/elements/index.js",
26
+ "./charts": "./dist/charts/index.js",
27
27
  "./components": "./dist/components/index.js",
28
+ "./elements": "./dist/elements/index.js",
28
29
  "./styles.css": "./dist/styles.css",
29
30
  "./tokens/*": "./dist/tokens/*"
30
31
  },
@@ -63,6 +64,7 @@
63
64
  "publint": "^0.3.24",
64
65
  "react": "^19.2.8",
65
66
  "react-dom": "^19.2.8",
67
+ "recharts": "^3.8.0",
66
68
  "size-limit": "^13.0.3",
67
69
  "storybook": "^10.5.10",
68
70
  "tailwindcss": "^4.3.3",
@@ -75,8 +77,14 @@
75
77
  "peerDependencies": {
76
78
  "react": "^19.0.0",
77
79
  "react-dom": "^19.0.0",
80
+ "recharts": "^3.8.0",
78
81
  "tailwindcss": "^4.0.0"
79
82
  },
83
+ "peerDependenciesMeta": {
84
+ "recharts": {
85
+ "optional": true
86
+ }
87
+ },
80
88
  "engines": {
81
89
  "node": "^24.x",
82
90
  "pnpm": ">=11"
@@ -89,6 +97,7 @@
89
97
  "build": "tsdown",
90
98
  "build-storybook": "storybook build",
91
99
  "check": "ultracite check",
100
+ "check:charts": "node scripts/check-chart-isolation.mjs",
92
101
  "check:package": "publint && attw --pack . --profile esm-only --exclude-entrypoints styles.css",
93
102
  "check:rsc": "node scripts/check-rsc-directives.mjs",
94
103
  "check:size": "size-limit",