@qtalo/qt-ui-library 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +319 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.css +2 -0
- package/dist/index.d.ts +943 -0
- package/dist/index.js +2500 -0
- package/dist/index.js.map +1 -0
- package/package.json +79 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,943 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes } from 'react';
|
|
2
|
+
import { ClassValue } from 'clsx';
|
|
3
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
4
|
+
import { Context } from 'react';
|
|
5
|
+
import { ElementType } from 'react';
|
|
6
|
+
import { JSX } from 'react/jsx-runtime';
|
|
7
|
+
import { JSX as JSX_2 } from 'react';
|
|
8
|
+
import { ReactElement } from 'react';
|
|
9
|
+
import { ReactNode } from 'react';
|
|
10
|
+
import { ReactPortal } from 'react';
|
|
11
|
+
import { SVGProps } from 'react';
|
|
12
|
+
import { TVReturnType } from 'tailwind-variants';
|
|
13
|
+
import { VariantProps } from 'tailwind-variants';
|
|
14
|
+
|
|
15
|
+
export declare function Accordion({ children, type, defaultValue, className, }: AccordionProps): JSX.Element;
|
|
16
|
+
|
|
17
|
+
export declare function AccordionContent({ value, children, className, ...props }: AccordionContentProps): JSX.Element | null;
|
|
18
|
+
|
|
19
|
+
declare type AccordionContentProps = {
|
|
20
|
+
value: string;
|
|
21
|
+
children: ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
} & ComponentPropsWithoutRef<"div">;
|
|
24
|
+
|
|
25
|
+
declare type AccordionContextValue = {
|
|
26
|
+
openItems: Set<string>;
|
|
27
|
+
toggleItem: (value: string) => void;
|
|
28
|
+
type: "single" | "multiple";
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export declare function AccordionItem({ value, children, className, ...props }: AccordionItemProps): JSX.Element;
|
|
32
|
+
|
|
33
|
+
declare type AccordionItemProps = {
|
|
34
|
+
value: string;
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
className?: string;
|
|
37
|
+
} & ComponentPropsWithoutRef<"div">;
|
|
38
|
+
|
|
39
|
+
declare type AccordionProps = {
|
|
40
|
+
children: ReactNode;
|
|
41
|
+
type?: "single" | "multiple";
|
|
42
|
+
defaultValue?: string | string[];
|
|
43
|
+
className?: string;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export declare function AccordionTrigger({ value, children, className, asChild, onClick, ...props }: AccordionTriggerProps): JSX.Element;
|
|
47
|
+
|
|
48
|
+
declare type AccordionTriggerProps = {
|
|
49
|
+
value: string;
|
|
50
|
+
children: ReactNode;
|
|
51
|
+
className?: string;
|
|
52
|
+
asChild?: boolean;
|
|
53
|
+
} & ComponentPropsWithoutRef<"button">;
|
|
54
|
+
|
|
55
|
+
export declare function AccountIcon(props: IconProps): JSX.Element;
|
|
56
|
+
|
|
57
|
+
export declare function ActionMenu({ trigger, children, className, ...props }: ActionMenuProps): JSX.Element;
|
|
58
|
+
|
|
59
|
+
export declare function ActionMenuItem({ icon, label, className, selected, ...props }: ActionMenuItemProps): JSX.Element;
|
|
60
|
+
|
|
61
|
+
declare type ActionMenuItemProps = DropdownMenuItemProps & {
|
|
62
|
+
icon?: ReactElement<IconProps>;
|
|
63
|
+
label: string;
|
|
64
|
+
selected?: boolean;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
declare type ActionMenuProps = DropdownMenuProps;
|
|
68
|
+
|
|
69
|
+
export declare function AddIcon(props: IconProps): JSX.Element;
|
|
70
|
+
|
|
71
|
+
export declare function AirtableIcon(props: IconProps): JSX.Element;
|
|
72
|
+
|
|
73
|
+
declare type ArrowDirection = "up" | "down" | "left" | "right";
|
|
74
|
+
|
|
75
|
+
export declare function ArrowIcon({ direction, className, ...props }: ArrowIconProps): JSX.Element;
|
|
76
|
+
|
|
77
|
+
declare type ArrowIconProps = IconProps & {
|
|
78
|
+
direction?: ArrowDirection;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export declare function AsanaIcon(props: IconProps): JSX.Element;
|
|
82
|
+
|
|
83
|
+
export declare function Avatar({ name, size, className }: AvatarProps): JSX.Element;
|
|
84
|
+
|
|
85
|
+
export declare const AVATAR_COLOR: {
|
|
86
|
+
readonly amber: {
|
|
87
|
+
readonly bg: "bg-amber-200";
|
|
88
|
+
readonly text: "text-amber-700";
|
|
89
|
+
};
|
|
90
|
+
readonly blue: {
|
|
91
|
+
readonly bg: "bg-blue-200";
|
|
92
|
+
readonly text: "text-blue-700";
|
|
93
|
+
};
|
|
94
|
+
readonly cyan: {
|
|
95
|
+
readonly bg: "bg-cyan-200";
|
|
96
|
+
readonly text: "text-cyan-700";
|
|
97
|
+
};
|
|
98
|
+
readonly emerald: {
|
|
99
|
+
readonly bg: "bg-emerald-200";
|
|
100
|
+
readonly text: "text-emerald-700";
|
|
101
|
+
};
|
|
102
|
+
readonly fuchsia: {
|
|
103
|
+
readonly bg: "bg-fuchsia-200";
|
|
104
|
+
readonly text: "text-fuchsia-700";
|
|
105
|
+
};
|
|
106
|
+
readonly green: {
|
|
107
|
+
readonly bg: "bg-green-200";
|
|
108
|
+
readonly text: "text-green-700";
|
|
109
|
+
};
|
|
110
|
+
readonly indigo: {
|
|
111
|
+
readonly bg: "bg-indigo-200";
|
|
112
|
+
readonly text: "text-indigo-700";
|
|
113
|
+
};
|
|
114
|
+
readonly lime: {
|
|
115
|
+
readonly bg: "bg-lime-200";
|
|
116
|
+
readonly text: "text-lime-700";
|
|
117
|
+
};
|
|
118
|
+
readonly orange: {
|
|
119
|
+
readonly bg: "bg-orange-200";
|
|
120
|
+
readonly text: "text-orange-700";
|
|
121
|
+
};
|
|
122
|
+
readonly pink: {
|
|
123
|
+
readonly bg: "bg-pink-200";
|
|
124
|
+
readonly text: "text-pink-700";
|
|
125
|
+
};
|
|
126
|
+
readonly purple: {
|
|
127
|
+
readonly bg: "bg-purple-200";
|
|
128
|
+
readonly text: "text-purple-700";
|
|
129
|
+
};
|
|
130
|
+
readonly rose: {
|
|
131
|
+
readonly bg: "bg-rose-200";
|
|
132
|
+
readonly text: "text-rose-700";
|
|
133
|
+
};
|
|
134
|
+
readonly sky: {
|
|
135
|
+
readonly bg: "bg-sky-200";
|
|
136
|
+
readonly text: "text-sky-700";
|
|
137
|
+
};
|
|
138
|
+
readonly slate: {
|
|
139
|
+
readonly bg: "bg-slate-200";
|
|
140
|
+
readonly text: "text-slate-700";
|
|
141
|
+
};
|
|
142
|
+
readonly stone: {
|
|
143
|
+
readonly bg: "bg-stone-200";
|
|
144
|
+
readonly text: "text-stone-700";
|
|
145
|
+
};
|
|
146
|
+
readonly teal: {
|
|
147
|
+
readonly bg: "bg-teal-200";
|
|
148
|
+
readonly text: "text-teal-700";
|
|
149
|
+
};
|
|
150
|
+
readonly violet: {
|
|
151
|
+
readonly bg: "bg-violet-200";
|
|
152
|
+
readonly text: "text-violet-700";
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export declare const AVATAR_COLOR_KEYS: AvatarColorKey[];
|
|
157
|
+
|
|
158
|
+
export declare type AvatarColor = (typeof AVATAR_COLOR)[AvatarColorKey];
|
|
159
|
+
|
|
160
|
+
export declare type AvatarColorKey = keyof typeof AVATAR_COLOR;
|
|
161
|
+
|
|
162
|
+
declare type AvatarProps = {
|
|
163
|
+
name: string;
|
|
164
|
+
className?: string;
|
|
165
|
+
} & VariantProps<typeof avatarStyles>;
|
|
166
|
+
|
|
167
|
+
declare const avatarStyles: TVReturnType< {
|
|
168
|
+
size: {
|
|
169
|
+
xs: string;
|
|
170
|
+
sm: string;
|
|
171
|
+
md: string;
|
|
172
|
+
lg: string;
|
|
173
|
+
};
|
|
174
|
+
}, undefined, "flex shrink-0 items-center justify-center rounded-full leading-none font-semibold select-none", {
|
|
175
|
+
size: {
|
|
176
|
+
xs: string;
|
|
177
|
+
sm: string;
|
|
178
|
+
md: string;
|
|
179
|
+
lg: string;
|
|
180
|
+
};
|
|
181
|
+
}, undefined, TVReturnType< {
|
|
182
|
+
size: {
|
|
183
|
+
xs: string;
|
|
184
|
+
sm: string;
|
|
185
|
+
md: string;
|
|
186
|
+
lg: string;
|
|
187
|
+
};
|
|
188
|
+
}, undefined, "flex shrink-0 items-center justify-center rounded-full leading-none font-semibold select-none", unknown, unknown, undefined>>;
|
|
189
|
+
|
|
190
|
+
export declare function Badge({ icon, label, action, className }: BadgeProps): JSX.Element;
|
|
191
|
+
|
|
192
|
+
export declare type BadgeProps = {
|
|
193
|
+
icon?: ReactElement<typeof Icon>;
|
|
194
|
+
label: ReactNode;
|
|
195
|
+
action?: ReactElement<typeof Button>;
|
|
196
|
+
className?: string;
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
export declare function BulkActions({ totalItems, selectedItems, onSelectAll, actions, defaultDensity, onDensityChange, className, }: BulkActionsProps): JSX.Element;
|
|
200
|
+
|
|
201
|
+
declare type BulkActionsProps = {
|
|
202
|
+
totalItems: number;
|
|
203
|
+
selectedItems: number;
|
|
204
|
+
onSelectAll: (select: boolean) => void;
|
|
205
|
+
actions: {
|
|
206
|
+
fire: {
|
|
207
|
+
on: () => void;
|
|
208
|
+
off: () => void;
|
|
209
|
+
};
|
|
210
|
+
done: {
|
|
211
|
+
on: () => void;
|
|
212
|
+
off: () => void;
|
|
213
|
+
};
|
|
214
|
+
read: {
|
|
215
|
+
on: () => void;
|
|
216
|
+
off: () => void;
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
defaultDensity?: Density;
|
|
220
|
+
onDensityChange: (density: Density) => void;
|
|
221
|
+
className?: string;
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
export declare function Button({ className, children, ...props }: ButtonProps): JSX.Element;
|
|
225
|
+
|
|
226
|
+
export declare type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
227
|
+
className?: string;
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Calendar day metadata
|
|
232
|
+
*/
|
|
233
|
+
export declare type CalendarDay = {
|
|
234
|
+
date: Date;
|
|
235
|
+
day: number;
|
|
236
|
+
isCurrentMonth: boolean;
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export declare function CalendarIcon(props: IconProps): JSX.Element;
|
|
240
|
+
|
|
241
|
+
export declare const capitalize: (s: string) => string;
|
|
242
|
+
|
|
243
|
+
export declare function Card<T extends ElementType = "div">({ as, children, className, ...props }: CardProps<T>): JSX.Element;
|
|
244
|
+
|
|
245
|
+
export declare function CardContent({ children, className }: CardContentProps): JSX.Element;
|
|
246
|
+
|
|
247
|
+
declare type CardContentProps = {
|
|
248
|
+
children: ReactNode;
|
|
249
|
+
className?: string;
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
export declare function CardFooter({ children, className }: CardFooterProps): JSX.Element;
|
|
253
|
+
|
|
254
|
+
declare type CardFooterProps = {
|
|
255
|
+
children: ReactNode;
|
|
256
|
+
className?: string;
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
export declare function CardHeader({ children, className }: CardHeaderProps): JSX.Element;
|
|
260
|
+
|
|
261
|
+
declare type CardHeaderProps = {
|
|
262
|
+
children: ReactNode;
|
|
263
|
+
className?: string;
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
export declare function CardLayout({ children, className }: CardLayoutProps): JSX.Element;
|
|
267
|
+
|
|
268
|
+
declare type CardLayoutProps = {
|
|
269
|
+
children: ReactNode;
|
|
270
|
+
className?: string;
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
declare type CardOwnProps = {
|
|
274
|
+
children: ReactNode;
|
|
275
|
+
className?: string;
|
|
276
|
+
};
|
|
277
|
+
|
|
278
|
+
declare type CardProps<T extends ElementType = "div"> = CardOwnProps & {
|
|
279
|
+
as?: T;
|
|
280
|
+
} & Omit<ComponentPropsWithoutRef<T>, keyof CardOwnProps | "as">;
|
|
281
|
+
|
|
282
|
+
export declare function CardSidebar({ children, className }: CardSidebarProps): JSX.Element;
|
|
283
|
+
|
|
284
|
+
declare type CardSidebarProps = {
|
|
285
|
+
children: ReactNode;
|
|
286
|
+
className?: string;
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
export declare function CardTitle({ children, className }: CardTitleProps): JSX.Element;
|
|
290
|
+
|
|
291
|
+
declare type CardTitleProps = {
|
|
292
|
+
children: ReactNode;
|
|
293
|
+
className?: string;
|
|
294
|
+
};
|
|
295
|
+
|
|
296
|
+
export declare function Checkbox({ checked, defaultChecked, icon, indeterminate, indeterminateIcon, onChange, disabled, children, className, }: CheckboxProps): JSX.Element;
|
|
297
|
+
|
|
298
|
+
export declare function CheckboxIcon(props: IconProps): JSX.Element;
|
|
299
|
+
|
|
300
|
+
declare type CheckboxProps = {
|
|
301
|
+
checked?: boolean;
|
|
302
|
+
defaultChecked?: boolean;
|
|
303
|
+
disabled?: boolean;
|
|
304
|
+
indeterminate?: boolean;
|
|
305
|
+
onChange?: (checked: boolean) => void;
|
|
306
|
+
className?: string;
|
|
307
|
+
children?: React.ReactNode;
|
|
308
|
+
icon?: React.ReactNode;
|
|
309
|
+
indeterminateIcon?: React.ReactNode;
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
export declare function CheckCircleEmptyIcon(props: IconProps): JSX.Element;
|
|
313
|
+
|
|
314
|
+
export declare function CheckCircleIcon(props: IconProps): JSX.Element;
|
|
315
|
+
|
|
316
|
+
export declare function ClickUpIcon(props: IconProps): JSX.Element;
|
|
317
|
+
|
|
318
|
+
export declare function CloseIcon(props: IconProps): JSX.Element;
|
|
319
|
+
|
|
320
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Brand color tokens
|
|
324
|
+
*
|
|
325
|
+
* ⚠️ IMPORTANT: These values MUST match the CSS custom properties in src/styles/tailwind.css
|
|
326
|
+
*
|
|
327
|
+
* The single source of truth is src/styles/tailwind.css (@theme directive).
|
|
328
|
+
* These TypeScript tokens are provided for programmatic access in components.
|
|
329
|
+
*
|
|
330
|
+
* When updating colors:
|
|
331
|
+
* 1. Update the value in src/styles/tailwind.css first
|
|
332
|
+
* 2. Then update the corresponding value here to keep them in sync
|
|
333
|
+
*
|
|
334
|
+
* Usage:
|
|
335
|
+
* - For TailwindCSS classes: Use bg-brand-primary, bg-brand-secondary, etc. (defined in tailwind.css)
|
|
336
|
+
* - For programmatic access: Import and use these tokens
|
|
337
|
+
*/
|
|
338
|
+
export declare const colors: {
|
|
339
|
+
readonly brandPrimary: "#6558fd";
|
|
340
|
+
readonly brandSecondary: "#ceff1a";
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
export declare function CompactDensityIcon(props: IconProps): JSX.Element;
|
|
344
|
+
|
|
345
|
+
export declare function CopyIcon(props: IconProps): JSX.Element;
|
|
346
|
+
|
|
347
|
+
export declare function DarkIcon(props: IconProps): JSX.Element;
|
|
348
|
+
|
|
349
|
+
export declare function DatePicker({ mode, value, defaultValue, onChange, disabled, className, }: DatePickerProps): JSX.Element;
|
|
350
|
+
|
|
351
|
+
declare type DatePickerProps = {
|
|
352
|
+
mode?: "single" | "range";
|
|
353
|
+
value?: Date | null | DateRange;
|
|
354
|
+
defaultValue?: Date | null | DateRange;
|
|
355
|
+
onChange?: (date: Date | null | DateRange) => void;
|
|
356
|
+
placeholder?: string;
|
|
357
|
+
disabled?: boolean;
|
|
358
|
+
className?: string;
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
declare type DateRange = {
|
|
362
|
+
startDate: Date | null;
|
|
363
|
+
endDate: Date | null;
|
|
364
|
+
};
|
|
365
|
+
|
|
366
|
+
declare type Density = "normal" | "compact";
|
|
367
|
+
|
|
368
|
+
export declare function Divider({ className, ...variants }: DividerProps): JSX.Element;
|
|
369
|
+
|
|
370
|
+
declare type DividerProps = DividerVariants & {
|
|
371
|
+
className?: string;
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
declare const dividerStyles: TVReturnType< {
|
|
375
|
+
orientation: {
|
|
376
|
+
horizontal: string;
|
|
377
|
+
vertical: string;
|
|
378
|
+
};
|
|
379
|
+
inset: {
|
|
380
|
+
none: string;
|
|
381
|
+
sm: string;
|
|
382
|
+
md: string;
|
|
383
|
+
lg: string;
|
|
384
|
+
};
|
|
385
|
+
}, undefined, "bg-neutral-400-variant-4", {
|
|
386
|
+
orientation: {
|
|
387
|
+
horizontal: string;
|
|
388
|
+
vertical: string;
|
|
389
|
+
};
|
|
390
|
+
inset: {
|
|
391
|
+
none: string;
|
|
392
|
+
sm: string;
|
|
393
|
+
md: string;
|
|
394
|
+
lg: string;
|
|
395
|
+
};
|
|
396
|
+
}, undefined, TVReturnType< {
|
|
397
|
+
orientation: {
|
|
398
|
+
horizontal: string;
|
|
399
|
+
vertical: string;
|
|
400
|
+
};
|
|
401
|
+
inset: {
|
|
402
|
+
none: string;
|
|
403
|
+
sm: string;
|
|
404
|
+
md: string;
|
|
405
|
+
lg: string;
|
|
406
|
+
};
|
|
407
|
+
}, undefined, "bg-neutral-400-variant-4", unknown, unknown, undefined>>;
|
|
408
|
+
|
|
409
|
+
declare type DividerVariants = VariantProps<typeof dividerStyles>;
|
|
410
|
+
|
|
411
|
+
export declare function Dropdown({ trigger, children, align, disabled, }: DropdownProps): JSX.Element;
|
|
412
|
+
|
|
413
|
+
declare type DropdownAlign = "start" | "end";
|
|
414
|
+
|
|
415
|
+
export declare const DropdownContext: Context<DropdownContextValue | null>;
|
|
416
|
+
|
|
417
|
+
declare type DropdownContextValue = {
|
|
418
|
+
close: () => void;
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
export declare function DropdownMenu({ trigger, children, className, ...props }: DropdownMenuProps): JSX.Element;
|
|
422
|
+
|
|
423
|
+
export declare function DropdownMenuItem(props: DropdownMenuItemProps): JSX.Element;
|
|
424
|
+
|
|
425
|
+
export declare type DropdownMenuItemProps = ButtonProps & {
|
|
426
|
+
closeOnClick?: boolean;
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
export declare type DropdownMenuProps = DropdownProps & {
|
|
430
|
+
children: ReactElement<DropdownMenuItemProps> | ReactElement<DropdownMenuItemProps>[];
|
|
431
|
+
className?: string;
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
export declare type DropdownProps = {
|
|
435
|
+
trigger: ReactNode;
|
|
436
|
+
children: ReactNode;
|
|
437
|
+
align?: DropdownAlign;
|
|
438
|
+
disabled?: boolean;
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
export declare function ExternalLinkIcon(props: IconProps): JSX.Element;
|
|
442
|
+
|
|
443
|
+
declare const FILTER_BUTTON_META: {
|
|
444
|
+
readonly fire: {
|
|
445
|
+
readonly icon: typeof FireIcon;
|
|
446
|
+
readonly label: "Fire";
|
|
447
|
+
readonly iconColor: "text-tertiary-500";
|
|
448
|
+
};
|
|
449
|
+
readonly unread: {
|
|
450
|
+
readonly icon: typeof UnreadIcon;
|
|
451
|
+
readonly label: "Unread";
|
|
452
|
+
readonly iconColor: "text-primary-500";
|
|
453
|
+
};
|
|
454
|
+
readonly insight: {
|
|
455
|
+
readonly icon: typeof InsightIcon;
|
|
456
|
+
readonly label: "Insights";
|
|
457
|
+
readonly iconColor: "text-primary-600";
|
|
458
|
+
};
|
|
459
|
+
readonly done: {
|
|
460
|
+
readonly icon: typeof CheckCircleIcon;
|
|
461
|
+
readonly label: "Done";
|
|
462
|
+
readonly iconColor: "text-success-base";
|
|
463
|
+
};
|
|
464
|
+
};
|
|
465
|
+
|
|
466
|
+
export declare function FilterBar({ children, className }: FilterBarProps): JSX.Element;
|
|
467
|
+
|
|
468
|
+
declare type FilterBarProps = {
|
|
469
|
+
children: ReactElement<FilterButtonProps>[];
|
|
470
|
+
className?: string;
|
|
471
|
+
};
|
|
472
|
+
|
|
473
|
+
export declare function FilterButton({ variant, label, count, selected, icon, classNames, disabled, ...props }: FilterButtonProps): JSX.Element;
|
|
474
|
+
|
|
475
|
+
declare type FilterButtonClassNames = Partial<{
|
|
476
|
+
root: string;
|
|
477
|
+
icon: string;
|
|
478
|
+
label: string;
|
|
479
|
+
count: string;
|
|
480
|
+
}>;
|
|
481
|
+
|
|
482
|
+
export declare type FilterButtonProps = Omit<ButtonProps, "children" | "className"> & {
|
|
483
|
+
variant?: FilterButtonVariant;
|
|
484
|
+
label?: string;
|
|
485
|
+
count?: number;
|
|
486
|
+
selected?: boolean;
|
|
487
|
+
icon?: ReactElement<IconProps>;
|
|
488
|
+
classNames?: FilterButtonClassNames;
|
|
489
|
+
};
|
|
490
|
+
|
|
491
|
+
declare type FilterButtonVariant = keyof typeof FILTER_BUTTON_META | "custom";
|
|
492
|
+
|
|
493
|
+
export declare function FireIcon(props: IconProps): JSX.Element;
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* Format a date to "Dec 3, 2025" format
|
|
497
|
+
*/
|
|
498
|
+
export declare function formatDate(date: Date | null): string;
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Format a date or date range for display
|
|
502
|
+
* Single day: "Dec 3, 2025"
|
|
503
|
+
* Same year range: "Jan 5 - Jan 17, 2026"
|
|
504
|
+
* Different years: "Nov 5, 2025 - Jan 17, 2026"
|
|
505
|
+
*/
|
|
506
|
+
export declare function formatDateRange(startDate: Date | null, endDate: Date | null): string;
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* Generate a full calendar grid with days from previous, current, and next month
|
|
510
|
+
* Returns a flat array of calendar days that always fills complete weeks (multiple of 7)
|
|
511
|
+
* The first column is always Monday
|
|
512
|
+
*/
|
|
513
|
+
export declare function generateCalendarDays(year: number, month: number): CalendarDay[];
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* Calendar utility functions using native Date API
|
|
517
|
+
*/
|
|
518
|
+
/**
|
|
519
|
+
* Get the number of days in a given month
|
|
520
|
+
*/
|
|
521
|
+
export declare function getDaysInMonth(year: number, month: number): number;
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Get the first day of the month (0 = Sunday, 1 = Monday, ..., 6 = Saturday)
|
|
525
|
+
* Returns 0-6 where 0 is Sunday
|
|
526
|
+
*/
|
|
527
|
+
export declare function getFirstDayOfMonth(year: number, month: number): number;
|
|
528
|
+
|
|
529
|
+
export declare function getInitials(value: string): string;
|
|
530
|
+
|
|
531
|
+
/**
|
|
532
|
+
* Get month name
|
|
533
|
+
*/
|
|
534
|
+
export declare function getMonthName(month: number): string;
|
|
535
|
+
|
|
536
|
+
/**
|
|
537
|
+
* Get weekday labels
|
|
538
|
+
*/
|
|
539
|
+
export declare function getWeekdays(): readonly string[];
|
|
540
|
+
|
|
541
|
+
export declare function GmailIcon(props: IconProps): JSX.Element;
|
|
542
|
+
|
|
543
|
+
export declare function GoogleCalendarIcon(props: IconProps): JSX.Element;
|
|
544
|
+
|
|
545
|
+
export declare function Icon({ size, className, viewBox, children, ...props }: IconProps): JSX.Element;
|
|
546
|
+
|
|
547
|
+
export declare function IconButton({ icon, ...props }: IconButtonProps): JSX.Element;
|
|
548
|
+
|
|
549
|
+
export declare type IconButtonProps = Omit<ButtonProps, "children"> & {
|
|
550
|
+
icon: ReactElement<IconProps>;
|
|
551
|
+
};
|
|
552
|
+
|
|
553
|
+
export declare function IconCountButton({ icon, label, count, variant, orientation, status, alwaysShowCount, classNames, ...props }: IconCountButtonProps): JSX.Element;
|
|
554
|
+
|
|
555
|
+
declare type IconCountButtonClassNames = Partial<{
|
|
556
|
+
root: string;
|
|
557
|
+
bubble: string;
|
|
558
|
+
label: string;
|
|
559
|
+
count: string;
|
|
560
|
+
}>;
|
|
561
|
+
|
|
562
|
+
export declare type IconCountButtonProps = IconCountButtonVariant & Omit<ButtonProps, "children" | "className"> & {
|
|
563
|
+
icon: ReactElement<IconProps>;
|
|
564
|
+
label: string;
|
|
565
|
+
count?: number;
|
|
566
|
+
alwaysShowCount?: boolean;
|
|
567
|
+
classNames?: IconCountButtonClassNames;
|
|
568
|
+
};
|
|
569
|
+
|
|
570
|
+
declare const iconCountButtonStyles: TVReturnType< {
|
|
571
|
+
variant: {
|
|
572
|
+
primary: {};
|
|
573
|
+
secondary: {};
|
|
574
|
+
minimal: {
|
|
575
|
+
bubble: string;
|
|
576
|
+
label: string;
|
|
577
|
+
};
|
|
578
|
+
};
|
|
579
|
+
status: {
|
|
580
|
+
active: {};
|
|
581
|
+
inactive: {};
|
|
582
|
+
};
|
|
583
|
+
orientation: {
|
|
584
|
+
vertical: {
|
|
585
|
+
root: string;
|
|
586
|
+
label: string;
|
|
587
|
+
};
|
|
588
|
+
horizontal: {
|
|
589
|
+
root: string;
|
|
590
|
+
label: string;
|
|
591
|
+
};
|
|
592
|
+
};
|
|
593
|
+
}, {
|
|
594
|
+
root: string;
|
|
595
|
+
bubble: string;
|
|
596
|
+
label: string;
|
|
597
|
+
count: string;
|
|
598
|
+
icon: string;
|
|
599
|
+
}, undefined, {
|
|
600
|
+
variant: {
|
|
601
|
+
primary: {};
|
|
602
|
+
secondary: {};
|
|
603
|
+
minimal: {
|
|
604
|
+
bubble: string;
|
|
605
|
+
label: string;
|
|
606
|
+
};
|
|
607
|
+
};
|
|
608
|
+
status: {
|
|
609
|
+
active: {};
|
|
610
|
+
inactive: {};
|
|
611
|
+
};
|
|
612
|
+
orientation: {
|
|
613
|
+
vertical: {
|
|
614
|
+
root: string;
|
|
615
|
+
label: string;
|
|
616
|
+
};
|
|
617
|
+
horizontal: {
|
|
618
|
+
root: string;
|
|
619
|
+
label: string;
|
|
620
|
+
};
|
|
621
|
+
};
|
|
622
|
+
}, {
|
|
623
|
+
root: string;
|
|
624
|
+
bubble: string;
|
|
625
|
+
label: string;
|
|
626
|
+
count: string;
|
|
627
|
+
icon: string;
|
|
628
|
+
}, TVReturnType< {
|
|
629
|
+
variant: {
|
|
630
|
+
primary: {};
|
|
631
|
+
secondary: {};
|
|
632
|
+
minimal: {
|
|
633
|
+
bubble: string;
|
|
634
|
+
label: string;
|
|
635
|
+
};
|
|
636
|
+
};
|
|
637
|
+
status: {
|
|
638
|
+
active: {};
|
|
639
|
+
inactive: {};
|
|
640
|
+
};
|
|
641
|
+
orientation: {
|
|
642
|
+
vertical: {
|
|
643
|
+
root: string;
|
|
644
|
+
label: string;
|
|
645
|
+
};
|
|
646
|
+
horizontal: {
|
|
647
|
+
root: string;
|
|
648
|
+
label: string;
|
|
649
|
+
};
|
|
650
|
+
};
|
|
651
|
+
}, {
|
|
652
|
+
root: string;
|
|
653
|
+
bubble: string;
|
|
654
|
+
label: string;
|
|
655
|
+
count: string;
|
|
656
|
+
icon: string;
|
|
657
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
658
|
+
|
|
659
|
+
declare type IconCountButtonVariant = VariantProps<typeof iconCountButtonStyles>;
|
|
660
|
+
|
|
661
|
+
export declare type IconProps = SVGProps<SVGSVGElement> & {
|
|
662
|
+
size?: number;
|
|
663
|
+
};
|
|
664
|
+
|
|
665
|
+
export declare function InfoTooltip({ className, ...props }: InfoTooltipProps): JSX.Element;
|
|
666
|
+
|
|
667
|
+
export declare type InfoTooltipProps = TooltipProps;
|
|
668
|
+
|
|
669
|
+
export declare function Input({ type, value, defaultValue, disabled, error, placeholder, onChange, className, }: InputProps): JSX.Element;
|
|
670
|
+
|
|
671
|
+
declare type InputProps = {
|
|
672
|
+
type?: "text" | "email" | "password";
|
|
673
|
+
value?: string;
|
|
674
|
+
defaultValue?: string;
|
|
675
|
+
disabled?: boolean;
|
|
676
|
+
error?: boolean;
|
|
677
|
+
placeholder?: string;
|
|
678
|
+
onChange?: (value: string) => void;
|
|
679
|
+
className?: string;
|
|
680
|
+
};
|
|
681
|
+
|
|
682
|
+
export declare function InsightIcon(props: IconProps): JSX.Element;
|
|
683
|
+
|
|
684
|
+
export declare function IntegrationBar({ orientation, children, onAddMore, className, }: IntegrationBarProps): JSX.Element;
|
|
685
|
+
|
|
686
|
+
declare type IntegrationBarOrientation = "horizontal" | "vertical";
|
|
687
|
+
|
|
688
|
+
declare type IntegrationBarProps = {
|
|
689
|
+
orientation?: IntegrationBarOrientation;
|
|
690
|
+
children: ReactElement<IconCountButtonProps>[];
|
|
691
|
+
onAddMore: () => void;
|
|
692
|
+
className?: string;
|
|
693
|
+
};
|
|
694
|
+
|
|
695
|
+
/**
|
|
696
|
+
* Check if date1 is before date2 (ignoring time)
|
|
697
|
+
*/
|
|
698
|
+
export declare function isDateBefore(date1: Date, date2: Date): boolean;
|
|
699
|
+
|
|
700
|
+
/**
|
|
701
|
+
* Check if a date is within a range (inclusive)
|
|
702
|
+
*/
|
|
703
|
+
export declare function isDateInRange(date: Date, startDate: Date | null, endDate: Date | null): boolean;
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* Check if two dates are the same day
|
|
707
|
+
*/
|
|
708
|
+
export declare function isSameDay(date1: Date | null, date2: Date | null): boolean;
|
|
709
|
+
|
|
710
|
+
/**
|
|
711
|
+
* Check if a date is today
|
|
712
|
+
*/
|
|
713
|
+
export declare function isToday(date: Date): boolean;
|
|
714
|
+
|
|
715
|
+
export declare function JiraIcon(props: IconProps): JSX.Element;
|
|
716
|
+
|
|
717
|
+
export declare function LightIcon(props: IconProps): JSX.Element;
|
|
718
|
+
|
|
719
|
+
declare type Listener = (toasts: ToastItem[]) => void;
|
|
720
|
+
|
|
721
|
+
export declare function LogoIcon(props: IconProps): JSX.Element;
|
|
722
|
+
|
|
723
|
+
export declare function MinusIcon(props: IconProps): JSX.Element;
|
|
724
|
+
|
|
725
|
+
export declare function MoreIcon(props: IconProps): JSX.Element;
|
|
726
|
+
|
|
727
|
+
export declare function NormalDensityIcon(props: IconProps): JSX.Element;
|
|
728
|
+
|
|
729
|
+
export declare function NotFireIcon(props: IconProps): JSX.Element;
|
|
730
|
+
|
|
731
|
+
export declare function OutlookCalendarIcon(props: IconProps): JSX.Element;
|
|
732
|
+
|
|
733
|
+
export declare function OutlookIcon(props: IconProps): JSX.Element;
|
|
734
|
+
|
|
735
|
+
/**
|
|
736
|
+
* Parse MM/DD/YYYY format to Date
|
|
737
|
+
*/
|
|
738
|
+
export declare function parseDate(dateString: string): Date | null;
|
|
739
|
+
|
|
740
|
+
export declare function pickColorFromPalette<T>(value: string, palette: readonly T[]): T;
|
|
741
|
+
|
|
742
|
+
export declare function Pressable({ as: Component, disabled, onPress, className, children, }: PressableProps): JSX.Element;
|
|
743
|
+
|
|
744
|
+
declare type PressableProps = {
|
|
745
|
+
as?: keyof JSX_2.IntrinsicElements;
|
|
746
|
+
disabled?: boolean;
|
|
747
|
+
onPress?: () => void;
|
|
748
|
+
className?: string;
|
|
749
|
+
children?: React.ReactNode;
|
|
750
|
+
};
|
|
751
|
+
|
|
752
|
+
export declare type PreviewActions = Partial<Record<PreviewActionType, {
|
|
753
|
+
onClick: () => void;
|
|
754
|
+
}>>;
|
|
755
|
+
|
|
756
|
+
export declare type PreviewActionType = "fire" | "done" | "link";
|
|
757
|
+
|
|
758
|
+
export declare function PreviewCard({ icon, sender, title, content, timestamp, workspace, read, selected, onSelect, checked, onCheckedChange, statuses, actions, }: PreviewCardProps): JSX.Element;
|
|
759
|
+
|
|
760
|
+
export declare type PreviewCardProps = {
|
|
761
|
+
icon: ReactNode;
|
|
762
|
+
sender: string;
|
|
763
|
+
title: string;
|
|
764
|
+
content: string;
|
|
765
|
+
timestamp: string;
|
|
766
|
+
workspace: string;
|
|
767
|
+
read?: boolean;
|
|
768
|
+
selected?: boolean;
|
|
769
|
+
onSelect?: () => void;
|
|
770
|
+
checked?: boolean;
|
|
771
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
772
|
+
statuses?: PreviewStatuses;
|
|
773
|
+
actions?: PreviewActions;
|
|
774
|
+
};
|
|
775
|
+
|
|
776
|
+
export declare type PreviewStatuses = Partial<Record<PreviewStatusType, {
|
|
777
|
+
label?: string;
|
|
778
|
+
onAction?: () => void;
|
|
779
|
+
}>>;
|
|
780
|
+
|
|
781
|
+
export declare type PreviewStatusType = "fire" | "insight" | "done";
|
|
782
|
+
|
|
783
|
+
export declare function ReadIcon(props: IconProps): JSX.Element;
|
|
784
|
+
|
|
785
|
+
export declare function SearchIcon(props: IconProps): JSX.Element;
|
|
786
|
+
|
|
787
|
+
export declare function SearchInput({ value, defaultValue, placeholder, onChange, onClear, disabled, className, }: SearchInputProps): JSX.Element;
|
|
788
|
+
|
|
789
|
+
declare type SearchInputProps = {
|
|
790
|
+
value?: string;
|
|
791
|
+
defaultValue?: string;
|
|
792
|
+
placeholder?: string;
|
|
793
|
+
onChange?: (value: string) => void;
|
|
794
|
+
onClear?: () => void;
|
|
795
|
+
disabled?: boolean;
|
|
796
|
+
className?: string;
|
|
797
|
+
};
|
|
798
|
+
|
|
799
|
+
export declare type ShowToastOptions = {
|
|
800
|
+
content: ReactNode;
|
|
801
|
+
duration?: number;
|
|
802
|
+
position?: ToastPosition;
|
|
803
|
+
};
|
|
804
|
+
|
|
805
|
+
export declare function SlackIcon(props: IconProps): JSX.Element;
|
|
806
|
+
|
|
807
|
+
export declare function StatusBadge({ className, label, status, onAction, }: StatusBadgeProps): JSX.Element;
|
|
808
|
+
|
|
809
|
+
export declare type StatusBadgeProps = Omit<BadgeProps, "icon" | "action" | "label"> & Required<VariantProps<typeof statusBadgeStyles>> & {
|
|
810
|
+
label?: ReactNode;
|
|
811
|
+
onAction?: () => void;
|
|
812
|
+
};
|
|
813
|
+
|
|
814
|
+
declare const statusBadgeStyles: TVReturnType< {
|
|
815
|
+
status: {
|
|
816
|
+
fire: {
|
|
817
|
+
root: string;
|
|
818
|
+
text: string;
|
|
819
|
+
};
|
|
820
|
+
insight: {
|
|
821
|
+
root: string;
|
|
822
|
+
text: string;
|
|
823
|
+
};
|
|
824
|
+
done: {
|
|
825
|
+
root: string;
|
|
826
|
+
text: string;
|
|
827
|
+
};
|
|
828
|
+
};
|
|
829
|
+
}, {
|
|
830
|
+
root: string;
|
|
831
|
+
text: string;
|
|
832
|
+
}, undefined, {
|
|
833
|
+
status: {
|
|
834
|
+
fire: {
|
|
835
|
+
root: string;
|
|
836
|
+
text: string;
|
|
837
|
+
};
|
|
838
|
+
insight: {
|
|
839
|
+
root: string;
|
|
840
|
+
text: string;
|
|
841
|
+
};
|
|
842
|
+
done: {
|
|
843
|
+
root: string;
|
|
844
|
+
text: string;
|
|
845
|
+
};
|
|
846
|
+
};
|
|
847
|
+
}, {
|
|
848
|
+
root: string;
|
|
849
|
+
text: string;
|
|
850
|
+
}, TVReturnType< {
|
|
851
|
+
status: {
|
|
852
|
+
fire: {
|
|
853
|
+
root: string;
|
|
854
|
+
text: string;
|
|
855
|
+
};
|
|
856
|
+
insight: {
|
|
857
|
+
root: string;
|
|
858
|
+
text: string;
|
|
859
|
+
};
|
|
860
|
+
done: {
|
|
861
|
+
root: string;
|
|
862
|
+
text: string;
|
|
863
|
+
};
|
|
864
|
+
};
|
|
865
|
+
}, {
|
|
866
|
+
root: string;
|
|
867
|
+
text: string;
|
|
868
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
869
|
+
|
|
870
|
+
/**
|
|
871
|
+
* Prevents click and keyboard events from bubbling to parent components
|
|
872
|
+
* (e.g. Pressable, Card, ListRow).
|
|
873
|
+
*/
|
|
874
|
+
export declare function StopPropagation({ children }: StopPropagationProps): JSX.Element;
|
|
875
|
+
|
|
876
|
+
declare type StopPropagationProps = {
|
|
877
|
+
children: ReactNode;
|
|
878
|
+
};
|
|
879
|
+
|
|
880
|
+
export declare function stringHash(input: string): number;
|
|
881
|
+
|
|
882
|
+
export declare function SummaryIcon(props: IconProps): JSX.Element;
|
|
883
|
+
|
|
884
|
+
export declare function SystemIcon(props: IconProps): JSX.Element;
|
|
885
|
+
|
|
886
|
+
export declare function TeamsIcon(props: IconProps): JSX.Element;
|
|
887
|
+
|
|
888
|
+
export declare function toast(content: ReactNode | ShowToastOptions, options?: Omit<ShowToastOptions, "content">): {
|
|
889
|
+
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
890
|
+
dismiss: () => void;
|
|
891
|
+
};
|
|
892
|
+
|
|
893
|
+
export declare function Toaster(): ReactPortal;
|
|
894
|
+
|
|
895
|
+
export declare type ToastItem = {
|
|
896
|
+
id: string;
|
|
897
|
+
content: ReactNode;
|
|
898
|
+
position: ToastPosition;
|
|
899
|
+
duration: number;
|
|
900
|
+
};
|
|
901
|
+
|
|
902
|
+
export declare type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
903
|
+
|
|
904
|
+
export declare const toastStore: {
|
|
905
|
+
subscribe(listener: Listener): () => void;
|
|
906
|
+
add(toast: ToastItem): void;
|
|
907
|
+
remove(id: string): void;
|
|
908
|
+
};
|
|
909
|
+
|
|
910
|
+
/**
|
|
911
|
+
* Convert day of week from Sunday-based (0-6) to Monday-based (0-6)
|
|
912
|
+
* Sunday (0) becomes 6, Monday (1) becomes 0, etc.
|
|
913
|
+
*/
|
|
914
|
+
export declare function toMondayBased(dayOfWeek: number): number;
|
|
915
|
+
|
|
916
|
+
export declare function Tooltip({ children, content, position, delay, className, }: TooltipProps): JSX.Element;
|
|
917
|
+
|
|
918
|
+
export declare type TooltipPosition = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
|
|
919
|
+
|
|
920
|
+
export declare type TooltipProps = {
|
|
921
|
+
children: ReactNode;
|
|
922
|
+
content: ReactNode;
|
|
923
|
+
position?: TooltipPosition;
|
|
924
|
+
delay?: number;
|
|
925
|
+
className?: string;
|
|
926
|
+
};
|
|
927
|
+
|
|
928
|
+
export declare function UnreadIcon(props: IconProps): JSX.Element;
|
|
929
|
+
|
|
930
|
+
export declare function useAccordion(): AccordionContextValue;
|
|
931
|
+
|
|
932
|
+
export declare function useDropdown(): DropdownContextValue;
|
|
933
|
+
|
|
934
|
+
export declare function useLongPress(onLongPress: () => void, onClick: () => void, delay?: number): {
|
|
935
|
+
onMouseDown: () => void;
|
|
936
|
+
onMouseUp: () => void;
|
|
937
|
+
onMouseLeave: () => void;
|
|
938
|
+
onTouchStart: () => void;
|
|
939
|
+
onTouchEnd: () => void;
|
|
940
|
+
onClick: () => void;
|
|
941
|
+
};
|
|
942
|
+
|
|
943
|
+
export { }
|