@retray-dev/ui-kit 5.4.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPONENTS.md +262 -126
- package/dist/index.d.mts +152 -46
- package/dist/index.d.ts +152 -46
- package/dist/index.js +448 -307
- package/dist/index.mjs +438 -305
- package/package.json +7 -2
- package/src/components/Accordion/Accordion.tsx +6 -2
- package/src/components/AlertBanner/AlertBanner.tsx +16 -33
- package/src/components/Button/Button.tsx +18 -6
- package/src/components/Card/Card.tsx +12 -9
- package/src/components/ConfirmDialog/ConfirmDialog.tsx +4 -4
- package/src/components/CurrencyDisplay/CurrencyDisplay.tsx +14 -3
- package/src/components/DetailRow/DetailRow.tsx +13 -8
- package/src/components/EmptyState/EmptyState.tsx +21 -6
- package/src/components/Input/Input.tsx +21 -10
- package/src/components/ListItem/ListItem.tsx +14 -8
- package/src/components/MediaCard/MediaCard.tsx +1 -0
- package/src/components/MenuItem/MenuItem.tsx +228 -0
- package/src/components/MenuItem/index.ts +2 -0
- package/src/components/Select/Select.tsx +1 -1
- package/src/components/Separator/Separator.tsx +2 -0
- package/src/components/Sheet/Sheet.tsx +164 -51
- package/src/components/Sheet/index.ts +1 -1
- package/src/components/Tabs/Tabs.tsx +4 -4
- package/src/components/Toast/Toast.tsx +41 -267
- package/src/components/Toast/index.ts +1 -2
- package/src/components/Toggle/Toggle.tsx +2 -2
- package/src/index.ts +1 -0
- package/src/theme/colors.ts +3 -0
- package/src/theme/types.ts +11 -0
- package/src/tokens.ts +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TouchableOpacityProps, ViewStyle, TextProps as TextProps$1, TextInputProps, TextStyle, ActivityIndicatorProps, ImageSourcePropType } from 'react-native';
|
|
3
|
-
|
|
3
|
+
import * as sonner_native from 'sonner-native';
|
|
4
|
+
export { toast } from 'sonner-native';
|
|
5
|
+
export { BottomSheetModalProvider, BottomSheetTextInput as SheetTextInput } from '@gorhom/bottom-sheet';
|
|
4
6
|
|
|
5
7
|
type ThemeColors = {
|
|
6
8
|
background: string;
|
|
@@ -15,6 +17,12 @@ type ThemeColors = {
|
|
|
15
17
|
successForeground: string;
|
|
16
18
|
warning: string;
|
|
17
19
|
warningForeground: string;
|
|
20
|
+
/** Backdrop/overlay color. Default: 'rgba(0,0,0,0.45)' */
|
|
21
|
+
overlay?: string;
|
|
22
|
+
/** Color accent (e.g. Airbnb coral). Default: same as primary */
|
|
23
|
+
accent?: string;
|
|
24
|
+
/** Text color on accent background. Default: same as primaryForeground */
|
|
25
|
+
accentForeground?: string;
|
|
18
26
|
};
|
|
19
27
|
type ResolvedColors = ThemeColors & {
|
|
20
28
|
foregroundSubtle: string;
|
|
@@ -27,6 +35,9 @@ type ResolvedColors = ThemeColors & {
|
|
|
27
35
|
successBorder: string;
|
|
28
36
|
warningTint: string;
|
|
29
37
|
warningBorder: string;
|
|
38
|
+
overlay: string;
|
|
39
|
+
accentResolved: string;
|
|
40
|
+
accentForegroundResolved: string;
|
|
30
41
|
ring: string;
|
|
31
42
|
input: string;
|
|
32
43
|
};
|
|
@@ -134,6 +145,8 @@ interface InputProps extends TextInputProps {
|
|
|
134
145
|
error?: string;
|
|
135
146
|
/** Helper text shown below the input when there is no error. */
|
|
136
147
|
hint?: string;
|
|
148
|
+
/** Disabled visual state — dimmed appearance, not editable. Also sets `editable={false}`. */
|
|
149
|
+
disabled?: boolean;
|
|
137
150
|
/** Text or component rendered before the input text. */
|
|
138
151
|
prefix?: React.ReactNode;
|
|
139
152
|
/** Text or component rendered after the input text. */
|
|
@@ -163,7 +176,7 @@ interface InputProps extends TextInputProps {
|
|
|
163
176
|
/** Style for the inner border wrapper (overrides padding, etc). */
|
|
164
177
|
inputWrapperStyle?: ViewStyle;
|
|
165
178
|
}
|
|
166
|
-
declare function Input({ label, error, hint, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, style, onFocus, onBlur, secureTextEntry, ...props }: InputProps): React.JSX.Element;
|
|
179
|
+
declare function Input({ label, error, hint, disabled, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, style, onFocus, onBlur, secureTextEntry, editable, ...props }: InputProps): React.JSX.Element;
|
|
167
180
|
|
|
168
181
|
type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning' | 'successOutline' | 'destructiveOutline' | 'warningOutline';
|
|
169
182
|
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
@@ -296,12 +309,17 @@ interface EmptyStateProps {
|
|
|
296
309
|
iconColor?: string;
|
|
297
310
|
title: string;
|
|
298
311
|
description?: string;
|
|
312
|
+
/** Custom action node. Use `actionLabel` + `onAction` for a pre-built primary Button. */
|
|
299
313
|
action?: React.ReactNode;
|
|
314
|
+
/** Label for a convenience primary Button rendered below description. Ignored in compact size. */
|
|
315
|
+
actionLabel?: string;
|
|
316
|
+
/** Called when the convenience action Button is pressed. Required when `actionLabel` is set. */
|
|
317
|
+
onAction?: () => void;
|
|
300
318
|
/** `compact` hides description/action and uses tighter spacing and a smaller icon. */
|
|
301
319
|
size?: 'default' | 'compact';
|
|
302
320
|
style?: ViewStyle;
|
|
303
321
|
}
|
|
304
|
-
declare function EmptyState({ icon, iconName, iconColor, title, description, action, size, style }: EmptyStateProps): React.JSX.Element;
|
|
322
|
+
declare function EmptyState({ icon, iconName, iconColor, title, description, action, actionLabel, onAction, size, style }: EmptyStateProps): React.JSX.Element;
|
|
305
323
|
|
|
306
324
|
interface TextareaProps extends TextInputProps {
|
|
307
325
|
label?: string;
|
|
@@ -449,20 +467,57 @@ interface SheetProps {
|
|
|
449
467
|
open: boolean;
|
|
450
468
|
onClose: () => void;
|
|
451
469
|
title?: string;
|
|
470
|
+
/** Secondary text below title. */
|
|
471
|
+
subtitle?: string;
|
|
472
|
+
/** @deprecated Use `subtitle` instead. */
|
|
452
473
|
description?: string;
|
|
474
|
+
/** Show an X close button in the header. */
|
|
475
|
+
showCloseButton?: boolean;
|
|
453
476
|
children?: React.ReactNode;
|
|
454
477
|
/** Style for the inner content container. */
|
|
455
478
|
style?: ViewStyle;
|
|
456
|
-
/**
|
|
479
|
+
/** Style for the content wrapper (outside the scroll container). */
|
|
480
|
+
contentStyle?: ViewStyle;
|
|
481
|
+
/** Render children inside BottomSheetScrollView. */
|
|
457
482
|
scrollable?: boolean;
|
|
458
483
|
/** Cap sheet height (dp). Children scroll when content exceeds this value. */
|
|
459
484
|
maxHeight?: number;
|
|
460
|
-
/**
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
485
|
+
/**
|
|
486
|
+
* Keyboard behavior — how the sheet responds to keyboard appearance.
|
|
487
|
+
* - 'interactive': offset sheet by keyboard size (default, works on both platforms)
|
|
488
|
+
* - 'fillParent': extend sheet to fill parent view (can cause restore issues with dynamic sizing)
|
|
489
|
+
* - 'extend': extend sheet to maximum snap point
|
|
490
|
+
*
|
|
491
|
+
* Default: 'interactive' on both platforms.
|
|
492
|
+
*/
|
|
493
|
+
keyboardBehavior?: 'extend' | 'fillParent' | 'interactive';
|
|
494
|
+
/**
|
|
495
|
+
* Keyboard blur behavior — what happens when keyboard dismisses.
|
|
496
|
+
* - 'none': do nothing
|
|
497
|
+
* - 'restore': restore sheet to previous position (default)
|
|
498
|
+
*/
|
|
499
|
+
keyboardBlurBehavior?: 'none' | 'restore';
|
|
500
|
+
/**
|
|
501
|
+
* Blur keyboard when user starts dragging the sheet down.
|
|
502
|
+
* Default: true (recommended for better UX)
|
|
503
|
+
*/
|
|
504
|
+
enableBlurKeyboardOnGesture?: boolean;
|
|
505
|
+
/**
|
|
506
|
+
* Android-only: defines keyboard input mode.
|
|
507
|
+
* - 'adjustPan': pan the sheet content (default, fixes restore issues with dynamic sizing)
|
|
508
|
+
* - 'adjustResize': resize the sheet container (can cause transparent gap on dismiss)
|
|
509
|
+
*/
|
|
510
|
+
android_keyboardInputMode?: 'adjustPan' | 'adjustResize';
|
|
511
|
+
/** Sticky footer rendered below the scroll area. */
|
|
512
|
+
footer?: React.ReactNode;
|
|
513
|
+
/**
|
|
514
|
+
* Array of snap points for the sheet (e.g., ['50%', '85%'] or [200, 500]).
|
|
515
|
+
* When provided, disables enableDynamicSizing.
|
|
516
|
+
* When omitted, sheet uses dynamic sizing (auto-fits content).
|
|
517
|
+
*/
|
|
518
|
+
snapPoints?: (string | number)[];
|
|
464
519
|
}
|
|
465
|
-
declare function Sheet({ open, onClose, title, description, children, style, scrollable, maxHeight, keyboardBehavior,
|
|
520
|
+
declare function Sheet({ open, onClose, title, subtitle, description, showCloseButton, children, style, contentStyle, scrollable, maxHeight, keyboardBehavior, keyboardBlurBehavior, enableBlurKeyboardOnGesture, android_keyboardInputMode, footer, snapPoints, }: SheetProps): React.JSX.Element;
|
|
466
521
|
|
|
467
522
|
interface SelectOption {
|
|
468
523
|
label: string;
|
|
@@ -481,38 +536,47 @@ interface SelectProps {
|
|
|
481
536
|
}
|
|
482
537
|
declare function Select({ options, value, onValueChange, placeholder, label, error, disabled, style, }: SelectProps): React.JSX.Element;
|
|
483
538
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
539
|
+
declare function useToast(): {
|
|
540
|
+
toast: ((message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
541
|
+
id?: string | number;
|
|
542
|
+
}) => string | number) & {
|
|
543
|
+
success: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
544
|
+
id?: string | number;
|
|
545
|
+
}) => string | number;
|
|
546
|
+
info: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
547
|
+
id?: string | number;
|
|
548
|
+
}) => string | number;
|
|
549
|
+
error: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
550
|
+
id?: string | number;
|
|
551
|
+
}) => string | number;
|
|
552
|
+
warning: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
553
|
+
id?: string | number;
|
|
554
|
+
}) => string | number;
|
|
555
|
+
custom: (jsx: React.ReactElement, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
556
|
+
id?: string | number;
|
|
557
|
+
}) => string | number;
|
|
558
|
+
promise: <T>(promise: Promise<T>, options: Omit<{
|
|
559
|
+
promise: Promise<unknown>;
|
|
560
|
+
success: (result: any) => string;
|
|
561
|
+
error: ((error: unknown) => string) | string;
|
|
562
|
+
loading: string;
|
|
563
|
+
styles?: {
|
|
564
|
+
loading?: sonner_native.ToastStyles;
|
|
565
|
+
success?: sonner_native.ToastStyles;
|
|
566
|
+
error?: sonner_native.ToastStyles;
|
|
567
|
+
};
|
|
568
|
+
}, "promise">) => string | number;
|
|
569
|
+
loading: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
570
|
+
id?: string | number;
|
|
571
|
+
}) => string | number;
|
|
572
|
+
dismiss: (id?: string | number) => string | number | undefined;
|
|
573
|
+
wiggle: (id: string | number) => void;
|
|
574
|
+
};
|
|
575
|
+
dismiss: (id?: string | number) => string | number | undefined;
|
|
576
|
+
};
|
|
577
|
+
declare function ToastProvider({ children }: {
|
|
513
578
|
children: React.ReactNode;
|
|
514
|
-
}
|
|
515
|
-
declare function ToastProvider({ children }: ToastProviderProps): React.JSX.Element;
|
|
579
|
+
}): React.JSX.Element;
|
|
516
580
|
|
|
517
581
|
interface CurrencyInputProps {
|
|
518
582
|
value?: string;
|
|
@@ -612,6 +676,47 @@ interface ListItemProps {
|
|
|
612
676
|
}
|
|
613
677
|
declare function ListItem({ leftRender, rightRender, trailing, icon, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, captionStyle, }: ListItemProps): React.JSX.Element;
|
|
614
678
|
|
|
679
|
+
type MenuItemVariant = 'plain' | 'card';
|
|
680
|
+
interface MenuItemProps {
|
|
681
|
+
label: string;
|
|
682
|
+
/** Secondary text rendered below the label. */
|
|
683
|
+
subtitle?: string;
|
|
684
|
+
/**
|
|
685
|
+
* Icon name from `@expo/vector-icons` rendered on the left.
|
|
686
|
+
* See https://icons.expo.fyi.
|
|
687
|
+
*/
|
|
688
|
+
iconName?: string;
|
|
689
|
+
/** Custom icon node rendered on the left. */
|
|
690
|
+
icon?: React.ReactNode;
|
|
691
|
+
/** Override icon color. Defaults to `foreground`. */
|
|
692
|
+
iconColor?: string;
|
|
693
|
+
/**
|
|
694
|
+
* Custom content rendered on the right.
|
|
695
|
+
* When provided, replaces the default chevron.
|
|
696
|
+
* Use for checkboxes, switches, badges, or other controls.
|
|
697
|
+
*/
|
|
698
|
+
rightRender?: React.ReactNode;
|
|
699
|
+
/**
|
|
700
|
+
* Show chevron on the right. Defaults to `true`.
|
|
701
|
+
* Ignored when `rightRender` is provided.
|
|
702
|
+
*/
|
|
703
|
+
showChevron?: boolean;
|
|
704
|
+
onPress: () => void;
|
|
705
|
+
disabled?: boolean;
|
|
706
|
+
/**
|
|
707
|
+
* - `plain` (default): no background — sits inside a parent surface.
|
|
708
|
+
* - `card`: standalone surface with background + border.
|
|
709
|
+
*/
|
|
710
|
+
variant?: MenuItemVariant;
|
|
711
|
+
/** Visual separator line at the bottom. */
|
|
712
|
+
showSeparator?: boolean;
|
|
713
|
+
/** Style applied to the outer container. */
|
|
714
|
+
style?: ViewStyle;
|
|
715
|
+
/** Style applied to the label Text. */
|
|
716
|
+
labelStyle?: TextStyle;
|
|
717
|
+
}
|
|
718
|
+
declare function MenuItem({ label, subtitle, iconName, icon, iconColor, rightRender, showChevron, onPress, disabled, variant, showSeparator, style, labelStyle, }: MenuItemProps): React.JSX.Element;
|
|
719
|
+
|
|
615
720
|
interface ChipProps {
|
|
616
721
|
label: string;
|
|
617
722
|
selected?: boolean;
|
|
@@ -762,11 +867,11 @@ type DetailRowSeparator = 'dotted' | 'solid' | 'dashed' | 'none';
|
|
|
762
867
|
type DetailRowLabelWeight = 'normal' | 'medium' | 'semibold' | 'bold';
|
|
763
868
|
interface DetailRowProps {
|
|
764
869
|
label: React.ReactNode;
|
|
765
|
-
value: string;
|
|
870
|
+
value: string | React.ReactNode;
|
|
766
871
|
/** Dotted/dashed/solid line between label and value. Defaults to 'dotted'. */
|
|
767
872
|
separator?: DetailRowSeparator;
|
|
768
873
|
labelWeight?: DetailRowLabelWeight;
|
|
769
|
-
/** Semantic color key or hex string for value text. */
|
|
874
|
+
/** Semantic color key or hex string for value text. Only applies when value is a string. */
|
|
770
875
|
valueColor?: string;
|
|
771
876
|
/** Node rendered left of the label (e.g. Avatar, Icon). */
|
|
772
877
|
leftIcon?: React.ReactNode;
|
|
@@ -780,6 +885,7 @@ interface DetailRowProps {
|
|
|
780
885
|
rightIconColor?: string;
|
|
781
886
|
style?: ViewStyle;
|
|
782
887
|
labelStyle?: TextStyle;
|
|
888
|
+
/** Only applies when value is a string. */
|
|
783
889
|
valueStyle?: TextStyle;
|
|
784
890
|
}
|
|
785
891
|
declare function DetailRow({ label, value, separator, labelWeight, valueColor, leftIcon, leftIconName, leftIconColor, rightIconName, rightIconColor, style, labelStyle, valueStyle, }: DetailRowProps): React.JSX.Element;
|
|
@@ -975,10 +1081,10 @@ declare const TYPOGRAPHY: {
|
|
|
975
1081
|
};
|
|
976
1082
|
readonly 'uppercase-tag': {
|
|
977
1083
|
readonly fontFamily: "Poppins-Bold";
|
|
978
|
-
readonly fontSize:
|
|
1084
|
+
readonly fontSize: 10;
|
|
979
1085
|
readonly fontWeight: "700";
|
|
980
|
-
readonly lineHeight:
|
|
981
|
-
readonly letterSpacing: 0.
|
|
1086
|
+
readonly lineHeight: 13;
|
|
1087
|
+
readonly letterSpacing: 0.8;
|
|
982
1088
|
readonly textTransform: "uppercase";
|
|
983
1089
|
};
|
|
984
1090
|
readonly 'button-lg': {
|
|
@@ -1005,4 +1111,4 @@ type RadiusKey = keyof Radius;
|
|
|
1005
1111
|
type Typography = typeof TYPOGRAPHY;
|
|
1006
1112
|
type TypographyKey = keyof Typography;
|
|
1007
1113
|
|
|
1008
|
-
export { Accordion, type AccordionItem, type AccordionProps, AlertBanner, type AlertBannerProps, type AlertBannerVariant, Avatar, type AvatarProps, type AvatarSize, BREAKPOINTS, Badge, type BadgeProps, type BadgeVariant, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, type CategoryItem, CategoryStrip, type CategoryStripProps, Checkbox, type CheckboxProps, Chip, ChipGroup, type ChipGroupProps, type ChipOption, type ChipProps, type ColorScheme, ConfirmDialog, type ConfirmDialogProps, CurrencyDisplay, type CurrencyDisplayProps, type CurrencyDisplayVariant, CurrencyInput, CurrencyInput as CurrencyInputLarge, type CurrencyInputProps, DetailRow, type DetailRowLabelWeight, type DetailRowProps, type DetailRowSeparator, EmptyState, type EmptyStateProps, ICON_SIZES, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconFamily, type IconProps, type IconSize, type IconSizeKey, Input, type InputProps, LabelValue, type LabelValueProps, ListItem, type ListItemProps, MediaCard, type MediaCardAspectRatio, type MediaCardProps, MonthPicker, type MonthPickerProps, type MonthPickerValue, Pressable, type PressableProps, Progress, type ProgressProps, RADIUS, RadioGroup, type RadioGroupProps, type RadioOption, type Radius, type RadiusKey, type ResolvedColors, SHADOWS, SPACING, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sheet, type SheetProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type Spacing, type SpacingKey, Spinner, type SpinnerProps, type SpinnerSize, Switch, type SwitchProps, TYPOGRAPHY, type TabItem, Tabs, TabsContent, type TabsContentProps, type TabsProps, Text, type TextProps, type TextVariant, Textarea, type TextareaProps, type Theme, type ThemeColors, ThemeProvider, type ThemeProviderProps,
|
|
1114
|
+
export { Accordion, type AccordionItem, type AccordionProps, AlertBanner, type AlertBannerProps, type AlertBannerVariant, Avatar, type AvatarProps, type AvatarSize, BREAKPOINTS, Badge, type BadgeProps, type BadgeVariant, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, type CategoryItem, CategoryStrip, type CategoryStripProps, Checkbox, type CheckboxProps, Chip, ChipGroup, type ChipGroupProps, type ChipOption, type ChipProps, type ColorScheme, ConfirmDialog, type ConfirmDialogProps, CurrencyDisplay, type CurrencyDisplayProps, type CurrencyDisplayVariant, CurrencyInput, CurrencyInput as CurrencyInputLarge, type CurrencyInputProps, DetailRow, type DetailRowLabelWeight, type DetailRowProps, type DetailRowSeparator, EmptyState, type EmptyStateProps, ICON_SIZES, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconFamily, type IconProps, type IconSize, type IconSizeKey, Input, type InputProps, LabelValue, type LabelValueProps, ListItem, type ListItemProps, MediaCard, type MediaCardAspectRatio, type MediaCardProps, MenuItem, type MenuItemProps, type MenuItemVariant, MonthPicker, type MonthPickerProps, type MonthPickerValue, Pressable, type PressableProps, Progress, type ProgressProps, RADIUS, RadioGroup, type RadioGroupProps, type RadioOption, type Radius, type RadiusKey, type ResolvedColors, SHADOWS, SPACING, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sheet, type SheetProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type Spacing, type SpacingKey, Spinner, type SpinnerProps, type SpinnerSize, Switch, type SwitchProps, TYPOGRAPHY, type TabItem, Tabs, TabsContent, type TabsContentProps, type TabsProps, Text, type TextProps, type TextVariant, Textarea, type TextareaProps, type Theme, type ThemeColors, ThemeProvider, type ThemeProviderProps, ToastProvider, Toggle, type ToggleProps, type ToggleSize, type ToggleVariant, type Typography, type TypographyKey, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, renderIcon, useTheme, useToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TouchableOpacityProps, ViewStyle, TextProps as TextProps$1, TextInputProps, TextStyle, ActivityIndicatorProps, ImageSourcePropType } from 'react-native';
|
|
3
|
-
|
|
3
|
+
import * as sonner_native from 'sonner-native';
|
|
4
|
+
export { toast } from 'sonner-native';
|
|
5
|
+
export { BottomSheetModalProvider, BottomSheetTextInput as SheetTextInput } from '@gorhom/bottom-sheet';
|
|
4
6
|
|
|
5
7
|
type ThemeColors = {
|
|
6
8
|
background: string;
|
|
@@ -15,6 +17,12 @@ type ThemeColors = {
|
|
|
15
17
|
successForeground: string;
|
|
16
18
|
warning: string;
|
|
17
19
|
warningForeground: string;
|
|
20
|
+
/** Backdrop/overlay color. Default: 'rgba(0,0,0,0.45)' */
|
|
21
|
+
overlay?: string;
|
|
22
|
+
/** Color accent (e.g. Airbnb coral). Default: same as primary */
|
|
23
|
+
accent?: string;
|
|
24
|
+
/** Text color on accent background. Default: same as primaryForeground */
|
|
25
|
+
accentForeground?: string;
|
|
18
26
|
};
|
|
19
27
|
type ResolvedColors = ThemeColors & {
|
|
20
28
|
foregroundSubtle: string;
|
|
@@ -27,6 +35,9 @@ type ResolvedColors = ThemeColors & {
|
|
|
27
35
|
successBorder: string;
|
|
28
36
|
warningTint: string;
|
|
29
37
|
warningBorder: string;
|
|
38
|
+
overlay: string;
|
|
39
|
+
accentResolved: string;
|
|
40
|
+
accentForegroundResolved: string;
|
|
30
41
|
ring: string;
|
|
31
42
|
input: string;
|
|
32
43
|
};
|
|
@@ -134,6 +145,8 @@ interface InputProps extends TextInputProps {
|
|
|
134
145
|
error?: string;
|
|
135
146
|
/** Helper text shown below the input when there is no error. */
|
|
136
147
|
hint?: string;
|
|
148
|
+
/** Disabled visual state — dimmed appearance, not editable. Also sets `editable={false}`. */
|
|
149
|
+
disabled?: boolean;
|
|
137
150
|
/** Text or component rendered before the input text. */
|
|
138
151
|
prefix?: React.ReactNode;
|
|
139
152
|
/** Text or component rendered after the input text. */
|
|
@@ -163,7 +176,7 @@ interface InputProps extends TextInputProps {
|
|
|
163
176
|
/** Style for the inner border wrapper (overrides padding, etc). */
|
|
164
177
|
inputWrapperStyle?: ViewStyle;
|
|
165
178
|
}
|
|
166
|
-
declare function Input({ label, error, hint, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, style, onFocus, onBlur, secureTextEntry, ...props }: InputProps): React.JSX.Element;
|
|
179
|
+
declare function Input({ label, error, hint, disabled, prefix, suffix, prefixStyle, suffixStyle, prefixIcon, suffixIcon, prefixIconColor, suffixIconColor, type, containerStyle, inputWrapperStyle, style, onFocus, onBlur, secureTextEntry, editable, ...props }: InputProps): React.JSX.Element;
|
|
167
180
|
|
|
168
181
|
type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning' | 'successOutline' | 'destructiveOutline' | 'warningOutline';
|
|
169
182
|
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
@@ -296,12 +309,17 @@ interface EmptyStateProps {
|
|
|
296
309
|
iconColor?: string;
|
|
297
310
|
title: string;
|
|
298
311
|
description?: string;
|
|
312
|
+
/** Custom action node. Use `actionLabel` + `onAction` for a pre-built primary Button. */
|
|
299
313
|
action?: React.ReactNode;
|
|
314
|
+
/** Label for a convenience primary Button rendered below description. Ignored in compact size. */
|
|
315
|
+
actionLabel?: string;
|
|
316
|
+
/** Called when the convenience action Button is pressed. Required when `actionLabel` is set. */
|
|
317
|
+
onAction?: () => void;
|
|
300
318
|
/** `compact` hides description/action and uses tighter spacing and a smaller icon. */
|
|
301
319
|
size?: 'default' | 'compact';
|
|
302
320
|
style?: ViewStyle;
|
|
303
321
|
}
|
|
304
|
-
declare function EmptyState({ icon, iconName, iconColor, title, description, action, size, style }: EmptyStateProps): React.JSX.Element;
|
|
322
|
+
declare function EmptyState({ icon, iconName, iconColor, title, description, action, actionLabel, onAction, size, style }: EmptyStateProps): React.JSX.Element;
|
|
305
323
|
|
|
306
324
|
interface TextareaProps extends TextInputProps {
|
|
307
325
|
label?: string;
|
|
@@ -449,20 +467,57 @@ interface SheetProps {
|
|
|
449
467
|
open: boolean;
|
|
450
468
|
onClose: () => void;
|
|
451
469
|
title?: string;
|
|
470
|
+
/** Secondary text below title. */
|
|
471
|
+
subtitle?: string;
|
|
472
|
+
/** @deprecated Use `subtitle` instead. */
|
|
452
473
|
description?: string;
|
|
474
|
+
/** Show an X close button in the header. */
|
|
475
|
+
showCloseButton?: boolean;
|
|
453
476
|
children?: React.ReactNode;
|
|
454
477
|
/** Style for the inner content container. */
|
|
455
478
|
style?: ViewStyle;
|
|
456
|
-
/**
|
|
479
|
+
/** Style for the content wrapper (outside the scroll container). */
|
|
480
|
+
contentStyle?: ViewStyle;
|
|
481
|
+
/** Render children inside BottomSheetScrollView. */
|
|
457
482
|
scrollable?: boolean;
|
|
458
483
|
/** Cap sheet height (dp). Children scroll when content exceeds this value. */
|
|
459
484
|
maxHeight?: number;
|
|
460
|
-
/**
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
485
|
+
/**
|
|
486
|
+
* Keyboard behavior — how the sheet responds to keyboard appearance.
|
|
487
|
+
* - 'interactive': offset sheet by keyboard size (default, works on both platforms)
|
|
488
|
+
* - 'fillParent': extend sheet to fill parent view (can cause restore issues with dynamic sizing)
|
|
489
|
+
* - 'extend': extend sheet to maximum snap point
|
|
490
|
+
*
|
|
491
|
+
* Default: 'interactive' on both platforms.
|
|
492
|
+
*/
|
|
493
|
+
keyboardBehavior?: 'extend' | 'fillParent' | 'interactive';
|
|
494
|
+
/**
|
|
495
|
+
* Keyboard blur behavior — what happens when keyboard dismisses.
|
|
496
|
+
* - 'none': do nothing
|
|
497
|
+
* - 'restore': restore sheet to previous position (default)
|
|
498
|
+
*/
|
|
499
|
+
keyboardBlurBehavior?: 'none' | 'restore';
|
|
500
|
+
/**
|
|
501
|
+
* Blur keyboard when user starts dragging the sheet down.
|
|
502
|
+
* Default: true (recommended for better UX)
|
|
503
|
+
*/
|
|
504
|
+
enableBlurKeyboardOnGesture?: boolean;
|
|
505
|
+
/**
|
|
506
|
+
* Android-only: defines keyboard input mode.
|
|
507
|
+
* - 'adjustPan': pan the sheet content (default, fixes restore issues with dynamic sizing)
|
|
508
|
+
* - 'adjustResize': resize the sheet container (can cause transparent gap on dismiss)
|
|
509
|
+
*/
|
|
510
|
+
android_keyboardInputMode?: 'adjustPan' | 'adjustResize';
|
|
511
|
+
/** Sticky footer rendered below the scroll area. */
|
|
512
|
+
footer?: React.ReactNode;
|
|
513
|
+
/**
|
|
514
|
+
* Array of snap points for the sheet (e.g., ['50%', '85%'] or [200, 500]).
|
|
515
|
+
* When provided, disables enableDynamicSizing.
|
|
516
|
+
* When omitted, sheet uses dynamic sizing (auto-fits content).
|
|
517
|
+
*/
|
|
518
|
+
snapPoints?: (string | number)[];
|
|
464
519
|
}
|
|
465
|
-
declare function Sheet({ open, onClose, title, description, children, style, scrollable, maxHeight, keyboardBehavior,
|
|
520
|
+
declare function Sheet({ open, onClose, title, subtitle, description, showCloseButton, children, style, contentStyle, scrollable, maxHeight, keyboardBehavior, keyboardBlurBehavior, enableBlurKeyboardOnGesture, android_keyboardInputMode, footer, snapPoints, }: SheetProps): React.JSX.Element;
|
|
466
521
|
|
|
467
522
|
interface SelectOption {
|
|
468
523
|
label: string;
|
|
@@ -481,38 +536,47 @@ interface SelectProps {
|
|
|
481
536
|
}
|
|
482
537
|
declare function Select({ options, value, onValueChange, placeholder, label, error, disabled, style, }: SelectProps): React.JSX.Element;
|
|
483
538
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
539
|
+
declare function useToast(): {
|
|
540
|
+
toast: ((message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
541
|
+
id?: string | number;
|
|
542
|
+
}) => string | number) & {
|
|
543
|
+
success: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
544
|
+
id?: string | number;
|
|
545
|
+
}) => string | number;
|
|
546
|
+
info: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
547
|
+
id?: string | number;
|
|
548
|
+
}) => string | number;
|
|
549
|
+
error: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
550
|
+
id?: string | number;
|
|
551
|
+
}) => string | number;
|
|
552
|
+
warning: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
553
|
+
id?: string | number;
|
|
554
|
+
}) => string | number;
|
|
555
|
+
custom: (jsx: React.ReactElement, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
556
|
+
id?: string | number;
|
|
557
|
+
}) => string | number;
|
|
558
|
+
promise: <T>(promise: Promise<T>, options: Omit<{
|
|
559
|
+
promise: Promise<unknown>;
|
|
560
|
+
success: (result: any) => string;
|
|
561
|
+
error: ((error: unknown) => string) | string;
|
|
562
|
+
loading: string;
|
|
563
|
+
styles?: {
|
|
564
|
+
loading?: sonner_native.ToastStyles;
|
|
565
|
+
success?: sonner_native.ToastStyles;
|
|
566
|
+
error?: sonner_native.ToastStyles;
|
|
567
|
+
};
|
|
568
|
+
}, "promise">) => string | number;
|
|
569
|
+
loading: (message: string, data?: Omit<sonner_native.ToastProps, "title" | "type" | "variant" | "id" | "jsx" | "promise"> & {
|
|
570
|
+
id?: string | number;
|
|
571
|
+
}) => string | number;
|
|
572
|
+
dismiss: (id?: string | number) => string | number | undefined;
|
|
573
|
+
wiggle: (id: string | number) => void;
|
|
574
|
+
};
|
|
575
|
+
dismiss: (id?: string | number) => string | number | undefined;
|
|
576
|
+
};
|
|
577
|
+
declare function ToastProvider({ children }: {
|
|
513
578
|
children: React.ReactNode;
|
|
514
|
-
}
|
|
515
|
-
declare function ToastProvider({ children }: ToastProviderProps): React.JSX.Element;
|
|
579
|
+
}): React.JSX.Element;
|
|
516
580
|
|
|
517
581
|
interface CurrencyInputProps {
|
|
518
582
|
value?: string;
|
|
@@ -612,6 +676,47 @@ interface ListItemProps {
|
|
|
612
676
|
}
|
|
613
677
|
declare function ListItem({ leftRender, rightRender, trailing, icon, leftIcon, rightIcon, leftIconColor, rightIconColor, title, subtitle, caption, variant, showChevron, showSeparator, onPress, disabled, style, titleStyle, subtitleStyle, captionStyle, }: ListItemProps): React.JSX.Element;
|
|
614
678
|
|
|
679
|
+
type MenuItemVariant = 'plain' | 'card';
|
|
680
|
+
interface MenuItemProps {
|
|
681
|
+
label: string;
|
|
682
|
+
/** Secondary text rendered below the label. */
|
|
683
|
+
subtitle?: string;
|
|
684
|
+
/**
|
|
685
|
+
* Icon name from `@expo/vector-icons` rendered on the left.
|
|
686
|
+
* See https://icons.expo.fyi.
|
|
687
|
+
*/
|
|
688
|
+
iconName?: string;
|
|
689
|
+
/** Custom icon node rendered on the left. */
|
|
690
|
+
icon?: React.ReactNode;
|
|
691
|
+
/** Override icon color. Defaults to `foreground`. */
|
|
692
|
+
iconColor?: string;
|
|
693
|
+
/**
|
|
694
|
+
* Custom content rendered on the right.
|
|
695
|
+
* When provided, replaces the default chevron.
|
|
696
|
+
* Use for checkboxes, switches, badges, or other controls.
|
|
697
|
+
*/
|
|
698
|
+
rightRender?: React.ReactNode;
|
|
699
|
+
/**
|
|
700
|
+
* Show chevron on the right. Defaults to `true`.
|
|
701
|
+
* Ignored when `rightRender` is provided.
|
|
702
|
+
*/
|
|
703
|
+
showChevron?: boolean;
|
|
704
|
+
onPress: () => void;
|
|
705
|
+
disabled?: boolean;
|
|
706
|
+
/**
|
|
707
|
+
* - `plain` (default): no background — sits inside a parent surface.
|
|
708
|
+
* - `card`: standalone surface with background + border.
|
|
709
|
+
*/
|
|
710
|
+
variant?: MenuItemVariant;
|
|
711
|
+
/** Visual separator line at the bottom. */
|
|
712
|
+
showSeparator?: boolean;
|
|
713
|
+
/** Style applied to the outer container. */
|
|
714
|
+
style?: ViewStyle;
|
|
715
|
+
/** Style applied to the label Text. */
|
|
716
|
+
labelStyle?: TextStyle;
|
|
717
|
+
}
|
|
718
|
+
declare function MenuItem({ label, subtitle, iconName, icon, iconColor, rightRender, showChevron, onPress, disabled, variant, showSeparator, style, labelStyle, }: MenuItemProps): React.JSX.Element;
|
|
719
|
+
|
|
615
720
|
interface ChipProps {
|
|
616
721
|
label: string;
|
|
617
722
|
selected?: boolean;
|
|
@@ -762,11 +867,11 @@ type DetailRowSeparator = 'dotted' | 'solid' | 'dashed' | 'none';
|
|
|
762
867
|
type DetailRowLabelWeight = 'normal' | 'medium' | 'semibold' | 'bold';
|
|
763
868
|
interface DetailRowProps {
|
|
764
869
|
label: React.ReactNode;
|
|
765
|
-
value: string;
|
|
870
|
+
value: string | React.ReactNode;
|
|
766
871
|
/** Dotted/dashed/solid line between label and value. Defaults to 'dotted'. */
|
|
767
872
|
separator?: DetailRowSeparator;
|
|
768
873
|
labelWeight?: DetailRowLabelWeight;
|
|
769
|
-
/** Semantic color key or hex string for value text. */
|
|
874
|
+
/** Semantic color key or hex string for value text. Only applies when value is a string. */
|
|
770
875
|
valueColor?: string;
|
|
771
876
|
/** Node rendered left of the label (e.g. Avatar, Icon). */
|
|
772
877
|
leftIcon?: React.ReactNode;
|
|
@@ -780,6 +885,7 @@ interface DetailRowProps {
|
|
|
780
885
|
rightIconColor?: string;
|
|
781
886
|
style?: ViewStyle;
|
|
782
887
|
labelStyle?: TextStyle;
|
|
888
|
+
/** Only applies when value is a string. */
|
|
783
889
|
valueStyle?: TextStyle;
|
|
784
890
|
}
|
|
785
891
|
declare function DetailRow({ label, value, separator, labelWeight, valueColor, leftIcon, leftIconName, leftIconColor, rightIconName, rightIconColor, style, labelStyle, valueStyle, }: DetailRowProps): React.JSX.Element;
|
|
@@ -975,10 +1081,10 @@ declare const TYPOGRAPHY: {
|
|
|
975
1081
|
};
|
|
976
1082
|
readonly 'uppercase-tag': {
|
|
977
1083
|
readonly fontFamily: "Poppins-Bold";
|
|
978
|
-
readonly fontSize:
|
|
1084
|
+
readonly fontSize: 10;
|
|
979
1085
|
readonly fontWeight: "700";
|
|
980
|
-
readonly lineHeight:
|
|
981
|
-
readonly letterSpacing: 0.
|
|
1086
|
+
readonly lineHeight: 13;
|
|
1087
|
+
readonly letterSpacing: 0.8;
|
|
982
1088
|
readonly textTransform: "uppercase";
|
|
983
1089
|
};
|
|
984
1090
|
readonly 'button-lg': {
|
|
@@ -1005,4 +1111,4 @@ type RadiusKey = keyof Radius;
|
|
|
1005
1111
|
type Typography = typeof TYPOGRAPHY;
|
|
1006
1112
|
type TypographyKey = keyof Typography;
|
|
1007
1113
|
|
|
1008
|
-
export { Accordion, type AccordionItem, type AccordionProps, AlertBanner, type AlertBannerProps, type AlertBannerVariant, Avatar, type AvatarProps, type AvatarSize, BREAKPOINTS, Badge, type BadgeProps, type BadgeVariant, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, type CategoryItem, CategoryStrip, type CategoryStripProps, Checkbox, type CheckboxProps, Chip, ChipGroup, type ChipGroupProps, type ChipOption, type ChipProps, type ColorScheme, ConfirmDialog, type ConfirmDialogProps, CurrencyDisplay, type CurrencyDisplayProps, type CurrencyDisplayVariant, CurrencyInput, CurrencyInput as CurrencyInputLarge, type CurrencyInputProps, DetailRow, type DetailRowLabelWeight, type DetailRowProps, type DetailRowSeparator, EmptyState, type EmptyStateProps, ICON_SIZES, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconFamily, type IconProps, type IconSize, type IconSizeKey, Input, type InputProps, LabelValue, type LabelValueProps, ListItem, type ListItemProps, MediaCard, type MediaCardAspectRatio, type MediaCardProps, MonthPicker, type MonthPickerProps, type MonthPickerValue, Pressable, type PressableProps, Progress, type ProgressProps, RADIUS, RadioGroup, type RadioGroupProps, type RadioOption, type Radius, type RadiusKey, type ResolvedColors, SHADOWS, SPACING, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sheet, type SheetProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type Spacing, type SpacingKey, Spinner, type SpinnerProps, type SpinnerSize, Switch, type SwitchProps, TYPOGRAPHY, type TabItem, Tabs, TabsContent, type TabsContentProps, type TabsProps, Text, type TextProps, type TextVariant, Textarea, type TextareaProps, type Theme, type ThemeColors, ThemeProvider, type ThemeProviderProps,
|
|
1114
|
+
export { Accordion, type AccordionItem, type AccordionProps, AlertBanner, type AlertBannerProps, type AlertBannerVariant, Avatar, type AvatarProps, type AvatarSize, BREAKPOINTS, Badge, type BadgeProps, type BadgeVariant, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, type CategoryItem, CategoryStrip, type CategoryStripProps, Checkbox, type CheckboxProps, Chip, ChipGroup, type ChipGroupProps, type ChipOption, type ChipProps, type ColorScheme, ConfirmDialog, type ConfirmDialogProps, CurrencyDisplay, type CurrencyDisplayProps, type CurrencyDisplayVariant, CurrencyInput, CurrencyInput as CurrencyInputLarge, type CurrencyInputProps, DetailRow, type DetailRowLabelWeight, type DetailRowProps, type DetailRowSeparator, EmptyState, type EmptyStateProps, ICON_SIZES, Icon, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconFamily, type IconProps, type IconSize, type IconSizeKey, Input, type InputProps, LabelValue, type LabelValueProps, ListItem, type ListItemProps, MediaCard, type MediaCardAspectRatio, type MediaCardProps, MenuItem, type MenuItemProps, type MenuItemVariant, MonthPicker, type MonthPickerProps, type MonthPickerValue, Pressable, type PressableProps, Progress, type ProgressProps, RADIUS, RadioGroup, type RadioGroupProps, type RadioOption, type Radius, type RadiusKey, type ResolvedColors, SHADOWS, SPACING, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sheet, type SheetProps, Skeleton, type SkeletonProps, Slider, type SliderProps, type Spacing, type SpacingKey, Spinner, type SpinnerProps, type SpinnerSize, Switch, type SwitchProps, TYPOGRAPHY, type TabItem, Tabs, TabsContent, type TabsContentProps, type TabsProps, Text, type TextProps, type TextVariant, Textarea, type TextareaProps, type Theme, type ThemeColors, ThemeProvider, type ThemeProviderProps, ToastProvider, Toggle, type ToggleProps, type ToggleSize, type ToggleVariant, type Typography, type TypographyKey, defaultDark, defaultLight, deriveColors, getResponsiveFontSize, renderIcon, useTheme, useToast };
|