@payglocal_ui/flux-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/package.json +72 -0
- package/src/accordion.tsx +68 -0
- package/src/alert.tsx +107 -0
- package/src/avatar-group.tsx +96 -0
- package/src/avatar-tag.tsx +136 -0
- package/src/avatar.tsx +39 -0
- package/src/badge.tsx +98 -0
- package/src/blanket.tsx +61 -0
- package/src/breadcrumb.tsx +119 -0
- package/src/button-group.tsx +218 -0
- package/src/button.tsx +83 -0
- package/src/calendar.tsx +227 -0
- package/src/callout.tsx +68 -0
- package/src/card.tsx +103 -0
- package/src/chart-templates.tsx +587 -0
- package/src/chart.tsx +379 -0
- package/src/checkbox-select.tsx +239 -0
- package/src/checkbox.tsx +54 -0
- package/src/code.tsx +154 -0
- package/src/command.tsx +77 -0
- package/src/country-select.tsx +242 -0
- package/src/currency-amount-input.tsx +72 -0
- package/src/data-table.tsx +378 -0
- package/src/date-picker.tsx +317 -0
- package/src/dialog.tsx +81 -0
- package/src/drawer.tsx +91 -0
- package/src/dropdown-menu.tsx +174 -0
- package/src/empty-state.tsx +32 -0
- package/src/field.tsx +243 -0
- package/src/flag.tsx +265 -0
- package/src/form.tsx +168 -0
- package/src/grid-flex.tsx +241 -0
- package/src/heading.tsx +202 -0
- package/src/icon-button.tsx +93 -0
- package/src/index.ts +332 -0
- package/src/inline-dialog.tsx +153 -0
- package/src/inline-edit.tsx +212 -0
- package/src/input-group.tsx +151 -0
- package/src/input.tsx +28 -0
- package/src/label.tsx +21 -0
- package/src/layout.tsx +119 -0
- package/src/link.tsx +80 -0
- package/src/lozenge.tsx +61 -0
- package/src/menu.tsx +146 -0
- package/src/otp-input.tsx +117 -0
- package/src/page-header.tsx +28 -0
- package/src/pagination.tsx +185 -0
- package/src/password-input.tsx +34 -0
- package/src/popover.tsx +31 -0
- package/src/progress-indicator.tsx +94 -0
- package/src/progress.tsx +95 -0
- package/src/radio-group.tsx +46 -0
- package/src/responsive.tsx +276 -0
- package/src/scroll-area.tsx +39 -0
- package/src/section-message.tsx +119 -0
- package/src/select.tsx +144 -0
- package/src/separator.tsx +26 -0
- package/src/side-nav.tsx +264 -0
- package/src/skeleton.tsx +74 -0
- package/src/slider.tsx +25 -0
- package/src/sonner.tsx +32 -0
- package/src/spinner.tsx +54 -0
- package/src/spotlight.tsx +141 -0
- package/src/status-badge.tsx +86 -0
- package/src/switch.tsx +70 -0
- package/src/tabs.tsx +57 -0
- package/src/tag.tsx +52 -0
- package/src/textarea.tsx +25 -0
- package/src/time-picker.tsx +443 -0
- package/src/tooltip.tsx +29 -0
- package/src/utils.ts +6 -0
- package/src/visually-hidden.tsx +25 -0
package/src/heading.tsx
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { cn } from "./utils";
|
|
3
|
+
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Heading
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
|
|
8
|
+
export interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
9
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
10
|
+
as?: React.ElementType;
|
|
11
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl";
|
|
12
|
+
color?: "default" | "subtle" | "primary";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const headingSizeClasses: Record<NonNullable<HeadingProps["size"]>, string> = {
|
|
16
|
+
xs: "text-sm font-semibold",
|
|
17
|
+
sm: "text-base font-semibold",
|
|
18
|
+
md: "text-lg font-semibold",
|
|
19
|
+
lg: "text-xl font-semibold",
|
|
20
|
+
xl: "text-2xl font-semibold",
|
|
21
|
+
"2xl": "text-3xl font-semibold tracking-tight",
|
|
22
|
+
"3xl": "text-4xl font-semibold tracking-tight",
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const headingColorClasses: Record<NonNullable<HeadingProps["color"]>, string> = {
|
|
26
|
+
default: "text-foreground",
|
|
27
|
+
subtle: "text-muted-foreground",
|
|
28
|
+
primary: "text-primary",
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const defaultSizeForLevel: Record<number, NonNullable<HeadingProps["size"]>> = {
|
|
32
|
+
1: "2xl",
|
|
33
|
+
2: "md",
|
|
34
|
+
3: "md",
|
|
35
|
+
4: "sm",
|
|
36
|
+
5: "xs",
|
|
37
|
+
6: "xs",
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(
|
|
41
|
+
(
|
|
42
|
+
{
|
|
43
|
+
level = 2,
|
|
44
|
+
as,
|
|
45
|
+
size,
|
|
46
|
+
color = "default",
|
|
47
|
+
className,
|
|
48
|
+
children,
|
|
49
|
+
...props
|
|
50
|
+
},
|
|
51
|
+
ref
|
|
52
|
+
) => {
|
|
53
|
+
const Tag = (as ?? (`h${level}` as React.ElementType)) as React.ElementType;
|
|
54
|
+
const resolvedSize = size ?? defaultSizeForLevel[level] ?? "md";
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<Tag
|
|
58
|
+
ref={ref}
|
|
59
|
+
className={cn(
|
|
60
|
+
headingSizeClasses[resolvedSize],
|
|
61
|
+
headingColorClasses[color],
|
|
62
|
+
className
|
|
63
|
+
)}
|
|
64
|
+
{...props}
|
|
65
|
+
>
|
|
66
|
+
{children}
|
|
67
|
+
</Tag>
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
Heading.displayName = "Heading";
|
|
72
|
+
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
// Text
|
|
75
|
+
// ---------------------------------------------------------------------------
|
|
76
|
+
|
|
77
|
+
export interface TextProps extends React.HTMLAttributes<HTMLElement> {
|
|
78
|
+
as?: "p" | "span" | "div" | "label";
|
|
79
|
+
size?: "xs" | "sm" | "md" | "lg";
|
|
80
|
+
weight?: "normal" | "medium" | "semibold";
|
|
81
|
+
color?: "default" | "subtle" | "primary" | "disabled";
|
|
82
|
+
truncate?: boolean;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const textSizeClasses: Record<NonNullable<TextProps["size"]>, string> = {
|
|
86
|
+
xs: "text-xs",
|
|
87
|
+
sm: "text-sm",
|
|
88
|
+
md: "text-base",
|
|
89
|
+
lg: "text-lg",
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
const textWeightClasses: Record<NonNullable<TextProps["weight"]>, string> = {
|
|
93
|
+
normal: "font-normal",
|
|
94
|
+
medium: "font-medium",
|
|
95
|
+
semibold: "font-semibold",
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
const textColorClasses: Record<NonNullable<TextProps["color"]>, string> = {
|
|
99
|
+
default: "text-foreground",
|
|
100
|
+
subtle: "text-muted-foreground",
|
|
101
|
+
primary: "text-primary",
|
|
102
|
+
disabled: "text-muted-foreground opacity-50",
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
106
|
+
export const Text = React.forwardRef<any, TextProps>(
|
|
107
|
+
(
|
|
108
|
+
{
|
|
109
|
+
as: Tag = "p",
|
|
110
|
+
size = "sm",
|
|
111
|
+
weight = "normal",
|
|
112
|
+
color = "default",
|
|
113
|
+
truncate = false,
|
|
114
|
+
className,
|
|
115
|
+
children,
|
|
116
|
+
...props
|
|
117
|
+
},
|
|
118
|
+
ref
|
|
119
|
+
) => {
|
|
120
|
+
return (
|
|
121
|
+
<Tag
|
|
122
|
+
ref={ref}
|
|
123
|
+
className={cn(
|
|
124
|
+
textSizeClasses[size],
|
|
125
|
+
textWeightClasses[weight],
|
|
126
|
+
textColorClasses[color],
|
|
127
|
+
truncate && "truncate",
|
|
128
|
+
className
|
|
129
|
+
)}
|
|
130
|
+
{...props}
|
|
131
|
+
>
|
|
132
|
+
{children}
|
|
133
|
+
</Tag>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
Text.displayName = "Text";
|
|
138
|
+
|
|
139
|
+
// ---------------------------------------------------------------------------
|
|
140
|
+
// MetricText
|
|
141
|
+
// ---------------------------------------------------------------------------
|
|
142
|
+
|
|
143
|
+
export interface MetricTextProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "prefix"> {
|
|
144
|
+
size?: "sm" | "md" | "lg" | "xl";
|
|
145
|
+
trend?: "up" | "down" | "neutral";
|
|
146
|
+
prefix?: React.ReactNode;
|
|
147
|
+
suffix?: React.ReactNode;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const metricSizeClasses: Record<NonNullable<MetricTextProps["size"]>, string> = {
|
|
151
|
+
sm: "text-xl",
|
|
152
|
+
md: "text-2xl",
|
|
153
|
+
lg: "text-3xl",
|
|
154
|
+
xl: "text-4xl",
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const metricTrendClasses: Record<NonNullable<MetricTextProps["trend"]>, string> = {
|
|
158
|
+
up: "text-green-600",
|
|
159
|
+
down: "text-red-600",
|
|
160
|
+
neutral: "text-foreground",
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export const MetricText = React.forwardRef<HTMLSpanElement, MetricTextProps>(
|
|
164
|
+
(
|
|
165
|
+
{
|
|
166
|
+
size = "md",
|
|
167
|
+
trend = "neutral",
|
|
168
|
+
prefix,
|
|
169
|
+
suffix,
|
|
170
|
+
className,
|
|
171
|
+
children,
|
|
172
|
+
...props
|
|
173
|
+
},
|
|
174
|
+
ref
|
|
175
|
+
) => {
|
|
176
|
+
return (
|
|
177
|
+
<span
|
|
178
|
+
ref={ref}
|
|
179
|
+
className={cn(
|
|
180
|
+
"font-semibold tabular-nums tracking-tight",
|
|
181
|
+
metricSizeClasses[size],
|
|
182
|
+
metricTrendClasses[trend],
|
|
183
|
+
className
|
|
184
|
+
)}
|
|
185
|
+
{...props}
|
|
186
|
+
>
|
|
187
|
+
{prefix != null && (
|
|
188
|
+
<span className="mr-0.5 text-[0.75em] font-medium opacity-70">
|
|
189
|
+
{prefix}
|
|
190
|
+
</span>
|
|
191
|
+
)}
|
|
192
|
+
{children}
|
|
193
|
+
{suffix != null && (
|
|
194
|
+
<span className="ml-0.5 text-[0.75em] font-medium opacity-70">
|
|
195
|
+
{suffix}
|
|
196
|
+
</span>
|
|
197
|
+
)}
|
|
198
|
+
</span>
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
);
|
|
202
|
+
MetricText.displayName = "MetricText";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { cn } from "./utils";
|
|
4
|
+
import { Loader2 } from "lucide-react";
|
|
5
|
+
import { type ButtonHTMLAttributes, forwardRef } from "react";
|
|
6
|
+
|
|
7
|
+
export interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
8
|
+
"aria-label": string;
|
|
9
|
+
variant?: "primary" | "secondary" | "ghost" | "outline" | "danger";
|
|
10
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
11
|
+
isLoading?: boolean;
|
|
12
|
+
rounded?: "sm" | "md" | "lg" | "full";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const variantClasses: Record<NonNullable<IconButtonProps["variant"]>, string> = {
|
|
16
|
+
primary:
|
|
17
|
+
"bg-primary text-primary-foreground border border-primary shadow-sm hover:bg-[var(--primary-hover)]",
|
|
18
|
+
secondary:
|
|
19
|
+
"bg-muted text-foreground border border-border shadow-sm hover:bg-muted/85 dark:bg-muted/35 dark:text-foreground dark:border-border dark:hover:bg-muted/55",
|
|
20
|
+
ghost:
|
|
21
|
+
"bg-transparent text-foreground border border-transparent hover:bg-muted focus-visible:bg-muted/80 active:bg-muted/90",
|
|
22
|
+
outline:
|
|
23
|
+
"bg-card text-foreground border border-border shadow-sm hover:bg-muted",
|
|
24
|
+
danger:
|
|
25
|
+
"bg-red-600 text-white border border-red-600 shadow-sm hover:bg-red-700",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const sizeClasses: Record<NonNullable<IconButtonProps["size"]>, string> = {
|
|
29
|
+
xs: "size-7 min-w-7",
|
|
30
|
+
sm: "size-8 min-w-8",
|
|
31
|
+
md: "size-9 min-w-9",
|
|
32
|
+
lg: "size-10 min-w-10",
|
|
33
|
+
xl: "size-11 min-w-11",
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const iconSizeClasses: Record<NonNullable<IconButtonProps["size"]>, string> = {
|
|
37
|
+
xs: "size-3.5",
|
|
38
|
+
sm: "size-3.5",
|
|
39
|
+
md: "size-4",
|
|
40
|
+
lg: "size-[1.125rem]",
|
|
41
|
+
xl: "size-5",
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const roundedClasses: Record<NonNullable<IconButtonProps["rounded"]>, string> = {
|
|
45
|
+
sm: "rounded-md",
|
|
46
|
+
md: "rounded-lg",
|
|
47
|
+
lg: "rounded-xl",
|
|
48
|
+
full: "rounded-full",
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(
|
|
52
|
+
(
|
|
53
|
+
{
|
|
54
|
+
variant = "primary",
|
|
55
|
+
size = "md",
|
|
56
|
+
isLoading = false,
|
|
57
|
+
rounded = "lg",
|
|
58
|
+
className,
|
|
59
|
+
disabled,
|
|
60
|
+
children,
|
|
61
|
+
"aria-label": ariaLabel,
|
|
62
|
+
...props
|
|
63
|
+
},
|
|
64
|
+
ref
|
|
65
|
+
) => {
|
|
66
|
+
return (
|
|
67
|
+
<button
|
|
68
|
+
ref={ref}
|
|
69
|
+
aria-label={ariaLabel}
|
|
70
|
+
title={ariaLabel}
|
|
71
|
+
disabled={disabled || isLoading}
|
|
72
|
+
className={cn(
|
|
73
|
+
"inline-flex shrink-0 items-center justify-center font-medium",
|
|
74
|
+
"transition-colors duration-pg-fast ease-pg-standard",
|
|
75
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/35",
|
|
76
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
77
|
+
variantClasses[variant],
|
|
78
|
+
sizeClasses[size],
|
|
79
|
+
roundedClasses[rounded],
|
|
80
|
+
className
|
|
81
|
+
)}
|
|
82
|
+
{...props}
|
|
83
|
+
>
|
|
84
|
+
{isLoading ? (
|
|
85
|
+
<Loader2 className={cn("animate-spin", iconSizeClasses[size])} />
|
|
86
|
+
) : (
|
|
87
|
+
children
|
|
88
|
+
)}
|
|
89
|
+
</button>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
IconButton.displayName = "IconButton";
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
export { cn } from "./utils";
|
|
2
|
+
|
|
3
|
+
// Layout
|
|
4
|
+
export { Box, Stack, Inline } from "./layout";
|
|
5
|
+
export type { BoxProps, StackProps, InlineProps, LayoutSpacing } from "./layout";
|
|
6
|
+
export { Grid, Flex } from "./grid-flex";
|
|
7
|
+
export type { GridProps, GridCols, GridFlow, ResponsiveCols, FlexProps, FlexDirection, FlexAlign, FlexJustify, FlexWrap } from "./grid-flex";
|
|
8
|
+
|
|
9
|
+
// Button
|
|
10
|
+
export { Button } from "./button";
|
|
11
|
+
export type { ButtonProps } from "./button";
|
|
12
|
+
export { ButtonGroup, SplitButton, SplitButtonItem } from "./button-group";
|
|
13
|
+
export type { ButtonGroupProps, SplitButtonProps, SplitButtonItemProps } from "./button-group";
|
|
14
|
+
|
|
15
|
+
// Inputs
|
|
16
|
+
export { Input } from "./input";
|
|
17
|
+
export { PasswordInput } from "./password-input";
|
|
18
|
+
export type { PasswordInputProps } from "./password-input";
|
|
19
|
+
export { OtpInput } from "./otp-input";
|
|
20
|
+
export type { OtpInputProps } from "./otp-input";
|
|
21
|
+
export { CheckboxSelect } from "./checkbox-select";
|
|
22
|
+
export type { CheckboxSelectProps, CheckboxSelectOption } from "./checkbox-select";
|
|
23
|
+
export { Textarea } from "./textarea";
|
|
24
|
+
export { Label } from "./label";
|
|
25
|
+
export { Checkbox } from "./checkbox";
|
|
26
|
+
export type { CheckboxProps } from "./checkbox";
|
|
27
|
+
export { RadioGroup, RadioGroupItem } from "./radio-group";
|
|
28
|
+
export type { RadioGroupItemProps } from "./radio-group";
|
|
29
|
+
export { Switch } from "./switch";
|
|
30
|
+
export type { SwitchProps } from "./switch";
|
|
31
|
+
export { Slider } from "./slider";
|
|
32
|
+
export type { SliderProps } from "./slider";
|
|
33
|
+
|
|
34
|
+
// Form (validation wrapper)
|
|
35
|
+
export {
|
|
36
|
+
Form,
|
|
37
|
+
FormField,
|
|
38
|
+
FormLabel,
|
|
39
|
+
FormControl,
|
|
40
|
+
FormDescription,
|
|
41
|
+
FormError,
|
|
42
|
+
FormItem,
|
|
43
|
+
useForm,
|
|
44
|
+
} from "./form";
|
|
45
|
+
export type {
|
|
46
|
+
FormProps,
|
|
47
|
+
FormFieldProps,
|
|
48
|
+
FormValues,
|
|
49
|
+
FormErrors,
|
|
50
|
+
FieldConfig,
|
|
51
|
+
FieldsConfig,
|
|
52
|
+
RegisterResult,
|
|
53
|
+
UseFormReturn,
|
|
54
|
+
ValidatorRule,
|
|
55
|
+
} from "./form";
|
|
56
|
+
|
|
57
|
+
// Form fields
|
|
58
|
+
export {
|
|
59
|
+
Field,
|
|
60
|
+
FieldContent,
|
|
61
|
+
FieldDescription,
|
|
62
|
+
FieldError,
|
|
63
|
+
FieldGroup,
|
|
64
|
+
FieldLabel,
|
|
65
|
+
FieldLegend,
|
|
66
|
+
FieldSeparator,
|
|
67
|
+
FieldSet,
|
|
68
|
+
FieldTitle,
|
|
69
|
+
} from "./field";
|
|
70
|
+
export {
|
|
71
|
+
InputGroup,
|
|
72
|
+
InputGroupAddon,
|
|
73
|
+
InputGroupButton,
|
|
74
|
+
InputGroupInput,
|
|
75
|
+
InputGroupText,
|
|
76
|
+
InputGroupTextarea,
|
|
77
|
+
} from "./input-group";
|
|
78
|
+
export { CurrencyAmountInput } from "./currency-amount-input";
|
|
79
|
+
|
|
80
|
+
// Surfaces
|
|
81
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card";
|
|
82
|
+
export { Separator } from "./separator";
|
|
83
|
+
export { ScrollArea, ScrollBar } from "./scroll-area";
|
|
84
|
+
|
|
85
|
+
// SideNav
|
|
86
|
+
export {
|
|
87
|
+
SideNav,
|
|
88
|
+
SideNavHeader,
|
|
89
|
+
SideNavSection,
|
|
90
|
+
SideNavItem,
|
|
91
|
+
SideNavFooter,
|
|
92
|
+
} from "./side-nav";
|
|
93
|
+
export type { SideNavProps, SideNavItemProps } from "./side-nav";
|
|
94
|
+
|
|
95
|
+
// Navigation
|
|
96
|
+
export {
|
|
97
|
+
Breadcrumb,
|
|
98
|
+
BreadcrumbList,
|
|
99
|
+
BreadcrumbItem,
|
|
100
|
+
BreadcrumbLink,
|
|
101
|
+
BreadcrumbPage,
|
|
102
|
+
BreadcrumbSeparator,
|
|
103
|
+
BreadcrumbEllipsis,
|
|
104
|
+
} from "./breadcrumb";
|
|
105
|
+
export {
|
|
106
|
+
Pagination,
|
|
107
|
+
PaginationContent,
|
|
108
|
+
PaginationItem,
|
|
109
|
+
PaginationLink,
|
|
110
|
+
PaginationPrevious,
|
|
111
|
+
PaginationNext,
|
|
112
|
+
PaginationEllipsis,
|
|
113
|
+
} from "./pagination";
|
|
114
|
+
export type {
|
|
115
|
+
PaginationProps,
|
|
116
|
+
PaginationContentProps,
|
|
117
|
+
PaginationItemProps,
|
|
118
|
+
PaginationLinkProps,
|
|
119
|
+
PaginationPreviousProps,
|
|
120
|
+
PaginationNextProps,
|
|
121
|
+
PaginationEllipsisProps,
|
|
122
|
+
} from "./pagination";
|
|
123
|
+
export { Link } from "./link";
|
|
124
|
+
export type { LinkProps } from "./link";
|
|
125
|
+
|
|
126
|
+
// Labels & Badges
|
|
127
|
+
export { Badge } from "./badge";
|
|
128
|
+
export type { BadgeProps } from "./badge";
|
|
129
|
+
export { Lozenge } from "./lozenge";
|
|
130
|
+
export type { LozengeProps } from "./lozenge";
|
|
131
|
+
export { Tag, TagGroup } from "./tag";
|
|
132
|
+
export type { TagProps, TagGroupProps } from "./tag";
|
|
133
|
+
export { StatusBadge } from "./status-badge";
|
|
134
|
+
export type { StatusBadgeProps, BadgeVariant, BadgeTrailIcon } from "./status-badge";
|
|
135
|
+
|
|
136
|
+
// Overlays
|
|
137
|
+
export { Blanket } from "./blanket";
|
|
138
|
+
export type { BlanketProps } from "./blanket";
|
|
139
|
+
export { Spotlight, SpotlightCard, useSpotlight } from "./spotlight";
|
|
140
|
+
export type { SpotlightProps, SpotlightCardProps, SpotlightStep, UseSpotlightReturn } from "./spotlight";
|
|
141
|
+
export {
|
|
142
|
+
Dialog,
|
|
143
|
+
DialogTrigger,
|
|
144
|
+
DialogPortal,
|
|
145
|
+
DialogClose,
|
|
146
|
+
DialogContent,
|
|
147
|
+
DialogTitle,
|
|
148
|
+
DialogDescription,
|
|
149
|
+
} from "./dialog";
|
|
150
|
+
export {
|
|
151
|
+
Drawer,
|
|
152
|
+
DrawerTrigger,
|
|
153
|
+
DrawerClose,
|
|
154
|
+
DrawerContent,
|
|
155
|
+
DrawerHeader,
|
|
156
|
+
DrawerFooter,
|
|
157
|
+
DrawerTitle,
|
|
158
|
+
DrawerDescription,
|
|
159
|
+
} from "./drawer";
|
|
160
|
+
export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from "./popover";
|
|
161
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from "./tooltip";
|
|
162
|
+
|
|
163
|
+
// Menu (standalone vertical)
|
|
164
|
+
export { Menu, MenuSection, MenuItem, MenuDivider } from "./menu";
|
|
165
|
+
export type { MenuProps, MenuSectionProps, MenuItemProps } from "./menu";
|
|
166
|
+
|
|
167
|
+
// Menus & Select
|
|
168
|
+
export {
|
|
169
|
+
DropdownMenu,
|
|
170
|
+
DropdownMenuTrigger,
|
|
171
|
+
DropdownMenuContent,
|
|
172
|
+
DropdownMenuItem,
|
|
173
|
+
DropdownMenuCheckboxItem,
|
|
174
|
+
DropdownMenuRadioItem,
|
|
175
|
+
DropdownMenuLabel,
|
|
176
|
+
DropdownMenuSeparator,
|
|
177
|
+
DropdownMenuShortcut,
|
|
178
|
+
DropdownMenuGroup,
|
|
179
|
+
DropdownMenuPortal,
|
|
180
|
+
DropdownMenuSub,
|
|
181
|
+
DropdownMenuSubContent,
|
|
182
|
+
DropdownMenuSubTrigger,
|
|
183
|
+
DropdownMenuRadioGroup,
|
|
184
|
+
} from "./dropdown-menu";
|
|
185
|
+
export {
|
|
186
|
+
Select,
|
|
187
|
+
SelectGroup,
|
|
188
|
+
SelectValue,
|
|
189
|
+
SelectTrigger,
|
|
190
|
+
SelectContent,
|
|
191
|
+
SelectLabel,
|
|
192
|
+
SelectItem,
|
|
193
|
+
SelectSeparator,
|
|
194
|
+
SelectScrollUpButton,
|
|
195
|
+
SelectScrollDownButton,
|
|
196
|
+
} from "./select";
|
|
197
|
+
export { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandSeparator, CommandShortcut } from "./command";
|
|
198
|
+
export type {
|
|
199
|
+
CommandProps,
|
|
200
|
+
CommandInputProps,
|
|
201
|
+
CommandListProps,
|
|
202
|
+
CommandEmptyProps,
|
|
203
|
+
CommandGroupProps,
|
|
204
|
+
CommandItemProps,
|
|
205
|
+
CommandSeparatorProps,
|
|
206
|
+
CommandShortcutProps,
|
|
207
|
+
} from "./command";
|
|
208
|
+
|
|
209
|
+
// Tabs & Accordion
|
|
210
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent } from "./tabs";
|
|
211
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from "./accordion";
|
|
212
|
+
|
|
213
|
+
// Messaging & Feedback
|
|
214
|
+
export { Alert, AlertTitle, AlertDescription, Banner } from "./alert";
|
|
215
|
+
export type { AlertProps, BannerProps } from "./alert";
|
|
216
|
+
export { Callout, CalloutIcon, CalloutTitle, CalloutText } from "./callout";
|
|
217
|
+
export type { CalloutProps, CalloutVariant } from "./callout";
|
|
218
|
+
export {
|
|
219
|
+
SectionMessage,
|
|
220
|
+
SectionMessageTitle,
|
|
221
|
+
SectionMessageContent,
|
|
222
|
+
SectionMessageActions,
|
|
223
|
+
} from "./section-message";
|
|
224
|
+
export type { SectionMessageProps, SectionMessageVariant } from "./section-message";
|
|
225
|
+
export { Spinner } from "./spinner";
|
|
226
|
+
export type { SpinnerProps } from "./spinner";
|
|
227
|
+
export { Progress, ProgressTracker } from "./progress";
|
|
228
|
+
export type { ProgressProps, ProgressTrackerStep, ProgressTrackerProps } from "./progress";
|
|
229
|
+
|
|
230
|
+
// Loading & Skeleton
|
|
231
|
+
export { Shimmer, StatCardSkeleton, TableRowSkeleton, ChartSkeleton } from "./skeleton";
|
|
232
|
+
|
|
233
|
+
// Data display
|
|
234
|
+
export { DataTable } from "./data-table";
|
|
235
|
+
export type { Column, DataTableDensity, DataTableFooterSummary, DataTableHeaderStyle } from "./data-table";
|
|
236
|
+
export { EmptyState } from "./empty-state";
|
|
237
|
+
export { PageHeader } from "./page-header";
|
|
238
|
+
export { Code, CodeBlock } from "./code";
|
|
239
|
+
export type { CodeProps, CodeBlockProps } from "./code";
|
|
240
|
+
|
|
241
|
+
// Avatar
|
|
242
|
+
export { Avatar, AvatarImage, AvatarFallback } from "./avatar";
|
|
243
|
+
export { AvatarGroup } from "./avatar-group";
|
|
244
|
+
export type { AvatarGroupProps, AvatarGroupItem } from "./avatar-group";
|
|
245
|
+
export { AvatarTag } from "./avatar-tag";
|
|
246
|
+
export type { AvatarTagProps, AvatarTagSize } from "./avatar-tag";
|
|
247
|
+
|
|
248
|
+
// Date & Calendar
|
|
249
|
+
export { Calendar, CalendarDayButton } from "./calendar";
|
|
250
|
+
export type { CalendarProps } from "./calendar";
|
|
251
|
+
export type { DateRange } from "react-day-picker";
|
|
252
|
+
export { DatePicker } from "./date-picker";
|
|
253
|
+
|
|
254
|
+
// Charts
|
|
255
|
+
export {
|
|
256
|
+
ChartContainer,
|
|
257
|
+
ChartTooltip,
|
|
258
|
+
ChartTooltipContent,
|
|
259
|
+
ChartLegend,
|
|
260
|
+
ChartLegendContent,
|
|
261
|
+
ChartStyle,
|
|
262
|
+
} from "./chart";
|
|
263
|
+
export type { ChartConfig } from "./chart";
|
|
264
|
+
export {
|
|
265
|
+
MetricSparklineCard,
|
|
266
|
+
DashboardAreaChartTemplate,
|
|
267
|
+
GroupedBarChartTemplate,
|
|
268
|
+
RankedBarListTemplate,
|
|
269
|
+
CategoryBarChartTemplate,
|
|
270
|
+
MiniSparklineChartCard,
|
|
271
|
+
AttentionListTemplate,
|
|
272
|
+
} from "./chart-templates";
|
|
273
|
+
export type {
|
|
274
|
+
MetricSparklinePoint,
|
|
275
|
+
MetricSparklineCardProps,
|
|
276
|
+
DashboardAreaChartPoint,
|
|
277
|
+
DashboardAreaChartTemplateProps,
|
|
278
|
+
GroupedBarSeries,
|
|
279
|
+
GroupedBarChartTemplateProps,
|
|
280
|
+
RankedBarItem,
|
|
281
|
+
RankedBarListTemplateProps,
|
|
282
|
+
CategoryBarPoint,
|
|
283
|
+
CategoryBarChartTemplateProps,
|
|
284
|
+
MiniSparklinePoint,
|
|
285
|
+
MiniSparklineStat,
|
|
286
|
+
MiniSparklineChartCardProps,
|
|
287
|
+
AttentionListItem,
|
|
288
|
+
AttentionListTemplateProps,
|
|
289
|
+
} from "./chart-templates";
|
|
290
|
+
|
|
291
|
+
// Toast
|
|
292
|
+
export { Toaster, toast } from "./sonner";
|
|
293
|
+
|
|
294
|
+
// Inline Edit
|
|
295
|
+
export { InlineEdit } from "./inline-edit";
|
|
296
|
+
export type { InlineEditProps } from "./inline-edit";
|
|
297
|
+
|
|
298
|
+
// Inline Dialog
|
|
299
|
+
export { InlineDialog, InlineDialogTrigger, InlineDialogContent } from "./inline-dialog";
|
|
300
|
+
export type { InlineDialogProps, InlineDialogContentProps } from "./inline-dialog";
|
|
301
|
+
|
|
302
|
+
// Flag notifications
|
|
303
|
+
export { Flag, FlagGroup, useFlagGroup } from "./flag";
|
|
304
|
+
export type { FlagProps, FlagGroupProps, FlagVariant, FlagAction, FlagGroupPosition, UseFlagGroupReturn } from "./flag";
|
|
305
|
+
|
|
306
|
+
// Responsive Show/Hide
|
|
307
|
+
export { Show, Hide, useBreakpoint } from "./responsive";
|
|
308
|
+
export type { ShowProps, HideProps, Breakpoint, UseBreakpointReturn } from "./responsive";
|
|
309
|
+
|
|
310
|
+
// Country Select
|
|
311
|
+
export { CountrySelect, COUNTRIES } from "./country-select";
|
|
312
|
+
export type { CountrySelectProps, Country } from "./country-select";
|
|
313
|
+
|
|
314
|
+
// Button variants
|
|
315
|
+
export { IconButton } from "./icon-button";
|
|
316
|
+
export type { IconButtonProps } from "./icon-button";
|
|
317
|
+
|
|
318
|
+
// Inputs
|
|
319
|
+
export { TimePicker } from "./time-picker";
|
|
320
|
+
export type { TimePickerProps } from "./time-picker";
|
|
321
|
+
|
|
322
|
+
// Typography
|
|
323
|
+
export { Heading, Text, MetricText } from "./heading";
|
|
324
|
+
export type { HeadingProps, TextProps, MetricTextProps } from "./heading";
|
|
325
|
+
|
|
326
|
+
// Status
|
|
327
|
+
export { ProgressIndicator } from "./progress-indicator";
|
|
328
|
+
export type { ProgressIndicatorProps } from "./progress-indicator";
|
|
329
|
+
|
|
330
|
+
// Utility
|
|
331
|
+
export { VisuallyHidden } from "./visually-hidden";
|
|
332
|
+
export type { VisuallyHiddenProps } from "./visually-hidden";
|