@parrot-co/parrot-ui 1.0.0-beta.0 → 1.0.0-beta.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/dist/index.d.mts +190 -31
- package/dist/index.d.ts +190 -31
- package/dist/index.js +1227 -436
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1213 -438
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +364 -32
- package/package.json +2 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import * as react_aria_components from 'react-aria-components';
|
|
4
|
-
import { TextFieldProps, NumberFieldProps, ButtonProps as ButtonProps$1, ToggleButtonProps as ToggleButtonProps$1, CheckboxFieldProps, CheckboxGroupProps as CheckboxGroupProps$1, MenuTriggerProps as MenuTriggerProps$1, MenuProps as MenuProps$1, Placement, MenuItemProps as MenuItemProps$1, MenuSectionProps as MenuSectionProps$1, ListBoxProps as ListBoxProps$1, ListBoxItemProps as ListBoxItemProps$1, ListBoxSectionProps as ListBoxSectionProps$1, RadioFieldProps, RadioGroupProps as RadioGroupProps$1, CalendarProps as CalendarProps$1, DateValue, RangeCalendarProps as RangeCalendarProps$1, DateFieldProps as DateFieldProps$1, TimeFieldProps as TimeFieldProps$1, TimeValue, DatePickerProps as DatePickerProps$1, DateRangePickerProps as DateRangePickerProps$1, ProgressBarProps, SwitchFieldProps, SliderProps as SliderProps$1, Key, TabsProps as TabsProps$1, Selection, SortDescriptor, ModalOverlayProps, PopoverProps as PopoverProps$1, TagGroupProps as TagGroupProps$1, TagListProps, TagProps as TagProps$1, Color as Color$1, ColorAreaProps as ColorAreaProps$1, ColorFieldProps as ColorFieldProps$1, ColorSwatchPickerProps as ColorSwatchPickerProps$1, ColorSliderProps as ColorSliderProps$1 } from 'react-aria-components';
|
|
4
|
+
import { TextFieldProps, NumberFieldProps, ButtonProps as ButtonProps$1, ToggleButtonProps as ToggleButtonProps$1, CheckboxFieldProps, CheckboxGroupProps as CheckboxGroupProps$1, MenuTriggerProps as MenuTriggerProps$1, MenuProps as MenuProps$1, Placement, MenuItemProps as MenuItemProps$1, MenuSectionProps as MenuSectionProps$1, ListBoxProps as ListBoxProps$1, ListBoxItemProps as ListBoxItemProps$1, ListBoxSectionProps as ListBoxSectionProps$1, RadioFieldProps, RadioGroupProps as RadioGroupProps$1, SelectProps as SelectProps$1, CalendarProps as CalendarProps$1, DateValue, RangeCalendarProps as RangeCalendarProps$1, DateFieldProps as DateFieldProps$1, TimeFieldProps as TimeFieldProps$1, TimeValue, DatePickerProps as DatePickerProps$1, DateRangePickerProps as DateRangePickerProps$1, ProgressBarProps, SwitchFieldProps, SliderProps as SliderProps$1, Key, TabsProps as TabsProps$1, Selection, SortDescriptor, ModalOverlayProps, PopoverProps as PopoverProps$1, TagGroupProps as TagGroupProps$1, TagListProps, TagProps as TagProps$1, Color as Color$1, ColorAreaProps as ColorAreaProps$1, ColorFieldProps as ColorFieldProps$1, ColorSwatchPickerProps as ColorSwatchPickerProps$1, ColorSliderProps as ColorSliderProps$1, TooltipProps as TooltipProps$1 } from 'react-aria-components';
|
|
5
5
|
import { OverlayTriggerProps } from 'react-stately';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -70,6 +70,11 @@ type ColorVariant = Variant;
|
|
|
70
70
|
type InputAppearance = "outline" | "filled" | "filled-outline";
|
|
71
71
|
/** The shared control-size scale (`.prt-size` recipe). */
|
|
72
72
|
type Size = "2xs" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
73
|
+
/**
|
|
74
|
+
* The size range every control supports — the valid range for a theme-level
|
|
75
|
+
* `size` default. `2xs` (and larger opt-ins like `2xl`/`3xl`) stay per-component.
|
|
76
|
+
*/
|
|
77
|
+
type ControlSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
73
78
|
/** The radius scale (`data-radius` recipe). */
|
|
74
79
|
type Radius = "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full";
|
|
75
80
|
/** @deprecated use `Radius` */
|
|
@@ -77,11 +82,6 @@ type BorderRadius = "none" | "sm" | "md" | "lg" | "full";
|
|
|
77
82
|
type Appearance = "light" | "dark";
|
|
78
83
|
/** @deprecated use `Size` */
|
|
79
84
|
type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
80
|
-
type ButtonAppearance = "primary" | "secondary" | "minimal";
|
|
81
|
-
type ButtonAppearanceSchemaType = Partial<Record<ButtonAppearance, {
|
|
82
|
-
variant: Variant;
|
|
83
|
-
color: Color;
|
|
84
|
-
}>>;
|
|
85
85
|
type SizeOption = "none" | "4xs" | "3xs" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl";
|
|
86
86
|
|
|
87
87
|
type ActionStatus = "idle" | "loading" | "success" | "error";
|
|
@@ -373,37 +373,21 @@ interface RadioItemProps extends Omit<RadioFieldProps, "className" | "style" | "
|
|
|
373
373
|
}
|
|
374
374
|
declare function RadioItem({ className, style, classNames, styles, children, ...props }: RadioItemProps): React$1.JSX.Element;
|
|
375
375
|
|
|
376
|
-
type SingleOrMultipleValue = ID | Array<ID>;
|
|
377
376
|
type SelectionMode = "single" | "multiple";
|
|
378
|
-
interface
|
|
379
|
-
target: {
|
|
380
|
-
value: SingleOrMultipleValue;
|
|
381
|
-
name?: string;
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
|
-
interface SelectProps<T extends object> extends Pick<ListBoxProps<T>, "items" | "labelKey" | "valueKey" | "sectionKey" | "renderOption" | "renderSectionLabel" | "disabledKeys" | "children">, StyleProps<"wrapper" | "trigger" | "value" | "placeholder" | "label" | "popover"> {
|
|
377
|
+
interface SelectProps<T extends object, M extends SelectionMode = "single"> extends Omit<SelectProps$1<T, M>, "className" | "style" | "children" | "isInvalid" | "selectedKey" | "defaultSelectedKey" | "selectedKeys" | "defaultSelectedKeys" | "onSelectionChange">, Pick<ListBoxProps<T>, "items" | "labelKey" | "valueKey" | "sectionKey" | "renderOption" | "renderSectionLabel" | "disabledKeys" | "children">, StyleProps<"wrapper" | "trigger" | "value" | "placeholder" | "label" | "popover"> {
|
|
385
378
|
label?: React$1.ReactNode;
|
|
386
379
|
description?: React$1.ReactNode;
|
|
387
380
|
error?: React$1.ReactNode;
|
|
388
|
-
placeholder?: string;
|
|
389
|
-
selectionMode?: SelectionMode;
|
|
390
|
-
value?: SingleOrMultipleValue;
|
|
391
|
-
defaultValue?: SingleOrMultipleValue;
|
|
392
|
-
name?: string;
|
|
393
|
-
isDisabled?: boolean;
|
|
394
|
-
isRequired?: boolean;
|
|
395
381
|
color?: Color;
|
|
396
382
|
listBoxColor?: Color;
|
|
397
383
|
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
398
|
-
radius?:
|
|
384
|
+
radius?: Radius;
|
|
399
385
|
appearance?: InputAppearance;
|
|
400
386
|
showSectionSeparator?: boolean;
|
|
401
387
|
showSelectionIndicator?: boolean;
|
|
402
388
|
renderValue?: (value: T) => React$1.ReactNode;
|
|
403
|
-
onChange?: (event: MockNativeOnChangeEvent) => void;
|
|
404
|
-
onSelectionChange?: (keys: Array<ID>) => void;
|
|
405
389
|
}
|
|
406
|
-
declare function Select<T extends object>({ label, description, error, placeholder,
|
|
390
|
+
declare function Select<T extends object, M extends SelectionMode = "single">({ label, description, error, placeholder, appearance, renderValue, color, size, radius, listBoxColor, showSectionSeparator, showSelectionIndicator, items, children, labelKey, valueKey, sectionKey, renderOption, renderSectionLabel, disabledKeys, className, classNames, style, styles, "aria-label": ariaLabel, ...racProps }: SelectProps<T, M>): React$1.JSX.Element;
|
|
407
391
|
|
|
408
392
|
interface CalendarProps extends Omit<CalendarProps$1<DateValue>, "className" | "style" | "children" | "visibleDuration"> {
|
|
409
393
|
numberOfMonths?: number;
|
|
@@ -599,12 +583,13 @@ interface TableProps<T extends object> extends StyleProps<"wrapper" | "header" |
|
|
|
599
583
|
selectionMode?: "none" | "single" | "multiple";
|
|
600
584
|
selectedKeys?: Selection;
|
|
601
585
|
onSelectionChange?: (keys: Selection) => void;
|
|
586
|
+
onRowAction?: (key: string | number) => void;
|
|
602
587
|
sortDescriptor?: SortDescriptor;
|
|
603
588
|
onSortChange?: (descriptor: SortDescriptor) => void;
|
|
604
589
|
renderEmptyState?: () => React$1.ReactNode;
|
|
605
590
|
"aria-label"?: string;
|
|
606
591
|
}
|
|
607
|
-
declare function Table<T extends object>({ columns, data, getRowId, selectionMode, selectedKeys, onSelectionChange, sortDescriptor, onSortChange, renderEmptyState, radius, className, classNames, style, styles, ...props }: TableProps<T>): React$1.JSX.Element;
|
|
592
|
+
declare function Table<T extends object>({ columns, data, getRowId, selectionMode, selectedKeys, onSelectionChange, onRowAction, sortDescriptor, onSortChange, renderEmptyState, radius, className, classNames, style, styles, ...props }: TableProps<T>): React$1.JSX.Element;
|
|
608
593
|
|
|
609
594
|
interface TimelineProps<T> extends StyleProps<"wrapper" | "item" | "content"> {
|
|
610
595
|
items: Array<T>;
|
|
@@ -635,6 +620,58 @@ interface ModalProps extends Omit<ModalOverlayProps, "children" | "className" |
|
|
|
635
620
|
declare function Modal({ variant, radius, isDismissable, width, title, description, onConfirm, onCancel, confirmLabel, cancelLabel, confirmButtonProps, cancelButtonProps, showCloseButton, hideTitle, onClose, children, className, style, classNames, styles, ...props }: ModalProps): React$1.JSX.Element;
|
|
636
621
|
declare function useModal(props?: OverlayTriggerProps): react_aria_components.OverlayTriggerState;
|
|
637
622
|
|
|
623
|
+
/**
|
|
624
|
+
* A modal component registered in the registry receives these three props from
|
|
625
|
+
* the provider. Extend it in your own modal components:
|
|
626
|
+
*
|
|
627
|
+
* interface EditUserModalProps extends BaseModalProps<User> { userId: string }
|
|
628
|
+
*
|
|
629
|
+
* Call `onResolve(result)` to close with a value; `onOpenChange(false)` dismisses
|
|
630
|
+
* (resolves with `undefined`). Resolve wins once — call `onResolve`, not
|
|
631
|
+
* `onOpenChange`, when you have a result.
|
|
632
|
+
*/
|
|
633
|
+
interface BaseModalProps<TResult = void> extends Pick<ModalOverlayProps, "isOpen" | "onOpenChange"> {
|
|
634
|
+
onResolve: (result: TResult) => void;
|
|
635
|
+
}
|
|
636
|
+
type ModalComponent = React$1.ComponentType<any>;
|
|
637
|
+
type ModalDef<C extends ModalComponent = ModalComponent> = {
|
|
638
|
+
component: C;
|
|
639
|
+
};
|
|
640
|
+
interface ModalRegistry {
|
|
641
|
+
[key: string]: ModalDef;
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* Ambient registry — augment it (like ParrotColorRegistry) so `useModals().open`
|
|
645
|
+
* is fully typed with no generics at the call site:
|
|
646
|
+
*
|
|
647
|
+
* declare module "@parrot-co/parrot-ui" {
|
|
648
|
+
* interface ParrotModalRegistry {
|
|
649
|
+
* editUser: { component: typeof EditUserModal };
|
|
650
|
+
* }
|
|
651
|
+
* }
|
|
652
|
+
*/
|
|
653
|
+
interface ParrotModalRegistry {
|
|
654
|
+
}
|
|
655
|
+
type ModalKey = keyof ParrotModalRegistry & string;
|
|
656
|
+
type ComponentOf<K extends ModalKey> = ParrotModalRegistry[K] extends ModalDef<infer C> ? C : ModalComponent;
|
|
657
|
+
type ModalInputProps<K extends ModalKey> = Omit<React$1.ComponentProps<ComponentOf<K>>, "isOpen" | "onOpenChange" | "onResolve">;
|
|
658
|
+
type ModalResult<K extends ModalKey> = React$1.ComponentProps<ComponentOf<K>> extends {
|
|
659
|
+
onResolve?: (result: infer TResult) => void;
|
|
660
|
+
} ? TResult : void;
|
|
661
|
+
interface ModalControls {
|
|
662
|
+
open: <K extends ModalKey>(key: K, props?: ModalInputProps<K>) => Promise<ModalResult<K>>;
|
|
663
|
+
close: (key: ModalKey) => void;
|
|
664
|
+
update: <K extends ModalKey>(key: K, props: ModalInputProps<K>) => void;
|
|
665
|
+
isOpen: (key: ModalKey) => boolean;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
interface ModalProviderProps {
|
|
669
|
+
registry: ModalRegistry;
|
|
670
|
+
children: React$1.ReactNode;
|
|
671
|
+
}
|
|
672
|
+
declare function ModalProvider({ registry, children }: ModalProviderProps): React$1.JSX.Element;
|
|
673
|
+
declare function useModals(): ModalControls;
|
|
674
|
+
|
|
638
675
|
type TagFormat = "text" | "email" | "url" | "number";
|
|
639
676
|
interface TagInputProps extends FieldComponentProps<"input"> {
|
|
640
677
|
tags?: Array<string>;
|
|
@@ -692,10 +729,9 @@ declare function TagGroupItem({ children, textValue, ...props }: TagGroupItemPro
|
|
|
692
729
|
|
|
693
730
|
interface ThemeProviderValue {
|
|
694
731
|
color?: Color;
|
|
695
|
-
radius?:
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
avatarRadiusSize?: BorderRadius;
|
|
732
|
+
radius?: Radius;
|
|
733
|
+
size?: ControlSize;
|
|
734
|
+
colorScheme?: Appearance;
|
|
699
735
|
inputAppearance?: InputAppearance;
|
|
700
736
|
}
|
|
701
737
|
interface ThemeProviderProps extends ThemeProviderValue {
|
|
@@ -770,4 +806,127 @@ interface ToggleProps extends ButtonToggleProps, StyleProps<"wrapper"> {
|
|
|
770
806
|
}
|
|
771
807
|
declare function Toggle({ value, ...props }: ToggleProps): React$1.JSX.Element;
|
|
772
808
|
|
|
773
|
-
|
|
809
|
+
type ToastVariant = "default" | "success" | "error" | "warning" | "info";
|
|
810
|
+
type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
811
|
+
interface ToastAction {
|
|
812
|
+
label: string;
|
|
813
|
+
onClick: () => void;
|
|
814
|
+
}
|
|
815
|
+
interface ToastOptions {
|
|
816
|
+
description?: string;
|
|
817
|
+
action?: ToastAction;
|
|
818
|
+
cancel?: ToastAction;
|
|
819
|
+
duration?: number;
|
|
820
|
+
position?: ToastPosition;
|
|
821
|
+
}
|
|
822
|
+
type CustomToastRender = (props: {
|
|
823
|
+
close: () => void;
|
|
824
|
+
}) => React$1.ReactNode;
|
|
825
|
+
interface ToastRegionProps {
|
|
826
|
+
position?: ToastPosition;
|
|
827
|
+
}
|
|
828
|
+
declare function ToastRegion({ position }: ToastRegionProps): React$1.JSX.Element;
|
|
829
|
+
declare function toast(title: string, options?: ToastOptions): string;
|
|
830
|
+
declare namespace toast {
|
|
831
|
+
var success: (title: string, options?: ToastOptions) => string;
|
|
832
|
+
var error: (title: string, options?: ToastOptions) => string;
|
|
833
|
+
var warning: (title: string, options?: ToastOptions) => string;
|
|
834
|
+
var info: (title: string, options?: ToastOptions) => string;
|
|
835
|
+
var custom: (render: CustomToastRender, options?: Pick<ToastOptions, "duration" | "position">) => string;
|
|
836
|
+
var dismiss: (key: string) => void;
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
interface TooltipProps extends Omit<TooltipProps$1, "className" | "style" | "children">, StyleProps<"tooltip"> {
|
|
840
|
+
content: React$1.ReactNode;
|
|
841
|
+
children: React$1.ReactElement;
|
|
842
|
+
delay?: number;
|
|
843
|
+
closeDelay?: number;
|
|
844
|
+
isDisabled?: boolean;
|
|
845
|
+
showArrow?: boolean;
|
|
846
|
+
}
|
|
847
|
+
declare function Tooltip({ content, children, delay, closeDelay, isDisabled, showArrow, placement, offset, className, classNames, style, styles, ...props }: TooltipProps): React$1.JSX.Element;
|
|
848
|
+
|
|
849
|
+
interface HoverCardProps extends Omit<PopoverProps$1, "triggerRef" | "children" | "className" | "style" | "isOpen" | "defaultOpen" | "onOpenChange" | "isNonModal">, StyleProps<"popover" | "content"> {
|
|
850
|
+
children: React$1.ReactElement;
|
|
851
|
+
content: React$1.ReactNode;
|
|
852
|
+
openDelay?: number;
|
|
853
|
+
closeDelay?: number;
|
|
854
|
+
isDisabled?: boolean;
|
|
855
|
+
isOpen?: boolean;
|
|
856
|
+
defaultOpen?: boolean;
|
|
857
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
858
|
+
}
|
|
859
|
+
declare function HoverCard({ children, content, openDelay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange, offset, placement, className, classNames, style, styles, ...props }: HoverCardProps): React$1.JSX.Element;
|
|
860
|
+
|
|
861
|
+
type FieldValidator<T> = (value: unknown, values: T) => string | null;
|
|
862
|
+
interface UseFormOptions<T extends Record<string, unknown>> {
|
|
863
|
+
fields: T;
|
|
864
|
+
validators?: Partial<Record<keyof T, FieldValidator<T>>>;
|
|
865
|
+
optional?: Array<keyof T>;
|
|
866
|
+
resetKey?: string | number | null;
|
|
867
|
+
}
|
|
868
|
+
type Errors<T> = Record<keyof T, string | null>;
|
|
869
|
+
type Touched<T> = Record<keyof T, boolean>;
|
|
870
|
+
interface UseFormReturn<T extends Record<string, unknown>> {
|
|
871
|
+
values: T;
|
|
872
|
+
errors: Errors<T>;
|
|
873
|
+
touched: Touched<T>;
|
|
874
|
+
isDirty: boolean;
|
|
875
|
+
isSubmitting: boolean;
|
|
876
|
+
setIsSubmitting: React$1.Dispatch<React$1.SetStateAction<boolean>>;
|
|
877
|
+
onChange: (fieldName: keyof T, value: unknown) => void;
|
|
878
|
+
getFieldProps: (fieldName: keyof T) => {
|
|
879
|
+
name: string;
|
|
880
|
+
value: string;
|
|
881
|
+
onChange: (value: string) => void;
|
|
882
|
+
error: string | null;
|
|
883
|
+
};
|
|
884
|
+
getNumberFieldProps: (fieldName: keyof T) => {
|
|
885
|
+
name: string;
|
|
886
|
+
value: number;
|
|
887
|
+
onChange: (value: number) => void;
|
|
888
|
+
error: string | null;
|
|
889
|
+
};
|
|
890
|
+
getSelectProps: (fieldName: keyof T) => {
|
|
891
|
+
name: string;
|
|
892
|
+
value: Key | null;
|
|
893
|
+
onChange: (value: Key | null) => void;
|
|
894
|
+
error: string | null;
|
|
895
|
+
};
|
|
896
|
+
getCheckboxGroupProps: (fieldName: keyof T) => {
|
|
897
|
+
name: string;
|
|
898
|
+
value: string[];
|
|
899
|
+
onChange: (value: string[]) => void;
|
|
900
|
+
errorMessage: string | null;
|
|
901
|
+
};
|
|
902
|
+
getRadioGroupProps: (fieldName: keyof T) => {
|
|
903
|
+
name: string;
|
|
904
|
+
value: string;
|
|
905
|
+
onChange: (value: string) => void;
|
|
906
|
+
errorMessage: string | null;
|
|
907
|
+
};
|
|
908
|
+
getSwitchProps: (fieldName: keyof T) => {
|
|
909
|
+
name: string;
|
|
910
|
+
isSelected: boolean;
|
|
911
|
+
onChange: (value: boolean) => void;
|
|
912
|
+
};
|
|
913
|
+
handleSubmit: (callback: (values: T) => void | Promise<void>) => (e: React$1.FormEvent) => void;
|
|
914
|
+
isValid: () => boolean;
|
|
915
|
+
reset: () => void;
|
|
916
|
+
validateAll: () => Errors<T>;
|
|
917
|
+
setFieldValues: (newValues: Partial<T>) => void;
|
|
918
|
+
setFieldError: (fieldName: keyof T, error: string | null) => void;
|
|
919
|
+
}
|
|
920
|
+
declare function useForm<T extends Record<string, unknown>>({ fields: defaultFields, validators, optional, resetKey, }: UseFormOptions<T>): UseFormReturn<T>;
|
|
921
|
+
|
|
922
|
+
declare function required<T>(message?: string): FieldValidator<T>;
|
|
923
|
+
declare function email<T>(message?: string): FieldValidator<T>;
|
|
924
|
+
declare function minLength<T>(length: number, message?: string): FieldValidator<T>;
|
|
925
|
+
declare function maxLength<T>(length: number, message?: string): FieldValidator<T>;
|
|
926
|
+
declare function min<T>(n: number, message?: string): FieldValidator<T>;
|
|
927
|
+
declare function max<T>(n: number, message?: string): FieldValidator<T>;
|
|
928
|
+
declare function pattern<T>(regex: RegExp, message?: string): FieldValidator<T>;
|
|
929
|
+
declare function matches<T>(fieldName: keyof T & string, message?: string): FieldValidator<T>;
|
|
930
|
+
declare function compose<T>(...fns: Array<FieldValidator<T>>): FieldValidator<T>;
|
|
931
|
+
|
|
932
|
+
export { Avatar, AvatarGroup, type BaseModalProps, Button, ButtonGroup, Calendar, Checkbox, CheckboxGroup, CheckboxItem, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatchPicker, ComboBox, type CustomToastRender, DateField, DatePicker, DateRangePicker, type FieldValidator, FileUploader, HoverCard, type HoverCardProps, IconButton, Input, ListBox, ListBoxItem, ListBoxSection, Loader, Menu, MenuContent, MenuItem, MenuSection, MenuTrigger, Modal, type ModalControls, type ModalDef, type ModalInputProps, type ModalKey, type ModalProps, ModalProvider, type ModalProviderProps, type ModalRegistry, type ModalResult, NumberInput, ListBoxItem as Option, type ParrotModalRegistry, Popover, PopoverContent, PopoverTrigger, Progress, Radio, RadioCard, RadioGroup, RadioItem, RangeCalendar, ListBoxSection as Section, Select, Separator, Slider, Space, Sticker, Switch, Tab, Table, Tabs, Tag, TagGroup, TagGroupItem, TagInput, Text, Textarea, ThemeProvider, TimeField, Timeline, type ToastAction, type ToastOptions, type ToastPosition, ToastRegion, type ToastRegionProps, type ToastVariant, Toggle, ToggleButton, ToggleGroup, Tooltip, type TooltipProps, type UseFormOptions, type UseFormReturn, compose, email, matches, max, maxLength, min, minLength, parseColor, pattern, required, toast, useForm, useModal, useModals, useTheme };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import * as react_aria_components from 'react-aria-components';
|
|
4
|
-
import { TextFieldProps, NumberFieldProps, ButtonProps as ButtonProps$1, ToggleButtonProps as ToggleButtonProps$1, CheckboxFieldProps, CheckboxGroupProps as CheckboxGroupProps$1, MenuTriggerProps as MenuTriggerProps$1, MenuProps as MenuProps$1, Placement, MenuItemProps as MenuItemProps$1, MenuSectionProps as MenuSectionProps$1, ListBoxProps as ListBoxProps$1, ListBoxItemProps as ListBoxItemProps$1, ListBoxSectionProps as ListBoxSectionProps$1, RadioFieldProps, RadioGroupProps as RadioGroupProps$1, CalendarProps as CalendarProps$1, DateValue, RangeCalendarProps as RangeCalendarProps$1, DateFieldProps as DateFieldProps$1, TimeFieldProps as TimeFieldProps$1, TimeValue, DatePickerProps as DatePickerProps$1, DateRangePickerProps as DateRangePickerProps$1, ProgressBarProps, SwitchFieldProps, SliderProps as SliderProps$1, Key, TabsProps as TabsProps$1, Selection, SortDescriptor, ModalOverlayProps, PopoverProps as PopoverProps$1, TagGroupProps as TagGroupProps$1, TagListProps, TagProps as TagProps$1, Color as Color$1, ColorAreaProps as ColorAreaProps$1, ColorFieldProps as ColorFieldProps$1, ColorSwatchPickerProps as ColorSwatchPickerProps$1, ColorSliderProps as ColorSliderProps$1 } from 'react-aria-components';
|
|
4
|
+
import { TextFieldProps, NumberFieldProps, ButtonProps as ButtonProps$1, ToggleButtonProps as ToggleButtonProps$1, CheckboxFieldProps, CheckboxGroupProps as CheckboxGroupProps$1, MenuTriggerProps as MenuTriggerProps$1, MenuProps as MenuProps$1, Placement, MenuItemProps as MenuItemProps$1, MenuSectionProps as MenuSectionProps$1, ListBoxProps as ListBoxProps$1, ListBoxItemProps as ListBoxItemProps$1, ListBoxSectionProps as ListBoxSectionProps$1, RadioFieldProps, RadioGroupProps as RadioGroupProps$1, SelectProps as SelectProps$1, CalendarProps as CalendarProps$1, DateValue, RangeCalendarProps as RangeCalendarProps$1, DateFieldProps as DateFieldProps$1, TimeFieldProps as TimeFieldProps$1, TimeValue, DatePickerProps as DatePickerProps$1, DateRangePickerProps as DateRangePickerProps$1, ProgressBarProps, SwitchFieldProps, SliderProps as SliderProps$1, Key, TabsProps as TabsProps$1, Selection, SortDescriptor, ModalOverlayProps, PopoverProps as PopoverProps$1, TagGroupProps as TagGroupProps$1, TagListProps, TagProps as TagProps$1, Color as Color$1, ColorAreaProps as ColorAreaProps$1, ColorFieldProps as ColorFieldProps$1, ColorSwatchPickerProps as ColorSwatchPickerProps$1, ColorSliderProps as ColorSliderProps$1, TooltipProps as TooltipProps$1 } from 'react-aria-components';
|
|
5
5
|
import { OverlayTriggerProps } from 'react-stately';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -70,6 +70,11 @@ type ColorVariant = Variant;
|
|
|
70
70
|
type InputAppearance = "outline" | "filled" | "filled-outline";
|
|
71
71
|
/** The shared control-size scale (`.prt-size` recipe). */
|
|
72
72
|
type Size = "2xs" | "xs" | "sm" | "md" | "lg" | "xl";
|
|
73
|
+
/**
|
|
74
|
+
* The size range every control supports — the valid range for a theme-level
|
|
75
|
+
* `size` default. `2xs` (and larger opt-ins like `2xl`/`3xl`) stay per-component.
|
|
76
|
+
*/
|
|
77
|
+
type ControlSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
73
78
|
/** The radius scale (`data-radius` recipe). */
|
|
74
79
|
type Radius = "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full";
|
|
75
80
|
/** @deprecated use `Radius` */
|
|
@@ -77,11 +82,6 @@ type BorderRadius = "none" | "sm" | "md" | "lg" | "full";
|
|
|
77
82
|
type Appearance = "light" | "dark";
|
|
78
83
|
/** @deprecated use `Size` */
|
|
79
84
|
type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
80
|
-
type ButtonAppearance = "primary" | "secondary" | "minimal";
|
|
81
|
-
type ButtonAppearanceSchemaType = Partial<Record<ButtonAppearance, {
|
|
82
|
-
variant: Variant;
|
|
83
|
-
color: Color;
|
|
84
|
-
}>>;
|
|
85
85
|
type SizeOption = "none" | "4xs" | "3xs" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl";
|
|
86
86
|
|
|
87
87
|
type ActionStatus = "idle" | "loading" | "success" | "error";
|
|
@@ -373,37 +373,21 @@ interface RadioItemProps extends Omit<RadioFieldProps, "className" | "style" | "
|
|
|
373
373
|
}
|
|
374
374
|
declare function RadioItem({ className, style, classNames, styles, children, ...props }: RadioItemProps): React$1.JSX.Element;
|
|
375
375
|
|
|
376
|
-
type SingleOrMultipleValue = ID | Array<ID>;
|
|
377
376
|
type SelectionMode = "single" | "multiple";
|
|
378
|
-
interface
|
|
379
|
-
target: {
|
|
380
|
-
value: SingleOrMultipleValue;
|
|
381
|
-
name?: string;
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
|
-
interface SelectProps<T extends object> extends Pick<ListBoxProps<T>, "items" | "labelKey" | "valueKey" | "sectionKey" | "renderOption" | "renderSectionLabel" | "disabledKeys" | "children">, StyleProps<"wrapper" | "trigger" | "value" | "placeholder" | "label" | "popover"> {
|
|
377
|
+
interface SelectProps<T extends object, M extends SelectionMode = "single"> extends Omit<SelectProps$1<T, M>, "className" | "style" | "children" | "isInvalid" | "selectedKey" | "defaultSelectedKey" | "selectedKeys" | "defaultSelectedKeys" | "onSelectionChange">, Pick<ListBoxProps<T>, "items" | "labelKey" | "valueKey" | "sectionKey" | "renderOption" | "renderSectionLabel" | "disabledKeys" | "children">, StyleProps<"wrapper" | "trigger" | "value" | "placeholder" | "label" | "popover"> {
|
|
385
378
|
label?: React$1.ReactNode;
|
|
386
379
|
description?: React$1.ReactNode;
|
|
387
380
|
error?: React$1.ReactNode;
|
|
388
|
-
placeholder?: string;
|
|
389
|
-
selectionMode?: SelectionMode;
|
|
390
|
-
value?: SingleOrMultipleValue;
|
|
391
|
-
defaultValue?: SingleOrMultipleValue;
|
|
392
|
-
name?: string;
|
|
393
|
-
isDisabled?: boolean;
|
|
394
|
-
isRequired?: boolean;
|
|
395
381
|
color?: Color;
|
|
396
382
|
listBoxColor?: Color;
|
|
397
383
|
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
398
|
-
radius?:
|
|
384
|
+
radius?: Radius;
|
|
399
385
|
appearance?: InputAppearance;
|
|
400
386
|
showSectionSeparator?: boolean;
|
|
401
387
|
showSelectionIndicator?: boolean;
|
|
402
388
|
renderValue?: (value: T) => React$1.ReactNode;
|
|
403
|
-
onChange?: (event: MockNativeOnChangeEvent) => void;
|
|
404
|
-
onSelectionChange?: (keys: Array<ID>) => void;
|
|
405
389
|
}
|
|
406
|
-
declare function Select<T extends object>({ label, description, error, placeholder,
|
|
390
|
+
declare function Select<T extends object, M extends SelectionMode = "single">({ label, description, error, placeholder, appearance, renderValue, color, size, radius, listBoxColor, showSectionSeparator, showSelectionIndicator, items, children, labelKey, valueKey, sectionKey, renderOption, renderSectionLabel, disabledKeys, className, classNames, style, styles, "aria-label": ariaLabel, ...racProps }: SelectProps<T, M>): React$1.JSX.Element;
|
|
407
391
|
|
|
408
392
|
interface CalendarProps extends Omit<CalendarProps$1<DateValue>, "className" | "style" | "children" | "visibleDuration"> {
|
|
409
393
|
numberOfMonths?: number;
|
|
@@ -599,12 +583,13 @@ interface TableProps<T extends object> extends StyleProps<"wrapper" | "header" |
|
|
|
599
583
|
selectionMode?: "none" | "single" | "multiple";
|
|
600
584
|
selectedKeys?: Selection;
|
|
601
585
|
onSelectionChange?: (keys: Selection) => void;
|
|
586
|
+
onRowAction?: (key: string | number) => void;
|
|
602
587
|
sortDescriptor?: SortDescriptor;
|
|
603
588
|
onSortChange?: (descriptor: SortDescriptor) => void;
|
|
604
589
|
renderEmptyState?: () => React$1.ReactNode;
|
|
605
590
|
"aria-label"?: string;
|
|
606
591
|
}
|
|
607
|
-
declare function Table<T extends object>({ columns, data, getRowId, selectionMode, selectedKeys, onSelectionChange, sortDescriptor, onSortChange, renderEmptyState, radius, className, classNames, style, styles, ...props }: TableProps<T>): React$1.JSX.Element;
|
|
592
|
+
declare function Table<T extends object>({ columns, data, getRowId, selectionMode, selectedKeys, onSelectionChange, onRowAction, sortDescriptor, onSortChange, renderEmptyState, radius, className, classNames, style, styles, ...props }: TableProps<T>): React$1.JSX.Element;
|
|
608
593
|
|
|
609
594
|
interface TimelineProps<T> extends StyleProps<"wrapper" | "item" | "content"> {
|
|
610
595
|
items: Array<T>;
|
|
@@ -635,6 +620,58 @@ interface ModalProps extends Omit<ModalOverlayProps, "children" | "className" |
|
|
|
635
620
|
declare function Modal({ variant, radius, isDismissable, width, title, description, onConfirm, onCancel, confirmLabel, cancelLabel, confirmButtonProps, cancelButtonProps, showCloseButton, hideTitle, onClose, children, className, style, classNames, styles, ...props }: ModalProps): React$1.JSX.Element;
|
|
636
621
|
declare function useModal(props?: OverlayTriggerProps): react_aria_components.OverlayTriggerState;
|
|
637
622
|
|
|
623
|
+
/**
|
|
624
|
+
* A modal component registered in the registry receives these three props from
|
|
625
|
+
* the provider. Extend it in your own modal components:
|
|
626
|
+
*
|
|
627
|
+
* interface EditUserModalProps extends BaseModalProps<User> { userId: string }
|
|
628
|
+
*
|
|
629
|
+
* Call `onResolve(result)` to close with a value; `onOpenChange(false)` dismisses
|
|
630
|
+
* (resolves with `undefined`). Resolve wins once — call `onResolve`, not
|
|
631
|
+
* `onOpenChange`, when you have a result.
|
|
632
|
+
*/
|
|
633
|
+
interface BaseModalProps<TResult = void> extends Pick<ModalOverlayProps, "isOpen" | "onOpenChange"> {
|
|
634
|
+
onResolve: (result: TResult) => void;
|
|
635
|
+
}
|
|
636
|
+
type ModalComponent = React$1.ComponentType<any>;
|
|
637
|
+
type ModalDef<C extends ModalComponent = ModalComponent> = {
|
|
638
|
+
component: C;
|
|
639
|
+
};
|
|
640
|
+
interface ModalRegistry {
|
|
641
|
+
[key: string]: ModalDef;
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* Ambient registry — augment it (like ParrotColorRegistry) so `useModals().open`
|
|
645
|
+
* is fully typed with no generics at the call site:
|
|
646
|
+
*
|
|
647
|
+
* declare module "@parrot-co/parrot-ui" {
|
|
648
|
+
* interface ParrotModalRegistry {
|
|
649
|
+
* editUser: { component: typeof EditUserModal };
|
|
650
|
+
* }
|
|
651
|
+
* }
|
|
652
|
+
*/
|
|
653
|
+
interface ParrotModalRegistry {
|
|
654
|
+
}
|
|
655
|
+
type ModalKey = keyof ParrotModalRegistry & string;
|
|
656
|
+
type ComponentOf<K extends ModalKey> = ParrotModalRegistry[K] extends ModalDef<infer C> ? C : ModalComponent;
|
|
657
|
+
type ModalInputProps<K extends ModalKey> = Omit<React$1.ComponentProps<ComponentOf<K>>, "isOpen" | "onOpenChange" | "onResolve">;
|
|
658
|
+
type ModalResult<K extends ModalKey> = React$1.ComponentProps<ComponentOf<K>> extends {
|
|
659
|
+
onResolve?: (result: infer TResult) => void;
|
|
660
|
+
} ? TResult : void;
|
|
661
|
+
interface ModalControls {
|
|
662
|
+
open: <K extends ModalKey>(key: K, props?: ModalInputProps<K>) => Promise<ModalResult<K>>;
|
|
663
|
+
close: (key: ModalKey) => void;
|
|
664
|
+
update: <K extends ModalKey>(key: K, props: ModalInputProps<K>) => void;
|
|
665
|
+
isOpen: (key: ModalKey) => boolean;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
interface ModalProviderProps {
|
|
669
|
+
registry: ModalRegistry;
|
|
670
|
+
children: React$1.ReactNode;
|
|
671
|
+
}
|
|
672
|
+
declare function ModalProvider({ registry, children }: ModalProviderProps): React$1.JSX.Element;
|
|
673
|
+
declare function useModals(): ModalControls;
|
|
674
|
+
|
|
638
675
|
type TagFormat = "text" | "email" | "url" | "number";
|
|
639
676
|
interface TagInputProps extends FieldComponentProps<"input"> {
|
|
640
677
|
tags?: Array<string>;
|
|
@@ -692,10 +729,9 @@ declare function TagGroupItem({ children, textValue, ...props }: TagGroupItemPro
|
|
|
692
729
|
|
|
693
730
|
interface ThemeProviderValue {
|
|
694
731
|
color?: Color;
|
|
695
|
-
radius?:
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
avatarRadiusSize?: BorderRadius;
|
|
732
|
+
radius?: Radius;
|
|
733
|
+
size?: ControlSize;
|
|
734
|
+
colorScheme?: Appearance;
|
|
699
735
|
inputAppearance?: InputAppearance;
|
|
700
736
|
}
|
|
701
737
|
interface ThemeProviderProps extends ThemeProviderValue {
|
|
@@ -770,4 +806,127 @@ interface ToggleProps extends ButtonToggleProps, StyleProps<"wrapper"> {
|
|
|
770
806
|
}
|
|
771
807
|
declare function Toggle({ value, ...props }: ToggleProps): React$1.JSX.Element;
|
|
772
808
|
|
|
773
|
-
|
|
809
|
+
type ToastVariant = "default" | "success" | "error" | "warning" | "info";
|
|
810
|
+
type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
|
|
811
|
+
interface ToastAction {
|
|
812
|
+
label: string;
|
|
813
|
+
onClick: () => void;
|
|
814
|
+
}
|
|
815
|
+
interface ToastOptions {
|
|
816
|
+
description?: string;
|
|
817
|
+
action?: ToastAction;
|
|
818
|
+
cancel?: ToastAction;
|
|
819
|
+
duration?: number;
|
|
820
|
+
position?: ToastPosition;
|
|
821
|
+
}
|
|
822
|
+
type CustomToastRender = (props: {
|
|
823
|
+
close: () => void;
|
|
824
|
+
}) => React$1.ReactNode;
|
|
825
|
+
interface ToastRegionProps {
|
|
826
|
+
position?: ToastPosition;
|
|
827
|
+
}
|
|
828
|
+
declare function ToastRegion({ position }: ToastRegionProps): React$1.JSX.Element;
|
|
829
|
+
declare function toast(title: string, options?: ToastOptions): string;
|
|
830
|
+
declare namespace toast {
|
|
831
|
+
var success: (title: string, options?: ToastOptions) => string;
|
|
832
|
+
var error: (title: string, options?: ToastOptions) => string;
|
|
833
|
+
var warning: (title: string, options?: ToastOptions) => string;
|
|
834
|
+
var info: (title: string, options?: ToastOptions) => string;
|
|
835
|
+
var custom: (render: CustomToastRender, options?: Pick<ToastOptions, "duration" | "position">) => string;
|
|
836
|
+
var dismiss: (key: string) => void;
|
|
837
|
+
}
|
|
838
|
+
|
|
839
|
+
interface TooltipProps extends Omit<TooltipProps$1, "className" | "style" | "children">, StyleProps<"tooltip"> {
|
|
840
|
+
content: React$1.ReactNode;
|
|
841
|
+
children: React$1.ReactElement;
|
|
842
|
+
delay?: number;
|
|
843
|
+
closeDelay?: number;
|
|
844
|
+
isDisabled?: boolean;
|
|
845
|
+
showArrow?: boolean;
|
|
846
|
+
}
|
|
847
|
+
declare function Tooltip({ content, children, delay, closeDelay, isDisabled, showArrow, placement, offset, className, classNames, style, styles, ...props }: TooltipProps): React$1.JSX.Element;
|
|
848
|
+
|
|
849
|
+
interface HoverCardProps extends Omit<PopoverProps$1, "triggerRef" | "children" | "className" | "style" | "isOpen" | "defaultOpen" | "onOpenChange" | "isNonModal">, StyleProps<"popover" | "content"> {
|
|
850
|
+
children: React$1.ReactElement;
|
|
851
|
+
content: React$1.ReactNode;
|
|
852
|
+
openDelay?: number;
|
|
853
|
+
closeDelay?: number;
|
|
854
|
+
isDisabled?: boolean;
|
|
855
|
+
isOpen?: boolean;
|
|
856
|
+
defaultOpen?: boolean;
|
|
857
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
858
|
+
}
|
|
859
|
+
declare function HoverCard({ children, content, openDelay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange, offset, placement, className, classNames, style, styles, ...props }: HoverCardProps): React$1.JSX.Element;
|
|
860
|
+
|
|
861
|
+
type FieldValidator<T> = (value: unknown, values: T) => string | null;
|
|
862
|
+
interface UseFormOptions<T extends Record<string, unknown>> {
|
|
863
|
+
fields: T;
|
|
864
|
+
validators?: Partial<Record<keyof T, FieldValidator<T>>>;
|
|
865
|
+
optional?: Array<keyof T>;
|
|
866
|
+
resetKey?: string | number | null;
|
|
867
|
+
}
|
|
868
|
+
type Errors<T> = Record<keyof T, string | null>;
|
|
869
|
+
type Touched<T> = Record<keyof T, boolean>;
|
|
870
|
+
interface UseFormReturn<T extends Record<string, unknown>> {
|
|
871
|
+
values: T;
|
|
872
|
+
errors: Errors<T>;
|
|
873
|
+
touched: Touched<T>;
|
|
874
|
+
isDirty: boolean;
|
|
875
|
+
isSubmitting: boolean;
|
|
876
|
+
setIsSubmitting: React$1.Dispatch<React$1.SetStateAction<boolean>>;
|
|
877
|
+
onChange: (fieldName: keyof T, value: unknown) => void;
|
|
878
|
+
getFieldProps: (fieldName: keyof T) => {
|
|
879
|
+
name: string;
|
|
880
|
+
value: string;
|
|
881
|
+
onChange: (value: string) => void;
|
|
882
|
+
error: string | null;
|
|
883
|
+
};
|
|
884
|
+
getNumberFieldProps: (fieldName: keyof T) => {
|
|
885
|
+
name: string;
|
|
886
|
+
value: number;
|
|
887
|
+
onChange: (value: number) => void;
|
|
888
|
+
error: string | null;
|
|
889
|
+
};
|
|
890
|
+
getSelectProps: (fieldName: keyof T) => {
|
|
891
|
+
name: string;
|
|
892
|
+
value: Key | null;
|
|
893
|
+
onChange: (value: Key | null) => void;
|
|
894
|
+
error: string | null;
|
|
895
|
+
};
|
|
896
|
+
getCheckboxGroupProps: (fieldName: keyof T) => {
|
|
897
|
+
name: string;
|
|
898
|
+
value: string[];
|
|
899
|
+
onChange: (value: string[]) => void;
|
|
900
|
+
errorMessage: string | null;
|
|
901
|
+
};
|
|
902
|
+
getRadioGroupProps: (fieldName: keyof T) => {
|
|
903
|
+
name: string;
|
|
904
|
+
value: string;
|
|
905
|
+
onChange: (value: string) => void;
|
|
906
|
+
errorMessage: string | null;
|
|
907
|
+
};
|
|
908
|
+
getSwitchProps: (fieldName: keyof T) => {
|
|
909
|
+
name: string;
|
|
910
|
+
isSelected: boolean;
|
|
911
|
+
onChange: (value: boolean) => void;
|
|
912
|
+
};
|
|
913
|
+
handleSubmit: (callback: (values: T) => void | Promise<void>) => (e: React$1.FormEvent) => void;
|
|
914
|
+
isValid: () => boolean;
|
|
915
|
+
reset: () => void;
|
|
916
|
+
validateAll: () => Errors<T>;
|
|
917
|
+
setFieldValues: (newValues: Partial<T>) => void;
|
|
918
|
+
setFieldError: (fieldName: keyof T, error: string | null) => void;
|
|
919
|
+
}
|
|
920
|
+
declare function useForm<T extends Record<string, unknown>>({ fields: defaultFields, validators, optional, resetKey, }: UseFormOptions<T>): UseFormReturn<T>;
|
|
921
|
+
|
|
922
|
+
declare function required<T>(message?: string): FieldValidator<T>;
|
|
923
|
+
declare function email<T>(message?: string): FieldValidator<T>;
|
|
924
|
+
declare function minLength<T>(length: number, message?: string): FieldValidator<T>;
|
|
925
|
+
declare function maxLength<T>(length: number, message?: string): FieldValidator<T>;
|
|
926
|
+
declare function min<T>(n: number, message?: string): FieldValidator<T>;
|
|
927
|
+
declare function max<T>(n: number, message?: string): FieldValidator<T>;
|
|
928
|
+
declare function pattern<T>(regex: RegExp, message?: string): FieldValidator<T>;
|
|
929
|
+
declare function matches<T>(fieldName: keyof T & string, message?: string): FieldValidator<T>;
|
|
930
|
+
declare function compose<T>(...fns: Array<FieldValidator<T>>): FieldValidator<T>;
|
|
931
|
+
|
|
932
|
+
export { Avatar, AvatarGroup, type BaseModalProps, Button, ButtonGroup, Calendar, Checkbox, CheckboxGroup, CheckboxItem, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatchPicker, ComboBox, type CustomToastRender, DateField, DatePicker, DateRangePicker, type FieldValidator, FileUploader, HoverCard, type HoverCardProps, IconButton, Input, ListBox, ListBoxItem, ListBoxSection, Loader, Menu, MenuContent, MenuItem, MenuSection, MenuTrigger, Modal, type ModalControls, type ModalDef, type ModalInputProps, type ModalKey, type ModalProps, ModalProvider, type ModalProviderProps, type ModalRegistry, type ModalResult, NumberInput, ListBoxItem as Option, type ParrotModalRegistry, Popover, PopoverContent, PopoverTrigger, Progress, Radio, RadioCard, RadioGroup, RadioItem, RangeCalendar, ListBoxSection as Section, Select, Separator, Slider, Space, Sticker, Switch, Tab, Table, Tabs, Tag, TagGroup, TagGroupItem, TagInput, Text, Textarea, ThemeProvider, TimeField, Timeline, type ToastAction, type ToastOptions, type ToastPosition, ToastRegion, type ToastRegionProps, type ToastVariant, Toggle, ToggleButton, ToggleGroup, Tooltip, type TooltipProps, type UseFormOptions, type UseFormReturn, compose, email, matches, max, maxLength, min, minLength, parseColor, pattern, required, toast, useForm, useModal, useModals, useTheme };
|