@ezfit/ui 1.0.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 (78) hide show
  1. package/README.md +49 -0
  2. package/dist/components/Accordion/Accordion.d.ts +5 -0
  3. package/dist/components/Accordion/index.d.ts +1 -0
  4. package/dist/components/Badge/Badge.d.ts +8 -0
  5. package/dist/components/Badge/index.d.ts +1 -0
  6. package/dist/components/Banner/Banner.d.ts +10 -0
  7. package/dist/components/Banner/index.d.ts +1 -0
  8. package/dist/components/Button/Button.d.ts +9 -0
  9. package/dist/components/Button/index.d.ts +1 -0
  10. package/dist/components/Card/Card.d.ts +12 -0
  11. package/dist/components/Card/index.d.ts +1 -0
  12. package/dist/components/Chart/AreaChart.d.ts +12 -0
  13. package/dist/components/Chart/BarChart.d.ts +12 -0
  14. package/dist/components/Chart/ChartEmptyState.d.ts +7 -0
  15. package/dist/components/Chart/ChartLegend.d.ts +10 -0
  16. package/dist/components/Chart/ChartTooltip.d.ts +10 -0
  17. package/dist/components/Chart/DonutChart.d.ts +14 -0
  18. package/dist/components/Chart/index.d.ts +6 -0
  19. package/dist/components/Checkbox/Checkbox.d.ts +5 -0
  20. package/dist/components/Checkbox/index.d.ts +1 -0
  21. package/dist/components/DataTable/DataTable.d.ts +12 -0
  22. package/dist/components/DataTable/index.d.ts +1 -0
  23. package/dist/components/Dialog/Dialog.d.ts +20 -0
  24. package/dist/components/Dialog/index.d.ts +1 -0
  25. package/dist/components/EmptyState/EmptyState.d.ts +9 -0
  26. package/dist/components/EmptyState/index.d.ts +1 -0
  27. package/dist/components/FilterChips/FilterChips.d.ts +14 -0
  28. package/dist/components/FilterChips/index.d.ts +1 -0
  29. package/dist/components/HydrationTracker/HydrationTracker.d.ts +7 -0
  30. package/dist/components/HydrationTracker/index.d.ts +1 -0
  31. package/dist/components/IconTile/IconTile.d.ts +10 -0
  32. package/dist/components/IconTile/index.d.ts +1 -0
  33. package/dist/components/Input/Input.d.ts +9 -0
  34. package/dist/components/Input/SearchInput.d.ts +3 -0
  35. package/dist/components/Input/index.d.ts +2 -0
  36. package/dist/components/ListItem/ListItem.d.ts +29 -0
  37. package/dist/components/ListItem/index.d.ts +1 -0
  38. package/dist/components/MacroBreakdown/MacroBreakdown.d.ts +12 -0
  39. package/dist/components/MacroBreakdown/index.d.ts +1 -0
  40. package/dist/components/ProfileCard/ProfileCard.d.ts +8 -0
  41. package/dist/components/ProfileCard/index.d.ts +1 -0
  42. package/dist/components/ProgressBar/ProgressBar.d.ts +8 -0
  43. package/dist/components/ProgressBar/index.d.ts +1 -0
  44. package/dist/components/ProgressRing/ProgressRing.d.ts +10 -0
  45. package/dist/components/ProgressRing/index.d.ts +1 -0
  46. package/dist/components/RadioGroup/RadioGroup.d.ts +8 -0
  47. package/dist/components/RadioGroup/index.d.ts +1 -0
  48. package/dist/components/Select/Select.d.ts +7 -0
  49. package/dist/components/Select/index.d.ts +1 -0
  50. package/dist/components/Sidebar/NavItem.d.ts +7 -0
  51. package/dist/components/Sidebar/Sidebar.d.ts +12 -0
  52. package/dist/components/Sidebar/index.d.ts +2 -0
  53. package/dist/components/Skeleton/Skeleton.d.ts +3 -0
  54. package/dist/components/Skeleton/index.d.ts +1 -0
  55. package/dist/components/Slider/Slider.d.ts +4 -0
  56. package/dist/components/Slider/index.d.ts +1 -0
  57. package/dist/components/Spinner/Spinner.d.ts +8 -0
  58. package/dist/components/Spinner/index.d.ts +1 -0
  59. package/dist/components/StatCard/StatCard.d.ts +22 -0
  60. package/dist/components/StatCard/index.d.ts +1 -0
  61. package/dist/components/Switch/Switch.d.ts +4 -0
  62. package/dist/components/Switch/index.d.ts +1 -0
  63. package/dist/components/Tabs/Tabs.d.ts +5 -0
  64. package/dist/components/Tabs/index.d.ts +1 -0
  65. package/dist/components/Toast/Toast.d.ts +18 -0
  66. package/dist/components/Toast/index.d.ts +1 -0
  67. package/dist/components/Tooltip/Tooltip.d.ts +13 -0
  68. package/dist/components/Tooltip/index.d.ts +1 -0
  69. package/dist/components/Topbar/Topbar.d.ts +8 -0
  70. package/dist/components/Topbar/index.d.ts +1 -0
  71. package/dist/components/TrendItem/TrendItem.d.ts +9 -0
  72. package/dist/components/TrendItem/index.d.ts +1 -0
  73. package/dist/index.d.ts +34 -0
  74. package/dist/index.js +1501 -0
  75. package/dist/lib/cn.d.ts +2 -0
  76. package/dist/lib/tokens.d.ts +49 -0
  77. package/dist/styles.css +1 -0
  78. package/package.json +83 -0
package/README.md ADDED
@@ -0,0 +1,49 @@
1
+ # @ezfit/ui
2
+
3
+ Design system EZFIT em React + TypeScript para dashboards de saude, dieta e treino. Estilizado com Tailwind v4 (CSS variables + CVA), acessibilidade via Radix UI, graficos com Recharts e icones lucide-react.
4
+
5
+ ## Desenvolvimento
6
+
7
+ ```bash
8
+ bun install
9
+ bun run dev # Storybook em http://localhost:6006
10
+ bun run build # gera dist/ (index.js + index.d.ts + styles.css)
11
+ bun run build-storybook
12
+ bun run typecheck
13
+ bun run lint
14
+ ```
15
+
16
+ ## Uso em um app Vite + React
17
+
18
+ ```bash
19
+ bun add @ezfit/ui
20
+ ```
21
+
22
+ ```tsx
23
+ import "@ezfit/ui/styles.css";
24
+ import { Button, StatCard, ToastProvider } from "@ezfit/ui";
25
+
26
+ export function App() {
27
+ return (
28
+ <ToastProvider>
29
+ <Button variant="accent">Adicionar refeicao</Button>
30
+ </ToastProvider>
31
+ );
32
+ }
33
+ ```
34
+
35
+ O CSS distribuido (`@ezfit/ui/styles.css`) ja contem todas as classes utilizadas pelos componentes e os design tokens. Tema escuro: adicione a classe `dark` em um ancestral.
36
+
37
+ ## Componentes
38
+
39
+ - **Primitivos:** Button, Badge, Card, IconTile
40
+ - **Inputs:** Input, SearchInput, Switch, Checkbox, RadioGroup, Slider, Select, Tabs, Accordion
41
+ - **Layout:** Sidebar, NavItem, Topbar, ProfileCard
42
+ - **Dados:** StatCard, ProgressBar, ProgressRing, TrendItem, HydrationTracker, MacroBreakdown
43
+ - **Graficos:** BarChart, AreaChart, DonutChart, ChartLegend, ChartTooltip, ChartEmptyState
44
+ - **Conteudo:** ListItem (Meal/Workout/Hydration), DataTable, FilterChips
45
+ - **Feedback:** Banner, Dialog/Modal, Toast (`ToastProvider` + `useToast`), Tooltip, Skeleton, Spinner, EmptyState
46
+
47
+ ## Tokens
48
+
49
+ Definidos em `src/styles.css` (bloco `@theme`). Constantes JS (`colors`, `chartColors`, `radius`, `fontFamily`) exportadas do pacote para uso em graficos.
@@ -0,0 +1,5 @@
1
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
2
+ export declare const Accordion: import('react').ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & import('react').RefAttributes<HTMLDivElement>>;
3
+ export declare const AccordionItem: import('react').ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
4
+ export declare const AccordionTrigger: import('react').ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & import('react').RefAttributes<HTMLButtonElement>, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
5
+ export declare const AccordionContent: import('react').ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './Accordion';
@@ -0,0 +1,8 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ export declare const badgeVariants: (props?: ({
3
+ variant?: "active" | "pro" | "info" | "success" | "warning" | "error" | "neutral" | null | undefined;
4
+ size?: "sm" | "md" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
7
+ }
8
+ export declare const Badge: import('react').ForwardRefExoticComponent<BadgeProps & import('react').RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1 @@
1
+ export { Badge, type BadgeProps, badgeVariants } from './Badge';
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ declare const bannerVariants: (props?: ({
3
+ variant?: "info" | "success" | "warning" | "error" | null | undefined;
4
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
+ export interface BannerProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof bannerVariants> {
6
+ title?: string;
7
+ onDismiss?: () => void;
8
+ }
9
+ export declare const Banner: import('react').ForwardRefExoticComponent<BannerProps & import('react').RefAttributes<HTMLDivElement>>;
10
+ export {};
@@ -0,0 +1 @@
1
+ export { Banner, type BannerProps } from './Banner';
@@ -0,0 +1,9 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ export declare const buttonVariants: (props?: ({
3
+ variant?: "primary" | "accent" | "secondary" | "ghost" | "destructive" | null | undefined;
4
+ size?: "icon" | "sm" | "md" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
7
+ loading?: boolean;
8
+ }
9
+ export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1 @@
1
+ export { Button, type ButtonProps, buttonVariants } from './Button';
@@ -0,0 +1,12 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ export declare const cardVariants: (props?: ({
3
+ variant?: "accent" | "light" | "dark" | null | undefined;
4
+ padding?: "none" | "sm" | "md" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export interface CardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof cardVariants> {
7
+ }
8
+ export declare const Card: import('react').ForwardRefExoticComponent<CardProps & import('react').RefAttributes<HTMLDivElement>>;
9
+ export declare const CardHeader: import('react').ForwardRefExoticComponent<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
10
+ export declare const CardTitle: import('react').ForwardRefExoticComponent<import('react').HTMLAttributes<HTMLHeadingElement> & import('react').RefAttributes<HTMLHeadingElement>>;
11
+ export declare const CardDescription: import('react').ForwardRefExoticComponent<import('react').HTMLAttributes<HTMLParagraphElement> & import('react').RefAttributes<HTMLParagraphElement>>;
12
+ export declare const CardContent: import('react').ForwardRefExoticComponent<import('react').HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { Card, CardContent, CardDescription, CardHeader, type CardProps, CardTitle, cardVariants, } from './Card';
@@ -0,0 +1,12 @@
1
+ export interface AreaChartDatum {
2
+ label: string;
3
+ value: number;
4
+ }
5
+ export interface AreaChartProps {
6
+ data: AreaChartDatum[];
7
+ height?: number;
8
+ color?: string;
9
+ unit?: string;
10
+ className?: string;
11
+ }
12
+ export declare function AreaChart({ data, height, color, unit, className, }: AreaChartProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ export interface BarChartDatum {
2
+ label: string;
3
+ value: number;
4
+ }
5
+ export interface BarChartProps {
6
+ data: BarChartDatum[];
7
+ activeIndex?: number;
8
+ height?: number;
9
+ unit?: string;
10
+ className?: string;
11
+ }
12
+ export declare function BarChart({ data, activeIndex, height, unit, className }: BarChartProps): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ export interface ChartEmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ icon?: IconSvgElement;
4
+ title?: string;
5
+ description?: string;
6
+ }
7
+ export declare const ChartEmptyState: import('react').ForwardRefExoticComponent<ChartEmptyStateProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,10 @@
1
+ export interface ChartLegendItem {
2
+ label: string;
3
+ value?: string;
4
+ color: string;
5
+ shape?: "dot" | "square";
6
+ }
7
+ export interface ChartLegendProps extends React.HTMLAttributes<HTMLDivElement> {
8
+ items: ChartLegendItem[];
9
+ }
10
+ export declare const ChartLegend: import('react').ForwardRefExoticComponent<ChartLegendProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,10 @@
1
+ export interface ChartTooltipRow {
2
+ label: string;
3
+ value: string;
4
+ color?: string;
5
+ }
6
+ export interface ChartTooltipProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ title?: string;
8
+ rows: ChartTooltipRow[];
9
+ }
10
+ export declare const ChartTooltip: import('react').ForwardRefExoticComponent<ChartTooltipProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,14 @@
1
+ export interface DonutChartDatum {
2
+ name: string;
3
+ value: number;
4
+ color: string;
5
+ }
6
+ export interface DonutChartProps {
7
+ data: DonutChartDatum[];
8
+ size?: number;
9
+ thickness?: number;
10
+ centerValue?: string;
11
+ centerCaption?: string;
12
+ className?: string;
13
+ }
14
+ export declare function DonutChart({ data, size, thickness, centerValue, centerCaption, className, }: DonutChartProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export { AreaChart, type AreaChartDatum, type AreaChartProps } from './AreaChart';
2
+ export { BarChart, type BarChartDatum, type BarChartProps } from './BarChart';
3
+ export { ChartEmptyState, type ChartEmptyStateProps } from './ChartEmptyState';
4
+ export { ChartLegend, type ChartLegendItem, type ChartLegendProps } from './ChartLegend';
5
+ export { ChartTooltip, type ChartTooltipProps, type ChartTooltipRow } from './ChartTooltip';
6
+ export { DonutChart, type DonutChartDatum, type DonutChartProps } from './DonutChart';
@@ -0,0 +1,5 @@
1
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
2
+ export interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {
3
+ label?: string;
4
+ }
5
+ export declare const Checkbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1 @@
1
+ export { Checkbox, type CheckboxProps } from './Checkbox';
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ export interface DataTableColumn<T> {
3
+ header: string;
4
+ align?: "left" | "right";
5
+ cell: (row: T) => ReactNode;
6
+ }
7
+ export interface DataTableProps<T> extends React.HTMLAttributes<HTMLTableElement> {
8
+ columns: DataTableColumn<T>[];
9
+ data: T[];
10
+ getRowKey: (row: T, index: number) => string | number;
11
+ }
12
+ export declare function DataTable<T>({ columns, data, getRowKey, className, ...props }: DataTableProps<T>): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { DataTable, type DataTableColumn, type DataTableProps } from './DataTable';
@@ -0,0 +1,20 @@
1
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
2
+ export declare const Dialog: import('react').FC<DialogPrimitive.DialogProps>;
3
+ export declare const DialogTrigger: import('react').ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
4
+ export declare const DialogClose: import('react').ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & import('react').RefAttributes<HTMLButtonElement>>;
5
+ export declare const DialogPortal: import('react').FC<DialogPrimitive.DialogPortalProps>;
6
+ export declare const DialogOverlay: import('react').ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
7
+ export interface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
8
+ showClose?: boolean;
9
+ }
10
+ export declare const DialogContent: import('react').ForwardRefExoticComponent<DialogContentProps & import('react').RefAttributes<HTMLDivElement>>;
11
+ export declare const DialogHeader: {
12
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
13
+ displayName: string;
14
+ };
15
+ export declare const DialogTitle: import('react').ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & import('react').RefAttributes<HTMLHeadingElement>, "ref"> & import('react').RefAttributes<HTMLHeadingElement>>;
16
+ export declare const DialogDescription: import('react').ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & import('react').RefAttributes<HTMLParagraphElement>, "ref"> & import('react').RefAttributes<HTMLParagraphElement>>;
17
+ export declare const DialogFooter: {
18
+ ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react").JSX.Element;
19
+ displayName: string;
20
+ };
@@ -0,0 +1 @@
1
+ export { Dialog, Dialog as Modal, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, } from './Dialog';
@@ -0,0 +1,9 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ import { ReactNode } from 'react';
3
+ export interface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ icon: IconSvgElement;
5
+ title: string;
6
+ description?: string;
7
+ action?: ReactNode;
8
+ }
9
+ export declare const EmptyState: import('react').ForwardRefExoticComponent<EmptyStateProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { EmptyState, type EmptyStateProps } from './EmptyState';
@@ -0,0 +1,14 @@
1
+ export interface FilterChipProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
2
+ selected?: boolean;
3
+ }
4
+ export declare const FilterChip: import('react').ForwardRefExoticComponent<FilterChipProps & import('react').RefAttributes<HTMLButtonElement>>;
5
+ export interface FilterChipsItem {
6
+ value: string;
7
+ label: string;
8
+ }
9
+ export interface FilterChipsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
10
+ items: FilterChipsItem[];
11
+ value: string;
12
+ onValueChange: (value: string) => void;
13
+ }
14
+ export declare const FilterChips: import('react').ForwardRefExoticComponent<FilterChipsProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { FilterChip, type FilterChipProps, FilterChips, type FilterChipsItem, type FilterChipsProps, } from './FilterChips';
@@ -0,0 +1,7 @@
1
+ export interface HydrationTrackerProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ total: number;
3
+ filled: number;
4
+ caption?: string;
5
+ onCupClick?: (index: number) => void;
6
+ }
7
+ export declare const HydrationTracker: import('react').ForwardRefExoticComponent<HydrationTrackerProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { HydrationTracker, type HydrationTrackerProps } from './HydrationTracker';
@@ -0,0 +1,10 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ export declare const iconTileVariants: (props?: ({
4
+ tone?: "info" | "success" | "warning" | "error" | "neutral" | "accent" | "protein" | "carbs" | "fat" | "cardio" | "onDark" | "onAccent" | null | undefined;
5
+ size?: "sm" | "md" | "lg" | "xl" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface IconTileProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof iconTileVariants> {
8
+ icon: IconSvgElement;
9
+ }
10
+ export declare const IconTile: import('react').ForwardRefExoticComponent<IconTileProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { IconTile, type IconTileProps, iconTileVariants } from './IconTile';
@@ -0,0 +1,9 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ export interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
+ label?: string;
4
+ error?: string;
5
+ hint?: string;
6
+ startIcon?: IconSvgElement;
7
+ suffix?: string;
8
+ }
9
+ export declare const Input: import('react').ForwardRefExoticComponent<InputProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,3 @@
1
+ import { InputProps } from './Input';
2
+ export type SearchInputProps = Omit<InputProps, "startIcon" | "type">;
3
+ export declare const SearchInput: import('react').ForwardRefExoticComponent<SearchInputProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ export { Input, type InputProps } from './Input';
2
+ export { SearchInput, type SearchInputProps } from './SearchInput';
@@ -0,0 +1,29 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ import { ReactNode } from 'react';
3
+ import { IconTileProps } from '../IconTile';
4
+ export interface ListItemProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ icon: IconSvgElement;
6
+ iconTone?: IconTileProps["tone"];
7
+ title: string;
8
+ subtitle?: string;
9
+ trailing?: ReactNode;
10
+ interactive?: boolean;
11
+ }
12
+ export declare const ListItem: import('react').ForwardRefExoticComponent<ListItemProps & import('react').RefAttributes<HTMLDivElement>>;
13
+ export interface MealListItemProps extends Omit<ListItemProps, "trailing"> {
14
+ protein: number;
15
+ carbs: number;
16
+ fat: number;
17
+ calories: number;
18
+ }
19
+ export declare const MealListItem: import('react').ForwardRefExoticComponent<MealListItemProps & import('react').RefAttributes<HTMLDivElement>>;
20
+ export interface WorkoutListItemProps extends Omit<ListItemProps, "trailing"> {
21
+ duration: string;
22
+ calories: number;
23
+ }
24
+ export declare const WorkoutListItem: import('react').ForwardRefExoticComponent<WorkoutListItemProps & import('react').RefAttributes<HTMLDivElement>>;
25
+ export interface HydrationListItemProps extends Omit<ListItemProps, "trailing"> {
26
+ amount: string;
27
+ muted?: boolean;
28
+ }
29
+ export declare const HydrationListItem: import('react').ForwardRefExoticComponent<HydrationListItemProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { HydrationListItem, type HydrationListItemProps, ListItem, type ListItemProps, MealListItem, type MealListItemProps, WorkoutListItem, type WorkoutListItemProps, } from './ListItem';
@@ -0,0 +1,12 @@
1
+ import { CategoryColor } from '../../lib/tokens';
2
+ export interface MacroItem {
3
+ label: string;
4
+ value: string;
5
+ goal?: string;
6
+ percent: number;
7
+ color: CategoryColor;
8
+ }
9
+ export interface MacroBreakdownProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ items: MacroItem[];
11
+ }
12
+ export declare const MacroBreakdown: import('react').ForwardRefExoticComponent<MacroBreakdownProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { MacroBreakdown, type MacroBreakdownProps, type MacroItem } from './MacroBreakdown';
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ export interface ProfileCardProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ name: string;
4
+ badge?: ReactNode;
5
+ online?: boolean;
6
+ avatar?: ReactNode;
7
+ }
8
+ export declare const ProfileCard: import('react').ForwardRefExoticComponent<ProfileCardProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { ProfileCard, type ProfileCardProps } from './ProfileCard';
@@ -0,0 +1,8 @@
1
+ import { CategoryColor } from '../../lib/tokens';
2
+ export interface ProgressBarProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ value: number;
4
+ label?: string;
5
+ valueLabel?: string;
6
+ color?: CategoryColor;
7
+ }
8
+ export declare const ProgressBar: import('react').ForwardRefExoticComponent<ProgressBarProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { ProgressBar, type ProgressBarProps } from './ProgressBar';
@@ -0,0 +1,10 @@
1
+ export interface ProgressRingProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ value: number;
3
+ size?: number;
4
+ strokeWidth?: number;
5
+ color?: string;
6
+ trackColor?: string;
7
+ label?: string;
8
+ caption?: string;
9
+ }
10
+ export declare const ProgressRing: import('react').ForwardRefExoticComponent<ProgressRingProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { ProgressRing, type ProgressRingProps } from './ProgressRing';
@@ -0,0 +1,8 @@
1
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
2
+ export interface RadioGroupProps extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {
3
+ }
4
+ export declare const RadioGroup: import('react').ForwardRefExoticComponent<RadioGroupProps & import('react').RefAttributes<HTMLDivElement>>;
5
+ export interface RadioGroupItemProps extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {
6
+ label?: string;
7
+ }
8
+ export declare const RadioGroupItem: import('react').ForwardRefExoticComponent<RadioGroupItemProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1 @@
1
+ export { RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, } from './RadioGroup';
@@ -0,0 +1,7 @@
1
+ import * as SelectPrimitive from "@radix-ui/react-select";
2
+ export declare const Select: import('react').FC<SelectPrimitive.SelectProps>;
3
+ export declare const SelectGroup: import('react').ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & import('react').RefAttributes<HTMLDivElement>>;
4
+ export declare const SelectValue: import('react').ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & import('react').RefAttributes<HTMLSpanElement>>;
5
+ export declare const SelectTrigger: import('react').ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & import('react').RefAttributes<HTMLButtonElement>, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
6
+ export declare const SelectContent: import('react').ForwardRefExoticComponent<Omit<SelectPrimitive.SelectContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
7
+ export declare const SelectItem: import('react').ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from './Select';
@@ -0,0 +1,7 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ export interface NavItemProps extends React.HTMLAttributes<HTMLButtonElement> {
3
+ icon: IconSvgElement;
4
+ label: string;
5
+ active?: boolean;
6
+ }
7
+ export declare const NavItem: import('react').ForwardRefExoticComponent<NavItemProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,12 @@
1
+ export interface SidebarProps extends React.HTMLAttributes<HTMLElement> {
2
+ }
3
+ export declare const Sidebar: import('react').ForwardRefExoticComponent<SidebarProps & import('react').RefAttributes<HTMLElement>>;
4
+ export interface SidebarBrandProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ name: string;
6
+ logo?: string;
7
+ }
8
+ export declare const SidebarBrand: import('react').ForwardRefExoticComponent<SidebarBrandProps & import('react').RefAttributes<HTMLDivElement>>;
9
+ export interface SidebarSectionProps extends React.HTMLAttributes<HTMLDivElement> {
10
+ label?: string;
11
+ }
12
+ export declare const SidebarSection: import('react').ForwardRefExoticComponent<SidebarSectionProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ export { NavItem, type NavItemProps } from './NavItem';
2
+ export { Sidebar, SidebarBrand, type SidebarBrandProps, type SidebarProps, SidebarSection, type SidebarSectionProps, } from './Sidebar';
@@ -0,0 +1,3 @@
1
+ export interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ }
3
+ export declare const Skeleton: import('react').ForwardRefExoticComponent<SkeletonProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { Skeleton, type SkeletonProps } from './Skeleton';
@@ -0,0 +1,4 @@
1
+ import * as SliderPrimitive from "@radix-ui/react-slider";
2
+ export interface SliderProps extends React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {
3
+ }
4
+ export declare const Slider: import('react').ForwardRefExoticComponent<SliderProps & import('react').RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1 @@
1
+ export { Slider, type SliderProps } from './Slider';
@@ -0,0 +1,8 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ declare const spinnerVariants: (props?: ({
3
+ size?: "sm" | "md" | "lg" | null | undefined;
4
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
+ export interface SpinnerProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof spinnerVariants> {
6
+ }
7
+ export declare const Spinner: import('react').ForwardRefExoticComponent<SpinnerProps & import('react').RefAttributes<HTMLDivElement>>;
8
+ export {};
@@ -0,0 +1 @@
1
+ export { Spinner, type SpinnerProps } from './Spinner';
@@ -0,0 +1,22 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ import { ReactNode } from 'react';
4
+ import { IconTileProps } from '../IconTile';
5
+ declare const statCardVariants: (props?: ({
6
+ variant?: "accent" | "light" | "dark" | null | undefined;
7
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
+ export interface StatCardProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof statCardVariants> {
9
+ icon: IconSvgElement;
10
+ iconTone?: IconTileProps["tone"];
11
+ label: string;
12
+ value: ReactNode;
13
+ unit?: string;
14
+ trend?: ReactNode;
15
+ progress?: {
16
+ value: number;
17
+ caption?: string;
18
+ color?: string;
19
+ };
20
+ }
21
+ export declare const StatCard: import('react').ForwardRefExoticComponent<StatCardProps & import('react').RefAttributes<HTMLDivElement>>;
22
+ export {};
@@ -0,0 +1 @@
1
+ export { StatCard, type StatCardProps } from './StatCard';
@@ -0,0 +1,4 @@
1
+ import * as SwitchPrimitive from "@radix-ui/react-switch";
2
+ export interface SwitchProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {
3
+ }
4
+ export declare const Switch: import('react').ForwardRefExoticComponent<SwitchProps & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1 @@
1
+ export { Switch, type SwitchProps } from './Switch';
@@ -0,0 +1,5 @@
1
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
2
+ export declare const Tabs: import('react').ForwardRefExoticComponent<TabsPrimitive.TabsProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ export declare const TabsList: import('react').ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
4
+ export declare const TabsTrigger: import('react').ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & import('react').RefAttributes<HTMLButtonElement>, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
5
+ export declare const TabsContent: import('react').ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export { Tabs, TabsContent, TabsList, TabsTrigger } from './Tabs';
@@ -0,0 +1,18 @@
1
+ import { IconSvgElement } from '@hugeicons/react';
2
+ import { ReactNode } from 'react';
3
+ export interface ToastOptions {
4
+ title: string;
5
+ description?: string;
6
+ icon?: IconSvgElement;
7
+ duration?: number;
8
+ }
9
+ interface ToastContextValue {
10
+ toast: (options: ToastOptions) => void;
11
+ }
12
+ export declare function useToast(): ToastContextValue;
13
+ export interface ToastProviderProps {
14
+ children: ReactNode;
15
+ duration?: number;
16
+ }
17
+ export declare function ToastProvider({ children, duration }: ToastProviderProps): import("react").JSX.Element;
18
+ export {};
@@ -0,0 +1 @@
1
+ export { type ToastOptions, ToastProvider, type ToastProviderProps, useToast, } from './Toast';
@@ -0,0 +1,13 @@
1
+ import { ReactNode } from 'react';
2
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3
+ export declare const TooltipProvider: import('react').FC<TooltipPrimitive.TooltipProviderProps>;
4
+ export declare const TooltipRoot: import('react').FC<TooltipPrimitive.TooltipProps>;
5
+ export declare const TooltipTrigger: import('react').ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
6
+ export declare const TooltipContent: import('react').ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & import('react').RefAttributes<HTMLDivElement>, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
7
+ export interface TooltipProps {
8
+ content: ReactNode;
9
+ children: ReactNode;
10
+ side?: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>["side"];
11
+ delayDuration?: number;
12
+ }
13
+ export declare function Tooltip({ content, children, side, delayDuration }: TooltipProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export { Tooltip, TooltipContent, type TooltipProps, TooltipProvider, TooltipRoot, TooltipTrigger, } from './Tooltip';