@butternutbox/pawprint-native 0.4.0 → 0.5.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/.turbo/turbo-build.log +6 -6
- package/CHANGELOG.md +18 -0
- package/dist/index.cjs +121 -57
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +40 -10
- package/dist/index.d.ts +40 -10
- package/dist/index.js +121 -57
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/molecules/Countdown/Countdown.stories.tsx +35 -0
- package/src/components/molecules/Countdown/Countdown.tsx +52 -10
- package/src/components/molecules/Countdown/index.ts +5 -1
- package/src/components/molecules/NumberField/NumberFieldInput.tsx +14 -24
- package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.stories.tsx +67 -26
- package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.test.tsx +1 -1
- package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.tsx +105 -36
- package/src/components/molecules/ProductDisplayCard/index.ts +1 -4
package/dist/index.d.cts
CHANGED
|
@@ -1892,6 +1892,21 @@ type PictureSelectorProps = PictureSelectorOwnProps & Omit<ViewProps, keyof Pict
|
|
|
1892
1892
|
declare const PictureSelector: React.ForwardRefExoticComponent<PictureSelectorOwnProps & Omit<ViewProps, keyof PictureSelectorOwnProps> & React.RefAttributes<View>>;
|
|
1893
1893
|
|
|
1894
1894
|
type CountdownLayout = "stacked" | "inline";
|
|
1895
|
+
/**
|
|
1896
|
+
* A unit label. Pass a plain string to use it regardless of count, or a
|
|
1897
|
+
* `{ singular, plural }` pair to pluralise based on the unit's value
|
|
1898
|
+
* (`singular` when the value is exactly 1, `plural` otherwise).
|
|
1899
|
+
*/
|
|
1900
|
+
type CountdownUnitLabel = string | {
|
|
1901
|
+
singular: string;
|
|
1902
|
+
plural: string;
|
|
1903
|
+
};
|
|
1904
|
+
type CountdownLabels = {
|
|
1905
|
+
days?: CountdownUnitLabel;
|
|
1906
|
+
hours?: CountdownUnitLabel;
|
|
1907
|
+
minutes?: CountdownUnitLabel;
|
|
1908
|
+
seconds?: CountdownUnitLabel;
|
|
1909
|
+
};
|
|
1895
1910
|
type CountdownOwnProps = {
|
|
1896
1911
|
layout?: CountdownLayout;
|
|
1897
1912
|
days?: number;
|
|
@@ -1901,6 +1916,7 @@ type CountdownOwnProps = {
|
|
|
1901
1916
|
showDays?: boolean;
|
|
1902
1917
|
showSeconds?: boolean;
|
|
1903
1918
|
label?: React.ReactNode;
|
|
1919
|
+
labels?: CountdownLabels;
|
|
1904
1920
|
};
|
|
1905
1921
|
type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps>;
|
|
1906
1922
|
/**
|
|
@@ -1932,6 +1948,7 @@ type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProp
|
|
|
1932
1948
|
* @param {boolean} [showDays=true] - Whether to render the days unit and its separator.
|
|
1933
1949
|
* @param {boolean} [showSeconds=true] - Whether to render the seconds unit and its separator.
|
|
1934
1950
|
* @param {React.ReactNode} [label] - Customizable prefix label, rendered in the `inline` layout only.
|
|
1951
|
+
* @param {CountdownLabels} [labels] - Overrides the per-unit labels (`days`/`hours`/`minutes`/`seconds`). Each label is either a plain string or a `{ singular, plural }` pair that resolves against the unit's value. Pass translated strings here; any omitted unit falls back to its English default.
|
|
1935
1952
|
*
|
|
1936
1953
|
* @example
|
|
1937
1954
|
* ```tsx
|
|
@@ -1939,6 +1956,14 @@ type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProp
|
|
|
1939
1956
|
*
|
|
1940
1957
|
* <Countdown layout="stacked" days={2} hours={9} minutes={48} seconds={38} />
|
|
1941
1958
|
* <Countdown layout="inline" label="Sale ends:" showDays={false} hours={3} minutes={49} seconds={38} />
|
|
1959
|
+
* <Countdown
|
|
1960
|
+
* labels={{
|
|
1961
|
+
* days: { singular: "jour", plural: "jours" },
|
|
1962
|
+
* hours: { singular: "heure", plural: "heures" }
|
|
1963
|
+
* }}
|
|
1964
|
+
* days={1}
|
|
1965
|
+
* hours={2}
|
|
1966
|
+
* />
|
|
1942
1967
|
* ```
|
|
1943
1968
|
*/
|
|
1944
1969
|
declare const Countdown: React.ForwardRefExoticComponent<CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps> & React.RefAttributes<View>>;
|
|
@@ -1980,11 +2005,9 @@ declare const ProductListingCardWithBadgeAndGrid: typeof _ProductListingCard & {
|
|
|
1980
2005
|
Grid: typeof Grid;
|
|
1981
2006
|
};
|
|
1982
2007
|
|
|
1983
|
-
type ProductDisplayCardDevice = "desktop" | "mobile";
|
|
1984
2008
|
type ProductDisplayCardProps = ViewProps & {
|
|
1985
|
-
device?: ProductDisplayCardDevice;
|
|
1986
2009
|
title: string;
|
|
1987
|
-
subtext?: string;
|
|
2010
|
+
subtext?: string | React.ReactNode;
|
|
1988
2011
|
showSubtext?: boolean;
|
|
1989
2012
|
quantity?: number;
|
|
1990
2013
|
onQuantityChange?: (quantity: number) => void;
|
|
@@ -1995,7 +2018,12 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
1995
2018
|
showDecrementButton?: boolean;
|
|
1996
2019
|
incrementDisabled?: boolean;
|
|
1997
2020
|
decrementDisabled?: boolean;
|
|
1998
|
-
image?: React.ReactNode;
|
|
2021
|
+
image?: string | React.ReactNode;
|
|
2022
|
+
imageBackgroundColor?: string;
|
|
2023
|
+
thumbnailWidth?: number;
|
|
2024
|
+
thumbnailBackgroundColor?: string;
|
|
2025
|
+
showImageQuantityBadge?: boolean;
|
|
2026
|
+
borderless?: boolean;
|
|
1999
2027
|
banner?: React.ReactNode;
|
|
2000
2028
|
showBanner?: boolean;
|
|
2001
2029
|
bannerType?: "error" | "success" | "warning" | "info";
|
|
@@ -2009,7 +2037,6 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
2009
2037
|
* import { ProductDisplayCard } from "@butternutbox/pawprint-native"
|
|
2010
2038
|
*
|
|
2011
2039
|
* <ProductDisplayCard
|
|
2012
|
-
* device="mobile"
|
|
2013
2040
|
* title="Premium Recipe"
|
|
2014
2041
|
* subtext="+£0.00/pouch"
|
|
2015
2042
|
* quantity={1}
|
|
@@ -2017,7 +2044,6 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
2017
2044
|
* />
|
|
2018
2045
|
* ```
|
|
2019
2046
|
*
|
|
2020
|
-
* @param device - *(optional)* Device variant: "desktop" or "mobile" (default)
|
|
2021
2047
|
* @param title - Product title
|
|
2022
2048
|
* @param subtext - *(optional)* Subtitle text (e.g. price)
|
|
2023
2049
|
* @param showSubtext - *(optional)* Show/hide subtext
|
|
@@ -2031,9 +2057,8 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
2031
2057
|
* @param showBannerIcon - *(optional)* Show/hide banner notification icon
|
|
2032
2058
|
*/
|
|
2033
2059
|
declare const ProductDisplayCard: React.ForwardRefExoticComponent<ViewProps & {
|
|
2034
|
-
device?: ProductDisplayCardDevice;
|
|
2035
2060
|
title: string;
|
|
2036
|
-
subtext?: string;
|
|
2061
|
+
subtext?: string | React.ReactNode;
|
|
2037
2062
|
showSubtext?: boolean;
|
|
2038
2063
|
quantity?: number;
|
|
2039
2064
|
onQuantityChange?: (quantity: number) => void;
|
|
@@ -2044,7 +2069,12 @@ declare const ProductDisplayCard: React.ForwardRefExoticComponent<ViewProps & {
|
|
|
2044
2069
|
showDecrementButton?: boolean;
|
|
2045
2070
|
incrementDisabled?: boolean;
|
|
2046
2071
|
decrementDisabled?: boolean;
|
|
2047
|
-
image?: React.ReactNode;
|
|
2072
|
+
image?: string | React.ReactNode;
|
|
2073
|
+
imageBackgroundColor?: string;
|
|
2074
|
+
thumbnailWidth?: number;
|
|
2075
|
+
thumbnailBackgroundColor?: string;
|
|
2076
|
+
showImageQuantityBadge?: boolean;
|
|
2077
|
+
borderless?: boolean;
|
|
2048
2078
|
banner?: React.ReactNode;
|
|
2049
2079
|
showBanner?: boolean;
|
|
2050
2080
|
bannerType?: "error" | "success" | "warning" | "info";
|
|
@@ -2116,4 +2146,4 @@ type TabNavigationComponent = React.ForwardRefExoticComponent<TabNavigationProps
|
|
|
2116
2146
|
};
|
|
2117
2147
|
declare const TabNavigation: TabNavigationComponent;
|
|
2118
2148
|
|
|
2119
|
-
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
|
|
2149
|
+
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 CountdownLabels, type CountdownProps, type CountdownUnitLabel, 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 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
|
@@ -1892,6 +1892,21 @@ type PictureSelectorProps = PictureSelectorOwnProps & Omit<ViewProps, keyof Pict
|
|
|
1892
1892
|
declare const PictureSelector: React.ForwardRefExoticComponent<PictureSelectorOwnProps & Omit<ViewProps, keyof PictureSelectorOwnProps> & React.RefAttributes<View>>;
|
|
1893
1893
|
|
|
1894
1894
|
type CountdownLayout = "stacked" | "inline";
|
|
1895
|
+
/**
|
|
1896
|
+
* A unit label. Pass a plain string to use it regardless of count, or a
|
|
1897
|
+
* `{ singular, plural }` pair to pluralise based on the unit's value
|
|
1898
|
+
* (`singular` when the value is exactly 1, `plural` otherwise).
|
|
1899
|
+
*/
|
|
1900
|
+
type CountdownUnitLabel = string | {
|
|
1901
|
+
singular: string;
|
|
1902
|
+
plural: string;
|
|
1903
|
+
};
|
|
1904
|
+
type CountdownLabels = {
|
|
1905
|
+
days?: CountdownUnitLabel;
|
|
1906
|
+
hours?: CountdownUnitLabel;
|
|
1907
|
+
minutes?: CountdownUnitLabel;
|
|
1908
|
+
seconds?: CountdownUnitLabel;
|
|
1909
|
+
};
|
|
1895
1910
|
type CountdownOwnProps = {
|
|
1896
1911
|
layout?: CountdownLayout;
|
|
1897
1912
|
days?: number;
|
|
@@ -1901,6 +1916,7 @@ type CountdownOwnProps = {
|
|
|
1901
1916
|
showDays?: boolean;
|
|
1902
1917
|
showSeconds?: boolean;
|
|
1903
1918
|
label?: React.ReactNode;
|
|
1919
|
+
labels?: CountdownLabels;
|
|
1904
1920
|
};
|
|
1905
1921
|
type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps>;
|
|
1906
1922
|
/**
|
|
@@ -1932,6 +1948,7 @@ type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProp
|
|
|
1932
1948
|
* @param {boolean} [showDays=true] - Whether to render the days unit and its separator.
|
|
1933
1949
|
* @param {boolean} [showSeconds=true] - Whether to render the seconds unit and its separator.
|
|
1934
1950
|
* @param {React.ReactNode} [label] - Customizable prefix label, rendered in the `inline` layout only.
|
|
1951
|
+
* @param {CountdownLabels} [labels] - Overrides the per-unit labels (`days`/`hours`/`minutes`/`seconds`). Each label is either a plain string or a `{ singular, plural }` pair that resolves against the unit's value. Pass translated strings here; any omitted unit falls back to its English default.
|
|
1935
1952
|
*
|
|
1936
1953
|
* @example
|
|
1937
1954
|
* ```tsx
|
|
@@ -1939,6 +1956,14 @@ type CountdownProps = CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProp
|
|
|
1939
1956
|
*
|
|
1940
1957
|
* <Countdown layout="stacked" days={2} hours={9} minutes={48} seconds={38} />
|
|
1941
1958
|
* <Countdown layout="inline" label="Sale ends:" showDays={false} hours={3} minutes={49} seconds={38} />
|
|
1959
|
+
* <Countdown
|
|
1960
|
+
* labels={{
|
|
1961
|
+
* days: { singular: "jour", plural: "jours" },
|
|
1962
|
+
* hours: { singular: "heure", plural: "heures" }
|
|
1963
|
+
* }}
|
|
1964
|
+
* days={1}
|
|
1965
|
+
* hours={2}
|
|
1966
|
+
* />
|
|
1942
1967
|
* ```
|
|
1943
1968
|
*/
|
|
1944
1969
|
declare const Countdown: React.ForwardRefExoticComponent<CountdownOwnProps & Omit<ViewProps, keyof CountdownOwnProps> & React.RefAttributes<View>>;
|
|
@@ -1980,11 +2005,9 @@ declare const ProductListingCardWithBadgeAndGrid: typeof _ProductListingCard & {
|
|
|
1980
2005
|
Grid: typeof Grid;
|
|
1981
2006
|
};
|
|
1982
2007
|
|
|
1983
|
-
type ProductDisplayCardDevice = "desktop" | "mobile";
|
|
1984
2008
|
type ProductDisplayCardProps = ViewProps & {
|
|
1985
|
-
device?: ProductDisplayCardDevice;
|
|
1986
2009
|
title: string;
|
|
1987
|
-
subtext?: string;
|
|
2010
|
+
subtext?: string | React.ReactNode;
|
|
1988
2011
|
showSubtext?: boolean;
|
|
1989
2012
|
quantity?: number;
|
|
1990
2013
|
onQuantityChange?: (quantity: number) => void;
|
|
@@ -1995,7 +2018,12 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
1995
2018
|
showDecrementButton?: boolean;
|
|
1996
2019
|
incrementDisabled?: boolean;
|
|
1997
2020
|
decrementDisabled?: boolean;
|
|
1998
|
-
image?: React.ReactNode;
|
|
2021
|
+
image?: string | React.ReactNode;
|
|
2022
|
+
imageBackgroundColor?: string;
|
|
2023
|
+
thumbnailWidth?: number;
|
|
2024
|
+
thumbnailBackgroundColor?: string;
|
|
2025
|
+
showImageQuantityBadge?: boolean;
|
|
2026
|
+
borderless?: boolean;
|
|
1999
2027
|
banner?: React.ReactNode;
|
|
2000
2028
|
showBanner?: boolean;
|
|
2001
2029
|
bannerType?: "error" | "success" | "warning" | "info";
|
|
@@ -2009,7 +2037,6 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
2009
2037
|
* import { ProductDisplayCard } from "@butternutbox/pawprint-native"
|
|
2010
2038
|
*
|
|
2011
2039
|
* <ProductDisplayCard
|
|
2012
|
-
* device="mobile"
|
|
2013
2040
|
* title="Premium Recipe"
|
|
2014
2041
|
* subtext="+£0.00/pouch"
|
|
2015
2042
|
* quantity={1}
|
|
@@ -2017,7 +2044,6 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
2017
2044
|
* />
|
|
2018
2045
|
* ```
|
|
2019
2046
|
*
|
|
2020
|
-
* @param device - *(optional)* Device variant: "desktop" or "mobile" (default)
|
|
2021
2047
|
* @param title - Product title
|
|
2022
2048
|
* @param subtext - *(optional)* Subtitle text (e.g. price)
|
|
2023
2049
|
* @param showSubtext - *(optional)* Show/hide subtext
|
|
@@ -2031,9 +2057,8 @@ type ProductDisplayCardProps = ViewProps & {
|
|
|
2031
2057
|
* @param showBannerIcon - *(optional)* Show/hide banner notification icon
|
|
2032
2058
|
*/
|
|
2033
2059
|
declare const ProductDisplayCard: React.ForwardRefExoticComponent<ViewProps & {
|
|
2034
|
-
device?: ProductDisplayCardDevice;
|
|
2035
2060
|
title: string;
|
|
2036
|
-
subtext?: string;
|
|
2061
|
+
subtext?: string | React.ReactNode;
|
|
2037
2062
|
showSubtext?: boolean;
|
|
2038
2063
|
quantity?: number;
|
|
2039
2064
|
onQuantityChange?: (quantity: number) => void;
|
|
@@ -2044,7 +2069,12 @@ declare const ProductDisplayCard: React.ForwardRefExoticComponent<ViewProps & {
|
|
|
2044
2069
|
showDecrementButton?: boolean;
|
|
2045
2070
|
incrementDisabled?: boolean;
|
|
2046
2071
|
decrementDisabled?: boolean;
|
|
2047
|
-
image?: React.ReactNode;
|
|
2072
|
+
image?: string | React.ReactNode;
|
|
2073
|
+
imageBackgroundColor?: string;
|
|
2074
|
+
thumbnailWidth?: number;
|
|
2075
|
+
thumbnailBackgroundColor?: string;
|
|
2076
|
+
showImageQuantityBadge?: boolean;
|
|
2077
|
+
borderless?: boolean;
|
|
2048
2078
|
banner?: React.ReactNode;
|
|
2049
2079
|
showBanner?: boolean;
|
|
2050
2080
|
bannerType?: "error" | "success" | "warning" | "info";
|
|
@@ -2116,4 +2146,4 @@ type TabNavigationComponent = React.ForwardRefExoticComponent<TabNavigationProps
|
|
|
2116
2146
|
};
|
|
2117
2147
|
declare const TabNavigation: TabNavigationComponent;
|
|
2118
2148
|
|
|
2119
|
-
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
|
|
2149
|
+
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 CountdownLabels, type CountdownProps, type CountdownUnitLabel, 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 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.js
CHANGED
|
@@ -10157,28 +10157,20 @@ var StyledFieldWrapper = styled60(View)(
|
|
|
10157
10157
|
overflow: "hidden"
|
|
10158
10158
|
})
|
|
10159
10159
|
);
|
|
10160
|
-
var StyledTextInput = styled60(TextInput)(
|
|
10161
|
-
|
|
10162
|
-
|
|
10163
|
-
|
|
10164
|
-
|
|
10165
|
-
|
|
10166
|
-
|
|
10167
|
-
|
|
10168
|
-
|
|
10169
|
-
|
|
10170
|
-
|
|
10171
|
-
|
|
10172
|
-
|
|
10173
|
-
|
|
10174
|
-
height: "100%",
|
|
10175
|
-
color: inputColor,
|
|
10176
|
-
fontFamily: inputFontFamily
|
|
10177
|
-
}, inputFontWeight ? { fontWeight: inputFontWeight } : {}), {
|
|
10178
|
-
fontSize: inputFontSize,
|
|
10179
|
-
lineHeight: inputLineHeight
|
|
10180
|
-
})
|
|
10181
|
-
);
|
|
10160
|
+
var StyledTextInput = styled60(TextInput)(({ inputColor, inputFontFamily, inputFontWeight, inputFontSize }) => __spreadProps(__spreadValues({
|
|
10161
|
+
textAlign: "center",
|
|
10162
|
+
outlineStyle: "none",
|
|
10163
|
+
padding: 0,
|
|
10164
|
+
minWidth: 0,
|
|
10165
|
+
minHeight: 0,
|
|
10166
|
+
width: "100%",
|
|
10167
|
+
height: "100%",
|
|
10168
|
+
color: inputColor,
|
|
10169
|
+
fontFamily: inputFontFamily
|
|
10170
|
+
}, inputFontWeight ? { fontWeight: inputFontWeight } : {}), {
|
|
10171
|
+
fontSize: inputFontSize,
|
|
10172
|
+
lineHeight: 0
|
|
10173
|
+
}));
|
|
10182
10174
|
var StyledRow = styled60(View)(({ rowGap }) => ({
|
|
10183
10175
|
flexDirection: "row",
|
|
10184
10176
|
alignItems: "center",
|
|
@@ -10312,7 +10304,6 @@ var NumberFieldInput = React60.forwardRef(
|
|
|
10312
10304
|
inputFontFamily: resolvedInputFontFamily,
|
|
10313
10305
|
inputFontWeight: resolvedInputFontFamily === typographyToken.fontFamily ? typographyToken.fontWeight : void 0,
|
|
10314
10306
|
inputFontSize: parseTokenValue34(typographyToken.fontSize),
|
|
10315
|
-
inputLineHeight: parseTokenValue34(typographyToken.lineHeight),
|
|
10316
10307
|
keyboardType: "numeric",
|
|
10317
10308
|
editable: !disabled,
|
|
10318
10309
|
onFocus: handleFocus,
|
|
@@ -13659,12 +13650,13 @@ var PictureSelector = React60.forwardRef(
|
|
|
13659
13650
|
}
|
|
13660
13651
|
);
|
|
13661
13652
|
PictureSelector.displayName = "PictureSelector";
|
|
13662
|
-
var
|
|
13663
|
-
days: "days",
|
|
13664
|
-
hours: "hrs",
|
|
13665
|
-
minutes: "min",
|
|
13666
|
-
seconds: "secs"
|
|
13653
|
+
var DEFAULT_UNIT_LABELS = {
|
|
13654
|
+
days: { singular: "day", plural: "days" },
|
|
13655
|
+
hours: { singular: "hr", plural: "hrs" },
|
|
13656
|
+
minutes: { singular: "min", plural: "min" },
|
|
13657
|
+
seconds: { singular: "sec", plural: "secs" }
|
|
13667
13658
|
};
|
|
13659
|
+
var resolveLabel = (label, value) => typeof label === "string" ? label : value === 1 ? label.singular : label.plural;
|
|
13668
13660
|
var parseTokenValue54 = (value) => parseFloat(value);
|
|
13669
13661
|
var pad = (value) => String(Math.max(0, Math.floor(value))).padStart(2, "0");
|
|
13670
13662
|
var StackedRoot = styled60(View)(({ rootGap }) => ({
|
|
@@ -13742,7 +13734,8 @@ var Countdown = React60.forwardRef(
|
|
|
13742
13734
|
seconds = 0,
|
|
13743
13735
|
showDays = true,
|
|
13744
13736
|
showSeconds = true,
|
|
13745
|
-
label
|
|
13737
|
+
label,
|
|
13738
|
+
labels
|
|
13746
13739
|
} = _b, rest = __objRest(_b, [
|
|
13747
13740
|
"layout",
|
|
13748
13741
|
"days",
|
|
@@ -13751,23 +13744,33 @@ var Countdown = React60.forwardRef(
|
|
|
13751
13744
|
"seconds",
|
|
13752
13745
|
"showDays",
|
|
13753
13746
|
"showSeconds",
|
|
13754
|
-
"label"
|
|
13747
|
+
"label",
|
|
13748
|
+
"labels"
|
|
13755
13749
|
]);
|
|
13756
13750
|
const theme2 = useTheme();
|
|
13757
13751
|
const { countdown } = theme2.tokens.components;
|
|
13758
13752
|
const { countdownItem } = countdown;
|
|
13753
|
+
const unitLabels = __spreadValues(__spreadValues({}, DEFAULT_UNIT_LABELS), labels);
|
|
13759
13754
|
const units = [
|
|
13760
13755
|
showDays && {
|
|
13761
13756
|
key: "days",
|
|
13762
13757
|
value: days,
|
|
13763
|
-
label:
|
|
13758
|
+
label: resolveLabel(unitLabels.days, days)
|
|
13759
|
+
},
|
|
13760
|
+
{
|
|
13761
|
+
key: "hours",
|
|
13762
|
+
value: hours,
|
|
13763
|
+
label: resolveLabel(unitLabels.hours, hours)
|
|
13764
|
+
},
|
|
13765
|
+
{
|
|
13766
|
+
key: "minutes",
|
|
13767
|
+
value: minutes,
|
|
13768
|
+
label: resolveLabel(unitLabels.minutes, minutes)
|
|
13764
13769
|
},
|
|
13765
|
-
{ key: "hours", value: hours, label: UNIT_LABELS.hours },
|
|
13766
|
-
{ key: "minutes", value: minutes, label: UNIT_LABELS.minutes },
|
|
13767
13770
|
showSeconds && {
|
|
13768
13771
|
key: "seconds",
|
|
13769
13772
|
value: seconds,
|
|
13770
|
-
label:
|
|
13773
|
+
label: resolveLabel(unitLabels.seconds, seconds)
|
|
13771
13774
|
}
|
|
13772
13775
|
].filter(Boolean);
|
|
13773
13776
|
const colon = (key) => /* @__PURE__ */ jsx(
|
|
@@ -14141,42 +14144,78 @@ var ProductListingCardWithBadgeAndGrid = Object.assign(_ProductListingCard, {
|
|
|
14141
14144
|
Badge: Badge2,
|
|
14142
14145
|
Grid
|
|
14143
14146
|
});
|
|
14144
|
-
var StyledCardContainer = styled60(View)(({
|
|
14147
|
+
var StyledCardContainer = styled60(View)(({
|
|
14148
|
+
theme: theme2,
|
|
14149
|
+
borderless
|
|
14150
|
+
}) => {
|
|
14145
14151
|
const { spacing, borderRadius } = theme2.tokens.semantics.dimensions;
|
|
14146
14152
|
const { colour } = theme2.tokens.semantics;
|
|
14147
14153
|
const spacingMd = parseTokenValue8(spacing.md);
|
|
14148
14154
|
const spacingXl = parseTokenValue8(spacing.xl);
|
|
14149
|
-
return {
|
|
14155
|
+
return __spreadProps(__spreadValues({
|
|
14150
14156
|
flexDirection: "row",
|
|
14151
14157
|
width: "100%",
|
|
14152
|
-
height: "100%",
|
|
14158
|
+
height: borderless ? void 0 : "100%",
|
|
14153
14159
|
maxHeight: spacingXl * 6 + spacingMd,
|
|
14154
|
-
backgroundColor: colour.background.surface.default
|
|
14160
|
+
backgroundColor: colour.background.surface.default
|
|
14161
|
+
}, borderless ? {} : {
|
|
14155
14162
|
borderWidth: 1,
|
|
14156
14163
|
borderColor: colour.border.default,
|
|
14157
|
-
borderRadius: parseTokenValue8(borderRadius.md),
|
|
14158
|
-
overflow: "hidden",
|
|
14159
14164
|
shadowColor: "#522a10",
|
|
14160
14165
|
shadowOffset: { width: 0, height: spacingMd / 4 },
|
|
14161
14166
|
shadowOpacity: 0.05,
|
|
14162
14167
|
shadowRadius: spacingXl - 4,
|
|
14163
|
-
elevation: 5
|
|
14168
|
+
elevation: 5
|
|
14169
|
+
}), {
|
|
14170
|
+
borderRadius: parseTokenValue8(borderRadius.md),
|
|
14171
|
+
overflow: "hidden",
|
|
14164
14172
|
zIndex: 1
|
|
14173
|
+
});
|
|
14174
|
+
});
|
|
14175
|
+
var StyledImage3 = styled60(View)(
|
|
14176
|
+
({
|
|
14177
|
+
theme: theme2,
|
|
14178
|
+
imageBackgroundColor,
|
|
14179
|
+
thumbnailWidth = 100,
|
|
14180
|
+
thumbnailBackgroundColor
|
|
14181
|
+
}) => ({
|
|
14182
|
+
flexShrink: 0,
|
|
14183
|
+
backgroundColor: thumbnailBackgroundColor || imageBackgroundColor || theme2.tokens.semantics.colour.background.container.secondary,
|
|
14184
|
+
overflow: "hidden",
|
|
14185
|
+
aspectRatio: "1 / 1",
|
|
14186
|
+
width: thumbnailWidth,
|
|
14187
|
+
height: thumbnailWidth,
|
|
14188
|
+
position: "relative"
|
|
14189
|
+
})
|
|
14190
|
+
);
|
|
14191
|
+
var StyledQuantityBadge = styled60(View)(({ theme: theme2 }) => {
|
|
14192
|
+
const spacing = theme2.tokens.semantics.dimensions.spacing;
|
|
14193
|
+
const borderRadius = theme2.tokens.semantics.dimensions.borderRadius;
|
|
14194
|
+
const { colour } = theme2.tokens.semantics;
|
|
14195
|
+
return {
|
|
14196
|
+
position: "absolute",
|
|
14197
|
+
top: parseTokenValue8(spacing["2xs"]),
|
|
14198
|
+
right: parseTokenValue8(spacing["2xs"]),
|
|
14199
|
+
backgroundColor: colour.background.container.brand,
|
|
14200
|
+
borderRadius: parseTokenValue8(borderRadius.xs),
|
|
14201
|
+
paddingHorizontal: parseTokenValue8(spacing.sm),
|
|
14202
|
+
height: parseTokenValue8(spacing["2xl"]),
|
|
14203
|
+
minWidth: parseTokenValue8(spacing["2xl"]),
|
|
14204
|
+
alignItems: "center",
|
|
14205
|
+
justifyContent: "center",
|
|
14206
|
+
zIndex: 2
|
|
14165
14207
|
};
|
|
14166
14208
|
});
|
|
14167
|
-
var
|
|
14168
|
-
|
|
14169
|
-
|
|
14170
|
-
|
|
14171
|
-
aspectRatio: "1 / 1",
|
|
14172
|
-
height: "100%"
|
|
14173
|
-
}));
|
|
14174
|
-
var StyledContentArea = styled60(View)(({ theme: theme2 }) => {
|
|
14209
|
+
var StyledContentArea = styled60(View)(({
|
|
14210
|
+
theme: theme2,
|
|
14211
|
+
borderless
|
|
14212
|
+
}) => {
|
|
14175
14213
|
const { spacing } = theme2.tokens.semantics.dimensions;
|
|
14214
|
+
const paddingValue = parseTokenValue8(spacing.md);
|
|
14176
14215
|
return {
|
|
14177
14216
|
flex: 1,
|
|
14178
|
-
paddingHorizontal:
|
|
14179
|
-
paddingVertical:
|
|
14217
|
+
paddingHorizontal: paddingValue,
|
|
14218
|
+
paddingVertical: borderless ? 0 : paddingValue,
|
|
14180
14219
|
gap: parseTokenValue8(spacing.xs),
|
|
14181
14220
|
justifyContent: "space-between"
|
|
14182
14221
|
};
|
|
@@ -14208,7 +14247,6 @@ var StyledNotification = styled60(Notification)(({ theme: theme2 }) => {
|
|
|
14208
14247
|
var ProductDisplayCard = React60.forwardRef(
|
|
14209
14248
|
(_a, ref) => {
|
|
14210
14249
|
var _b = _a, {
|
|
14211
|
-
device = "mobile",
|
|
14212
14250
|
title,
|
|
14213
14251
|
subtext,
|
|
14214
14252
|
showSubtext = true,
|
|
@@ -14222,12 +14260,16 @@ var ProductDisplayCard = React60.forwardRef(
|
|
|
14222
14260
|
incrementDisabled = false,
|
|
14223
14261
|
decrementDisabled = false,
|
|
14224
14262
|
image,
|
|
14263
|
+
imageBackgroundColor,
|
|
14264
|
+
thumbnailWidth,
|
|
14265
|
+
thumbnailBackgroundColor,
|
|
14266
|
+
showImageQuantityBadge = false,
|
|
14267
|
+
borderless = false,
|
|
14225
14268
|
banner,
|
|
14226
14269
|
showBanner = false,
|
|
14227
14270
|
bannerType = "info",
|
|
14228
14271
|
showBannerIcon = false
|
|
14229
14272
|
} = _b, rest = __objRest(_b, [
|
|
14230
|
-
"device",
|
|
14231
14273
|
"title",
|
|
14232
14274
|
"subtext",
|
|
14233
14275
|
"showSubtext",
|
|
@@ -14241,6 +14283,11 @@ var ProductDisplayCard = React60.forwardRef(
|
|
|
14241
14283
|
"incrementDisabled",
|
|
14242
14284
|
"decrementDisabled",
|
|
14243
14285
|
"image",
|
|
14286
|
+
"imageBackgroundColor",
|
|
14287
|
+
"thumbnailWidth",
|
|
14288
|
+
"thumbnailBackgroundColor",
|
|
14289
|
+
"showImageQuantityBadge",
|
|
14290
|
+
"borderless",
|
|
14244
14291
|
"banner",
|
|
14245
14292
|
"showBanner",
|
|
14246
14293
|
"bannerType",
|
|
@@ -14251,11 +14298,28 @@ var ProductDisplayCard = React60.forwardRef(
|
|
|
14251
14298
|
onQuantityChange == null ? void 0 : onQuantityChange(newQuantity);
|
|
14252
14299
|
}
|
|
14253
14300
|
};
|
|
14254
|
-
const cardContent = /* @__PURE__ */ jsxs(StyledCardContainer, __spreadProps(__spreadValues({ ref,
|
|
14255
|
-
image && /* @__PURE__ */
|
|
14256
|
-
|
|
14301
|
+
const cardContent = /* @__PURE__ */ jsxs(StyledCardContainer, __spreadProps(__spreadValues({ ref, borderless }, rest), { children: [
|
|
14302
|
+
image && /* @__PURE__ */ jsxs(
|
|
14303
|
+
StyledImage3,
|
|
14304
|
+
{
|
|
14305
|
+
imageBackgroundColor,
|
|
14306
|
+
thumbnailWidth,
|
|
14307
|
+
thumbnailBackgroundColor,
|
|
14308
|
+
children: [
|
|
14309
|
+
typeof image === "string" ? /* @__PURE__ */ jsx(
|
|
14310
|
+
Image,
|
|
14311
|
+
{
|
|
14312
|
+
source: { uri: image },
|
|
14313
|
+
style: { width: "100%", height: "100%" }
|
|
14314
|
+
}
|
|
14315
|
+
) : image,
|
|
14316
|
+
showImageQuantityBadge && quantity && /* @__PURE__ */ jsx(StyledQuantityBadge, { children: /* @__PURE__ */ jsx(Typography, { variant: "body", size: "sm", weight: "bold", children: quantity }) })
|
|
14317
|
+
]
|
|
14318
|
+
}
|
|
14319
|
+
),
|
|
14320
|
+
/* @__PURE__ */ jsxs(StyledContentArea, { borderless, children: [
|
|
14257
14321
|
/* @__PURE__ */ jsxs(StyledTextContainer, { children: [
|
|
14258
|
-
/* @__PURE__ */ jsx(Typography, { variant: "heading", size: "
|
|
14322
|
+
/* @__PURE__ */ jsx(Typography, { variant: "heading", size: "2xs", color: "primary", children: title }),
|
|
14259
14323
|
showSubtext && subtext && /* @__PURE__ */ jsx(Typography, { variant: "body", size: "sm", color: "secondary", children: subtext })
|
|
14260
14324
|
] }),
|
|
14261
14325
|
showQuantityPicker && /* @__PURE__ */ jsx(View, { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsx(
|