@cupcodev/ui 0.1.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.
package/README.md ADDED
@@ -0,0 +1,99 @@
1
+ ## @cupcode/ui
2
+
3
+ Design system Cupcode pronto para uso (componentes React + estilos + presets Tailwind).
4
+
5
+ ### Instalação
6
+
7
+ ```bash
8
+ npm install @cupcode/ui
9
+ ```
10
+
11
+ Além do pacote, instale as peer dependencies listadas em `peerDependencies` (React 18, Tailwind 3, Radix UI, etc.). Um comando típico:
12
+
13
+ ```bash
14
+ npm install react react-dom tailwindcss class-variance-authority tailwind-merge lucide-react next-themes react-router-dom \
15
+ cmdk embla-carousel-react input-otp react-day-picker react-resizable-panels recharts sonner vaul \
16
+ @radix-ui/react-accordion @radix-ui/react-alert-dialog @radix-ui/react-aspect-ratio @radix-ui/react-avatar \
17
+ @radix-ui/react-checkbox @radix-ui/react-collapsible @radix-ui/react-context-menu @radix-ui/react-dialog \
18
+ @radix-ui/react-dropdown-menu @radix-ui/react-hover-card @radix-ui/react-label @radix-ui/react-menubar \
19
+ @radix-ui/react-navigation-menu @radix-ui/react-popover @radix-ui/react-progress @radix-ui/react-radio-group \
20
+ @radix-ui/react-scroll-area @radix-ui/react-select @radix-ui/react-separator @radix-ui/react-slider \
21
+ @radix-ui/react-slot @radix-ui/react-switch @radix-ui/react-tabs @radix-ui/react-toast @radix-ui/react-toggle \
22
+ @radix-ui/react-toggle-group @radix-ui/react-tooltip tailwindcss-animate @tailwindcss/typography
23
+ ```
24
+
25
+ ### Tailwind
26
+
27
+ Use o preset disponibilizado pelo pacote:
28
+
29
+ ```js
30
+ // tailwind.config.js
31
+ module.exports = {
32
+ presets: [require("@cupcode/ui/tailwind-preset.cjs")],
33
+ content: [
34
+ "./src/**/*.{ts,tsx}", // ajuste para o seu projeto
35
+ "./node_modules/@cupcode/ui/dist/**/*.{js,jsx}", // necessário para as classes dos componentes
36
+ ],
37
+ };
38
+ ```
39
+
40
+ E importe os estilos globais (tokens + reset):
41
+
42
+ ```ts
43
+ import "@cupcode/ui/styles/global.css";
44
+ ```
45
+
46
+ ### Uso básico
47
+
48
+ ```tsx
49
+ import { Button } from "@cupcode/ui";
50
+
51
+ export default function Example() {
52
+ return <Button variant="default">Oi Cupcode</Button>;
53
+ }
54
+ ```
55
+
56
+ Todos os componentes Cupcode e shadcn/ui base são reexportados de `@cupcode/ui`. Exemplo:
57
+
58
+ ```ts
59
+ import { NavbarCupcode, ThemeToggle, Card } from "@cupcode/ui";
60
+ ```
61
+
62
+ Para importações segmentadas, há submódulos como `@cupcode/ui/charts`, que expõe apenas os componentes de gráficos/carrossel.
63
+
64
+ ### Tema / Dark mode
65
+
66
+ O `ThemeToggle` depende de [next-themes](https://github.com/pacocoursey/next-themes). Adicione o provider na raiz do app:
67
+
68
+ ```tsx
69
+ import { ThemeProvider } from "next-themes";
70
+
71
+ export function App() {
72
+ return (
73
+ <ThemeProvider attribute="class" defaultTheme="system" enableSystem>
74
+ {/* sua aplicação */}
75
+ </ThemeProvider>
76
+ );
77
+ }
78
+
79
+ No Next.js (app router), coloque o provider em `layout.tsx`; em Vite/CRA, envolva a raiz.
80
+
81
+ ### Peers
82
+
83
+ | Pacote | Versão mínima | Uso no DS |
84
+ | --- | --- | --- |
85
+ | `react`, `react-dom` | ^18.3.1 | base dos componentes |
86
+ | `tailwindcss` | ^3.4.17 | util classes + preset |
87
+ | `class-variance-authority`, `tailwind-merge` | ^0.7.1 / ^2.6.0 | variantes e merge de classes |
88
+ | `lucide-react` | ^0.462.0 | ícones |
89
+ | `next-themes` | ^0.3.0 | controle de tema (ThemeToggle) |
90
+ | `@radix-ui/*` | conforme `package.json` | primitives dos componentes shadcn |
91
+ | `cmdk`, `embla-carousel-react`, `react-day-picker`, `input-otp`, `react-resizable-panels`, `recharts`, `sonner`, `vaul` | conforme `package.json` | componentes específicos (command palette, carousel, calendário, OTP, panels, charts, toasts, drawers) |
92
+ | `tailwindcss-animate`, `@tailwindcss/typography` | ^1.0.7 / ^0.5.16 | plugins usados pelo preset |
93
+
94
+ Consulte `peerDependencies` para a lista completa ao instalar.
95
+ ```
96
+
97
+ ### Tipos e superfícies
98
+
99
+ Os componentes são exportados via `export { Component }` (ex.: `export { default as DockWrapper }`). Importe sempre de `@cupcode/ui` para garantir que os tipos e estilos correspondentes estejam alinhados.
@@ -0,0 +1,97 @@
1
+ import * as recharts_types_util_payload_getUniqPayload from 'recharts/types/util/payload/getUniqPayload';
2
+ import * as recharts_types_component_Tooltip from 'recharts/types/component/Tooltip';
3
+ import * as recharts_types_util_types from 'recharts/types/util/types';
4
+ import * as recharts_types_component_DefaultTooltipContent from 'recharts/types/component/DefaultTooltipContent';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
6
+ import * as React from 'react';
7
+ import * as RechartsPrimitive from 'recharts';
8
+ import * as class_variance_authority_types from 'class-variance-authority/types';
9
+ import { VariantProps } from 'class-variance-authority';
10
+ import useEmblaCarousel, { UseEmblaCarouselType } from 'embla-carousel-react';
11
+
12
+ declare const buttonVariants: (props?: {
13
+ variant?: "link" | "default" | "secondary" | "outline" | "destructive" | "ghost";
14
+ size?: "default" | "sm" | "lg" | "icon";
15
+ } & class_variance_authority_types.ClassProp) => string;
16
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
17
+ asChild?: boolean;
18
+ }
19
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
20
+
21
+ type CarouselApi = UseEmblaCarouselType[1];
22
+ type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
23
+ type CarouselOptions = UseCarouselParameters[0];
24
+ type CarouselPlugin = UseCarouselParameters[1];
25
+ type CarouselProps = {
26
+ opts?: CarouselOptions;
27
+ plugins?: CarouselPlugin;
28
+ orientation?: "horizontal" | "vertical";
29
+ setApi?: (api: CarouselApi) => void;
30
+ };
31
+ declare const Carousel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & CarouselProps & React.RefAttributes<HTMLDivElement>>;
32
+ declare const CarouselContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
33
+ declare const CarouselItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
34
+ declare const CarouselPrevious: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
35
+ declare const CarouselNext: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
36
+
37
+ declare const THEMES: {
38
+ readonly light: "";
39
+ readonly dark: ".dark";
40
+ };
41
+ type ChartConfig = {
42
+ [k in string]: {
43
+ label?: React.ReactNode;
44
+ icon?: React.ComponentType;
45
+ } & ({
46
+ color?: string;
47
+ theme?: never;
48
+ } | {
49
+ color?: never;
50
+ theme: Record<keyof typeof THEMES, string>;
51
+ });
52
+ };
53
+ declare const ChartContainer: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
54
+ config: ChartConfig;
55
+ children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
56
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
57
+ declare const ChartStyle: ({ id, config }: {
58
+ id: string;
59
+ config: ChartConfig;
60
+ }) => react_jsx_runtime.JSX.Element;
61
+ declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
62
+ declare const ChartTooltipContent: React.ForwardRefExoticComponent<Omit<RechartsPrimitive.DefaultTooltipContentProps<recharts_types_component_DefaultTooltipContent.ValueType, recharts_types_component_DefaultTooltipContent.NameType> & {
63
+ accessibilityLayer?: boolean;
64
+ active?: boolean | undefined;
65
+ includeHidden?: boolean | undefined;
66
+ allowEscapeViewBox?: recharts_types_util_types.AllowInDimension;
67
+ animationDuration?: recharts_types_util_types.AnimationDuration;
68
+ animationEasing?: recharts_types_util_types.AnimationTiming;
69
+ content?: recharts_types_component_Tooltip.ContentType<recharts_types_component_DefaultTooltipContent.ValueType, recharts_types_component_DefaultTooltipContent.NameType>;
70
+ coordinate?: Partial<recharts_types_util_types.Coordinate>;
71
+ cursor?: boolean | React.ReactElement | React.SVGProps<SVGElement>;
72
+ filterNull?: boolean;
73
+ defaultIndex?: number;
74
+ isAnimationActive?: boolean;
75
+ offset?: number;
76
+ payloadUniqBy?: recharts_types_util_payload_getUniqPayload.UniqueOption<recharts_types_component_DefaultTooltipContent.Payload<recharts_types_component_DefaultTooltipContent.ValueType, recharts_types_component_DefaultTooltipContent.NameType>>;
77
+ position?: Partial<recharts_types_util_types.Coordinate>;
78
+ reverseDirection?: recharts_types_util_types.AllowInDimension;
79
+ shared?: boolean;
80
+ trigger?: "hover" | "click";
81
+ useTranslate3d?: boolean;
82
+ viewBox?: recharts_types_util_types.CartesianViewBox;
83
+ wrapperStyle?: React.CSSProperties;
84
+ } & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
85
+ hideLabel?: boolean;
86
+ hideIndicator?: boolean;
87
+ indicator?: "line" | "dot" | "dashed";
88
+ nameKey?: string;
89
+ labelKey?: string;
90
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
91
+ declare const ChartLegend: typeof RechartsPrimitive.Legend;
92
+ declare const ChartLegendContent: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<RechartsPrimitive.LegendProps, "verticalAlign" | "payload"> & {
93
+ hideIcon?: boolean;
94
+ nameKey?: string;
95
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
96
+
97
+ export { type ButtonProps as B, type CarouselApi as C, Button as a, buttonVariants as b, Carousel as c, CarouselContent as d, CarouselItem as e, CarouselPrevious as f, CarouselNext as g, ChartContainer as h, ChartTooltip as i, ChartTooltipContent as j, ChartLegend as k, ChartLegendContent as l, ChartStyle as m, type ChartConfig as n };
@@ -0,0 +1,97 @@
1
+ import * as recharts_types_util_payload_getUniqPayload from 'recharts/types/util/payload/getUniqPayload';
2
+ import * as recharts_types_component_Tooltip from 'recharts/types/component/Tooltip';
3
+ import * as recharts_types_util_types from 'recharts/types/util/types';
4
+ import * as recharts_types_component_DefaultTooltipContent from 'recharts/types/component/DefaultTooltipContent';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
6
+ import * as React from 'react';
7
+ import * as RechartsPrimitive from 'recharts';
8
+ import * as class_variance_authority_types from 'class-variance-authority/types';
9
+ import { VariantProps } from 'class-variance-authority';
10
+ import useEmblaCarousel, { UseEmblaCarouselType } from 'embla-carousel-react';
11
+
12
+ declare const buttonVariants: (props?: {
13
+ variant?: "link" | "default" | "secondary" | "outline" | "destructive" | "ghost";
14
+ size?: "default" | "sm" | "lg" | "icon";
15
+ } & class_variance_authority_types.ClassProp) => string;
16
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
17
+ asChild?: boolean;
18
+ }
19
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
20
+
21
+ type CarouselApi = UseEmblaCarouselType[1];
22
+ type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
23
+ type CarouselOptions = UseCarouselParameters[0];
24
+ type CarouselPlugin = UseCarouselParameters[1];
25
+ type CarouselProps = {
26
+ opts?: CarouselOptions;
27
+ plugins?: CarouselPlugin;
28
+ orientation?: "horizontal" | "vertical";
29
+ setApi?: (api: CarouselApi) => void;
30
+ };
31
+ declare const Carousel: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & CarouselProps & React.RefAttributes<HTMLDivElement>>;
32
+ declare const CarouselContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
33
+ declare const CarouselItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
34
+ declare const CarouselPrevious: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
35
+ declare const CarouselNext: React.ForwardRefExoticComponent<Omit<ButtonProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
36
+
37
+ declare const THEMES: {
38
+ readonly light: "";
39
+ readonly dark: ".dark";
40
+ };
41
+ type ChartConfig = {
42
+ [k in string]: {
43
+ label?: React.ReactNode;
44
+ icon?: React.ComponentType;
45
+ } & ({
46
+ color?: string;
47
+ theme?: never;
48
+ } | {
49
+ color?: never;
50
+ theme: Record<keyof typeof THEMES, string>;
51
+ });
52
+ };
53
+ declare const ChartContainer: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
54
+ config: ChartConfig;
55
+ children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
56
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
57
+ declare const ChartStyle: ({ id, config }: {
58
+ id: string;
59
+ config: ChartConfig;
60
+ }) => react_jsx_runtime.JSX.Element;
61
+ declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
62
+ declare const ChartTooltipContent: React.ForwardRefExoticComponent<Omit<RechartsPrimitive.DefaultTooltipContentProps<recharts_types_component_DefaultTooltipContent.ValueType, recharts_types_component_DefaultTooltipContent.NameType> & {
63
+ accessibilityLayer?: boolean;
64
+ active?: boolean | undefined;
65
+ includeHidden?: boolean | undefined;
66
+ allowEscapeViewBox?: recharts_types_util_types.AllowInDimension;
67
+ animationDuration?: recharts_types_util_types.AnimationDuration;
68
+ animationEasing?: recharts_types_util_types.AnimationTiming;
69
+ content?: recharts_types_component_Tooltip.ContentType<recharts_types_component_DefaultTooltipContent.ValueType, recharts_types_component_DefaultTooltipContent.NameType>;
70
+ coordinate?: Partial<recharts_types_util_types.Coordinate>;
71
+ cursor?: boolean | React.ReactElement | React.SVGProps<SVGElement>;
72
+ filterNull?: boolean;
73
+ defaultIndex?: number;
74
+ isAnimationActive?: boolean;
75
+ offset?: number;
76
+ payloadUniqBy?: recharts_types_util_payload_getUniqPayload.UniqueOption<recharts_types_component_DefaultTooltipContent.Payload<recharts_types_component_DefaultTooltipContent.ValueType, recharts_types_component_DefaultTooltipContent.NameType>>;
77
+ position?: Partial<recharts_types_util_types.Coordinate>;
78
+ reverseDirection?: recharts_types_util_types.AllowInDimension;
79
+ shared?: boolean;
80
+ trigger?: "hover" | "click";
81
+ useTranslate3d?: boolean;
82
+ viewBox?: recharts_types_util_types.CartesianViewBox;
83
+ wrapperStyle?: React.CSSProperties;
84
+ } & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
85
+ hideLabel?: boolean;
86
+ hideIndicator?: boolean;
87
+ indicator?: "line" | "dot" | "dashed";
88
+ nameKey?: string;
89
+ labelKey?: string;
90
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
91
+ declare const ChartLegend: typeof RechartsPrimitive.Legend;
92
+ declare const ChartLegendContent: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<RechartsPrimitive.LegendProps, "verticalAlign" | "payload"> & {
93
+ hideIcon?: boolean;
94
+ nameKey?: string;
95
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
96
+
97
+ export { type ButtonProps as B, type CarouselApi as C, Button as a, buttonVariants as b, Carousel as c, CarouselContent as d, CarouselItem as e, CarouselPrevious as f, CarouselNext as g, ChartContainer as h, ChartTooltip as i, ChartTooltipContent as j, ChartLegend as k, ChartLegendContent as l, ChartStyle as m, type ChartConfig as n };