quickit-ui 0.1.7 → 0.1.9

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.
@@ -0,0 +1,740 @@
1
+ import * as React from "react";
2
+
3
+ export declare const QUICKIT_SEMANTIC_COLORS: readonly [
4
+ "neutral",
5
+ "primary",
6
+ "brand",
7
+ "success",
8
+ "danger",
9
+ "warning",
10
+ "info",
11
+ "light",
12
+ "dark",
13
+ ];
14
+ export declare const QUICKIT_ACCENT_COLORS: readonly [
15
+ "neutral",
16
+ "primary",
17
+ "brand",
18
+ "success",
19
+ "danger",
20
+ "warning",
21
+ "info",
22
+ ];
23
+ export declare const QUICKIT_CONTROL_SIZES: readonly [
24
+ "sm",
25
+ "md",
26
+ "lg",
27
+ "xl",
28
+ "2xl",
29
+ ];
30
+ export declare const QUICKIT_COMPACT_CONTROL_SIZES: readonly ["sm", "md"];
31
+ export declare const QUICKIT_BUTTON_VARIANTS: readonly [
32
+ "solid",
33
+ "outline",
34
+ "ghost",
35
+ ];
36
+ export declare const QUICKIT_BUTTON_SHAPES: readonly [
37
+ "default",
38
+ "square",
39
+ "pill",
40
+ ];
41
+ export declare const QUICKIT_AVATAR_SHAPES: readonly [
42
+ "circle",
43
+ "rounded",
44
+ "square",
45
+ ];
46
+ export declare const QUICKIT_AVATAR_SIZES: typeof QUICKIT_CONTROL_SIZES;
47
+ export declare const QUICKIT_LINK_TEXT_VARIANTS: readonly [
48
+ "default",
49
+ "muted",
50
+ "subtle",
51
+ ];
52
+ export declare const QUICKIT_LINK_UNDERLINES: readonly [
53
+ "always",
54
+ "hover",
55
+ "none",
56
+ ];
57
+ export declare const QUICKIT_TAB_SIZES: readonly ["xs", "sm", "md", "lg"];
58
+ export declare const QUICKIT_CONTROL_RADIUS_TOKENS: Record<string, string>;
59
+ export declare const QUICKIT_AVATAR_RADIUS_TOKENS: Record<
60
+ string,
61
+ Record<string, string>
62
+ >;
63
+
64
+ export type QuickitThemeMode = "light" | "dark";
65
+ export type QuickitSemanticColor = (typeof QUICKIT_SEMANTIC_COLORS)[number];
66
+ export type QuickitAccentColor = (typeof QUICKIT_ACCENT_COLORS)[number];
67
+ export type QuickitControlSize = (typeof QUICKIT_CONTROL_SIZES)[number];
68
+ export type QuickitCompactControlSize =
69
+ (typeof QUICKIT_COMPACT_CONTROL_SIZES)[number];
70
+ export type QuickitButtonVariant = (typeof QUICKIT_BUTTON_VARIANTS)[number];
71
+ export type QuickitButtonShape = (typeof QUICKIT_BUTTON_SHAPES)[number];
72
+ export type QuickitAvatarShape = (typeof QUICKIT_AVATAR_SHAPES)[number];
73
+ export type QuickitAvatarSize = (typeof QUICKIT_AVATAR_SIZES)[number];
74
+ export type QuickitPresenceStatus =
75
+ | "online"
76
+ | "away"
77
+ | "busy"
78
+ | "offline";
79
+ export type QuickitLinkTextVariant =
80
+ (typeof QUICKIT_LINK_TEXT_VARIANTS)[number];
81
+ export type QuickitLinkUnderline =
82
+ (typeof QUICKIT_LINK_UNDERLINES)[number];
83
+ export type QuickitTabSize = (typeof QUICKIT_TAB_SIZES)[number];
84
+ export type QuickitFloatingColor = "default" | QuickitSemanticColor;
85
+
86
+ export declare function isQuickitTokenValue(
87
+ collection: readonly string[],
88
+ value: string,
89
+ ): boolean;
90
+ export declare function resolveQuickitToken<T extends string>(
91
+ collection: readonly T[],
92
+ value: string | undefined,
93
+ fallback: T,
94
+ ): T;
95
+
96
+ export declare function cn(...inputs: unknown[]): string;
97
+ export declare function getControlRadius(size?: QuickitControlSize): string;
98
+ export declare function getAvatarRadius(
99
+ shape?: QuickitAvatarShape,
100
+ size?: QuickitAvatarSize,
101
+ ): string;
102
+
103
+ export interface QuickitProviderProps {
104
+ children?: React.ReactNode;
105
+ theme?: QuickitThemeMode;
106
+ }
107
+ export declare function QuickitProvider(
108
+ props: QuickitProviderProps,
109
+ ): React.JSX.Element;
110
+ export declare function useQuickitTheme(): QuickitThemeMode;
111
+
112
+ export interface QuickitFormControlContextValue {
113
+ controlId: string;
114
+ descriptionId: string;
115
+ disabled: boolean;
116
+ invalid: boolean;
117
+ messageId: string;
118
+ required: boolean;
119
+ }
120
+
121
+ export interface FormControlProps extends React.HTMLAttributes<HTMLDivElement> {
122
+ children?: React.ReactNode;
123
+ disabled?: boolean;
124
+ id?: string;
125
+ invalid?: boolean;
126
+ required?: boolean;
127
+ }
128
+ export declare function FormControl(
129
+ props: FormControlProps,
130
+ ): React.JSX.Element;
131
+
132
+ export interface FormDescriptionProps
133
+ extends React.HTMLAttributes<HTMLParagraphElement> {
134
+ children?: React.ReactNode;
135
+ id?: string;
136
+ }
137
+ export declare function FormDescription(
138
+ props: FormDescriptionProps,
139
+ ): React.JSX.Element;
140
+
141
+ export interface FormMessageProps
142
+ extends React.HTMLAttributes<HTMLParagraphElement> {
143
+ children?: React.ReactNode;
144
+ id?: string;
145
+ }
146
+ export declare function FormMessage(
147
+ props: FormMessageProps,
148
+ ): React.JSX.Element | null;
149
+
150
+ export declare function useFormControl():
151
+ | QuickitFormControlContextValue
152
+ | null;
153
+
154
+ type ButtonBaseProps = Omit<
155
+ React.ButtonHTMLAttributes<HTMLButtonElement>,
156
+ "color"
157
+ >;
158
+
159
+ export interface ButtonProps extends ButtonBaseProps {
160
+ active?: boolean;
161
+ activeMotion?: boolean;
162
+ color?: QuickitSemanticColor;
163
+ fullWidth?: boolean;
164
+ loading?: boolean;
165
+ loadingText?: React.ReactNode;
166
+ pressed?: boolean;
167
+ shape?: QuickitButtonShape;
168
+ size?: QuickitControlSize;
169
+ spinner?: boolean;
170
+ variant?: QuickitButtonVariant;
171
+ }
172
+ export declare const Button: React.ForwardRefExoticComponent<
173
+ ButtonProps & React.RefAttributes<HTMLButtonElement>
174
+ >;
175
+
176
+ type LinkBaseProps = Omit<
177
+ React.AnchorHTMLAttributes<HTMLAnchorElement>,
178
+ "color"
179
+ >;
180
+
181
+ export interface LinkProps extends LinkBaseProps {
182
+ activeMotion?: boolean;
183
+ appearance?: "text" | "button";
184
+ color?: QuickitSemanticColor;
185
+ fullWidth?: boolean;
186
+ shape?: QuickitButtonShape;
187
+ size?: QuickitControlSize;
188
+ underline?: QuickitLinkUnderline;
189
+ variant?: QuickitLinkTextVariant | QuickitButtonVariant;
190
+ }
191
+ export declare const Link: React.ForwardRefExoticComponent<
192
+ LinkProps & React.RefAttributes<HTMLAnchorElement>
193
+ >;
194
+
195
+ type BadgeBaseProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "color">;
196
+
197
+ export interface BadgeProps extends BadgeBaseProps {
198
+ color?: QuickitAccentColor;
199
+ size?: QuickitCompactControlSize;
200
+ variant?: "soft" | "outline" | "solid";
201
+ }
202
+ export declare const Badge: React.ForwardRefExoticComponent<
203
+ BadgeProps & React.RefAttributes<HTMLSpanElement>
204
+ >;
205
+
206
+ type AvatarBaseProps = React.HTMLAttributes<HTMLSpanElement>;
207
+ type AvatarImageBaseProps = React.ImgHTMLAttributes<HTMLImageElement>;
208
+ type AvatarGroupBaseProps = React.HTMLAttributes<HTMLDivElement>;
209
+
210
+ export interface AvatarProps extends AvatarBaseProps {
211
+ shape?: QuickitAvatarShape;
212
+ size?: QuickitAvatarSize;
213
+ }
214
+ export interface AvatarImageProps extends AvatarImageBaseProps {}
215
+ export interface AvatarFallbackProps extends AvatarBaseProps {}
216
+ export interface AvatarGroupProps extends AvatarGroupBaseProps {
217
+ stacked?: boolean;
218
+ }
219
+ export interface InitialsProps extends React.HTMLAttributes<HTMLSpanElement> {
220
+ fallback?: string;
221
+ max?: number;
222
+ name: string | number;
223
+ }
224
+ export interface AvatarPresenceProps
225
+ extends React.HTMLAttributes<HTMLSpanElement> {
226
+ label?: string;
227
+ size?: QuickitAvatarSize;
228
+ status?: QuickitPresenceStatus;
229
+ }
230
+ export interface UserChipProps extends React.HTMLAttributes<HTMLElement> {
231
+ description?: React.ReactNode;
232
+ href?: string;
233
+ initials?: string;
234
+ name: React.ReactNode;
235
+ presence?: QuickitPresenceStatus;
236
+ rel?: string;
237
+ shape?: QuickitAvatarShape;
238
+ size?: QuickitAvatarSize;
239
+ src?: string;
240
+ target?: string;
241
+ trailing?: React.ReactNode;
242
+ }
243
+ export declare function getInitials(
244
+ name: string | number,
245
+ options?: { fallback?: string; max?: number },
246
+ ): string;
247
+ export declare const Avatar: React.ForwardRefExoticComponent<
248
+ AvatarProps & React.RefAttributes<HTMLSpanElement>
249
+ >;
250
+ export declare const AvatarImage: React.ForwardRefExoticComponent<
251
+ AvatarImageProps & React.RefAttributes<HTMLImageElement>
252
+ >;
253
+ export declare const AvatarFallback: React.ForwardRefExoticComponent<
254
+ AvatarFallbackProps & React.RefAttributes<HTMLSpanElement>
255
+ >;
256
+ export declare const AvatarGroup: React.ForwardRefExoticComponent<
257
+ AvatarGroupProps & React.RefAttributes<HTMLDivElement>
258
+ >;
259
+ export declare const Initials: React.ForwardRefExoticComponent<
260
+ InitialsProps & React.RefAttributes<HTMLSpanElement>
261
+ >;
262
+ export declare const AvatarPresence: React.ForwardRefExoticComponent<
263
+ AvatarPresenceProps & React.RefAttributes<HTMLSpanElement>
264
+ >;
265
+ export declare const UserChip: React.ForwardRefExoticComponent<
266
+ UserChipProps & React.RefAttributes<HTMLElement>
267
+ >;
268
+
269
+ export interface EmptyStateProps
270
+ extends React.HTMLAttributes<HTMLDivElement> {
271
+ align?: "center" | "start";
272
+ }
273
+ export interface EmptyStateTitleProps
274
+ extends React.HTMLAttributes<HTMLHeadingElement> {}
275
+ export interface EmptyStateDescriptionProps
276
+ extends React.HTMLAttributes<HTMLParagraphElement> {}
277
+ export interface EmptyStateActionsProps
278
+ extends React.HTMLAttributes<HTMLDivElement> {}
279
+ export declare const EmptyState: React.ForwardRefExoticComponent<
280
+ EmptyStateProps & React.RefAttributes<HTMLDivElement>
281
+ >;
282
+ export declare const EmptyStateTitle: React.ForwardRefExoticComponent<
283
+ EmptyStateTitleProps & React.RefAttributes<HTMLHeadingElement>
284
+ >;
285
+ export declare const EmptyStateDescription: React.ForwardRefExoticComponent<
286
+ EmptyStateDescriptionProps & React.RefAttributes<HTMLParagraphElement>
287
+ >;
288
+ export declare const EmptyStateActions: React.ForwardRefExoticComponent<
289
+ EmptyStateActionsProps & React.RefAttributes<HTMLDivElement>
290
+ >;
291
+
292
+ export interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
293
+ animated?: boolean;
294
+ shape?: "line" | "rect" | "circle";
295
+ }
296
+ export declare const Skeleton: React.ForwardRefExoticComponent<
297
+ SkeletonProps & React.RefAttributes<HTMLDivElement>
298
+ >;
299
+
300
+ type InputBaseProps = Omit<
301
+ React.InputHTMLAttributes<HTMLInputElement>,
302
+ "size"
303
+ >;
304
+ type TextareaBaseProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
305
+ type LabelBaseProps = React.LabelHTMLAttributes<HTMLLabelElement>;
306
+
307
+ export interface InputProps extends InputBaseProps {
308
+ invalid?: boolean;
309
+ required?: boolean;
310
+ size?: "sm" | "md" | "lg";
311
+ }
312
+ export declare const Input: React.ForwardRefExoticComponent<
313
+ InputProps & React.RefAttributes<HTMLInputElement>
314
+ >;
315
+
316
+ export interface TextareaProps extends TextareaBaseProps {
317
+ invalid?: boolean;
318
+ minRows?: number;
319
+ required?: boolean;
320
+ }
321
+ export declare const Textarea: React.ForwardRefExoticComponent<
322
+ TextareaProps & React.RefAttributes<HTMLTextAreaElement>
323
+ >;
324
+
325
+ export interface LabelProps extends LabelBaseProps {
326
+ optional?: boolean;
327
+ requiredIndicator?: boolean;
328
+ }
329
+ export declare const Label: React.ForwardRefExoticComponent<
330
+ LabelProps & React.RefAttributes<HTMLLabelElement>
331
+ >;
332
+
333
+ type CheckboxInputProps = Omit<
334
+ React.InputHTMLAttributes<HTMLInputElement>,
335
+ "color" | "size" | "type"
336
+ >;
337
+ type RadioInputProps = Omit<
338
+ React.InputHTMLAttributes<HTMLInputElement>,
339
+ "color" | "size" | "type"
340
+ >;
341
+
342
+ export interface CheckboxProps extends CheckboxInputProps {
343
+ color?: QuickitAccentColor;
344
+ containerClassName?: string;
345
+ invalid?: boolean;
346
+ label?: React.ReactNode;
347
+ labelClassName?: string;
348
+ required?: boolean;
349
+ size?: QuickitCompactControlSize;
350
+ }
351
+ export declare const Checkbox: React.ForwardRefExoticComponent<
352
+ CheckboxProps & React.RefAttributes<HTMLInputElement>
353
+ >;
354
+
355
+ export interface RadioProps extends RadioInputProps {
356
+ color?: QuickitAccentColor;
357
+ containerClassName?: string;
358
+ invalid?: boolean;
359
+ label?: React.ReactNode;
360
+ labelClassName?: string;
361
+ required?: boolean;
362
+ size?: QuickitCompactControlSize;
363
+ }
364
+ export declare const Radio: React.ForwardRefExoticComponent<
365
+ RadioProps & React.RefAttributes<HTMLInputElement>
366
+ >;
367
+
368
+ type SwitchButtonProps = Omit<
369
+ React.ButtonHTMLAttributes<HTMLButtonElement>,
370
+ "color" | "size" | "value"
371
+ >;
372
+
373
+ export interface SwitchProps extends SwitchButtonProps {
374
+ checked?: boolean;
375
+ color?: QuickitAccentColor;
376
+ containerClassName?: string;
377
+ defaultChecked?: boolean;
378
+ invalid?: boolean;
379
+ label?: React.ReactNode;
380
+ labelClassName?: string;
381
+ name?: string;
382
+ onCheckedChange?: (checked: boolean) => void;
383
+ required?: boolean;
384
+ size?: QuickitCompactControlSize;
385
+ value?: string;
386
+ }
387
+ export declare const Switch: React.ForwardRefExoticComponent<
388
+ SwitchProps & React.RefAttributes<HTMLButtonElement>
389
+ >;
390
+
391
+ export interface QuickitSelectChangeEvent {
392
+ type: "change";
393
+ nativeEvent?: Event;
394
+ target: {
395
+ id?: string;
396
+ name?: string;
397
+ value: string;
398
+ };
399
+ currentTarget: {
400
+ id?: string;
401
+ name?: string;
402
+ value: string;
403
+ };
404
+ preventDefault(): void;
405
+ stopPropagation(): void;
406
+ }
407
+
408
+ export interface SelectProps
409
+ extends Omit<React.HTMLAttributes<HTMLButtonElement>, "onChange"> {
410
+ children?: React.ReactNode;
411
+ defaultValue?: string | number;
412
+ disabled?: boolean;
413
+ id?: string;
414
+ invalid?: boolean;
415
+ name?: string;
416
+ onChange?: (event: QuickitSelectChangeEvent) => void;
417
+ onValueChange?: (value: string) => void;
418
+ placeholder?: React.ReactNode;
419
+ required?: boolean;
420
+ size?: "sm" | "md" | "lg";
421
+ usePortal?: boolean;
422
+ value?: string | number;
423
+ }
424
+ export declare const Select: React.ForwardRefExoticComponent<
425
+ SelectProps & React.RefAttributes<HTMLButtonElement>
426
+ >;
427
+
428
+ export interface TabsContextValue {
429
+ activationMode: "automatic" | "manual";
430
+ baseId: string;
431
+ color: QuickitSemanticColor;
432
+ orientation: "horizontal" | "vertical";
433
+ setValue: (value: string) => void;
434
+ size: QuickitTabSize;
435
+ value?: string;
436
+ }
437
+
438
+ export interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
439
+ activationMode?: "automatic" | "manual";
440
+ color?: QuickitSemanticColor;
441
+ defaultValue?: string;
442
+ onValueChange?: (value: string) => void;
443
+ orientation?: "horizontal" | "vertical";
444
+ size?: QuickitTabSize;
445
+ value?: string;
446
+ }
447
+ export interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {}
448
+ export interface TabsTriggerProps
449
+ extends React.ButtonHTMLAttributes<HTMLButtonElement> {
450
+ disabled?: boolean;
451
+ value: string;
452
+ }
453
+ export interface TabsContentProps
454
+ extends React.HTMLAttributes<HTMLDivElement> {
455
+ forceMount?: boolean;
456
+ value: string;
457
+ }
458
+ export declare function Tabs(props: TabsProps): React.JSX.Element;
459
+ export declare function TabsList(props: TabsListProps): React.JSX.Element;
460
+ export declare function TabsTrigger(
461
+ props: TabsTriggerProps,
462
+ ): React.JSX.Element;
463
+ export declare function TabsContent(
464
+ props: TabsContentProps,
465
+ ): React.JSX.Element | null;
466
+ export declare function useTabs(): TabsContextValue;
467
+
468
+ export interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {
469
+ collapsible?: boolean;
470
+ defaultValue?: string | string[];
471
+ onValueChange?: (value: string | string[] | null) => void;
472
+ type?: "single" | "multiple";
473
+ value?: string | string[] | null;
474
+ }
475
+ export interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {
476
+ value: string;
477
+ }
478
+ export interface AccordionTriggerProps
479
+ extends React.ButtonHTMLAttributes<HTMLButtonElement> {}
480
+ export interface AccordionContentProps
481
+ extends React.HTMLAttributes<HTMLDivElement> {
482
+ forceMount?: boolean;
483
+ }
484
+ export declare function Accordion(props: AccordionProps): React.JSX.Element;
485
+ export declare function AccordionItem(
486
+ props: AccordionItemProps,
487
+ ): React.JSX.Element;
488
+ export declare function AccordionTrigger(
489
+ props: AccordionTriggerProps,
490
+ ): React.JSX.Element;
491
+ export declare function AccordionContent(
492
+ props: AccordionContentProps,
493
+ ): React.JSX.Element | null;
494
+
495
+ export interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {}
496
+ export interface BreadcrumbListProps
497
+ extends React.OlHTMLAttributes<HTMLOListElement> {
498
+ separator?: React.ReactNode;
499
+ separatorClassName?: string;
500
+ }
501
+ export interface BreadcrumbItemProps
502
+ extends React.LiHTMLAttributes<HTMLLIElement> {
503
+ allowLink?: boolean;
504
+ contentClassName?: string;
505
+ current?: boolean;
506
+ href?: string;
507
+ linkVariant?: QuickitLinkTextVariant;
508
+ title?: string;
509
+ underline?: QuickitLinkUnderline;
510
+ }
511
+ export interface BreadcrumbLinkProps extends LinkProps {}
512
+ export interface BreadcrumbSeparatorProps
513
+ extends React.LiHTMLAttributes<HTMLLIElement> {}
514
+ export interface BreadcrumbCurrentProps
515
+ extends React.HTMLAttributes<HTMLSpanElement> {}
516
+ export declare const Breadcrumb: React.ForwardRefExoticComponent<
517
+ BreadcrumbProps & React.RefAttributes<HTMLElement>
518
+ >;
519
+ export declare const BreadcrumbList: React.ForwardRefExoticComponent<
520
+ BreadcrumbListProps & React.RefAttributes<HTMLOListElement>
521
+ >;
522
+ export declare const BreadcrumbItem: React.ForwardRefExoticComponent<
523
+ BreadcrumbItemProps & React.RefAttributes<HTMLLIElement>
524
+ >;
525
+ export declare const BreadcrumbLink: React.ForwardRefExoticComponent<
526
+ BreadcrumbLinkProps & React.RefAttributes<HTMLAnchorElement>
527
+ >;
528
+ export declare const BreadcrumbSeparator: React.ForwardRefExoticComponent<
529
+ BreadcrumbSeparatorProps & React.RefAttributes<HTMLLIElement>
530
+ >;
531
+ export declare const BreadcrumbCurrent: React.ForwardRefExoticComponent<
532
+ BreadcrumbCurrentProps & React.RefAttributes<HTMLSpanElement>
533
+ >;
534
+
535
+ export interface PaginationProps extends React.HTMLAttributes<HTMLElement> {
536
+ color?: QuickitSemanticColor;
537
+ count: number;
538
+ defaultPage?: number;
539
+ disabled?: boolean;
540
+ onPageChange?: (page: number) => void;
541
+ page?: number;
542
+ siblingCount?: number;
543
+ }
544
+ export declare function Pagination(props: PaginationProps): React.JSX.Element;
545
+
546
+ export interface DropdownProps {
547
+ children?: React.ReactNode;
548
+ closeOnClickOutside?: boolean;
549
+ closeOnScroll?: boolean;
550
+ collisionPadding?: number;
551
+ defaultOpen?: boolean;
552
+ offsetX?: number;
553
+ onOpenChange?: (open: boolean) => void;
554
+ open?: boolean;
555
+ placement?: string;
556
+ showArrow?: boolean;
557
+ usePortal?: boolean;
558
+ }
559
+ export interface DropdownContextValue {
560
+ open: boolean;
561
+ setOpen: (open: boolean) => void;
562
+ toggle: () => void;
563
+ close: () => void;
564
+ refs: unknown;
565
+ context: unknown;
566
+ interactions: unknown;
567
+ floatingStyles: React.CSSProperties;
568
+ placement: string;
569
+ setArrowElement: (element: Element | null) => void;
570
+ showArrow: boolean;
571
+ usePortal: boolean;
572
+ }
573
+ export interface DropdownTriggerProps
574
+ extends React.ButtonHTMLAttributes<HTMLButtonElement> {
575
+ asChild?: boolean;
576
+ children?: React.ReactNode;
577
+ }
578
+ export interface DropdownContentProps
579
+ extends React.HTMLAttributes<HTMLUListElement> {
580
+ animated?: boolean;
581
+ }
582
+ export interface DropdownItemProps
583
+ extends React.HTMLAttributes<HTMLElement> {
584
+ as?: React.ElementType;
585
+ closeOnClick?: boolean;
586
+ disabled?: boolean;
587
+ href?: string;
588
+ variant?: "default" | "danger";
589
+ }
590
+ export interface DropdownSeparatorProps
591
+ extends React.HTMLAttributes<HTMLLIElement> {}
592
+ export declare function Dropdown(props: DropdownProps): React.JSX.Element;
593
+ export declare const DropdownTrigger: React.ForwardRefExoticComponent<
594
+ DropdownTriggerProps & React.RefAttributes<HTMLButtonElement>
595
+ >;
596
+ export declare const DropdownContent: React.ForwardRefExoticComponent<
597
+ DropdownContentProps & React.RefAttributes<HTMLUListElement>
598
+ >;
599
+ export declare const DropdownItem: React.ForwardRefExoticComponent<
600
+ DropdownItemProps & React.RefAttributes<HTMLElement>
601
+ >;
602
+ export declare function DropdownSeparator(
603
+ props: DropdownSeparatorProps,
604
+ ): React.JSX.Element;
605
+ export declare function useDropdown(): DropdownContextValue;
606
+
607
+ export interface PopoverProps {
608
+ arrowHeight?: number;
609
+ arrowFill?: string;
610
+ arrowStroke?: string;
611
+ arrowStrokeWidth?: number;
612
+ arrowTipRadius?: number;
613
+ arrowWidth?: number;
614
+ autoCloseMs?: number;
615
+ children?: React.ReactNode;
616
+ className?: string;
617
+ color?: QuickitFloatingColor;
618
+ content: React.ReactNode;
619
+ offset?: number;
620
+ placement?: string;
621
+ showArrow?: boolean;
622
+ trigger?: "hover" | "click";
623
+ usePortal?: boolean;
624
+ zIndex?: number;
625
+ }
626
+ export declare function Popover(props: PopoverProps): React.JSX.Element;
627
+
628
+ export interface TooltipProps extends Omit<PopoverProps, "trigger"> {}
629
+ export declare function Tooltip(props: TooltipProps): React.JSX.Element;
630
+
631
+ export interface ModalContextValue {
632
+ close: () => Promise<void> | void;
633
+ instanceZIndex: number;
634
+ maxWidth: string;
635
+ open: boolean;
636
+ outsideClick: boolean;
637
+ rendered: boolean;
638
+ setOpen: (open: boolean) => void;
639
+ visible: boolean;
640
+ }
641
+ export interface ModalProps {
642
+ children?: React.ReactNode;
643
+ defaultOpen?: boolean;
644
+ maxWidth?: string;
645
+ onBeforeClose?: () => boolean | Promise<boolean | void> | void;
646
+ onOpenChange?: (open: boolean) => void;
647
+ open?: boolean;
648
+ outsideClick?: boolean;
649
+ zIndex?: number;
650
+ }
651
+ export interface ModalTriggerProps {
652
+ as?: React.ElementType;
653
+ asChild?: boolean;
654
+ children?: React.ReactNode;
655
+ className?: string;
656
+ disabled?: boolean;
657
+ onClick?: React.MouseEventHandler<HTMLElement>;
658
+ [key: string]: unknown;
659
+ }
660
+ export interface ModalContentProps extends React.HTMLAttributes<HTMLDivElement> {}
661
+ export interface ModalHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}
662
+ export interface ModalTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
663
+ centered?: boolean;
664
+ }
665
+ export interface ModalBodyProps extends React.HTMLAttributes<HTMLDivElement> {}
666
+ export interface ModalActionsProps extends React.HTMLAttributes<HTMLDivElement> {
667
+ placement?: "start" | "center" | "end";
668
+ }
669
+ export interface ModalActionProps extends ButtonProps {
670
+ closeOnClick?: boolean;
671
+ }
672
+ export interface ModalComponent extends React.FC<ModalProps> {
673
+ Trigger: typeof ModalTrigger;
674
+ Content: typeof ModalContent;
675
+ Header: typeof ModalHeader;
676
+ Title: typeof ModalTitle;
677
+ Body: typeof ModalBody;
678
+ Actions: typeof ModalActions;
679
+ Action: typeof ModalAction;
680
+ }
681
+ export declare const ModalTrigger: React.FC<ModalTriggerProps>;
682
+ export declare const ModalContent: React.FC<ModalContentProps>;
683
+ export declare const ModalHeader: React.FC<ModalHeaderProps>;
684
+ export declare const ModalTitle: React.FC<ModalTitleProps>;
685
+ export declare const ModalBody: React.FC<ModalBodyProps>;
686
+ export declare const ModalActions: React.FC<ModalActionsProps>;
687
+ export declare const ModalAction: React.FC<ModalActionProps>;
688
+ export declare const Modal: ModalComponent;
689
+ export declare function useModal(): ModalContextValue;
690
+
691
+ type Renderable<T> = React.ReactNode | ((value: T) => React.ReactNode);
692
+
693
+ export interface ShowProps<T = unknown> {
694
+ children?: Renderable<T>;
695
+ fallback?: Renderable<T>;
696
+ when: T;
697
+ }
698
+ export declare function Show<T = unknown>(props: ShowProps<T>): React.JSX.Element;
699
+
700
+ export interface MatchProps<T = unknown> {
701
+ children?: Renderable<T>;
702
+ when: T | readonly T[] | ((value: T) => boolean);
703
+ }
704
+ export declare function Match<T = unknown>(
705
+ props: MatchProps<T>,
706
+ ): React.JSX.Element;
707
+
708
+ export interface DefaultProps<T = unknown> {
709
+ children?: Renderable<T>;
710
+ }
711
+ export declare function Default<T = unknown>(
712
+ props: DefaultProps<T>,
713
+ ): React.JSX.Element;
714
+
715
+ export interface RenderSwitchProps<T = unknown> {
716
+ children?: React.ReactNode;
717
+ fallback?: Renderable<T>;
718
+ value: T;
719
+ }
720
+ export declare function RenderSwitch<T = unknown>(
721
+ props: RenderSwitchProps<T>,
722
+ ): React.JSX.Element;
723
+
724
+ export interface ForProps<T = unknown> {
725
+ children?: (item: T, index: number) => React.ReactNode;
726
+ each?: Iterable<T> | null;
727
+ fallback?: React.ReactNode | ((items: T[]) => React.ReactNode);
728
+ }
729
+ export declare function For<T = unknown>(props: ForProps<T>): React.JSX.Element;
730
+
731
+ export interface UseFloatingLayerOptions {
732
+ middleware?: unknown[];
733
+ offset?: number;
734
+ placement?: string;
735
+ shiftPadding?: number;
736
+ [key: string]: unknown;
737
+ }
738
+ export declare function useFloatingLayer(
739
+ options?: UseFloatingLayerOptions,
740
+ ): any;