@iclips/ui 0.0.19 → 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.
- package/{LICENSE → LICENSE/Code-component-19-1703.tsx} +1 -1
- package/LICENSE/Code-component-19-1719.tsx +21 -0
- package/README.md +14 -14
- package/dist/index.cjs +6976 -4271
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1370 -552
- package/dist/index.d.ts +1370 -552
- package/dist/index.js +6862 -4197
- package/dist/index.js.map +1 -1
- package/package.json +42 -13
- package/styles/globals.css +694 -0
- package/dist/index.css +0 -8973
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
|
-
import React__default, { RefObject } from 'react';
|
|
4
3
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
5
4
|
import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
|
|
6
5
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
7
6
|
import { VariantProps } from 'class-variance-authority';
|
|
8
|
-
import { LucideIcon } from 'lucide-react';
|
|
9
7
|
import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
|
|
10
8
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
11
9
|
import { DayPicker, DateRange } from 'react-day-picker';
|
|
12
10
|
import useEmblaCarousel, { UseEmblaCarouselType } from 'embla-carousel-react';
|
|
13
|
-
import * as RechartsPrimitive from 'recharts';
|
|
14
11
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
15
12
|
import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
|
|
16
13
|
import { Command as Command$1 } from 'cmdk';
|
|
@@ -33,13 +30,14 @@ import * as ResizablePrimitive from 'react-resizable-panels';
|
|
|
33
30
|
import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
|
|
34
31
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
35
32
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
36
|
-
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
37
33
|
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
38
34
|
import { ToasterProps } from 'sonner';
|
|
39
35
|
import * as SwitchPrimitive from '@radix-ui/react-switch';
|
|
40
36
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
41
|
-
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
42
37
|
import * as TogglePrimitive from '@radix-ui/react-toggle';
|
|
38
|
+
import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
|
|
39
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
40
|
+
import * as RechartsPrimitive from 'recharts';
|
|
43
41
|
import { ClassValue } from 'clsx';
|
|
44
42
|
|
|
45
43
|
declare function Accordion({ ...props }: React$1.ComponentProps<typeof AccordionPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
@@ -49,6 +47,8 @@ declare function AccordionContent({ className, children, ...props }: React$1.Com
|
|
|
49
47
|
|
|
50
48
|
declare function AlertDialog({ ...props }: React$1.ComponentProps<typeof AlertDialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
51
49
|
declare function AlertDialogTrigger({ ...props }: React$1.ComponentProps<typeof AlertDialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
50
|
+
declare function AlertDialogPortal({ ...props }: React$1.ComponentProps<typeof AlertDialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
|
|
51
|
+
declare const AlertDialogOverlay: React$1.ForwardRefExoticComponent<Omit<AlertDialogPrimitive.AlertDialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
52
52
|
declare function AlertDialogContent({ className, ...props }: React$1.ComponentProps<typeof AlertDialogPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
53
53
|
declare function AlertDialogHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
54
54
|
declare function AlertDialogFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
@@ -64,35 +64,6 @@ declare function Alert({ className, variant, ...props }: React$1.ComponentProps<
|
|
|
64
64
|
declare function AlertTitle({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
65
65
|
declare function AlertDescription({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
66
66
|
|
|
67
|
-
interface PrimaryNavItem {
|
|
68
|
-
id: string;
|
|
69
|
-
label: string;
|
|
70
|
-
icon: LucideIcon;
|
|
71
|
-
}
|
|
72
|
-
interface SecondaryNavItem {
|
|
73
|
-
label: string;
|
|
74
|
-
icon: LucideIcon;
|
|
75
|
-
badge?: string | number;
|
|
76
|
-
chevron?: boolean;
|
|
77
|
-
highlighted?: boolean;
|
|
78
|
-
}
|
|
79
|
-
interface AppLayoutProps {
|
|
80
|
-
children: React$1.ReactNode;
|
|
81
|
-
title?: string;
|
|
82
|
-
theme?: "light" | "dark";
|
|
83
|
-
onThemeToggle?: () => void;
|
|
84
|
-
primaryNavItems?: PrimaryNavItem[];
|
|
85
|
-
secondaryNavItems?: SecondaryNavItem[];
|
|
86
|
-
secondaryNavTitle?: string;
|
|
87
|
-
activePrimaryItem?: string;
|
|
88
|
-
onPrimaryItemClick?: (id: string) => void;
|
|
89
|
-
logoComponent?: React$1.ReactNode;
|
|
90
|
-
hideSecondaryNav?: boolean;
|
|
91
|
-
defaultPrimaryNavPinned?: boolean;
|
|
92
|
-
defaultSecondaryNavOpen?: boolean;
|
|
93
|
-
}
|
|
94
|
-
declare function AppLayout({ children, title, theme, onThemeToggle, primaryNavItems, secondaryNavItems, secondaryNavTitle, activePrimaryItem, onPrimaryItemClick, logoComponent, hideSecondaryNav, defaultPrimaryNavPinned, defaultSecondaryNavOpen }: AppLayoutProps): react_jsx_runtime.JSX.Element;
|
|
95
|
-
|
|
96
67
|
declare function AspectRatio({ ...props }: React.ComponentProps<typeof AspectRatioPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
97
68
|
|
|
98
69
|
declare function Avatar({ className, ...props }: React$1.ComponentProps<typeof AvatarPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
@@ -129,144 +100,256 @@ declare const Button: React$1.ForwardRefExoticComponent<Omit<React$1.ClassAttrib
|
|
|
129
100
|
asChild?: boolean;
|
|
130
101
|
}, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
131
102
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
dataEmissao: string;
|
|
135
|
-
dataInicio: string;
|
|
136
|
-
dataTermino: string;
|
|
137
|
-
cliente: {
|
|
138
|
-
nome: string;
|
|
139
|
-
cnpj?: string;
|
|
140
|
-
endereco?: string;
|
|
141
|
-
representante?: string;
|
|
142
|
-
email?: string;
|
|
143
|
-
telefone?: string;
|
|
144
|
-
};
|
|
145
|
-
agencia: {
|
|
146
|
-
nome: string;
|
|
147
|
-
cnpj?: string;
|
|
148
|
-
endereco?: string;
|
|
149
|
-
representante?: string;
|
|
150
|
-
email?: string;
|
|
151
|
-
telefone?: string;
|
|
152
|
-
};
|
|
153
|
-
valorFee: number;
|
|
154
|
-
totalHoras: number;
|
|
155
|
-
valorHora?: number;
|
|
156
|
-
condicoesPagamento: string;
|
|
157
|
-
formaPagamento?: string;
|
|
158
|
-
servicos?: Array<{
|
|
159
|
-
nome: string;
|
|
160
|
-
descricao?: string;
|
|
161
|
-
horasEstimadas?: number;
|
|
162
|
-
}>;
|
|
163
|
-
clausulas?: Array<{
|
|
164
|
-
titulo: string;
|
|
165
|
-
conteudo: string;
|
|
166
|
-
}>;
|
|
167
|
-
observacoes?: string;
|
|
168
|
-
}
|
|
169
|
-
interface ContractTemplateProps {
|
|
170
|
-
data: DadosContrato;
|
|
171
|
-
showPreview?: boolean;
|
|
172
|
-
logo?: string;
|
|
173
|
-
showServices?: boolean;
|
|
174
|
-
}
|
|
175
|
-
declare function ContractTemplate({ data, showPreview, logo, showServices, }: ContractTemplateProps): react_jsx_runtime.JSX.Element;
|
|
176
|
-
/**
|
|
177
|
-
* Dados de exemplo para o contrato
|
|
178
|
-
* Use este objeto para testar o componente ContractTemplate
|
|
179
|
-
*/
|
|
180
|
-
declare const dadosContratoExemplo: DadosContrato;
|
|
181
|
-
|
|
182
|
-
interface ContractPrintProps {
|
|
183
|
-
/** Dados do contrato */
|
|
184
|
-
data: DadosContrato;
|
|
185
|
-
/** URL ou caminho do logo da empresa */
|
|
186
|
-
logo?: string;
|
|
187
|
-
/** Mostrar barra de ações (imprimir/download) */
|
|
188
|
-
showActions?: boolean;
|
|
189
|
-
/** Mostrar informações resumidas do contrato */
|
|
190
|
-
showSummary?: boolean;
|
|
191
|
-
/** Mostrar seção de serviços */
|
|
192
|
-
showServices?: boolean;
|
|
193
|
-
/** Mostrar informações sobre o template */
|
|
194
|
-
showInfo?: boolean;
|
|
195
|
-
/** Classe CSS adicional */
|
|
196
|
-
className?: string;
|
|
197
|
-
/** Callbacks de impressão */
|
|
198
|
-
onPrintStart?: () => void;
|
|
199
|
-
onPrintSuccess?: () => void;
|
|
200
|
-
onPrintError?: (error: Error) => void;
|
|
201
|
-
/** Callbacks de download */
|
|
202
|
-
onDownloadStart?: () => void;
|
|
203
|
-
onDownloadSuccess?: () => void;
|
|
204
|
-
onDownloadError?: (error: Error) => void;
|
|
205
|
-
}
|
|
103
|
+
declare function Calendar({ className, classNames, showOutsideDays, ...props }: React$1.ComponentProps<typeof DayPicker>): react_jsx_runtime.JSX.Element;
|
|
104
|
+
|
|
206
105
|
/**
|
|
207
|
-
*
|
|
106
|
+
* Card Component Types
|
|
208
107
|
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
108
|
+
* Type definitions for the Card component and its sub-components.
|
|
109
|
+
* Provides full TypeScript support for all Card variants.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Props for the main Card component.
|
|
214
114
|
*
|
|
215
115
|
* @example
|
|
216
116
|
* ```tsx
|
|
217
|
-
* import {
|
|
117
|
+
* import { Card, type CardProps } from "./components/ui/card";
|
|
218
118
|
*
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
* <ContractPrint
|
|
222
|
-
* data={dadosContratoExemplo}
|
|
223
|
-
* logo="/logo.png"
|
|
224
|
-
* showActions
|
|
225
|
-
* showSummary
|
|
226
|
-
* />
|
|
227
|
-
* );
|
|
119
|
+
* interface CustomCardProps extends CardProps {
|
|
120
|
+
* highlight?: boolean;
|
|
228
121
|
* }
|
|
229
122
|
* ```
|
|
230
123
|
*/
|
|
231
|
-
|
|
124
|
+
interface CardProps extends React$1.ComponentProps<"div"> {
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Props for the CardHeader component.
|
|
128
|
+
* Container for card title, description, and optional action.
|
|
129
|
+
*
|
|
130
|
+
* Uses CSS Grid to automatically layout title, description, and CardAction.
|
|
131
|
+
* When CardAction is present, creates a 2-column layout.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```tsx
|
|
135
|
+
* <CardHeader>
|
|
136
|
+
* <CardTitle>Revenue</CardTitle>
|
|
137
|
+
* <CardDescription>Last 30 days</CardDescription>
|
|
138
|
+
* <CardAction>
|
|
139
|
+
* <Badge>+12%</Badge>
|
|
140
|
+
* </CardAction>
|
|
141
|
+
* </CardHeader>
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
interface CardHeaderProps extends React$1.ComponentProps<"div"> {
|
|
145
|
+
}
|
|
232
146
|
/**
|
|
233
|
-
*
|
|
234
|
-
*
|
|
147
|
+
* Props for the CardTitle component.
|
|
148
|
+
*
|
|
149
|
+
* Renders as an <h4> element by default.
|
|
150
|
+
* Use the className prop to adjust text size for different contexts.
|
|
235
151
|
*
|
|
236
152
|
* @example
|
|
237
153
|
* ```tsx
|
|
238
|
-
*
|
|
154
|
+
* <CardTitle className="text-lg">Large Title</CardTitle>
|
|
155
|
+
* <CardTitle className="text-sm">Small Title</CardTitle>
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
interface CardTitleProps extends React$1.ComponentProps<"h4"> {
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Props for the CardDescription component.
|
|
239
162
|
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
163
|
+
* Secondary text that provides additional context.
|
|
164
|
+
* Rendered with muted foreground color.
|
|
242
165
|
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
245
|
-
*
|
|
246
|
-
* <ContractPrintPreview
|
|
247
|
-
* ref={printRef}
|
|
248
|
-
* data={dadosContratoExemplo}
|
|
249
|
-
* />
|
|
250
|
-
* </div>
|
|
251
|
-
* );
|
|
252
|
-
* }
|
|
166
|
+
* @example
|
|
167
|
+
* ```tsx
|
|
168
|
+
* <CardDescription>This is a description</CardDescription>
|
|
253
169
|
* ```
|
|
254
170
|
*/
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
171
|
+
interface CardDescriptionProps extends React$1.ComponentProps<"p"> {
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Props for the CardAction component.
|
|
175
|
+
*
|
|
176
|
+
* Container for actions or indicators in the top-right of the card header.
|
|
177
|
+
* Automatically positioned using CSS Grid when placed inside CardHeader.
|
|
178
|
+
*
|
|
179
|
+
* Common use cases:
|
|
180
|
+
* - Trend indicators (↑ ↓)
|
|
181
|
+
* - Percentage changes
|
|
182
|
+
* - Action buttons
|
|
183
|
+
* - Status badges
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```tsx
|
|
187
|
+
* // KPI card with trend indicator
|
|
188
|
+
* <CardHeader>
|
|
189
|
+
* <CardTitle>Total Revenue</CardTitle>
|
|
190
|
+
* <CardDescription>$45,231.89</CardDescription>
|
|
191
|
+
* <CardAction>
|
|
192
|
+
* <Badge variant="secondary" className="bg-green-50">
|
|
193
|
+
* <TrendingUp className="h-3 w-3 mr-1" />
|
|
194
|
+
* +20.1%
|
|
195
|
+
* </Badge>
|
|
196
|
+
* </CardAction>
|
|
197
|
+
* </CardHeader>
|
|
198
|
+
*
|
|
199
|
+
* // Dashboard card with action button
|
|
200
|
+
* <CardHeader>
|
|
201
|
+
* <CardTitle>Recent Activity</CardTitle>
|
|
202
|
+
* <CardAction>
|
|
203
|
+
* <Button variant="ghost" size="icon">
|
|
204
|
+
* <MoreVertical className="h-4 w-4" />
|
|
205
|
+
* </Button>
|
|
206
|
+
* </CardAction>
|
|
207
|
+
* </CardHeader>
|
|
208
|
+
* ```
|
|
209
|
+
*/
|
|
210
|
+
interface CardActionProps extends React$1.ComponentProps<"div"> {
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Props for the CardContent component.
|
|
214
|
+
*
|
|
215
|
+
* Main content area of the card.
|
|
216
|
+
* Includes horizontal padding and conditional bottom padding.
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```tsx
|
|
220
|
+
* <CardContent>
|
|
221
|
+
* <p>Your content here</p>
|
|
222
|
+
* </CardContent>
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
interface CardContentProps extends React$1.ComponentProps<"div"> {
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Props for the CardFooter component.
|
|
229
|
+
*
|
|
230
|
+
* Footer section for actions or additional information.
|
|
231
|
+
* Typically used for buttons or metadata.
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```tsx
|
|
235
|
+
* <CardFooter className="flex justify-between">
|
|
236
|
+
* <Button variant="ghost">Cancel</Button>
|
|
237
|
+
* <Button>Save</Button>
|
|
238
|
+
* </CardFooter>
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
interface CardFooterProps extends React$1.ComponentProps<"div"> {
|
|
242
|
+
}
|
|
263
243
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
244
|
+
/**
|
|
245
|
+
* Card
|
|
246
|
+
*
|
|
247
|
+
* A flexible container component for grouping related content.
|
|
248
|
+
* Supports composition with CardHeader, CardContent, and CardFooter.
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* ```tsx
|
|
252
|
+
* <Card>
|
|
253
|
+
* <CardHeader>
|
|
254
|
+
* <CardTitle>Title</CardTitle>
|
|
255
|
+
* <CardDescription>Description</CardDescription>
|
|
256
|
+
* </CardHeader>
|
|
257
|
+
* <CardContent>Content here</CardContent>
|
|
258
|
+
* </Card>
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
declare const Card: React$1.ForwardRefExoticComponent<Omit<CardProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
262
|
+
/**
|
|
263
|
+
* CardHeader
|
|
264
|
+
*
|
|
265
|
+
* Header section of the card containing title, description, and optional action.
|
|
266
|
+
* Uses CSS Grid for automatic layout when CardAction is present.
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```tsx
|
|
270
|
+
* <CardHeader>
|
|
271
|
+
* <CardTitle>Analytics</CardTitle>
|
|
272
|
+
* <CardDescription>Your metrics</CardDescription>
|
|
273
|
+
* <CardAction>
|
|
274
|
+
* <Badge>+12%</Badge>
|
|
275
|
+
* </CardAction>
|
|
276
|
+
* </CardHeader>
|
|
277
|
+
* ```
|
|
278
|
+
*/
|
|
279
|
+
declare const CardHeader: React$1.ForwardRefExoticComponent<Omit<CardHeaderProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
280
|
+
/**
|
|
281
|
+
* CardTitle
|
|
282
|
+
*
|
|
283
|
+
* Title element for the card, rendered as h4 by default.
|
|
284
|
+
*
|
|
285
|
+
* @example
|
|
286
|
+
* ```tsx
|
|
287
|
+
* <CardTitle>Total Revenue</CardTitle>
|
|
288
|
+
* <CardTitle className="text-sm">Small Title</CardTitle>
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
declare const CardTitle: React$1.ForwardRefExoticComponent<Omit<CardTitleProps, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
292
|
+
/**
|
|
293
|
+
* CardDescription
|
|
294
|
+
*
|
|
295
|
+
* Descriptive text for the card with muted styling.
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```tsx
|
|
299
|
+
* <CardDescription>Last 30 days of activity</CardDescription>
|
|
300
|
+
* ```
|
|
301
|
+
*/
|
|
302
|
+
declare const CardDescription: React$1.ForwardRefExoticComponent<Omit<CardDescriptionProps, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
303
|
+
/**
|
|
304
|
+
* CardAction
|
|
305
|
+
*
|
|
306
|
+
* Action or indicator placed in the top-right of the card header.
|
|
307
|
+
* Ideal for trend indicators, badges, or action buttons in dashboard KPI cards.
|
|
308
|
+
*
|
|
309
|
+
* @example
|
|
310
|
+
* ```tsx
|
|
311
|
+
* // Trend indicator
|
|
312
|
+
* <CardAction>
|
|
313
|
+
* <Badge className="bg-green-50">
|
|
314
|
+
* <TrendingUp className="h-3 w-3" /> +12%
|
|
315
|
+
* </Badge>
|
|
316
|
+
* </CardAction>
|
|
317
|
+
*
|
|
318
|
+
* // Action button
|
|
319
|
+
* <CardAction>
|
|
320
|
+
* <Button variant="ghost" size="icon">
|
|
321
|
+
* <MoreVertical className="h-4 w-4" />
|
|
322
|
+
* </Button>
|
|
323
|
+
* </CardAction>
|
|
324
|
+
* ```
|
|
325
|
+
*/
|
|
326
|
+
declare const CardAction: React$1.ForwardRefExoticComponent<Omit<CardActionProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
327
|
+
/**
|
|
328
|
+
* CardContent
|
|
329
|
+
*
|
|
330
|
+
* Main content area of the card.
|
|
331
|
+
*
|
|
332
|
+
* @example
|
|
333
|
+
* ```tsx
|
|
334
|
+
* <CardContent>
|
|
335
|
+
* <p>Your content here</p>
|
|
336
|
+
* </CardContent>
|
|
337
|
+
* ```
|
|
338
|
+
*/
|
|
339
|
+
declare const CardContent: React$1.ForwardRefExoticComponent<Omit<CardContentProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
340
|
+
/**
|
|
341
|
+
* CardFooter
|
|
342
|
+
*
|
|
343
|
+
* Footer section for actions or additional information.
|
|
344
|
+
*
|
|
345
|
+
* @example
|
|
346
|
+
* ```tsx
|
|
347
|
+
* <CardFooter>
|
|
348
|
+
* <Button>Action</Button>
|
|
349
|
+
* </CardFooter>
|
|
350
|
+
* ```
|
|
351
|
+
*/
|
|
352
|
+
declare const CardFooter: React$1.ForwardRefExoticComponent<Omit<CardFooterProps, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
270
353
|
|
|
271
354
|
type CarouselApi = UseEmblaCarouselType[1];
|
|
272
355
|
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
|
|
@@ -284,131 +367,17 @@ declare function CarouselItem({ className, ...props }: React$1.ComponentProps<"d
|
|
|
284
367
|
declare function CarouselPrevious({ className, variant, size, ...props }: React$1.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
|
|
285
368
|
declare function CarouselNext({ className, variant, size, ...props }: React$1.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
|
|
286
369
|
|
|
287
|
-
declare const THEMES: {
|
|
288
|
-
readonly light: "";
|
|
289
|
-
readonly dark: ".dark";
|
|
290
|
-
};
|
|
291
|
-
type ChartConfig = {
|
|
292
|
-
[k in string]: {
|
|
293
|
-
label?: React$1.ReactNode;
|
|
294
|
-
icon?: React$1.ComponentType;
|
|
295
|
-
} & ({
|
|
296
|
-
color?: string;
|
|
297
|
-
theme?: never;
|
|
298
|
-
} | {
|
|
299
|
-
color?: never;
|
|
300
|
-
theme: Record<keyof typeof THEMES, string>;
|
|
301
|
-
});
|
|
302
|
-
};
|
|
303
|
-
declare function ChartContainer({ id, className, children, config, ...props }: React$1.ComponentProps<"div"> & {
|
|
304
|
-
config: ChartConfig;
|
|
305
|
-
children: React$1.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
306
|
-
}): react_jsx_runtime.JSX.Element;
|
|
307
|
-
declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
|
|
308
|
-
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: React$1.ComponentProps<typeof RechartsPrimitive.Tooltip> & React$1.ComponentProps<"div"> & {
|
|
309
|
-
hideLabel?: boolean;
|
|
310
|
-
hideIndicator?: boolean;
|
|
311
|
-
indicator?: "line" | "dot" | "dashed";
|
|
312
|
-
nameKey?: string;
|
|
313
|
-
labelKey?: string;
|
|
314
|
-
payload?: any[];
|
|
315
|
-
label?: string;
|
|
316
|
-
}): react_jsx_runtime.JSX.Element | null;
|
|
317
|
-
declare const ChartLegend: typeof RechartsPrimitive.Legend;
|
|
318
|
-
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React$1.ComponentProps<"div"> & {
|
|
319
|
-
hideIcon?: boolean;
|
|
320
|
-
nameKey?: string;
|
|
321
|
-
payload?: any[];
|
|
322
|
-
verticalAlign?: "top" | "bottom";
|
|
323
|
-
}): react_jsx_runtime.JSX.Element | null;
|
|
324
|
-
|
|
325
370
|
declare function Checkbox({ className, ...props }: React$1.ComponentProps<typeof CheckboxPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
326
371
|
|
|
327
|
-
interface ColorPickerProps {
|
|
328
|
-
value?: string;
|
|
329
|
-
onChange?: (color: string) => void;
|
|
330
|
-
label?: string;
|
|
331
|
-
className?: string;
|
|
332
|
-
disabled?: boolean;
|
|
333
|
-
}
|
|
334
|
-
declare function ColorPicker({ value, onChange, label, className, disabled, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
|
|
335
|
-
|
|
336
372
|
declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
337
373
|
declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime.JSX.Element;
|
|
338
374
|
declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime.JSX.Element;
|
|
339
375
|
|
|
340
|
-
interface DateTimePickerProps {
|
|
341
|
-
date?: Date;
|
|
342
|
-
onChange?: (date: Date | undefined) => void;
|
|
343
|
-
label?: string;
|
|
344
|
-
placeholder?: string;
|
|
345
|
-
className?: string;
|
|
346
|
-
disabled?: boolean;
|
|
347
|
-
}
|
|
348
|
-
declare function DateTimePicker({ date, onChange, label, placeholder, className, disabled, }: DateTimePickerProps): react_jsx_runtime.JSX.Element;
|
|
349
|
-
|
|
350
|
-
interface DateRangePickerProps {
|
|
351
|
-
dateRange?: DateRange;
|
|
352
|
-
onChange?: (range: DateRange | undefined) => void;
|
|
353
|
-
label?: string;
|
|
354
|
-
placeholder?: string;
|
|
355
|
-
className?: string;
|
|
356
|
-
disabled?: boolean;
|
|
357
|
-
withTime?: boolean;
|
|
358
|
-
}
|
|
359
|
-
declare function DateRangePicker({ dateRange, onChange, label, placeholder, className, disabled, withTime, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
|
|
360
|
-
|
|
361
|
-
interface TimePickerProps {
|
|
362
|
-
date?: Date;
|
|
363
|
-
onChange?: (date: Date | undefined) => void;
|
|
364
|
-
label?: string;
|
|
365
|
-
className?: string;
|
|
366
|
-
disabled?: boolean;
|
|
367
|
-
}
|
|
368
|
-
declare function TimePicker({ date, onChange, label, className, disabled, }: TimePickerProps): react_jsx_runtime.JSX.Element;
|
|
369
|
-
|
|
370
|
-
interface KanbanCardTag {
|
|
371
|
-
id: string;
|
|
372
|
-
label: string;
|
|
373
|
-
color?: string;
|
|
374
|
-
}
|
|
375
|
-
interface KanbanCardAssignee {
|
|
376
|
-
id: string;
|
|
377
|
-
name: string;
|
|
378
|
-
avatar?: string;
|
|
379
|
-
initials?: string;
|
|
380
|
-
}
|
|
381
|
-
interface KanbanCardProps {
|
|
382
|
-
id: string;
|
|
383
|
-
title: string;
|
|
384
|
-
description?: string;
|
|
385
|
-
coverImage?: string;
|
|
386
|
-
thumbnailImage?: string;
|
|
387
|
-
tags?: KanbanCardTag[];
|
|
388
|
-
assignees?: KanbanCardAssignee[];
|
|
389
|
-
priority?: "low" | "medium" | "high" | "urgent";
|
|
390
|
-
dueDate?: Date;
|
|
391
|
-
comments?: number;
|
|
392
|
-
attachments?: number;
|
|
393
|
-
checklist?: {
|
|
394
|
-
completed: number;
|
|
395
|
-
total: number;
|
|
396
|
-
};
|
|
397
|
-
progress?: number;
|
|
398
|
-
status?: string;
|
|
399
|
-
variant?: "default" | "compact" | "detailed";
|
|
400
|
-
isDragging?: boolean;
|
|
401
|
-
onClick?: () => void;
|
|
402
|
-
onEdit?: () => void;
|
|
403
|
-
onDelete?: () => void;
|
|
404
|
-
onDuplicate?: () => void;
|
|
405
|
-
className?: string;
|
|
406
|
-
}
|
|
407
|
-
declare const KanbanCard: React$1.ForwardRefExoticComponent<KanbanCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
408
|
-
|
|
409
376
|
declare function Dialog({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
410
377
|
declare function DialogTrigger({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
378
|
+
declare function DialogPortal({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
|
|
411
379
|
declare function DialogClose({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Close>): react_jsx_runtime.JSX.Element;
|
|
380
|
+
declare const DialogOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
412
381
|
declare function DialogContent({ className, children, ...props }: React$1.ComponentProps<typeof DialogPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
413
382
|
declare function DialogHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
414
383
|
declare function DialogFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
@@ -453,7 +422,9 @@ declare function ContextMenuShortcut({ className, ...props }: React$1.ComponentP
|
|
|
453
422
|
|
|
454
423
|
declare function Drawer({ ...props }: React$1.ComponentProps<typeof Drawer$1.Root>): react_jsx_runtime.JSX.Element;
|
|
455
424
|
declare const DrawerTrigger: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
425
|
+
declare function DrawerPortal({ ...props }: React$1.ComponentProps<typeof Drawer$1.Portal>): react_jsx_runtime.JSX.Element;
|
|
456
426
|
declare const DrawerClose: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
427
|
+
declare const DrawerOverlay: React$1.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
457
428
|
declare const DrawerContent: React$1.ForwardRefExoticComponent<Omit<Omit<DialogPrimitive.DialogContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
458
429
|
declare function DrawerHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
459
430
|
declare function DrawerFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
@@ -552,7 +523,9 @@ declare function NavigationMenuItem({ className, ...props }: React$1.ComponentPr
|
|
|
552
523
|
declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
553
524
|
declare function NavigationMenuTrigger({ className, children, ...props }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
554
525
|
declare function NavigationMenuContent({ className, ...props }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
526
|
+
declare function NavigationMenuViewport({ className, ...props }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Viewport>): react_jsx_runtime.JSX.Element;
|
|
555
527
|
declare function NavigationMenuLink({ className, ...props }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Link>): react_jsx_runtime.JSX.Element;
|
|
528
|
+
declare function NavigationMenuIndicator({ className, ...props }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Indicator>): react_jsx_runtime.JSX.Element;
|
|
556
529
|
|
|
557
530
|
declare function Pagination({ className, ...props }: React$1.ComponentProps<"nav">): react_jsx_runtime.JSX.Element;
|
|
558
531
|
declare function PaginationContent({ className, ...props }: React$1.ComponentProps<"ul">): react_jsx_runtime.JSX.Element;
|
|
@@ -568,15 +541,16 @@ declare function PaginationEllipsis({ className, ...props }: React$1.ComponentPr
|
|
|
568
541
|
declare function Popover({ ...props }: React$1.ComponentProps<typeof PopoverPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
569
542
|
declare const PopoverTrigger: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
570
543
|
declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
544
|
+
declare const PopoverAnchor: React$1.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverAnchorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
571
545
|
|
|
572
546
|
declare function Progress({ className, value, ...props }: React$1.ComponentProps<typeof ProgressPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
573
547
|
|
|
574
548
|
declare function RadioGroup({ className, ...props }: React$1.ComponentProps<typeof RadioGroupPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
575
549
|
declare function RadioGroupItem({ className, ...props }: React$1.ComponentProps<typeof RadioGroupPrimitive.Item>): react_jsx_runtime.JSX.Element;
|
|
576
550
|
|
|
577
|
-
declare function ResizablePanelGroup({ className, ...props }: React
|
|
578
|
-
declare function ResizablePanel({ ...props }: React
|
|
579
|
-
declare function ResizableHandle({ withHandle, className, ...props }: React
|
|
551
|
+
declare function ResizablePanelGroup({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>): react_jsx_runtime.JSX.Element;
|
|
552
|
+
declare function ResizablePanel({ ...props }: React.ComponentProps<typeof ResizablePrimitive.Panel>): react_jsx_runtime.JSX.Element;
|
|
553
|
+
declare function ResizableHandle({ withHandle, className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
|
|
580
554
|
withHandle?: boolean;
|
|
581
555
|
}): react_jsx_runtime.JSX.Element;
|
|
582
556
|
|
|
@@ -593,33 +567,847 @@ declare function SelectContent({ className, children, position, ...props }: Reac
|
|
|
593
567
|
declare function SelectLabel({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Label>): react_jsx_runtime.JSX.Element;
|
|
594
568
|
declare function SelectItem({ className, children, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Item>): react_jsx_runtime.JSX.Element;
|
|
595
569
|
declare function SelectSeparator({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.Separator>): react_jsx_runtime.JSX.Element;
|
|
570
|
+
declare function SelectScrollUpButton({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): react_jsx_runtime.JSX.Element;
|
|
571
|
+
declare function SelectScrollDownButton({ className, ...props }: React$1.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): react_jsx_runtime.JSX.Element;
|
|
596
572
|
|
|
597
573
|
declare function Separator({ className, orientation, decorative, ...props }: React$1.ComponentProps<typeof SeparatorPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
598
574
|
|
|
599
575
|
declare function Sheet({ ...props }: React$1.ComponentProps<typeof DialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
600
|
-
declare
|
|
601
|
-
declare
|
|
602
|
-
declare
|
|
576
|
+
declare const SheetTrigger: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTriggerProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
577
|
+
declare const SheetClose: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogCloseProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
|
|
578
|
+
declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
|
|
579
|
+
declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
580
|
+
interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {
|
|
603
581
|
side?: "top" | "right" | "bottom" | "left";
|
|
604
|
-
}
|
|
605
|
-
declare
|
|
606
|
-
declare function
|
|
607
|
-
declare
|
|
608
|
-
|
|
582
|
+
}
|
|
583
|
+
declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
584
|
+
declare function SheetHeader({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
585
|
+
declare namespace SheetHeader {
|
|
586
|
+
var displayName: string;
|
|
587
|
+
}
|
|
588
|
+
declare function SheetFooter({ className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
589
|
+
declare namespace SheetFooter {
|
|
590
|
+
var displayName: string;
|
|
591
|
+
}
|
|
592
|
+
declare const SheetTitle: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTitleProps & React$1.RefAttributes<HTMLHeadingElement>, "ref"> & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
593
|
+
declare const SheetDescription: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>, "ref"> & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
609
594
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
595
|
+
interface SkeletonProps extends React.ComponentProps<"div"> {
|
|
596
|
+
/** Animation variant: pulse (default) or shimmer (premium) */
|
|
597
|
+
variant?: "pulse" | "shimmer";
|
|
598
|
+
}
|
|
599
|
+
declare function Skeleton({ className, variant, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
614
600
|
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
601
|
+
declare function Slider({ className, defaultValue, value, min, max, ...props }: React$1.ComponentProps<typeof SliderPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
602
|
+
|
|
603
|
+
declare const Toaster: ({ ...props }: ToasterProps) => react_jsx_runtime.JSX.Element;
|
|
604
|
+
|
|
605
|
+
declare function Switch({ className, ...props }: React$1.ComponentProps<typeof SwitchPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
606
|
+
|
|
607
|
+
interface TableProps extends React$1.ComponentProps<"table"> {
|
|
608
|
+
}
|
|
609
|
+
interface TableHeaderProps extends React$1.ComponentProps<"thead"> {
|
|
610
|
+
}
|
|
611
|
+
interface TableBodyProps extends React$1.ComponentProps<"tbody"> {
|
|
612
|
+
}
|
|
613
|
+
interface TableFooterProps extends React$1.ComponentProps<"tfoot"> {
|
|
614
|
+
}
|
|
615
|
+
interface TableRowProps extends React$1.ComponentProps<"tr"> {
|
|
616
|
+
}
|
|
617
|
+
interface TableHeadProps extends React$1.ComponentProps<"th"> {
|
|
618
|
+
}
|
|
619
|
+
interface TableCellProps extends React$1.ComponentProps<"td"> {
|
|
620
|
+
}
|
|
621
|
+
interface TableCaptionProps extends React$1.ComponentProps<"caption"> {
|
|
622
|
+
}
|
|
623
|
+
declare const Table: React$1.ForwardRefExoticComponent<Omit<TableProps, "ref"> & React$1.RefAttributes<HTMLTableElement>>;
|
|
624
|
+
declare const TableHeader: React$1.ForwardRefExoticComponent<Omit<TableHeaderProps, "ref"> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
625
|
+
declare const TableBody: React$1.ForwardRefExoticComponent<Omit<TableBodyProps, "ref"> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
626
|
+
declare const TableFooter: React$1.ForwardRefExoticComponent<Omit<TableFooterProps, "ref"> & React$1.RefAttributes<HTMLTableSectionElement>>;
|
|
627
|
+
declare const TableRow: React$1.ForwardRefExoticComponent<Omit<TableRowProps, "ref"> & React$1.RefAttributes<HTMLTableRowElement>>;
|
|
628
|
+
declare const TableHead: React$1.ForwardRefExoticComponent<Omit<TableHeadProps, "ref"> & React$1.RefAttributes<HTMLTableCellElement>>;
|
|
629
|
+
declare const TableCell: React$1.ForwardRefExoticComponent<Omit<TableCellProps, "ref"> & React$1.RefAttributes<HTMLTableCellElement>>;
|
|
630
|
+
declare const TableCaption: React$1.ForwardRefExoticComponent<Omit<TableCaptionProps, "ref"> & React$1.RefAttributes<HTMLTableCaptionElement>>;
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* Utility types for DataTable implementations
|
|
634
|
+
*
|
|
635
|
+
* These types provide standard interfaces for common DataTable patterns
|
|
636
|
+
* like sorting, pagination, column definitions, and selection.
|
|
637
|
+
*/
|
|
638
|
+
/**
|
|
639
|
+
* Direction of sorting
|
|
640
|
+
*/
|
|
641
|
+
type SortDirection = "asc" | "desc" | null;
|
|
642
|
+
/**
|
|
643
|
+
* Sort configuration for a table
|
|
644
|
+
*
|
|
645
|
+
* @example
|
|
646
|
+
* ```tsx
|
|
647
|
+
* const [sortConfig, setSortConfig] = useState<SortConfig<User>>({
|
|
648
|
+
* column: "name",
|
|
649
|
+
* direction: "asc"
|
|
650
|
+
* });
|
|
651
|
+
* ```
|
|
652
|
+
*/
|
|
653
|
+
interface SortConfig<T extends Record<string, any>> {
|
|
654
|
+
column: keyof T | null;
|
|
655
|
+
direction: SortDirection;
|
|
656
|
+
}
|
|
657
|
+
/**
|
|
658
|
+
* Column definition for a DataTable
|
|
659
|
+
*
|
|
660
|
+
* @example
|
|
661
|
+
* ```tsx
|
|
662
|
+
* const columns: ColumnDef<User>[] = [
|
|
663
|
+
* {
|
|
664
|
+
* key: "name",
|
|
665
|
+
* header: "Name",
|
|
666
|
+
* sortable: true,
|
|
667
|
+
* width: "200px"
|
|
668
|
+
* },
|
|
669
|
+
* {
|
|
670
|
+
* key: "email",
|
|
671
|
+
* header: "Email",
|
|
672
|
+
* render: (value, row) => <a href={`mailto:${value}`}>{value}</a>
|
|
673
|
+
* }
|
|
674
|
+
* ];
|
|
675
|
+
* ```
|
|
676
|
+
*/
|
|
677
|
+
interface ColumnDef<T extends Record<string, any>> {
|
|
678
|
+
/** Key of the data property to display */
|
|
679
|
+
key: keyof T;
|
|
680
|
+
/** Header label or React node */
|
|
681
|
+
header: string | React.ReactNode;
|
|
682
|
+
/** Whether this column is sortable */
|
|
683
|
+
sortable?: boolean;
|
|
684
|
+
/** Column width (CSS value) */
|
|
685
|
+
width?: string | number;
|
|
686
|
+
/** Text alignment */
|
|
687
|
+
align?: "left" | "center" | "right";
|
|
688
|
+
/** Custom render function for the cell content */
|
|
689
|
+
render?: (value: T[keyof T], row: T, index: number) => React.ReactNode;
|
|
690
|
+
/** Additional className for the cell */
|
|
691
|
+
className?: string;
|
|
692
|
+
/** Additional className for the header */
|
|
693
|
+
headerClassName?: string;
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Pagination configuration
|
|
697
|
+
*
|
|
698
|
+
* @example
|
|
699
|
+
* ```tsx
|
|
700
|
+
* const [pagination, setPagination] = useState<PaginationConfig>({
|
|
701
|
+
* currentPage: 1,
|
|
702
|
+
* pageSize: 10,
|
|
703
|
+
* totalItems: 100
|
|
704
|
+
* });
|
|
705
|
+
* ```
|
|
706
|
+
*/
|
|
707
|
+
interface PaginationConfig {
|
|
708
|
+
/** Current page number (1-indexed) */
|
|
709
|
+
currentPage: number;
|
|
710
|
+
/** Number of items per page */
|
|
711
|
+
pageSize: number;
|
|
712
|
+
/** Total number of items */
|
|
713
|
+
totalItems: number;
|
|
714
|
+
/** Callback when page changes */
|
|
715
|
+
onPageChange?: (page: number) => void;
|
|
716
|
+
/** Callback when page size changes */
|
|
717
|
+
onPageSizeChange?: (size: number) => void;
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* Helper to calculate pagination metadata
|
|
721
|
+
*/
|
|
722
|
+
interface PaginationMetadata {
|
|
723
|
+
totalPages: number;
|
|
724
|
+
startIndex: number;
|
|
725
|
+
endIndex: number;
|
|
726
|
+
hasNextPage: boolean;
|
|
727
|
+
hasPreviousPage: boolean;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* Selection state for table rows
|
|
731
|
+
*
|
|
732
|
+
* @example
|
|
733
|
+
* ```tsx
|
|
734
|
+
* const [selection, setSelection] = useState<SelectionState>({
|
|
735
|
+
* selectedIds: new Set(["1", "2"]),
|
|
736
|
+
* isAllSelected: false
|
|
737
|
+
* });
|
|
738
|
+
* ```
|
|
739
|
+
*/
|
|
740
|
+
interface SelectionState {
|
|
741
|
+
/** Set of selected row IDs */
|
|
742
|
+
selectedIds: Set<string | number>;
|
|
743
|
+
/** Whether all rows are selected */
|
|
744
|
+
isAllSelected: boolean;
|
|
745
|
+
}
|
|
746
|
+
/**
|
|
747
|
+
* Complete table state with all common features
|
|
748
|
+
*
|
|
749
|
+
* @example
|
|
750
|
+
* ```tsx
|
|
751
|
+
* const [tableState, setTableState] = useState<TableState<User>>({
|
|
752
|
+
* data: users,
|
|
753
|
+
* sort: { column: "name", direction: "asc" },
|
|
754
|
+
* pagination: { currentPage: 1, pageSize: 10, totalItems: 100 },
|
|
755
|
+
* selection: { selectedIds: new Set(), isAllSelected: false }
|
|
756
|
+
* });
|
|
757
|
+
* ```
|
|
758
|
+
*/
|
|
759
|
+
interface TableState<T extends Record<string, any>> {
|
|
760
|
+
/** Table data */
|
|
761
|
+
data: T[];
|
|
762
|
+
/** Sort configuration */
|
|
763
|
+
sort?: SortConfig<T>;
|
|
764
|
+
/** Pagination configuration */
|
|
765
|
+
pagination?: PaginationConfig;
|
|
766
|
+
/** Selection state */
|
|
767
|
+
selection?: SelectionState;
|
|
768
|
+
/** Loading state */
|
|
769
|
+
isLoading?: boolean;
|
|
770
|
+
/** Error state */
|
|
771
|
+
error?: string | null;
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Filter operator types
|
|
775
|
+
*/
|
|
776
|
+
type FilterOperator = "equals" | "contains" | "startsWith" | "endsWith" | "greaterThan" | "lessThan" | "between" | "in";
|
|
777
|
+
/**
|
|
778
|
+
* Filter configuration for a column
|
|
779
|
+
*
|
|
780
|
+
* @example
|
|
781
|
+
* ```tsx
|
|
782
|
+
* const filters: FilterConfig<User>[] = [
|
|
783
|
+
* {
|
|
784
|
+
* column: "status",
|
|
785
|
+
* operator: "in",
|
|
786
|
+
* value: ["active", "pending"]
|
|
787
|
+
* },
|
|
788
|
+
* {
|
|
789
|
+
* column: "age",
|
|
790
|
+
* operator: "greaterThan",
|
|
791
|
+
* value: 18
|
|
792
|
+
* }
|
|
793
|
+
* ];
|
|
794
|
+
* ```
|
|
795
|
+
*/
|
|
796
|
+
interface FilterConfig<T extends Record<string, any>> {
|
|
797
|
+
column: keyof T;
|
|
798
|
+
operator: FilterOperator;
|
|
799
|
+
value: any;
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* Configuration for draggable rows
|
|
803
|
+
*/
|
|
804
|
+
interface DragDropConfig {
|
|
805
|
+
/** Whether drag and drop is enabled */
|
|
806
|
+
enabled: boolean;
|
|
807
|
+
/** Callback when a row is dropped */
|
|
808
|
+
onDrop?: (dragIndex: number, dropIndex: number) => void;
|
|
809
|
+
/** Custom drag handle component */
|
|
810
|
+
dragHandle?: React.ReactNode;
|
|
811
|
+
}
|
|
812
|
+
/**
|
|
813
|
+
* Configuration for expandable rows
|
|
814
|
+
*
|
|
815
|
+
* @example
|
|
816
|
+
* ```tsx
|
|
817
|
+
* const expandConfig: RowExpansionConfig<User> = {
|
|
818
|
+
* enabled: true,
|
|
819
|
+
* expandedRows: new Set(["1", "3"]),
|
|
820
|
+
* renderExpandedContent: (row) => (
|
|
821
|
+
* <div>Details for {row.name}</div>
|
|
822
|
+
* )
|
|
823
|
+
* };
|
|
824
|
+
* ```
|
|
825
|
+
*/
|
|
826
|
+
interface RowExpansionConfig<T extends Record<string, any>> {
|
|
827
|
+
/** Whether row expansion is enabled */
|
|
828
|
+
enabled: boolean;
|
|
829
|
+
/** Set of expanded row IDs */
|
|
830
|
+
expandedRows?: Set<string | number>;
|
|
831
|
+
/** Callback when row expansion changes */
|
|
832
|
+
onExpansionChange?: (rowId: string | number, isExpanded: boolean) => void;
|
|
833
|
+
/** Custom content to render when row is expanded */
|
|
834
|
+
renderExpandedContent?: (row: T, index: number) => React.ReactNode;
|
|
835
|
+
}
|
|
836
|
+
/**
|
|
837
|
+
* Sort function type
|
|
838
|
+
*/
|
|
839
|
+
type SortFunction<T extends Record<string, any>> = (a: T, b: T, config: SortConfig<T>) => number;
|
|
840
|
+
/**
|
|
841
|
+
* Filter function type
|
|
842
|
+
*/
|
|
843
|
+
type FilterFunction<T extends Record<string, any>> = (row: T, filters: FilterConfig<T>[]) => boolean;
|
|
844
|
+
/**
|
|
845
|
+
* Helper function to calculate pagination metadata
|
|
846
|
+
*/
|
|
847
|
+
declare function calculatePaginationMetadata(config: PaginationConfig): PaginationMetadata;
|
|
848
|
+
|
|
849
|
+
/**
|
|
850
|
+
* Labels for internationalization
|
|
851
|
+
*/
|
|
852
|
+
interface TablePaginationLabels {
|
|
853
|
+
/** "Anterior" */
|
|
854
|
+
previous?: string;
|
|
855
|
+
/** "Próxima" */
|
|
856
|
+
next?: string;
|
|
857
|
+
/** "Primeira" */
|
|
858
|
+
first?: string;
|
|
859
|
+
/** "Última" */
|
|
860
|
+
last?: string;
|
|
861
|
+
/** "Mostrando" */
|
|
862
|
+
showing?: string;
|
|
863
|
+
/** "de" */
|
|
864
|
+
of?: string;
|
|
865
|
+
/** "resultados" */
|
|
866
|
+
results?: string;
|
|
867
|
+
/** "Itens por página" */
|
|
868
|
+
itemsPerPage?: string;
|
|
869
|
+
/** "Página" */
|
|
870
|
+
page?: string;
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* Props for the TablePagination component
|
|
874
|
+
*
|
|
875
|
+
* @example
|
|
876
|
+
* ```tsx
|
|
877
|
+
* // With useTablePagination hook
|
|
878
|
+
* const pagination = useTablePagination(data, { pageSize: 10 });
|
|
879
|
+
*
|
|
880
|
+
* <TablePagination
|
|
881
|
+
* currentPage={pagination.currentPage}
|
|
882
|
+
* totalPages={pagination.totalPages}
|
|
883
|
+
* pageSize={pagination.pageSize}
|
|
884
|
+
* totalItems={pagination.totalItems}
|
|
885
|
+
* onPageChange={pagination.goToPage}
|
|
886
|
+
* onPageSizeChange={pagination.setPageSize}
|
|
887
|
+
* />
|
|
888
|
+
* ```
|
|
889
|
+
*/
|
|
890
|
+
interface TablePaginationProps {
|
|
891
|
+
/** Current page number (1-indexed) */
|
|
892
|
+
currentPage: number;
|
|
893
|
+
/** Total number of pages */
|
|
894
|
+
totalPages: number;
|
|
895
|
+
/** Current page size */
|
|
896
|
+
pageSize: number;
|
|
897
|
+
/** Total number of items */
|
|
898
|
+
totalItems: number;
|
|
899
|
+
/** Callback when page changes */
|
|
900
|
+
onPageChange: (page: number) => void;
|
|
901
|
+
/** Callback when page size changes */
|
|
902
|
+
onPageSizeChange?: (size: number) => void;
|
|
903
|
+
/** Available page size options */
|
|
904
|
+
pageSizeOptions?: number[];
|
|
905
|
+
/** Maximum number of visible page buttons */
|
|
906
|
+
maxVisiblePages?: number;
|
|
907
|
+
/** Show "Showing X of Y" info */
|
|
908
|
+
showInfo?: boolean;
|
|
909
|
+
/** Show page number buttons */
|
|
910
|
+
showPageNumbers?: boolean;
|
|
911
|
+
/** Show page size selector */
|
|
912
|
+
showPageSizeSelector?: boolean;
|
|
913
|
+
/** Show first/last page buttons */
|
|
914
|
+
showFirstLastButtons?: boolean;
|
|
915
|
+
/** Custom labels for i18n */
|
|
916
|
+
labels?: TablePaginationLabels;
|
|
917
|
+
/** Additional className */
|
|
918
|
+
className?: string;
|
|
919
|
+
}
|
|
920
|
+
/**
|
|
921
|
+
* Generate array of page numbers with ellipsis
|
|
922
|
+
*/
|
|
923
|
+
declare function getPageNumbers(currentPage: number, totalPages: number, maxVisible?: number): (number | "ellipsis")[];
|
|
924
|
+
/**
|
|
925
|
+
* TablePagination Component
|
|
926
|
+
*
|
|
927
|
+
* A complete, ready-to-use pagination component for tables and data grids.
|
|
928
|
+
* Integrates seamlessly with the `useTablePagination` hook.
|
|
929
|
+
*
|
|
930
|
+
* @example
|
|
931
|
+
* ```tsx
|
|
932
|
+
* import { useTablePagination, TablePagination, Table, TableBody, ... } from "@iclips/ui";
|
|
933
|
+
*
|
|
934
|
+
* function MyTable({ data }) {
|
|
935
|
+
* const pagination = useTablePagination(data, { pageSize: 10 });
|
|
936
|
+
*
|
|
937
|
+
* return (
|
|
938
|
+
* <>
|
|
939
|
+
* <Table>
|
|
940
|
+
* <TableBody>
|
|
941
|
+
* {pagination.paginatedData.map(item => (
|
|
942
|
+
* <TableRow key={item.id}>...</TableRow>
|
|
943
|
+
* ))}
|
|
944
|
+
* </TableBody>
|
|
945
|
+
* </Table>
|
|
946
|
+
*
|
|
947
|
+
* <TablePagination
|
|
948
|
+
* currentPage={pagination.currentPage}
|
|
949
|
+
* totalPages={pagination.totalPages}
|
|
950
|
+
* pageSize={pagination.pageSize}
|
|
951
|
+
* totalItems={pagination.totalItems}
|
|
952
|
+
* onPageChange={pagination.goToPage}
|
|
953
|
+
* onPageSizeChange={pagination.setPageSize}
|
|
954
|
+
* />
|
|
955
|
+
* </>
|
|
956
|
+
* );
|
|
957
|
+
* }
|
|
958
|
+
* ```
|
|
959
|
+
*
|
|
960
|
+
* @example
|
|
961
|
+
* ```tsx
|
|
962
|
+
* // Minimal usage (without page size selector)
|
|
963
|
+
* <TablePagination
|
|
964
|
+
* currentPage={1}
|
|
965
|
+
* totalPages={10}
|
|
966
|
+
* pageSize={20}
|
|
967
|
+
* totalItems={200}
|
|
968
|
+
* onPageChange={(page) => setCurrentPage(page)}
|
|
969
|
+
* showPageSizeSelector={false}
|
|
970
|
+
* />
|
|
971
|
+
* ```
|
|
972
|
+
*/
|
|
973
|
+
declare function TablePagination({ currentPage, totalPages, pageSize, totalItems, onPageChange, onPageSizeChange, pageSizeOptions, maxVisiblePages, showInfo, showPageNumbers, showPageSizeSelector, showFirstLastButtons, labels: customLabels, className, }: TablePaginationProps): react_jsx_runtime.JSX.Element | null;
|
|
974
|
+
declare namespace TablePagination {
|
|
975
|
+
var displayName: string;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
declare function Tabs({ className, ...props }: React$1.ComponentProps<typeof TabsPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
979
|
+
declare function TabsList({ className, ...props }: React$1.ComponentProps<typeof TabsPrimitive.List>): react_jsx_runtime.JSX.Element;
|
|
980
|
+
declare function TabsTrigger({ className, ...props }: React$1.ComponentProps<typeof TabsPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
981
|
+
declare function TabsContent({ className, ...props }: React$1.ComponentProps<typeof TabsPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
982
|
+
|
|
983
|
+
declare function Textarea({ className, ...props }: React$1.ComponentProps<"textarea">): react_jsx_runtime.JSX.Element;
|
|
984
|
+
|
|
985
|
+
declare const toggleVariants: (props?: ({
|
|
986
|
+
variant?: "default" | "outline" | null | undefined;
|
|
987
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
988
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
989
|
+
declare function Toggle({ className, variant, size, ...props }: React$1.ComponentProps<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
990
|
+
|
|
991
|
+
declare function ToggleGroup({ className, variant, size, children, ...props }: React$1.ComponentProps<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
992
|
+
declare function ToggleGroupItem({ className, children, variant, size, ...props }: React$1.ComponentProps<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>): react_jsx_runtime.JSX.Element;
|
|
993
|
+
|
|
994
|
+
declare function TooltipProvider({ delayDuration, ...props }: React$1.ComponentProps<typeof TooltipPrimitive.Provider>): react_jsx_runtime.JSX.Element;
|
|
995
|
+
declare function Tooltip({ ...props }: React$1.ComponentProps<typeof TooltipPrimitive.Root>): react_jsx_runtime.JSX.Element;
|
|
996
|
+
declare function TooltipTrigger({ ...props }: React$1.ComponentProps<typeof TooltipPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
|
|
997
|
+
declare function TooltipContent({ className, sideOffset, children, ...props }: React$1.ComponentProps<typeof TooltipPrimitive.Content>): react_jsx_runtime.JSX.Element;
|
|
998
|
+
|
|
999
|
+
interface BrandLogoProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1000
|
+
variant?: "symbol" | "full";
|
|
1001
|
+
mode?: "positive" | "negative";
|
|
1002
|
+
}
|
|
1003
|
+
declare function BrandLogo({ variant, mode, className, ...props }: BrandLogoProps): react_jsx_runtime.JSX.Element;
|
|
1004
|
+
|
|
1005
|
+
declare const THEMES: {
|
|
1006
|
+
readonly light: "";
|
|
1007
|
+
readonly dark: ".dark";
|
|
1008
|
+
};
|
|
1009
|
+
type ChartConfig = {
|
|
1010
|
+
[k in string]: {
|
|
1011
|
+
label?: React$1.ReactNode;
|
|
1012
|
+
icon?: React$1.ComponentType;
|
|
1013
|
+
} & ({
|
|
1014
|
+
color?: string;
|
|
1015
|
+
theme?: never;
|
|
1016
|
+
} | {
|
|
1017
|
+
color?: never;
|
|
1018
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
1019
|
+
});
|
|
1020
|
+
};
|
|
1021
|
+
declare function ChartContainer({ id, className, children, config, ...props }: React$1.ComponentProps<"div"> & {
|
|
1022
|
+
config: ChartConfig;
|
|
1023
|
+
children: React$1.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
|
|
1024
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1025
|
+
declare const ChartStyle: ({ id, config }: {
|
|
1026
|
+
id: string;
|
|
1027
|
+
config: ChartConfig;
|
|
1028
|
+
}) => react_jsx_runtime.JSX.Element | null;
|
|
1029
|
+
declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
|
|
1030
|
+
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: React$1.ComponentProps<typeof RechartsPrimitive.Tooltip> & React$1.ComponentProps<"div"> & {
|
|
1031
|
+
hideLabel?: boolean;
|
|
1032
|
+
hideIndicator?: boolean;
|
|
1033
|
+
indicator?: "line" | "dot" | "dashed";
|
|
1034
|
+
nameKey?: string;
|
|
1035
|
+
labelKey?: string;
|
|
1036
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1037
|
+
declare const ChartLegend: typeof RechartsPrimitive.Legend;
|
|
1038
|
+
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React$1.ComponentProps<"div"> & Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & {
|
|
1039
|
+
hideIcon?: boolean;
|
|
1040
|
+
nameKey?: string;
|
|
1041
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
1042
|
+
|
|
1043
|
+
interface ColorPickerProps {
|
|
1044
|
+
value?: string;
|
|
1045
|
+
onChange?: (color: string) => void;
|
|
1046
|
+
label?: string;
|
|
1047
|
+
className?: string;
|
|
1048
|
+
disabled?: boolean;
|
|
1049
|
+
}
|
|
1050
|
+
declare function ColorPicker({ value, onChange, label, className, disabled, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
|
|
1051
|
+
declare function ColorPickerInline({ value, onChange, className, disabled, }: Omit<ColorPickerProps, "label">): react_jsx_runtime.JSX.Element;
|
|
1052
|
+
|
|
1053
|
+
type UserRole = 'internal' | 'client' | 'freelancer';
|
|
1054
|
+
interface CommentUser {
|
|
1055
|
+
id: string;
|
|
1056
|
+
name: string;
|
|
1057
|
+
avatar?: string;
|
|
1058
|
+
role: UserRole;
|
|
1059
|
+
}
|
|
1060
|
+
interface CommentReaction {
|
|
1061
|
+
emoji: string;
|
|
1062
|
+
users: string[];
|
|
1063
|
+
}
|
|
1064
|
+
interface CommentAttachment {
|
|
1065
|
+
id: string;
|
|
1066
|
+
url: string;
|
|
1067
|
+
name: string;
|
|
1068
|
+
type: 'image' | 'file';
|
|
1069
|
+
}
|
|
1070
|
+
interface Comment {
|
|
1071
|
+
id: string;
|
|
1072
|
+
content: string;
|
|
1073
|
+
user: CommentUser;
|
|
1074
|
+
createdAt: Date;
|
|
1075
|
+
isRevisionRequest?: boolean;
|
|
1076
|
+
attachments?: CommentAttachment[];
|
|
1077
|
+
reactions?: CommentReaction[];
|
|
1078
|
+
}
|
|
1079
|
+
interface CommentSystemProps {
|
|
1080
|
+
comments: Comment[];
|
|
1081
|
+
currentUser: CommentUser;
|
|
1082
|
+
users?: CommentUser[];
|
|
1083
|
+
onAddComment: (comment: Omit<Comment, "id" | "createdAt">) => void;
|
|
1084
|
+
onDeleteComment?: (id: string) => void;
|
|
1085
|
+
onReact?: (commentId: string, emoji: string) => void;
|
|
1086
|
+
className?: string;
|
|
1087
|
+
}
|
|
1088
|
+
declare const CommentSystem: ({ comments, currentUser, users, onAddComment, onDeleteComment, onReact, className }: CommentSystemProps) => react_jsx_runtime.JSX.Element;
|
|
1089
|
+
|
|
1090
|
+
interface DateRangePickerProps {
|
|
1091
|
+
dateRange?: DateRange;
|
|
1092
|
+
onChange?: (range: DateRange | undefined) => void;
|
|
1093
|
+
label?: string;
|
|
1094
|
+
placeholder?: string;
|
|
1095
|
+
className?: string;
|
|
1096
|
+
disabled?: boolean;
|
|
1097
|
+
withTime?: boolean;
|
|
1098
|
+
}
|
|
1099
|
+
declare function DateRangePicker({ dateRange, onChange, label, placeholder, className, disabled, withTime, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
|
|
1100
|
+
|
|
1101
|
+
interface DateTimePickerProps {
|
|
1102
|
+
date?: Date;
|
|
1103
|
+
onChange?: (date: Date | undefined) => void;
|
|
1104
|
+
label?: string;
|
|
1105
|
+
placeholder?: string;
|
|
1106
|
+
className?: string;
|
|
1107
|
+
disabled?: boolean;
|
|
1108
|
+
}
|
|
1109
|
+
declare function DateTimePicker({ date, onChange, label, placeholder, className, disabled, }: DateTimePickerProps): react_jsx_runtime.JSX.Element;
|
|
1110
|
+
|
|
1111
|
+
type EditorVariant = 'simple' | 'full';
|
|
1112
|
+
interface DocumentEditorProps {
|
|
1113
|
+
content?: string;
|
|
1114
|
+
onChange?: (content: string) => void;
|
|
1115
|
+
placeholder?: string;
|
|
1116
|
+
variant?: EditorVariant;
|
|
1117
|
+
className?: string;
|
|
1118
|
+
readOnly?: boolean;
|
|
1119
|
+
label?: string;
|
|
1120
|
+
}
|
|
1121
|
+
declare function DocumentEditor({ content, onChange, placeholder, variant, className, readOnly, label }: DocumentEditorProps): react_jsx_runtime.JSX.Element | null;
|
|
1122
|
+
|
|
1123
|
+
type SocialChannel = "instagram" | "linkedin" | "facebook" | "twitter" | "youtube" | "blog" | "other";
|
|
1124
|
+
type TaskStatus = "idea" | "planned" | "in-progress" | "approval" | "scheduled" | "published";
|
|
1125
|
+
type CalendarMode = "editorial" | "execution";
|
|
1126
|
+
interface CalendarTask {
|
|
1127
|
+
id: string;
|
|
1128
|
+
title: string;
|
|
1129
|
+
date?: Date | string;
|
|
1130
|
+
endDate?: Date | string;
|
|
1131
|
+
channel?: SocialChannel;
|
|
1132
|
+
status: TaskStatus;
|
|
1133
|
+
imageUrl?: string;
|
|
1134
|
+
description?: string;
|
|
1135
|
+
assignees?: {
|
|
1136
|
+
name: string;
|
|
1137
|
+
avatar?: string;
|
|
1138
|
+
}[];
|
|
1139
|
+
color?: string;
|
|
1140
|
+
}
|
|
1141
|
+
interface BaseCalendarProps {
|
|
1142
|
+
tasks: CalendarTask[];
|
|
1143
|
+
onTaskUpdate: (updatedTask: CalendarTask) => void;
|
|
1144
|
+
onTaskCreate?: (newTask: Partial<CalendarTask>) => void;
|
|
1145
|
+
className?: string;
|
|
1146
|
+
}
|
|
1147
|
+
declare function EditorialCalendar(props: BaseCalendarProps): react_jsx_runtime.JSX.Element;
|
|
1148
|
+
declare function TaskCalendar(props: BaseCalendarProps): react_jsx_runtime.JSX.Element;
|
|
1149
|
+
|
|
1150
|
+
/**
|
|
1151
|
+
* Active Filter
|
|
1152
|
+
*/
|
|
1153
|
+
interface ActiveFilter {
|
|
1154
|
+
id: string;
|
|
1155
|
+
label: string;
|
|
1156
|
+
value?: string;
|
|
1157
|
+
onRemove?: () => void;
|
|
1158
|
+
}
|
|
1159
|
+
/**
|
|
1160
|
+
* FilterBar Props
|
|
1161
|
+
*/
|
|
1162
|
+
interface FilterBarProps {
|
|
1163
|
+
activeFilters?: ActiveFilter[];
|
|
1164
|
+
onRemoveFilter?: (filterId: string) => void;
|
|
1165
|
+
onClearAll?: () => void;
|
|
1166
|
+
onOpenFilters?: () => void;
|
|
1167
|
+
className?: string;
|
|
1168
|
+
children?: React$1.ReactNode;
|
|
1169
|
+
}
|
|
1170
|
+
/**
|
|
1171
|
+
* FilterBar Component
|
|
1172
|
+
*
|
|
1173
|
+
* Horizontal bar displaying a filter button with active filter chips.
|
|
1174
|
+
* Follows Intercom's pattern with count badges and clear all action.
|
|
1175
|
+
*
|
|
1176
|
+
* @example
|
|
1177
|
+
* ```tsx
|
|
1178
|
+
* <FilterBar
|
|
1179
|
+
* activeFilters={[
|
|
1180
|
+
* { id: '1', label: 'Status', value: 'Active' },
|
|
1181
|
+
* { id: '2', label: 'Date', value: 'Last 30 days' }
|
|
1182
|
+
* ]}
|
|
1183
|
+
* onRemoveFilter={(id) => console.log('remove', id)}
|
|
1184
|
+
* onClearAll={() => console.log('clear all')}
|
|
1185
|
+
* onOpenFilters={() => console.log('open')}
|
|
1186
|
+
* />
|
|
1187
|
+
* ```
|
|
1188
|
+
*/
|
|
1189
|
+
declare const FilterBar: React$1.ForwardRefExoticComponent<FilterBarProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1190
|
+
|
|
1191
|
+
/**
|
|
1192
|
+
* Filter Condition
|
|
1193
|
+
*
|
|
1194
|
+
* Represents a single filter condition with field, operator, and value.
|
|
1195
|
+
*/
|
|
1196
|
+
interface FilterCondition {
|
|
1197
|
+
id: string;
|
|
1198
|
+
field: string;
|
|
1199
|
+
operator: string;
|
|
1200
|
+
value: string | string[];
|
|
1201
|
+
}
|
|
1202
|
+
/**
|
|
1203
|
+
* Filter Field
|
|
1204
|
+
*
|
|
1205
|
+
* Configuration for a filterable field with type and options.
|
|
1206
|
+
*/
|
|
1207
|
+
interface FilterField {
|
|
1208
|
+
value: string;
|
|
1209
|
+
label: string;
|
|
1210
|
+
type?: "text" | "number" | "select" | "date";
|
|
1211
|
+
options?: {
|
|
1212
|
+
value: string;
|
|
1213
|
+
label: string;
|
|
1214
|
+
}[];
|
|
1215
|
+
multiSelect?: boolean;
|
|
1216
|
+
}
|
|
1217
|
+
/**
|
|
1218
|
+
* FilterBuilder Props
|
|
1219
|
+
*/
|
|
1220
|
+
interface FilterBuilderProps {
|
|
1221
|
+
conditions: FilterCondition[];
|
|
1222
|
+
onConditionsChange: (conditions: FilterCondition[]) => void;
|
|
1223
|
+
fields: FilterField[];
|
|
1224
|
+
className?: string;
|
|
1225
|
+
}
|
|
1226
|
+
/**
|
|
1227
|
+
* FilterBuilder Component
|
|
1228
|
+
*
|
|
1229
|
+
* Advanced filter builder with multiple conditions, operators, and multi-select support.
|
|
1230
|
+
* Inspired by Intercom's filter system with visual condition rows and AND logic.
|
|
1231
|
+
*
|
|
1232
|
+
* @example
|
|
1233
|
+
* ```tsx
|
|
1234
|
+
* const [conditions, setConditions] = useState<FilterCondition[]>([
|
|
1235
|
+
* { id: '1', field: 'status', operator: 'is_any_of', value: ['active', 'pending'] }
|
|
1236
|
+
* ]);
|
|
1237
|
+
*
|
|
1238
|
+
* const fields: FilterField[] = [
|
|
1239
|
+
* {
|
|
1240
|
+
* value: 'status',
|
|
1241
|
+
* label: 'Status',
|
|
1242
|
+
* type: 'select',
|
|
1243
|
+
* options: [
|
|
1244
|
+
* { value: 'active', label: 'Active' },
|
|
1245
|
+
* { value: 'pending', label: 'Pending' }
|
|
1246
|
+
* ]
|
|
1247
|
+
* }
|
|
1248
|
+
* ];
|
|
1249
|
+
*
|
|
1250
|
+
* <FilterBuilder
|
|
1251
|
+
* conditions={conditions}
|
|
1252
|
+
* onConditionsChange={setConditions}
|
|
1253
|
+
* fields={fields}
|
|
1254
|
+
* />
|
|
1255
|
+
* ```
|
|
1256
|
+
*/
|
|
1257
|
+
declare const FilterBuilder: React$1.ForwardRefExoticComponent<FilterBuilderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1258
|
+
|
|
1259
|
+
/**
|
|
1260
|
+
* FilterChip Props
|
|
1261
|
+
*/
|
|
1262
|
+
interface FilterChipProps {
|
|
1263
|
+
label: string;
|
|
1264
|
+
value?: string;
|
|
1265
|
+
onRemove?: () => void;
|
|
1266
|
+
className?: string;
|
|
1267
|
+
}
|
|
1268
|
+
/**
|
|
1269
|
+
* FilterChip Component
|
|
1270
|
+
*
|
|
1271
|
+
* A removable badge displaying an active filter with optional value.
|
|
1272
|
+
* Commonly used in filter bars to show applied filters.
|
|
1273
|
+
*
|
|
1274
|
+
* @example
|
|
1275
|
+
* ```tsx
|
|
1276
|
+
* <FilterChip
|
|
1277
|
+
* label="Status"
|
|
1278
|
+
* value="Active"
|
|
1279
|
+
* onRemove={() => console.log('removed')}
|
|
1280
|
+
* />
|
|
1281
|
+
* ```
|
|
1282
|
+
*/
|
|
1283
|
+
declare const FilterChip: React$1.ForwardRefExoticComponent<FilterChipProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1284
|
+
|
|
1285
|
+
type GanttTaskStatus = "not-started" | "in-progress" | "on-hold" | "delayed" | "completed" | "cancelled";
|
|
1286
|
+
interface GanttTask {
|
|
1287
|
+
id: string;
|
|
1288
|
+
name: string;
|
|
1289
|
+
startDate: Date;
|
|
1290
|
+
endDate: Date;
|
|
1291
|
+
progress: number;
|
|
1292
|
+
status: GanttTaskStatus;
|
|
1293
|
+
projectId?: string;
|
|
1294
|
+
assignee?: {
|
|
1295
|
+
name: string;
|
|
1296
|
+
initials?: string;
|
|
1297
|
+
avatar?: string;
|
|
1298
|
+
};
|
|
1299
|
+
description?: string;
|
|
1300
|
+
milestone?: boolean;
|
|
1301
|
+
dependencies?: string[];
|
|
1302
|
+
}
|
|
1303
|
+
interface GanttProject {
|
|
1304
|
+
id: string;
|
|
1305
|
+
name: string;
|
|
1306
|
+
color?: string;
|
|
1307
|
+
}
|
|
1308
|
+
interface GanttChartProps {
|
|
1309
|
+
tasks: GanttTask[];
|
|
1310
|
+
projects?: GanttProject[];
|
|
1311
|
+
onTaskClick?: (task: GanttTask) => void;
|
|
1312
|
+
onTaskEdit?: (task: GanttTask) => void;
|
|
1313
|
+
rowHeight?: number;
|
|
1314
|
+
columnWidth?: number;
|
|
1315
|
+
showWeekends?: boolean;
|
|
1316
|
+
groupBy?: "projects" | "assignees";
|
|
1317
|
+
}
|
|
1318
|
+
declare const GanttChart: React$1.ForwardRefExoticComponent<GanttChartProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1319
|
+
declare const GanttLegend: React$1.ForwardRefExoticComponent<{
|
|
1320
|
+
className?: string;
|
|
1321
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
1322
|
+
|
|
1323
|
+
interface KanbanCardTag {
|
|
1324
|
+
id: string;
|
|
1325
|
+
label: string;
|
|
1326
|
+
color?: string;
|
|
1327
|
+
}
|
|
1328
|
+
interface KanbanCardAssignee {
|
|
1329
|
+
id: string;
|
|
1330
|
+
name: string;
|
|
1331
|
+
avatar?: string;
|
|
1332
|
+
initials?: string;
|
|
1333
|
+
}
|
|
1334
|
+
interface KanbanCardProps {
|
|
1335
|
+
id: string;
|
|
1336
|
+
title: string;
|
|
1337
|
+
description?: string;
|
|
1338
|
+
coverImage?: string;
|
|
1339
|
+
thumbnailImage?: string;
|
|
1340
|
+
tags?: KanbanCardTag[];
|
|
1341
|
+
assignees?: KanbanCardAssignee[];
|
|
1342
|
+
priority?: "low" | "medium" | "high" | "urgent";
|
|
1343
|
+
dueDate?: Date;
|
|
1344
|
+
comments?: number;
|
|
1345
|
+
attachments?: number;
|
|
1346
|
+
checklist?: {
|
|
1347
|
+
completed: number;
|
|
1348
|
+
total: number;
|
|
1349
|
+
};
|
|
1350
|
+
progress?: number;
|
|
1351
|
+
status?: string;
|
|
1352
|
+
variant?: "default" | "compact" | "detailed";
|
|
1353
|
+
isDragging?: boolean;
|
|
1354
|
+
onClick?: () => void;
|
|
1355
|
+
onEdit?: () => void;
|
|
1356
|
+
onDelete?: () => void;
|
|
1357
|
+
onDuplicate?: () => void;
|
|
1358
|
+
className?: string;
|
|
1359
|
+
}
|
|
1360
|
+
declare const KanbanCard: React$1.ForwardRefExoticComponent<KanbanCardProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1361
|
+
|
|
1362
|
+
/**
|
|
1363
|
+
* Saved Filter
|
|
1364
|
+
*/
|
|
1365
|
+
interface SavedFilter {
|
|
1366
|
+
id: string;
|
|
1367
|
+
name: string;
|
|
1368
|
+
description?: string;
|
|
1369
|
+
isFavorite?: boolean;
|
|
1370
|
+
filterCount?: number;
|
|
1371
|
+
}
|
|
1372
|
+
/**
|
|
1373
|
+
* SavedFilters Props
|
|
1374
|
+
*/
|
|
1375
|
+
interface SavedFiltersProps {
|
|
1376
|
+
filters?: SavedFilter[];
|
|
1377
|
+
onSelectFilter?: (filterId: string) => void;
|
|
1378
|
+
onToggleFavorite?: (filterId: string) => void;
|
|
1379
|
+
onDeleteFilter?: (filterId: string) => void;
|
|
1380
|
+
className?: string;
|
|
1381
|
+
}
|
|
1382
|
+
/**
|
|
1383
|
+
* SavedFilters Component
|
|
1384
|
+
*
|
|
1385
|
+
* Dropdown menu for managing saved filter presets with favorites support.
|
|
1386
|
+
* Allows users to quickly apply, favorite, and delete saved filter combinations.
|
|
1387
|
+
*
|
|
1388
|
+
* @example
|
|
1389
|
+
* ```tsx
|
|
1390
|
+
* <SavedFilters
|
|
1391
|
+
* filters={[
|
|
1392
|
+
* { id: '1', name: 'Active Clients', isFavorite: true, filterCount: 2 },
|
|
1393
|
+
* { id: '2', name: 'High Value', description: 'Projects over $50k', filterCount: 3 }
|
|
1394
|
+
* ]}
|
|
1395
|
+
* onSelectFilter={(id) => console.log('apply', id)}
|
|
1396
|
+
* onToggleFavorite={(id) => console.log('toggle', id)}
|
|
1397
|
+
* onDeleteFilter={(id) => console.log('delete', id)}
|
|
1398
|
+
* />
|
|
1399
|
+
* ```
|
|
1400
|
+
*/
|
|
1401
|
+
declare const SavedFilters: React$1.ForwardRefExoticComponent<SavedFiltersProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1402
|
+
|
|
1403
|
+
type SidebarContextProps = {
|
|
1404
|
+
state: "expanded" | "collapsed";
|
|
1405
|
+
open: boolean;
|
|
1406
|
+
setOpen: (open: boolean) => void;
|
|
1407
|
+
openMobile: boolean;
|
|
1408
|
+
setOpenMobile: (open: boolean) => void;
|
|
1409
|
+
isMobile: boolean;
|
|
1410
|
+
toggleSidebar: () => void;
|
|
623
1411
|
};
|
|
624
1412
|
declare function useSidebar(): SidebarContextProps;
|
|
625
1413
|
declare function SidebarProvider({ defaultOpen, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }: React$1.ComponentProps<"div"> & {
|
|
@@ -635,6 +1423,7 @@ declare function Sidebar({ side, variant, collapsible, className, children, ...p
|
|
|
635
1423
|
declare function SidebarTrigger({ className, onClick, ...props }: React$1.ComponentProps<typeof Button>): react_jsx_runtime.JSX.Element;
|
|
636
1424
|
declare function SidebarRail({ className, ...props }: React$1.ComponentProps<"button">): react_jsx_runtime.JSX.Element;
|
|
637
1425
|
declare function SidebarInset({ className, ...props }: React$1.ComponentProps<"main">): react_jsx_runtime.JSX.Element;
|
|
1426
|
+
declare function SidebarInput({ className, ...props }: React$1.ComponentProps<typeof Input>): react_jsx_runtime.JSX.Element;
|
|
638
1427
|
declare function SidebarHeader({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
639
1428
|
declare function SidebarFooter({ className, ...props }: React$1.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
|
|
640
1429
|
declare function SidebarSeparator({ className, ...props }: React$1.ComponentProps<typeof Separator>): react_jsx_runtime.JSX.Element;
|
|
@@ -674,27 +1463,53 @@ declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...p
|
|
|
674
1463
|
isActive?: boolean;
|
|
675
1464
|
}): react_jsx_runtime.JSX.Element;
|
|
676
1465
|
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
1466
|
+
interface TaskEditDialogProps {
|
|
1467
|
+
task: GanttTask | null;
|
|
1468
|
+
open: boolean;
|
|
1469
|
+
onOpenChange: (open: boolean) => void;
|
|
1470
|
+
onSave: (task: GanttTask) => void;
|
|
1471
|
+
availableTasks?: GanttTask[];
|
|
1472
|
+
availableAssignees?: {
|
|
1473
|
+
name: string;
|
|
1474
|
+
initials?: string;
|
|
1475
|
+
}[];
|
|
1476
|
+
}
|
|
1477
|
+
declare function hasCircularDependency(taskId: string, dependencies: string[], allTasks: GanttTask[], visited?: Set<string>): boolean;
|
|
1478
|
+
declare function TaskEditDialog({ task, open, onOpenChange, onSave, availableTasks, availableAssignees, }: TaskEditDialogProps): react_jsx_runtime.JSX.Element | null;
|
|
684
1479
|
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
declare function
|
|
1480
|
+
interface TimePickerProps {
|
|
1481
|
+
date?: Date;
|
|
1482
|
+
onChange?: (date: Date | undefined) => void;
|
|
1483
|
+
label?: string;
|
|
1484
|
+
className?: string;
|
|
1485
|
+
disabled?: boolean;
|
|
1486
|
+
}
|
|
1487
|
+
declare function TimePicker({ date, onChange, label, className, disabled, }: TimePickerProps): react_jsx_runtime.JSX.Element;
|
|
693
1488
|
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
1489
|
+
type TimelineActionType = 'create' | 'update' | 'status_change' | 'comment' | 'upload' | 'assignment';
|
|
1490
|
+
interface TimelineUser {
|
|
1491
|
+
id: string;
|
|
1492
|
+
name: string;
|
|
1493
|
+
avatar?: string;
|
|
1494
|
+
}
|
|
1495
|
+
interface TimelineEvent {
|
|
1496
|
+
id: string;
|
|
1497
|
+
user: TimelineUser;
|
|
1498
|
+
action: TimelineActionType;
|
|
1499
|
+
title: string;
|
|
1500
|
+
timestamp: Date;
|
|
1501
|
+
metadata?: {
|
|
1502
|
+
before?: string | null;
|
|
1503
|
+
after?: string | null;
|
|
1504
|
+
details?: React$1.ReactNode;
|
|
1505
|
+
fileName?: string;
|
|
1506
|
+
};
|
|
1507
|
+
}
|
|
1508
|
+
interface TimelineProps {
|
|
1509
|
+
events: TimelineEvent[];
|
|
1510
|
+
className?: string;
|
|
1511
|
+
}
|
|
1512
|
+
declare const Timeline: ({ events, className }: TimelineProps) => react_jsx_runtime.JSX.Element;
|
|
698
1513
|
|
|
699
1514
|
interface UnderlineTabsProps {
|
|
700
1515
|
defaultValue?: string;
|
|
@@ -723,260 +1538,263 @@ interface UnderlineTabsContentProps {
|
|
|
723
1538
|
}
|
|
724
1539
|
declare function UnderlineTabsContent({ value: contentValue, children, className, }: UnderlineTabsContentProps): react_jsx_runtime.JSX.Element | null;
|
|
725
1540
|
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
1541
|
+
/**
|
|
1542
|
+
* Illustration System - iClips Design System
|
|
1543
|
+
*
|
|
1544
|
+
* Reusable SVG illustrations for empty states and onboarding.
|
|
1545
|
+
* These follow the iClips brand colors (Purple #7F26BF as primary).
|
|
1546
|
+
*/
|
|
1547
|
+
interface IllustrationProps {
|
|
1548
|
+
className?: string;
|
|
1549
|
+
size?: "sm" | "md" | "lg";
|
|
1550
|
+
/** Primary color - defaults to purple-500 */
|
|
1551
|
+
primaryColor?: string;
|
|
1552
|
+
/** Secondary color - defaults to purple-100 */
|
|
1553
|
+
secondaryColor?: string;
|
|
1554
|
+
}
|
|
1555
|
+
/**
|
|
1556
|
+
* Empty Inbox Illustration
|
|
1557
|
+
* Use for: No messages, no notifications, cleared inbox
|
|
1558
|
+
*/
|
|
1559
|
+
declare function EmptyInboxIllustration({ className, size, primaryColor, secondaryColor, }: IllustrationProps): react_jsx_runtime.JSX.Element;
|
|
1560
|
+
/**
|
|
1561
|
+
* Empty Search Illustration
|
|
1562
|
+
* Use for: No results found, empty search
|
|
1563
|
+
*/
|
|
1564
|
+
declare function EmptySearchIllustration({ className, size, primaryColor, secondaryColor, }: IllustrationProps): react_jsx_runtime.JSX.Element;
|
|
1565
|
+
/**
|
|
1566
|
+
* Empty Projects Illustration
|
|
1567
|
+
* Use for: No projects, no campaigns, empty folder
|
|
1568
|
+
*/
|
|
1569
|
+
declare function EmptyProjectsIllustration({ className, size, primaryColor, secondaryColor, }: IllustrationProps): react_jsx_runtime.JSX.Element;
|
|
1570
|
+
/**
|
|
1571
|
+
* Empty Calendar Illustration
|
|
1572
|
+
* Use for: No events, no deadlines, clear schedule
|
|
1573
|
+
*/
|
|
1574
|
+
declare function EmptyCalendarIllustration({ className, size, primaryColor, secondaryColor, }: IllustrationProps): react_jsx_runtime.JSX.Element;
|
|
1575
|
+
/**
|
|
1576
|
+
* Error State Illustration
|
|
1577
|
+
* Use for: Error loading, something went wrong
|
|
1578
|
+
*/
|
|
1579
|
+
declare function ErrorStateIllustration({ className, size, primaryColor, secondaryColor, }: IllustrationProps): react_jsx_runtime.JSX.Element;
|
|
1580
|
+
/**
|
|
1581
|
+
* Success State Illustration
|
|
1582
|
+
* Use for: Action completed, all done
|
|
1583
|
+
*/
|
|
1584
|
+
declare function SuccessStateIllustration({ className, size, primaryColor, secondaryColor, }: IllustrationProps): react_jsx_runtime.JSX.Element;
|
|
1585
|
+
declare const Illustrations: {
|
|
1586
|
+
EmptyInbox: typeof EmptyInboxIllustration;
|
|
1587
|
+
EmptySearch: typeof EmptySearchIllustration;
|
|
1588
|
+
EmptyProjects: typeof EmptyProjectsIllustration;
|
|
1589
|
+
EmptyCalendar: typeof EmptyCalendarIllustration;
|
|
1590
|
+
ErrorState: typeof ErrorStateIllustration;
|
|
1591
|
+
SuccessState: typeof SuccessStateIllustration;
|
|
1592
|
+
};
|
|
736
1593
|
|
|
737
1594
|
declare function cn(...inputs: ClassValue[]): string;
|
|
738
1595
|
|
|
739
1596
|
declare function useIsMobile(): boolean;
|
|
740
1597
|
|
|
741
1598
|
/**
|
|
742
|
-
*
|
|
1599
|
+
* Hook for managing table sorting
|
|
1600
|
+
*
|
|
1601
|
+
* @example
|
|
1602
|
+
* ```tsx
|
|
1603
|
+
* const { sortedData, sortConfig, toggleSort } = useTableSort(users);
|
|
1604
|
+
*
|
|
1605
|
+
* // In your component
|
|
1606
|
+
* <TableHead onClick={() => toggleSort("name")}>
|
|
1607
|
+
* Name {sortConfig.column === "name" && (
|
|
1608
|
+
* sortConfig.direction === "asc" ? "↑" : "↓"
|
|
1609
|
+
* )}
|
|
1610
|
+
* </TableHead>
|
|
1611
|
+
* ```
|
|
743
1612
|
*/
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
onDownloadStart?: () => void;
|
|
753
|
-
/** Callback chamado após download bem-sucedido */
|
|
754
|
-
onDownloadSuccess?: () => void;
|
|
755
|
-
/** Callback chamado em caso de erro no download */
|
|
756
|
-
onDownloadError?: (error: Error) => void;
|
|
757
|
-
}
|
|
1613
|
+
declare function useTableSort<T extends Record<string, unknown>>(data: T[], initialSort?: SortConfig<T>): {
|
|
1614
|
+
sortedData: T[];
|
|
1615
|
+
sortConfig: SortConfig<T>;
|
|
1616
|
+
toggleSort: (column: keyof T) => void;
|
|
1617
|
+
setSort: (column: keyof T | null, direction: SortDirection) => void;
|
|
1618
|
+
clearSort: () => void;
|
|
1619
|
+
};
|
|
1620
|
+
|
|
758
1621
|
/**
|
|
759
|
-
* Hook
|
|
1622
|
+
* Hook for managing table row selection
|
|
760
1623
|
*
|
|
761
1624
|
* @example
|
|
762
1625
|
* ```tsx
|
|
763
|
-
* const
|
|
764
|
-
*
|
|
765
|
-
*
|
|
766
|
-
*
|
|
767
|
-
*
|
|
1626
|
+
* const {
|
|
1627
|
+
* selected,
|
|
1628
|
+
* toggleRow,
|
|
1629
|
+
* toggleAll,
|
|
1630
|
+
* isSelected,
|
|
1631
|
+
* isAllSelected
|
|
1632
|
+
* } = useTableSelection(users);
|
|
1633
|
+
*
|
|
1634
|
+
* // In your component
|
|
1635
|
+
* <Checkbox
|
|
1636
|
+
* checked={isAllSelected}
|
|
1637
|
+
* onCheckedChange={toggleAll}
|
|
1638
|
+
* />
|
|
1639
|
+
*
|
|
1640
|
+
* {users.map((user) => (
|
|
1641
|
+
* <TableRow key={user.id}>
|
|
1642
|
+
* <TableCell>
|
|
1643
|
+
* <Checkbox
|
|
1644
|
+
* checked={isSelected(user.id)}
|
|
1645
|
+
* onCheckedChange={() => toggleRow(user.id)}
|
|
1646
|
+
* />
|
|
1647
|
+
* </TableCell>
|
|
1648
|
+
* </TableRow>
|
|
1649
|
+
* ))}
|
|
768
1650
|
* ```
|
|
769
1651
|
*/
|
|
770
|
-
declare function
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
/**
|
|
774
|
-
|
|
1652
|
+
declare function useTableSelection<T extends {
|
|
1653
|
+
id: string | number;
|
|
1654
|
+
}>(data: T[], options?: {
|
|
1655
|
+
/** Initial selected IDs */
|
|
1656
|
+
initialSelected?: (string | number)[];
|
|
1657
|
+
/** Callback when selection changes */
|
|
1658
|
+
onSelectionChange?: (selectedIds: Set<string | number>) => void;
|
|
1659
|
+
}): {
|
|
1660
|
+
selected: Set<string | number>;
|
|
1661
|
+
selectedIds: (string | number)[];
|
|
1662
|
+
selectedItems: T[];
|
|
1663
|
+
toggleRow: (id: string | number) => void;
|
|
1664
|
+
toggleAll: () => void;
|
|
1665
|
+
isSelected: (id: string | number) => boolean;
|
|
1666
|
+
isAllSelected: boolean;
|
|
1667
|
+
isIndeterminate: boolean;
|
|
1668
|
+
selectRows: (ids: (string | number)[]) => void;
|
|
1669
|
+
clearSelection: () => void;
|
|
775
1670
|
};
|
|
776
1671
|
|
|
777
|
-
|
|
1672
|
+
/**
|
|
1673
|
+
* Hook for managing table pagination
|
|
1674
|
+
*
|
|
1675
|
+
* @example
|
|
1676
|
+
* ```tsx
|
|
1677
|
+
* const {
|
|
1678
|
+
* paginatedData,
|
|
1679
|
+
* currentPage,
|
|
1680
|
+
* pageSize,
|
|
1681
|
+
* totalPages,
|
|
1682
|
+
* goToPage,
|
|
1683
|
+
* nextPage,
|
|
1684
|
+
* previousPage,
|
|
1685
|
+
* setPageSize
|
|
1686
|
+
* } = useTablePagination(users, { pageSize: 10 });
|
|
1687
|
+
*
|
|
1688
|
+
* // In your component
|
|
1689
|
+
* <Button onClick={previousPage} disabled={!hasPreviousPage}>
|
|
1690
|
+
* Previous
|
|
1691
|
+
* </Button>
|
|
1692
|
+
* <span>Page {currentPage} of {totalPages}</span>
|
|
1693
|
+
* <Button onClick={nextPage} disabled={!hasNextPage}>
|
|
1694
|
+
* Next
|
|
1695
|
+
* </Button>
|
|
1696
|
+
* ```
|
|
1697
|
+
*/
|
|
1698
|
+
declare function useTablePagination<T>(data: T[], options?: {
|
|
1699
|
+
/** Initial page size */
|
|
1700
|
+
pageSize?: number;
|
|
1701
|
+
/** Initial page (1-indexed) */
|
|
1702
|
+
initialPage?: number;
|
|
1703
|
+
/** Callback when page changes */
|
|
1704
|
+
onPageChange?: (page: number) => void;
|
|
1705
|
+
/** Callback when page size changes */
|
|
1706
|
+
onPageSizeChange?: (size: number) => void;
|
|
1707
|
+
}): {
|
|
1708
|
+
paginatedData: T[];
|
|
1709
|
+
currentPage: number;
|
|
1710
|
+
pageSize: number;
|
|
1711
|
+
totalItems: number;
|
|
1712
|
+
totalPages: number;
|
|
1713
|
+
startIndex: number;
|
|
1714
|
+
endIndex: number;
|
|
1715
|
+
hasNextPage: boolean;
|
|
1716
|
+
hasPreviousPage: boolean;
|
|
1717
|
+
goToPage: (page: number) => void;
|
|
1718
|
+
nextPage: () => void;
|
|
1719
|
+
previousPage: () => void;
|
|
1720
|
+
goToFirstPage: () => void;
|
|
1721
|
+
goToLastPage: () => void;
|
|
1722
|
+
setPageSize: (size: number) => void;
|
|
1723
|
+
getPageNumbers: (maxVisible?: number) => (number | "ellipsis")[];
|
|
1724
|
+
};
|
|
778
1725
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
interface PrintFooterProps {
|
|
853
|
-
/**
|
|
854
|
-
* Número da página atual
|
|
855
|
-
*/
|
|
856
|
-
pageNumber?: number;
|
|
857
|
-
/**
|
|
858
|
-
* Total de páginas
|
|
859
|
-
*/
|
|
860
|
-
totalPages?: number;
|
|
861
|
-
/**
|
|
862
|
-
* Texto de rodapé customizado
|
|
863
|
-
*/
|
|
864
|
-
footerText?: string;
|
|
865
|
-
/**
|
|
866
|
-
* Mostrar data de geração
|
|
867
|
-
*/
|
|
868
|
-
showGeneratedDate?: boolean;
|
|
869
|
-
}
|
|
870
|
-
declare function PrintFooter({ pageNumber, totalPages, footerText, showGeneratedDate, }: PrintFooterProps): react_jsx_runtime.JSX.Element;
|
|
871
|
-
|
|
872
|
-
interface PrintSectionProps {
|
|
873
|
-
/**
|
|
874
|
-
* Título da seção
|
|
875
|
-
*/
|
|
876
|
-
title?: string;
|
|
877
|
-
/**
|
|
878
|
-
* Subtítulo da seção
|
|
879
|
-
*/
|
|
880
|
-
subtitle?: string;
|
|
881
|
-
/**
|
|
882
|
-
* Conteúdo da seção
|
|
883
|
-
*/
|
|
884
|
-
children: React.ReactNode;
|
|
885
|
-
/**
|
|
886
|
-
* Classe CSS adicional
|
|
887
|
-
*/
|
|
888
|
-
className?: string;
|
|
889
|
-
/**
|
|
890
|
-
* Evitar quebra de página
|
|
891
|
-
*/
|
|
892
|
-
avoidBreak?: boolean;
|
|
893
|
-
/**
|
|
894
|
-
* Forçar quebra de página antes
|
|
895
|
-
*/
|
|
896
|
-
pageBreak?: boolean;
|
|
897
|
-
}
|
|
898
|
-
declare function PrintSection({ title, subtitle, children, className, avoidBreak, pageBreak, }: PrintSectionProps): react_jsx_runtime.JSX.Element;
|
|
899
|
-
|
|
900
|
-
interface Column {
|
|
901
|
-
header: string;
|
|
902
|
-
key: string;
|
|
903
|
-
align?: "left" | "center" | "right";
|
|
904
|
-
width?: string;
|
|
905
|
-
render?: (value: any, row: any) => React.ReactNode;
|
|
906
|
-
}
|
|
907
|
-
interface PrintTableProps {
|
|
908
|
-
/**
|
|
909
|
-
* Colunas da tabela
|
|
910
|
-
*/
|
|
911
|
-
columns: Column[];
|
|
912
|
-
/**
|
|
913
|
-
* Dados da tabela
|
|
914
|
-
*/
|
|
915
|
-
data: any[];
|
|
916
|
-
/**
|
|
917
|
-
* Título da tabela (opcional)
|
|
918
|
-
*/
|
|
919
|
-
title?: string;
|
|
920
|
-
/**
|
|
921
|
-
* Mostrar zebra (linhas alternadas)
|
|
922
|
-
*/
|
|
923
|
-
striped?: boolean;
|
|
924
|
-
/**
|
|
925
|
-
* Mostrar borda
|
|
926
|
-
*/
|
|
927
|
-
bordered?: boolean;
|
|
928
|
-
/**
|
|
929
|
-
* Densidade (espaçamento)
|
|
930
|
-
*/
|
|
931
|
-
density?: "compact" | "normal" | "comfortable";
|
|
932
|
-
}
|
|
933
|
-
declare function PrintTable({ columns, data, title, striped, bordered, density, }: PrintTableProps): react_jsx_runtime.JSX.Element;
|
|
934
|
-
|
|
935
|
-
interface SignatureField {
|
|
936
|
-
label: string;
|
|
937
|
-
name?: string;
|
|
938
|
-
role?: string;
|
|
939
|
-
date?: string;
|
|
940
|
-
}
|
|
941
|
-
interface PrintSignatureProps {
|
|
942
|
-
/**
|
|
943
|
-
* Lista de assinaturas necessárias
|
|
944
|
-
*/
|
|
945
|
-
signatures: SignatureField[];
|
|
946
|
-
/**
|
|
947
|
-
* Layout das assinaturas
|
|
948
|
-
*/
|
|
949
|
-
layout?: "horizontal" | "vertical";
|
|
950
|
-
/**
|
|
951
|
-
* Mostrar linha de assinatura
|
|
952
|
-
*/
|
|
953
|
-
showLine?: boolean;
|
|
954
|
-
/**
|
|
955
|
-
* Texto de instrução
|
|
956
|
-
*/
|
|
957
|
-
instructionText?: string;
|
|
958
|
-
}
|
|
959
|
-
declare function PrintSignature({ signatures, layout, showLine, instructionText, }: PrintSignatureProps): react_jsx_runtime.JSX.Element;
|
|
960
|
-
|
|
961
|
-
interface InfoItem {
|
|
962
|
-
label: string;
|
|
963
|
-
value: string | React.ReactNode;
|
|
964
|
-
highlight?: boolean;
|
|
965
|
-
}
|
|
966
|
-
interface PrintInfoGridProps {
|
|
967
|
-
/**
|
|
968
|
-
* Lista de informações a serem exibidas
|
|
969
|
-
*/
|
|
970
|
-
items: InfoItem[];
|
|
971
|
-
/**
|
|
972
|
-
* Número de colunas
|
|
973
|
-
*/
|
|
974
|
-
columns?: 1 | 2 | 3 | 4;
|
|
975
|
-
/**
|
|
976
|
-
* Classe CSS adicional
|
|
977
|
-
*/
|
|
978
|
-
className?: string;
|
|
979
|
-
}
|
|
980
|
-
declare function PrintInfoGrid({ items, columns, className, }: PrintInfoGridProps): react_jsx_runtime.JSX.Element;
|
|
1726
|
+
/**
|
|
1727
|
+
* Combined hook for managing all table features
|
|
1728
|
+
* - Sorting
|
|
1729
|
+
* - Selection
|
|
1730
|
+
* - Pagination
|
|
1731
|
+
*
|
|
1732
|
+
* @example
|
|
1733
|
+
* ```tsx
|
|
1734
|
+
* const table = useTable(users, {
|
|
1735
|
+
* pageSize: 10,
|
|
1736
|
+
* initialSort: { column: "name", direction: "asc" }
|
|
1737
|
+
* });
|
|
1738
|
+
*
|
|
1739
|
+
* // Access all features through single object
|
|
1740
|
+
* const {
|
|
1741
|
+
* data, // Current page data (sorted + paginated)
|
|
1742
|
+
* sortConfig,
|
|
1743
|
+
* toggleSort,
|
|
1744
|
+
* isSelected,
|
|
1745
|
+
* toggleRow,
|
|
1746
|
+
* currentPage,
|
|
1747
|
+
* totalPages,
|
|
1748
|
+
* nextPage
|
|
1749
|
+
* } = table;
|
|
1750
|
+
* ```
|
|
1751
|
+
*/
|
|
1752
|
+
declare function useTable<T extends {
|
|
1753
|
+
id: string | number;
|
|
1754
|
+
}>(data: T[], options?: {
|
|
1755
|
+
initialSort?: SortConfig<T>;
|
|
1756
|
+
initialSelected?: (string | number)[];
|
|
1757
|
+
onSelectionChange?: (selectedIds: Set<string | number>) => void;
|
|
1758
|
+
pageSize?: number;
|
|
1759
|
+
initialPage?: number;
|
|
1760
|
+
onPageChange?: (page: number) => void;
|
|
1761
|
+
onPageSizeChange?: (size: number) => void;
|
|
1762
|
+
enableSort?: boolean;
|
|
1763
|
+
enableSelection?: boolean;
|
|
1764
|
+
enablePagination?: boolean;
|
|
1765
|
+
}): {
|
|
1766
|
+
currentPage?: number | undefined;
|
|
1767
|
+
pageSize?: number | undefined;
|
|
1768
|
+
totalItems?: number | undefined;
|
|
1769
|
+
totalPages?: number | undefined;
|
|
1770
|
+
startIndex?: number | undefined;
|
|
1771
|
+
endIndex?: number | undefined;
|
|
1772
|
+
hasNextPage?: boolean | undefined;
|
|
1773
|
+
hasPreviousPage?: boolean | undefined;
|
|
1774
|
+
goToPage?: ((page: number) => void) | undefined;
|
|
1775
|
+
nextPage?: (() => void) | undefined;
|
|
1776
|
+
previousPage?: (() => void) | undefined;
|
|
1777
|
+
goToFirstPage?: (() => void) | undefined;
|
|
1778
|
+
goToLastPage?: (() => void) | undefined;
|
|
1779
|
+
setPageSize?: ((size: number) => void) | undefined;
|
|
1780
|
+
getPageNumbers?: ((maxVisible?: number) => (number | "ellipsis")[]) | undefined;
|
|
1781
|
+
selected?: Set<string | number> | undefined;
|
|
1782
|
+
selectedIds?: (string | number)[] | undefined;
|
|
1783
|
+
selectedItems?: T[] | undefined;
|
|
1784
|
+
toggleRow?: ((id: string | number) => void) | undefined;
|
|
1785
|
+
toggleAll?: (() => void) | undefined;
|
|
1786
|
+
isSelected?: ((id: string | number) => boolean) | undefined;
|
|
1787
|
+
isAllSelected?: boolean | undefined;
|
|
1788
|
+
isIndeterminate?: boolean | undefined;
|
|
1789
|
+
selectRows?: ((ids: (string | number)[]) => void) | undefined;
|
|
1790
|
+
clearSelection?: (() => void) | undefined;
|
|
1791
|
+
sortConfig?: SortConfig<T> | undefined;
|
|
1792
|
+
toggleSort?: ((column: keyof T) => void) | undefined;
|
|
1793
|
+
setSort?: ((column: keyof T | null, direction: SortDirection) => void) | undefined;
|
|
1794
|
+
clearSort?: (() => void) | undefined;
|
|
1795
|
+
data: T[];
|
|
1796
|
+
allData: T[];
|
|
1797
|
+
sortedData: T[];
|
|
1798
|
+
};
|
|
981
1799
|
|
|
982
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader,
|
|
1800
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, type ActiveFilter, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BrandLogo, type BrandLogoProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, type CalendarMode, type CalendarTask, Card, CardAction, type CardActionProps, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPicker, ColorPickerInline, type ColumnDef, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, type Comment, type CommentAttachment, type CommentReaction, CommentSystem, type CommentUser, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DocumentEditor, type DocumentEditorProps, type DragDropConfig, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, type EditorVariant, EditorialCalendar, EmptyCalendarIllustration, EmptyInboxIllustration, EmptyProjectsIllustration, EmptySearchIllustration, ErrorStateIllustration, FilterBar, type FilterBarProps, FilterBuilder, type FilterBuilderProps, FilterChip, type FilterChipProps, type FilterCondition, type FilterConfig, type FilterField, type FilterFunction, type FilterOperator, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GanttChart, GanttLegend, type GanttProject, type GanttTask, type GanttTaskStatus, HoverCard, HoverCardContent, HoverCardTrigger, type IllustrationProps, Illustrations, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, KanbanCard, type KanbanCardAssignee, type KanbanCardProps, type KanbanCardTag, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, type PaginationConfig, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationMetadata, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, type RowExpansionConfig, type SavedFilter, SavedFilters, type SavedFiltersProps, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type SelectionState, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Slider, type SocialChannel, type SortConfig, type SortDirection, type SortFunction, SuccessStateIllustration, Switch, Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableFooter, type TableFooterProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TablePagination, type TablePaginationLabels, type TablePaginationProps, type TableProps, TableRow, type TableRowProps, type TableState, Tabs, TabsContent, TabsList, TabsTrigger, TaskCalendar, TaskEditDialog, type TaskEditDialogProps, type TaskStatus, Textarea, TimePicker, type TimePickerProps, Timeline, type TimelineActionType, type TimelineEvent, type TimelineUser, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, UnderlineTabs, UnderlineTabsContent, UnderlineTabsList, UnderlineTabsTrigger, type UserRole, badgeVariants, buttonVariants, calculatePaginationMetadata, cn, getPageNumbers, hasCircularDependency, navigationMenuTriggerStyle, toggleVariants, useFormField, useIsMobile, useSidebar, useTable, useTablePagination, useTableSelection, useTableSort };
|