@butternutbox/pawprint-native 0.3.2 → 0.4.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.
Files changed (31) hide show
  1. package/.turbo/turbo-build.log +10 -10
  2. package/CHANGELOG.md +14 -0
  3. package/dist/index.cjs +1012 -173
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +252 -5
  6. package/dist/index.d.ts +252 -5
  7. package/dist/index.js +1007 -173
  8. package/dist/index.js.map +1 -1
  9. package/package.json +2 -1
  10. package/src/components/atoms/Hint/Hint.tsx +1 -2
  11. package/src/components/atoms/Input/InputField.tsx +7 -1
  12. package/src/components/molecules/Animated/Animated.tsx +12 -3
  13. package/src/components/molecules/Countdown/Countdown.stories.tsx +218 -0
  14. package/src/components/molecules/Countdown/Countdown.tsx +315 -0
  15. package/src/components/molecules/Countdown/index.ts +2 -0
  16. package/src/components/molecules/NumberField/NumberFieldInput.tsx +14 -24
  17. package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.stories.tsx +275 -0
  18. package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.test.tsx +198 -0
  19. package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.tsx +292 -0
  20. package/src/components/molecules/ProductDisplayCard/index.ts +5 -0
  21. package/src/components/molecules/ProductListingCard/Badge.tsx +65 -0
  22. package/src/components/molecules/ProductListingCard/Grid.tsx +59 -0
  23. package/src/components/molecules/ProductListingCard/ProductListingCard.stories.tsx +209 -0
  24. package/src/components/molecules/ProductListingCard/ProductListingCard.tsx +235 -0
  25. package/src/components/molecules/ProductListingCard/index.ts +2 -0
  26. package/src/components/molecules/TabNavigation/TabNavigation.stories.tsx +183 -0
  27. package/src/components/molecules/TabNavigation/TabNavigation.tsx +354 -0
  28. package/src/components/molecules/TabNavigation/index.ts +7 -0
  29. package/src/components/molecules/index.ts +4 -0
  30. package/src/utils/index.ts +1 -0
  31. package/src/utils/token.ts +1 -0
package/dist/index.d.cts CHANGED
@@ -279,8 +279,8 @@ type UnpinnedBadgeProps = BaseBadgeProps & {
279
279
  top?: never;
280
280
  bottom?: never;
281
281
  };
282
- type BadgeOwnProps = PinnedBadgeProps | UnpinnedBadgeProps;
283
- type BadgeProps = BadgeOwnProps & Omit<ViewProps, keyof BadgeOwnProps>;
282
+ type BadgeOwnProps$1 = PinnedBadgeProps | UnpinnedBadgeProps;
283
+ type BadgeProps = BadgeOwnProps$1 & Omit<ViewProps, keyof BadgeOwnProps$1>;
284
284
  /**
285
285
  * Badge component for displaying labels with optional icons.
286
286
  * Used to highlight status, categories, or notifications.
@@ -302,7 +302,7 @@ type BadgeProps = BadgeOwnProps & Omit<ViewProps, keyof BadgeOwnProps>;
302
302
  * <Badge variant="promo" pinned top={16}>Special</Badge>
303
303
  * </View>
304
304
  */
305
- declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<View>>;
305
+ declare const Badge$1: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<View>>;
306
306
 
307
307
  type ButtonVariant = "filled" | "outlined" | "text";
308
308
  type ButtonSize = "sm" | "md" | "lg";
@@ -804,12 +804,21 @@ type AnimatedProps = {
804
804
  * ```
805
805
  */
806
806
  delay?: number;
807
+ /**
808
+ * Whether to play the exit animation when the component unmounts. Defaults
809
+ * to `true`. Set to `false` for an enter-only animation — useful when a
810
+ * parent unmounts the element directly (e.g. tab panels). Mirrors the web
811
+ * `Animated`, whose exit only runs inside `AnimatePresence`.
812
+ */
813
+ exit?: boolean;
807
814
  } & ViewProps;
808
815
  /**
809
816
  * Reanimated wrapper that applies a named animation preset to its children.
810
817
  *
811
818
  * Exit animations run automatically when the component unmounts — no wrapper
812
- * component needed (unlike `AnimatePresence` on web).
819
+ * component needed (unlike `AnimatePresence` on web). Pass `exit={false}` for
820
+ * an enter-only animation (matching the web default, where exit requires
821
+ * `AnimatePresence`).
813
822
  *
814
823
  * Respects the OS reduce-motion setting automatically — Reanimated builders
815
824
  * default to `ReduceMotion.System` so no extra hook is needed.
@@ -863,6 +872,13 @@ declare const Animated: React.ForwardRefExoticComponent<{
863
872
  * ```
864
873
  */
865
874
  delay?: number;
875
+ /**
876
+ * Whether to play the exit animation when the component unmounts. Defaults
877
+ * to `true`. Set to `false` for an enter-only animation — useful when a
878
+ * parent unmounts the element directly (e.g. tab panels). Mirrors the web
879
+ * `Animated`, whose exit only runs inside `AnimatePresence`.
880
+ */
881
+ exit?: boolean;
866
882
  } & ViewProps & React.RefAttributes<View>>;
867
883
 
868
884
  type DrawerHeaderVariant = "titleAndText" | "image" | "fullBleed";
@@ -1875,4 +1891,235 @@ type PictureSelectorProps = PictureSelectorOwnProps & Omit<ViewProps, keyof Pict
1875
1891
  */
1876
1892
  declare const PictureSelector: React.ForwardRefExoticComponent<PictureSelectorOwnProps & Omit<ViewProps, keyof PictureSelectorOwnProps> & React.RefAttributes<View>>;
1877
1893
 
1878
- export { Accordion, type AccordionItemProps, type AccordionProps, type AccordionSize, Animated, type AnimatedProps, type AnimatedVariant, Avatar, type AvatarFallbackType, type AvatarProps, type AvatarSize, BRAND_FONTS, Badge, type BadgeProps, Button, type ButtonColour, ButtonDock, type ButtonDockProps, type ButtonDockVariant, ButtonGroup, type ButtonGroupLayout, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, CarouselControls, type CarouselControlsProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxVariant, CopyField, CopyFieldInput, type CopyFieldProps, type DateItemState, DatePicker, type DatePickerProps, Drawer, type DrawerBodyProps, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerGrabberProps, type DrawerHeaderProps, type DrawerHeaderVariant, type DrawerOverlayProps, type DrawerProps, type DrawerTitleProps, type DrawerTriggerProps, FilterTab, type FilterTabItemProps, type FilterTabProps, Hint, type HintProps, Icon, IconButton, type IconButtonColour, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconCategory, type IconColour, type IconProps, type IconSize, Illustration, type IllustrationProps, type IllustrationSize, Input, InputDescription, type InputDescriptionProps, InputError, type InputErrorProps, InputField, type InputFieldProps, InputLabel, type InputLabelProps, type InputProps, Link, type LinkProps, type LinkSize, type LinkWeight, Logo, type LogoBrand, type LogoProps, type LogoSvgComponent, type LogoVariant, MessageCard, MessageCardBanner, type MessageCardBannerMedia, type MessageCardBannerProps, MessageCardInsight, type MessageCardInsightProps, Notification, type NotificationProps, NumberField, type NumberFieldProps, NumberInput, NumberInputField, type NumberInputFieldProps, type NumberInputProps, PasswordField, PasswordFieldInput, type PasswordFieldProps, PasswordFieldRequirements, type PasswordFieldRequirementsProps, type PasswordRequirement, type PasswordValidationRule, type PawprintIcon, type PawprintIllustration$2 as PawprintIllustration, PawprintProvider, type PawprintProviderProps, PictureSelector, type PictureSelectorItem, type PictureSelectorProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioOwnProps, type RadioProps, SearchField, SearchFieldInput, type SearchFieldProps, SegmentedControl, type SegmentedControlItemProps, type SegmentedControlProps, SelectField, SelectFieldContent, SelectFieldItem, type SelectFieldItemProps, type SelectFieldProps, SelectFieldTrigger, type SelectFieldTriggerProps, SelectFieldValue, type SelectValidationRule, Slider, type SliderProps, Spinner, type SpinnerProps, type SpinnerSize, type SpinnerVariant, Switch, type SwitchProps, Tag, type TagProps, TextArea, TextAreaField, type TextAreaFieldProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, ThemeProvider, Tooltip, type TooltipProps, Typography, type TypographyProps, createPawprintTheme, fadeAnimation, fadeDownAnimation, fadeUpAnimation, registerLogo, resolveFont, resolveLogo, scaleAnimation, slideInAnimation, slideOutAnimation, theme, useCopyField, usePasswordField, usePawprint, useSearchField, useSelectField };
1894
+ type CountdownLayout = "stacked" | "inline";
1895
+ type CountdownOwnProps = {
1896
+ layout?: CountdownLayout;
1897
+ days?: number;
1898
+ hours?: number;
1899
+ minutes?: number;
1900
+ seconds?: number;
1901
+ showDays?: boolean;
1902
+ showSeconds?: boolean;
1903
+ label?: React.ReactNode;
1904
+ };
1905
+ type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps>;
1906
+ /**
1907
+ * Displays the remaining time until an event, deadline, or expiry. Purely
1908
+ * presentational — the consuming app computes the remaining time and passes
1909
+ * the discrete `days`/`hours`/`minutes`/`seconds` values.
1910
+ *
1911
+ * Two layouts:
1912
+ * - `stacked` — each unit sits in its own styled container (brand fill) with
1913
+ * the value above the label, separated by colons. Best for heroes, checkout
1914
+ * screens, and promotional cards.
1915
+ * - `inline` — a single condensed banner with a customizable prefix `label`
1916
+ * followed by the time string on one line. Best for notification banners,
1917
+ * sticky footers, and dense UI.
1918
+ *
1919
+ * Units can be toggled to scale across timeframes: hide `days` when under
1920
+ * 24 hours remain (`showDays={false}`) and hide `seconds` to reduce visual
1921
+ * noise (`showSeconds={false}`). Toggling a unit also removes its separator.
1922
+ * Hours and minutes are always shown.
1923
+ *
1924
+ * Note: API parity with the web `Countdown`. Unlike the web version, the
1925
+ * native root is a `View` and px token strings are parsed to numbers.
1926
+ *
1927
+ * @param {"stacked" | "inline"} [layout="stacked"] - Visual layout.
1928
+ * @param {number} [days=0] - Days remaining (zero-padded to 2 digits).
1929
+ * @param {number} [hours=0] - Hours remaining (zero-padded to 2 digits).
1930
+ * @param {number} [minutes=0] - Minutes remaining (zero-padded to 2 digits).
1931
+ * @param {number} [seconds=0] - Seconds remaining (zero-padded to 2 digits).
1932
+ * @param {boolean} [showDays=true] - Whether to render the days unit and its separator.
1933
+ * @param {boolean} [showSeconds=true] - Whether to render the seconds unit and its separator.
1934
+ * @param {React.ReactNode} [label] - Customizable prefix label, rendered in the `inline` layout only.
1935
+ *
1936
+ * @example
1937
+ * ```tsx
1938
+ * import { Countdown } from "@butternutbox/pawprint-native"
1939
+ *
1940
+ * <Countdown layout="stacked" days={2} hours={9} minutes={48} seconds={38} />
1941
+ * <Countdown layout="inline" label="Sale ends:" showDays={false} hours={3} minutes={49} seconds={38} />
1942
+ * ```
1943
+ */
1944
+ declare const Countdown: React.ForwardRefExoticComponent<CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps> & React.RefAttributes<View>>;
1945
+
1946
+ type BadgeOwnProps = {
1947
+ icon?: React.ReactNode;
1948
+ text: React.ReactNode;
1949
+ };
1950
+ declare const Badge: React.ForwardRefExoticComponent<BadgeOwnProps & Omit<ViewProps, keyof BadgeOwnProps> & React.RefAttributes<View>>;
1951
+
1952
+ type ProductListingCardGridOwnProps = {
1953
+ children: React.ReactNode;
1954
+ xs?: number;
1955
+ md?: number;
1956
+ lg?: number;
1957
+ };
1958
+ declare const Grid: React.ForwardRefExoticComponent<ProductListingCardGridOwnProps & Omit<ViewProps, keyof ProductListingCardGridOwnProps> & React.RefAttributes<View>>;
1959
+
1960
+ type ProductListingCardOwnProps = {
1961
+ image?: ImageSourcePropType;
1962
+ imageAlt?: string;
1963
+ badge?: React.ReactNode;
1964
+ category?: string;
1965
+ title?: string;
1966
+ size?: string;
1967
+ price?: string;
1968
+ wasPrice?: string;
1969
+ showBadge?: boolean;
1970
+ showCategory?: boolean;
1971
+ showTitle?: boolean;
1972
+ showSize?: boolean;
1973
+ showPrice?: boolean;
1974
+ onPress?: () => void;
1975
+ };
1976
+ type ProductListingCardProps = ProductListingCardOwnProps & Omit<PressableProps, keyof ProductListingCardOwnProps>;
1977
+ declare const _ProductListingCard: React.ForwardRefExoticComponent<ProductListingCardOwnProps & Omit<PressableProps, keyof ProductListingCardOwnProps> & React.RefAttributes<View>>;
1978
+ declare const ProductListingCardWithBadgeAndGrid: typeof _ProductListingCard & {
1979
+ Badge: typeof Badge;
1980
+ Grid: typeof Grid;
1981
+ };
1982
+
1983
+ type ProductDisplayCardDevice = "desktop" | "mobile";
1984
+ type ProductDisplayCardProps = ViewProps & {
1985
+ device?: ProductDisplayCardDevice;
1986
+ title: string;
1987
+ subtext?: string | React.ReactNode;
1988
+ showSubtext?: boolean;
1989
+ quantity?: number;
1990
+ onQuantityChange?: (quantity: number) => void;
1991
+ showQuantityPicker?: boolean;
1992
+ disableQuantityButtons?: boolean;
1993
+ hideQuantityButtons?: boolean;
1994
+ showIncrementButton?: boolean;
1995
+ showDecrementButton?: boolean;
1996
+ incrementDisabled?: boolean;
1997
+ decrementDisabled?: boolean;
1998
+ image?: string | React.ReactNode;
1999
+ imageBackgroundColor?: string;
2000
+ showImageQuantityBadge?: boolean;
2001
+ banner?: React.ReactNode;
2002
+ showBanner?: boolean;
2003
+ bannerType?: "error" | "success" | "warning" | "info";
2004
+ showBannerIcon?: boolean;
2005
+ };
2006
+ /**
2007
+ * Product Display Card component for showing product information with optional quantity picker.
2008
+ *
2009
+ * @example
2010
+ * ```tsx
2011
+ * import { ProductDisplayCard } from "@butternutbox/pawprint-native"
2012
+ *
2013
+ * <ProductDisplayCard
2014
+ * device="mobile"
2015
+ * title="Premium Recipe"
2016
+ * subtext="+£0.00/pouch"
2017
+ * quantity={1}
2018
+ * showQuantityPicker
2019
+ * />
2020
+ * ```
2021
+ *
2022
+ * @param device - *(optional)* Device variant: "desktop" or "mobile" (default)
2023
+ * @param title - Product title
2024
+ * @param subtext - *(optional)* Subtitle text or JSX element (e.g. price)
2025
+ * @param showSubtext - *(optional)* Show/hide subtext
2026
+ * @param quantity - *(optional)* Current quantity value
2027
+ * @param onQuantityChange - *(optional)* Callback when quantity changes
2028
+ * @param showQuantityPicker - *(optional)* Show/hide quantity picker
2029
+ * @param image - *(optional)* Image URL string or React element/JSX content
2030
+ * @param imageBackgroundColor - *(optional)* Background color for image container (default: theme background.container.secondary)
2031
+ * @param showImageQuantityBadge - *(optional)* Show/hide quantity badge overlay on image
2032
+ * @param banner - *(optional)* Banner content to show below card
2033
+ * @param showBanner - *(optional)* Show/hide banner
2034
+ * @param bannerType - *(optional)* Banner notification type: "error", "success", "warning", or "info" (default)
2035
+ * @param showBannerIcon - *(optional)* Show/hide banner notification icon
2036
+ */
2037
+ declare const ProductDisplayCard: React.ForwardRefExoticComponent<ViewProps & {
2038
+ device?: ProductDisplayCardDevice;
2039
+ title: string;
2040
+ subtext?: string | React.ReactNode;
2041
+ showSubtext?: boolean;
2042
+ quantity?: number;
2043
+ onQuantityChange?: (quantity: number) => void;
2044
+ showQuantityPicker?: boolean;
2045
+ disableQuantityButtons?: boolean;
2046
+ hideQuantityButtons?: boolean;
2047
+ showIncrementButton?: boolean;
2048
+ showDecrementButton?: boolean;
2049
+ incrementDisabled?: boolean;
2050
+ decrementDisabled?: boolean;
2051
+ image?: string | React.ReactNode;
2052
+ imageBackgroundColor?: string;
2053
+ showImageQuantityBadge?: boolean;
2054
+ banner?: React.ReactNode;
2055
+ showBanner?: boolean;
2056
+ bannerType?: "error" | "success" | "warning" | "info";
2057
+ showBannerIcon?: boolean;
2058
+ } & React.RefAttributes<View>>;
2059
+
2060
+ type TabNavigationLayout = "fixed" | "intrinsic";
2061
+ type TabNavigationOwnProps = {
2062
+ value?: string;
2063
+ defaultValue?: string;
2064
+ onValueChange?: (value: string) => void;
2065
+ layout?: TabNavigationLayout;
2066
+ animation?: AnimatedVariant;
2067
+ children?: React.ReactNode;
2068
+ };
2069
+ type TabNavigationProps = TabNavigationOwnProps & Omit<ViewProps, keyof TabNavigationOwnProps>;
2070
+ type TabNavigationListOwnProps = {
2071
+ children?: React.ReactNode;
2072
+ };
2073
+ type TabNavigationListProps = TabNavigationListOwnProps & Omit<ViewProps, keyof TabNavigationListOwnProps>;
2074
+ type TabNavigationTabOwnProps = {
2075
+ value: string;
2076
+ disabled?: boolean;
2077
+ children: React.ReactNode;
2078
+ };
2079
+ type TabNavigationTabProps = TabNavigationTabOwnProps & Omit<ViewProps, keyof TabNavigationTabOwnProps>;
2080
+ type TabNavigationPanelOwnProps = {
2081
+ value: string;
2082
+ children?: React.ReactNode;
2083
+ };
2084
+ type TabNavigationPanelProps = TabNavigationPanelOwnProps & Omit<ViewProps, keyof TabNavigationPanelOwnProps>;
2085
+ /**
2086
+ * Wraps the tab buttons. In `fixed` layout the tabs share the available width
2087
+ * equally; in `intrinsic` layout the tabs size to their content and the list
2088
+ * scrolls horizontally when they overflow.
2089
+ *
2090
+ * Must be used within a `TabNavigation` component.
2091
+ */
2092
+ declare const TabNavigationList: React.ForwardRefExoticComponent<TabNavigationListOwnProps & Omit<ViewProps, "children"> & React.RefAttributes<View>>;
2093
+ /**
2094
+ * An individual tab button within a `TabNavigation`. Selected tabs render with
2095
+ * a brand bottom border and bold label; unselected tabs use a neutral border
2096
+ * and semibold label. Disabled tabs are muted and non-interactive.
2097
+ *
2098
+ * Wraps `@rn-primitives/tabs` `Trigger` for accessibility (role, selected and
2099
+ * disabled state). Unlike the web version there are no hover or focus-visible
2100
+ * states (not applicable on mobile).
2101
+ *
2102
+ * @param {string} value - Unique identifier; matches the `value` of a `TabNavigation.Panel`.
2103
+ * @param {boolean} [disabled=false] - Whether this tab is disabled.
2104
+ * @param {React.ReactNode} children - Tab label (and optional leading content).
2105
+ */
2106
+ declare const TabNavigationTab: React.ForwardRefExoticComponent<TabNavigationTabOwnProps & Omit<ViewProps, keyof TabNavigationTabOwnProps> & React.RefAttributes<View>>;
2107
+ /**
2108
+ * Content area shown when the tab with the matching `value` is selected. Wraps
2109
+ * `@rn-primitives/tabs` `Content` (which unmounts the inactive panels) and
2110
+ * animates the content with the `Animated` atom (variant set by the parent
2111
+ * `TabNavigation`'s `animation` prop). The enter animation replays each time
2112
+ * the tab becomes active.
2113
+ *
2114
+ * @param {string} value - Matches the `value` of a `TabNavigation.Tab`.
2115
+ * @param {React.ReactNode} [children] - Panel content.
2116
+ */
2117
+ declare const TabNavigationPanel: React.ForwardRefExoticComponent<TabNavigationPanelOwnProps & Omit<ViewProps, keyof TabNavigationPanelOwnProps> & React.RefAttributes<View>>;
2118
+ type TabNavigationComponent = React.ForwardRefExoticComponent<TabNavigationProps & React.RefAttributes<View>> & {
2119
+ List: typeof TabNavigationList;
2120
+ Tab: typeof TabNavigationTab;
2121
+ Panel: typeof TabNavigationPanel;
2122
+ };
2123
+ declare const TabNavigation: TabNavigationComponent;
2124
+
2125
+ export { Accordion, type AccordionItemProps, type AccordionProps, type AccordionSize, Animated, type AnimatedProps, type AnimatedVariant, Avatar, type AvatarFallbackType, type AvatarProps, type AvatarSize, BRAND_FONTS, Badge$1 as Badge, type BadgeProps, Button, type ButtonColour, ButtonDock, type ButtonDockProps, type ButtonDockVariant, ButtonGroup, type ButtonGroupLayout, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, CarouselControls, type CarouselControlsProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxVariant, CopyField, CopyFieldInput, type CopyFieldProps, Countdown, type CountdownProps, type DateItemState, DatePicker, type DatePickerProps, Drawer, type DrawerBodyProps, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerGrabberProps, type DrawerHeaderProps, type DrawerHeaderVariant, type DrawerOverlayProps, type DrawerProps, type DrawerTitleProps, type DrawerTriggerProps, FilterTab, type FilterTabItemProps, type FilterTabProps, Hint, type HintProps, Icon, IconButton, type IconButtonColour, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconCategory, type IconColour, type IconProps, type IconSize, Illustration, type IllustrationProps, type IllustrationSize, Input, InputDescription, type InputDescriptionProps, InputError, type InputErrorProps, InputField, type InputFieldProps, InputLabel, type InputLabelProps, type InputProps, Link, type LinkProps, type LinkSize, type LinkWeight, Logo, type LogoBrand, type LogoProps, type LogoSvgComponent, type LogoVariant, MessageCard, MessageCardBanner, type MessageCardBannerMedia, type MessageCardBannerProps, MessageCardInsight, type MessageCardInsightProps, Notification, type NotificationProps, NumberField, type NumberFieldProps, NumberInput, NumberInputField, type NumberInputFieldProps, type NumberInputProps, PasswordField, PasswordFieldInput, type PasswordFieldProps, PasswordFieldRequirements, type PasswordFieldRequirementsProps, type PasswordRequirement, type PasswordValidationRule, type PawprintIcon, type PawprintIllustration$2 as PawprintIllustration, PawprintProvider, type PawprintProviderProps, PictureSelector, type PictureSelectorItem, type PictureSelectorProps, ProductDisplayCard, type ProductDisplayCardDevice, type ProductDisplayCardProps, ProductListingCardWithBadgeAndGrid as ProductListingCard, type ProductListingCardProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioOwnProps, type RadioProps, SearchField, SearchFieldInput, type SearchFieldProps, SegmentedControl, type SegmentedControlItemProps, type SegmentedControlProps, SelectField, SelectFieldContent, SelectFieldItem, type SelectFieldItemProps, type SelectFieldProps, SelectFieldTrigger, type SelectFieldTriggerProps, SelectFieldValue, type SelectValidationRule, Slider, type SliderProps, Spinner, type SpinnerProps, type SpinnerSize, type SpinnerVariant, Switch, type SwitchProps, TabNavigation, type TabNavigationListProps, type TabNavigationPanelProps, type TabNavigationProps, type TabNavigationTabProps, Tag, type TagProps, TextArea, TextAreaField, type TextAreaFieldProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, ThemeProvider, Tooltip, type TooltipProps, Typography, type TypographyProps, createPawprintTheme, fadeAnimation, fadeDownAnimation, fadeUpAnimation, registerLogo, resolveFont, resolveLogo, scaleAnimation, slideInAnimation, slideOutAnimation, theme, useCopyField, usePasswordField, usePawprint, useSearchField, useSelectField };
package/dist/index.d.ts CHANGED
@@ -279,8 +279,8 @@ type UnpinnedBadgeProps = BaseBadgeProps & {
279
279
  top?: never;
280
280
  bottom?: never;
281
281
  };
282
- type BadgeOwnProps = PinnedBadgeProps | UnpinnedBadgeProps;
283
- type BadgeProps = BadgeOwnProps & Omit<ViewProps, keyof BadgeOwnProps>;
282
+ type BadgeOwnProps$1 = PinnedBadgeProps | UnpinnedBadgeProps;
283
+ type BadgeProps = BadgeOwnProps$1 & Omit<ViewProps, keyof BadgeOwnProps$1>;
284
284
  /**
285
285
  * Badge component for displaying labels with optional icons.
286
286
  * Used to highlight status, categories, or notifications.
@@ -302,7 +302,7 @@ type BadgeProps = BadgeOwnProps & Omit<ViewProps, keyof BadgeOwnProps>;
302
302
  * <Badge variant="promo" pinned top={16}>Special</Badge>
303
303
  * </View>
304
304
  */
305
- declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<View>>;
305
+ declare const Badge$1: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<View>>;
306
306
 
307
307
  type ButtonVariant = "filled" | "outlined" | "text";
308
308
  type ButtonSize = "sm" | "md" | "lg";
@@ -804,12 +804,21 @@ type AnimatedProps = {
804
804
  * ```
805
805
  */
806
806
  delay?: number;
807
+ /**
808
+ * Whether to play the exit animation when the component unmounts. Defaults
809
+ * to `true`. Set to `false` for an enter-only animation — useful when a
810
+ * parent unmounts the element directly (e.g. tab panels). Mirrors the web
811
+ * `Animated`, whose exit only runs inside `AnimatePresence`.
812
+ */
813
+ exit?: boolean;
807
814
  } & ViewProps;
808
815
  /**
809
816
  * Reanimated wrapper that applies a named animation preset to its children.
810
817
  *
811
818
  * Exit animations run automatically when the component unmounts — no wrapper
812
- * component needed (unlike `AnimatePresence` on web).
819
+ * component needed (unlike `AnimatePresence` on web). Pass `exit={false}` for
820
+ * an enter-only animation (matching the web default, where exit requires
821
+ * `AnimatePresence`).
813
822
  *
814
823
  * Respects the OS reduce-motion setting automatically — Reanimated builders
815
824
  * default to `ReduceMotion.System` so no extra hook is needed.
@@ -863,6 +872,13 @@ declare const Animated: React.ForwardRefExoticComponent<{
863
872
  * ```
864
873
  */
865
874
  delay?: number;
875
+ /**
876
+ * Whether to play the exit animation when the component unmounts. Defaults
877
+ * to `true`. Set to `false` for an enter-only animation — useful when a
878
+ * parent unmounts the element directly (e.g. tab panels). Mirrors the web
879
+ * `Animated`, whose exit only runs inside `AnimatePresence`.
880
+ */
881
+ exit?: boolean;
866
882
  } & ViewProps & React.RefAttributes<View>>;
867
883
 
868
884
  type DrawerHeaderVariant = "titleAndText" | "image" | "fullBleed";
@@ -1875,4 +1891,235 @@ type PictureSelectorProps = PictureSelectorOwnProps & Omit<ViewProps, keyof Pict
1875
1891
  */
1876
1892
  declare const PictureSelector: React.ForwardRefExoticComponent<PictureSelectorOwnProps & Omit<ViewProps, keyof PictureSelectorOwnProps> & React.RefAttributes<View>>;
1877
1893
 
1878
- export { Accordion, type AccordionItemProps, type AccordionProps, type AccordionSize, Animated, type AnimatedProps, type AnimatedVariant, Avatar, type AvatarFallbackType, type AvatarProps, type AvatarSize, BRAND_FONTS, Badge, type BadgeProps, Button, type ButtonColour, ButtonDock, type ButtonDockProps, type ButtonDockVariant, ButtonGroup, type ButtonGroupLayout, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, CarouselControls, type CarouselControlsProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxVariant, CopyField, CopyFieldInput, type CopyFieldProps, type DateItemState, DatePicker, type DatePickerProps, Drawer, type DrawerBodyProps, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerGrabberProps, type DrawerHeaderProps, type DrawerHeaderVariant, type DrawerOverlayProps, type DrawerProps, type DrawerTitleProps, type DrawerTriggerProps, FilterTab, type FilterTabItemProps, type FilterTabProps, Hint, type HintProps, Icon, IconButton, type IconButtonColour, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconCategory, type IconColour, type IconProps, type IconSize, Illustration, type IllustrationProps, type IllustrationSize, Input, InputDescription, type InputDescriptionProps, InputError, type InputErrorProps, InputField, type InputFieldProps, InputLabel, type InputLabelProps, type InputProps, Link, type LinkProps, type LinkSize, type LinkWeight, Logo, type LogoBrand, type LogoProps, type LogoSvgComponent, type LogoVariant, MessageCard, MessageCardBanner, type MessageCardBannerMedia, type MessageCardBannerProps, MessageCardInsight, type MessageCardInsightProps, Notification, type NotificationProps, NumberField, type NumberFieldProps, NumberInput, NumberInputField, type NumberInputFieldProps, type NumberInputProps, PasswordField, PasswordFieldInput, type PasswordFieldProps, PasswordFieldRequirements, type PasswordFieldRequirementsProps, type PasswordRequirement, type PasswordValidationRule, type PawprintIcon, type PawprintIllustration$2 as PawprintIllustration, PawprintProvider, type PawprintProviderProps, PictureSelector, type PictureSelectorItem, type PictureSelectorProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioOwnProps, type RadioProps, SearchField, SearchFieldInput, type SearchFieldProps, SegmentedControl, type SegmentedControlItemProps, type SegmentedControlProps, SelectField, SelectFieldContent, SelectFieldItem, type SelectFieldItemProps, type SelectFieldProps, SelectFieldTrigger, type SelectFieldTriggerProps, SelectFieldValue, type SelectValidationRule, Slider, type SliderProps, Spinner, type SpinnerProps, type SpinnerSize, type SpinnerVariant, Switch, type SwitchProps, Tag, type TagProps, TextArea, TextAreaField, type TextAreaFieldProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, ThemeProvider, Tooltip, type TooltipProps, Typography, type TypographyProps, createPawprintTheme, fadeAnimation, fadeDownAnimation, fadeUpAnimation, registerLogo, resolveFont, resolveLogo, scaleAnimation, slideInAnimation, slideOutAnimation, theme, useCopyField, usePasswordField, usePawprint, useSearchField, useSelectField };
1894
+ type CountdownLayout = "stacked" | "inline";
1895
+ type CountdownOwnProps = {
1896
+ layout?: CountdownLayout;
1897
+ days?: number;
1898
+ hours?: number;
1899
+ minutes?: number;
1900
+ seconds?: number;
1901
+ showDays?: boolean;
1902
+ showSeconds?: boolean;
1903
+ label?: React.ReactNode;
1904
+ };
1905
+ type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps>;
1906
+ /**
1907
+ * Displays the remaining time until an event, deadline, or expiry. Purely
1908
+ * presentational — the consuming app computes the remaining time and passes
1909
+ * the discrete `days`/`hours`/`minutes`/`seconds` values.
1910
+ *
1911
+ * Two layouts:
1912
+ * - `stacked` — each unit sits in its own styled container (brand fill) with
1913
+ * the value above the label, separated by colons. Best for heroes, checkout
1914
+ * screens, and promotional cards.
1915
+ * - `inline` — a single condensed banner with a customizable prefix `label`
1916
+ * followed by the time string on one line. Best for notification banners,
1917
+ * sticky footers, and dense UI.
1918
+ *
1919
+ * Units can be toggled to scale across timeframes: hide `days` when under
1920
+ * 24 hours remain (`showDays={false}`) and hide `seconds` to reduce visual
1921
+ * noise (`showSeconds={false}`). Toggling a unit also removes its separator.
1922
+ * Hours and minutes are always shown.
1923
+ *
1924
+ * Note: API parity with the web `Countdown`. Unlike the web version, the
1925
+ * native root is a `View` and px token strings are parsed to numbers.
1926
+ *
1927
+ * @param {"stacked" | "inline"} [layout="stacked"] - Visual layout.
1928
+ * @param {number} [days=0] - Days remaining (zero-padded to 2 digits).
1929
+ * @param {number} [hours=0] - Hours remaining (zero-padded to 2 digits).
1930
+ * @param {number} [minutes=0] - Minutes remaining (zero-padded to 2 digits).
1931
+ * @param {number} [seconds=0] - Seconds remaining (zero-padded to 2 digits).
1932
+ * @param {boolean} [showDays=true] - Whether to render the days unit and its separator.
1933
+ * @param {boolean} [showSeconds=true] - Whether to render the seconds unit and its separator.
1934
+ * @param {React.ReactNode} [label] - Customizable prefix label, rendered in the `inline` layout only.
1935
+ *
1936
+ * @example
1937
+ * ```tsx
1938
+ * import { Countdown } from "@butternutbox/pawprint-native"
1939
+ *
1940
+ * <Countdown layout="stacked" days={2} hours={9} minutes={48} seconds={38} />
1941
+ * <Countdown layout="inline" label="Sale ends:" showDays={false} hours={3} minutes={49} seconds={38} />
1942
+ * ```
1943
+ */
1944
+ declare const Countdown: React.ForwardRefExoticComponent<CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps> & React.RefAttributes<View>>;
1945
+
1946
+ type BadgeOwnProps = {
1947
+ icon?: React.ReactNode;
1948
+ text: React.ReactNode;
1949
+ };
1950
+ declare const Badge: React.ForwardRefExoticComponent<BadgeOwnProps & Omit<ViewProps, keyof BadgeOwnProps> & React.RefAttributes<View>>;
1951
+
1952
+ type ProductListingCardGridOwnProps = {
1953
+ children: React.ReactNode;
1954
+ xs?: number;
1955
+ md?: number;
1956
+ lg?: number;
1957
+ };
1958
+ declare const Grid: React.ForwardRefExoticComponent<ProductListingCardGridOwnProps & Omit<ViewProps, keyof ProductListingCardGridOwnProps> & React.RefAttributes<View>>;
1959
+
1960
+ type ProductListingCardOwnProps = {
1961
+ image?: ImageSourcePropType;
1962
+ imageAlt?: string;
1963
+ badge?: React.ReactNode;
1964
+ category?: string;
1965
+ title?: string;
1966
+ size?: string;
1967
+ price?: string;
1968
+ wasPrice?: string;
1969
+ showBadge?: boolean;
1970
+ showCategory?: boolean;
1971
+ showTitle?: boolean;
1972
+ showSize?: boolean;
1973
+ showPrice?: boolean;
1974
+ onPress?: () => void;
1975
+ };
1976
+ type ProductListingCardProps = ProductListingCardOwnProps & Omit<PressableProps, keyof ProductListingCardOwnProps>;
1977
+ declare const _ProductListingCard: React.ForwardRefExoticComponent<ProductListingCardOwnProps & Omit<PressableProps, keyof ProductListingCardOwnProps> & React.RefAttributes<View>>;
1978
+ declare const ProductListingCardWithBadgeAndGrid: typeof _ProductListingCard & {
1979
+ Badge: typeof Badge;
1980
+ Grid: typeof Grid;
1981
+ };
1982
+
1983
+ type ProductDisplayCardDevice = "desktop" | "mobile";
1984
+ type ProductDisplayCardProps = ViewProps & {
1985
+ device?: ProductDisplayCardDevice;
1986
+ title: string;
1987
+ subtext?: string | React.ReactNode;
1988
+ showSubtext?: boolean;
1989
+ quantity?: number;
1990
+ onQuantityChange?: (quantity: number) => void;
1991
+ showQuantityPicker?: boolean;
1992
+ disableQuantityButtons?: boolean;
1993
+ hideQuantityButtons?: boolean;
1994
+ showIncrementButton?: boolean;
1995
+ showDecrementButton?: boolean;
1996
+ incrementDisabled?: boolean;
1997
+ decrementDisabled?: boolean;
1998
+ image?: string | React.ReactNode;
1999
+ imageBackgroundColor?: string;
2000
+ showImageQuantityBadge?: boolean;
2001
+ banner?: React.ReactNode;
2002
+ showBanner?: boolean;
2003
+ bannerType?: "error" | "success" | "warning" | "info";
2004
+ showBannerIcon?: boolean;
2005
+ };
2006
+ /**
2007
+ * Product Display Card component for showing product information with optional quantity picker.
2008
+ *
2009
+ * @example
2010
+ * ```tsx
2011
+ * import { ProductDisplayCard } from "@butternutbox/pawprint-native"
2012
+ *
2013
+ * <ProductDisplayCard
2014
+ * device="mobile"
2015
+ * title="Premium Recipe"
2016
+ * subtext="+£0.00/pouch"
2017
+ * quantity={1}
2018
+ * showQuantityPicker
2019
+ * />
2020
+ * ```
2021
+ *
2022
+ * @param device - *(optional)* Device variant: "desktop" or "mobile" (default)
2023
+ * @param title - Product title
2024
+ * @param subtext - *(optional)* Subtitle text or JSX element (e.g. price)
2025
+ * @param showSubtext - *(optional)* Show/hide subtext
2026
+ * @param quantity - *(optional)* Current quantity value
2027
+ * @param onQuantityChange - *(optional)* Callback when quantity changes
2028
+ * @param showQuantityPicker - *(optional)* Show/hide quantity picker
2029
+ * @param image - *(optional)* Image URL string or React element/JSX content
2030
+ * @param imageBackgroundColor - *(optional)* Background color for image container (default: theme background.container.secondary)
2031
+ * @param showImageQuantityBadge - *(optional)* Show/hide quantity badge overlay on image
2032
+ * @param banner - *(optional)* Banner content to show below card
2033
+ * @param showBanner - *(optional)* Show/hide banner
2034
+ * @param bannerType - *(optional)* Banner notification type: "error", "success", "warning", or "info" (default)
2035
+ * @param showBannerIcon - *(optional)* Show/hide banner notification icon
2036
+ */
2037
+ declare const ProductDisplayCard: React.ForwardRefExoticComponent<ViewProps & {
2038
+ device?: ProductDisplayCardDevice;
2039
+ title: string;
2040
+ subtext?: string | React.ReactNode;
2041
+ showSubtext?: boolean;
2042
+ quantity?: number;
2043
+ onQuantityChange?: (quantity: number) => void;
2044
+ showQuantityPicker?: boolean;
2045
+ disableQuantityButtons?: boolean;
2046
+ hideQuantityButtons?: boolean;
2047
+ showIncrementButton?: boolean;
2048
+ showDecrementButton?: boolean;
2049
+ incrementDisabled?: boolean;
2050
+ decrementDisabled?: boolean;
2051
+ image?: string | React.ReactNode;
2052
+ imageBackgroundColor?: string;
2053
+ showImageQuantityBadge?: boolean;
2054
+ banner?: React.ReactNode;
2055
+ showBanner?: boolean;
2056
+ bannerType?: "error" | "success" | "warning" | "info";
2057
+ showBannerIcon?: boolean;
2058
+ } & React.RefAttributes<View>>;
2059
+
2060
+ type TabNavigationLayout = "fixed" | "intrinsic";
2061
+ type TabNavigationOwnProps = {
2062
+ value?: string;
2063
+ defaultValue?: string;
2064
+ onValueChange?: (value: string) => void;
2065
+ layout?: TabNavigationLayout;
2066
+ animation?: AnimatedVariant;
2067
+ children?: React.ReactNode;
2068
+ };
2069
+ type TabNavigationProps = TabNavigationOwnProps & Omit<ViewProps, keyof TabNavigationOwnProps>;
2070
+ type TabNavigationListOwnProps = {
2071
+ children?: React.ReactNode;
2072
+ };
2073
+ type TabNavigationListProps = TabNavigationListOwnProps & Omit<ViewProps, keyof TabNavigationListOwnProps>;
2074
+ type TabNavigationTabOwnProps = {
2075
+ value: string;
2076
+ disabled?: boolean;
2077
+ children: React.ReactNode;
2078
+ };
2079
+ type TabNavigationTabProps = TabNavigationTabOwnProps & Omit<ViewProps, keyof TabNavigationTabOwnProps>;
2080
+ type TabNavigationPanelOwnProps = {
2081
+ value: string;
2082
+ children?: React.ReactNode;
2083
+ };
2084
+ type TabNavigationPanelProps = TabNavigationPanelOwnProps & Omit<ViewProps, keyof TabNavigationPanelOwnProps>;
2085
+ /**
2086
+ * Wraps the tab buttons. In `fixed` layout the tabs share the available width
2087
+ * equally; in `intrinsic` layout the tabs size to their content and the list
2088
+ * scrolls horizontally when they overflow.
2089
+ *
2090
+ * Must be used within a `TabNavigation` component.
2091
+ */
2092
+ declare const TabNavigationList: React.ForwardRefExoticComponent<TabNavigationListOwnProps & Omit<ViewProps, "children"> & React.RefAttributes<View>>;
2093
+ /**
2094
+ * An individual tab button within a `TabNavigation`. Selected tabs render with
2095
+ * a brand bottom border and bold label; unselected tabs use a neutral border
2096
+ * and semibold label. Disabled tabs are muted and non-interactive.
2097
+ *
2098
+ * Wraps `@rn-primitives/tabs` `Trigger` for accessibility (role, selected and
2099
+ * disabled state). Unlike the web version there are no hover or focus-visible
2100
+ * states (not applicable on mobile).
2101
+ *
2102
+ * @param {string} value - Unique identifier; matches the `value` of a `TabNavigation.Panel`.
2103
+ * @param {boolean} [disabled=false] - Whether this tab is disabled.
2104
+ * @param {React.ReactNode} children - Tab label (and optional leading content).
2105
+ */
2106
+ declare const TabNavigationTab: React.ForwardRefExoticComponent<TabNavigationTabOwnProps & Omit<ViewProps, keyof TabNavigationTabOwnProps> & React.RefAttributes<View>>;
2107
+ /**
2108
+ * Content area shown when the tab with the matching `value` is selected. Wraps
2109
+ * `@rn-primitives/tabs` `Content` (which unmounts the inactive panels) and
2110
+ * animates the content with the `Animated` atom (variant set by the parent
2111
+ * `TabNavigation`'s `animation` prop). The enter animation replays each time
2112
+ * the tab becomes active.
2113
+ *
2114
+ * @param {string} value - Matches the `value` of a `TabNavigation.Tab`.
2115
+ * @param {React.ReactNode} [children] - Panel content.
2116
+ */
2117
+ declare const TabNavigationPanel: React.ForwardRefExoticComponent<TabNavigationPanelOwnProps & Omit<ViewProps, keyof TabNavigationPanelOwnProps> & React.RefAttributes<View>>;
2118
+ type TabNavigationComponent = React.ForwardRefExoticComponent<TabNavigationProps & React.RefAttributes<View>> & {
2119
+ List: typeof TabNavigationList;
2120
+ Tab: typeof TabNavigationTab;
2121
+ Panel: typeof TabNavigationPanel;
2122
+ };
2123
+ declare const TabNavigation: TabNavigationComponent;
2124
+
2125
+ export { Accordion, type AccordionItemProps, type AccordionProps, type AccordionSize, Animated, type AnimatedProps, type AnimatedVariant, Avatar, type AvatarFallbackType, type AvatarProps, type AvatarSize, BRAND_FONTS, Badge$1 as Badge, type BadgeProps, Button, type ButtonColour, ButtonDock, type ButtonDockProps, type ButtonDockVariant, ButtonGroup, type ButtonGroupLayout, type ButtonGroupProps, type ButtonProps, type ButtonSize, type ButtonVariant, CarouselControls, type CarouselControlsProps, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, type CheckboxVariant, CopyField, CopyFieldInput, type CopyFieldProps, Countdown, type CountdownProps, type DateItemState, DatePicker, type DatePickerProps, Drawer, type DrawerBodyProps, type DrawerCloseProps, type DrawerContentProps, type DrawerDescriptionProps, type DrawerFooterProps, type DrawerGrabberProps, type DrawerHeaderProps, type DrawerHeaderVariant, type DrawerOverlayProps, type DrawerProps, type DrawerTitleProps, type DrawerTriggerProps, FilterTab, type FilterTabItemProps, type FilterTabProps, Hint, type HintProps, Icon, IconButton, type IconButtonColour, type IconButtonProps, type IconButtonSize, type IconButtonVariant, type IconCategory, type IconColour, type IconProps, type IconSize, Illustration, type IllustrationProps, type IllustrationSize, Input, InputDescription, type InputDescriptionProps, InputError, type InputErrorProps, InputField, type InputFieldProps, InputLabel, type InputLabelProps, type InputProps, Link, type LinkProps, type LinkSize, type LinkWeight, Logo, type LogoBrand, type LogoProps, type LogoSvgComponent, type LogoVariant, MessageCard, MessageCardBanner, type MessageCardBannerMedia, type MessageCardBannerProps, MessageCardInsight, type MessageCardInsightProps, Notification, type NotificationProps, NumberField, type NumberFieldProps, NumberInput, NumberInputField, type NumberInputFieldProps, type NumberInputProps, PasswordField, PasswordFieldInput, type PasswordFieldProps, PasswordFieldRequirements, type PasswordFieldRequirementsProps, type PasswordRequirement, type PasswordValidationRule, type PawprintIcon, type PawprintIllustration$2 as PawprintIllustration, PawprintProvider, type PawprintProviderProps, PictureSelector, type PictureSelectorItem, type PictureSelectorProps, ProductDisplayCard, type ProductDisplayCardDevice, type ProductDisplayCardProps, ProductListingCardWithBadgeAndGrid as ProductListingCard, type ProductListingCardProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioOwnProps, type RadioProps, SearchField, SearchFieldInput, type SearchFieldProps, SegmentedControl, type SegmentedControlItemProps, type SegmentedControlProps, SelectField, SelectFieldContent, SelectFieldItem, type SelectFieldItemProps, type SelectFieldProps, SelectFieldTrigger, type SelectFieldTriggerProps, SelectFieldValue, type SelectValidationRule, Slider, type SliderProps, Spinner, type SpinnerProps, type SpinnerSize, type SpinnerVariant, Switch, type SwitchProps, TabNavigation, type TabNavigationListProps, type TabNavigationPanelProps, type TabNavigationProps, type TabNavigationTabProps, Tag, type TagProps, TextArea, TextAreaField, type TextAreaFieldProps, TextAreaLabel, type TextAreaLabelProps, type TextAreaProps, ThemeProvider, Tooltip, type TooltipProps, Typography, type TypographyProps, createPawprintTheme, fadeAnimation, fadeDownAnimation, fadeUpAnimation, registerLogo, resolveFont, resolveLogo, scaleAnimation, slideInAnimation, slideOutAnimation, theme, useCopyField, usePasswordField, usePawprint, useSearchField, useSelectField };