@butternutbox/pawprint-native 0.3.2 → 0.4.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.
Files changed (30) hide show
  1. package/.turbo/turbo-build.log +9 -9
  2. package/CHANGELOG.md +8 -0
  3. package/dist/index.cjs +965 -151
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.cts +246 -5
  6. package/dist/index.d.ts +246 -5
  7. package/dist/index.js +960 -151
  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/ProductDisplayCard/ProductDisplayCard.stories.tsx +248 -0
  17. package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.test.tsx +198 -0
  18. package/src/components/molecules/ProductDisplayCard/ProductDisplayCard.tsx +243 -0
  19. package/src/components/molecules/ProductDisplayCard/index.ts +5 -0
  20. package/src/components/molecules/ProductListingCard/Badge.tsx +65 -0
  21. package/src/components/molecules/ProductListingCard/Grid.tsx +59 -0
  22. package/src/components/molecules/ProductListingCard/ProductListingCard.stories.tsx +209 -0
  23. package/src/components/molecules/ProductListingCard/ProductListingCard.tsx +235 -0
  24. package/src/components/molecules/ProductListingCard/index.ts +2 -0
  25. package/src/components/molecules/TabNavigation/TabNavigation.stories.tsx +183 -0
  26. package/src/components/molecules/TabNavigation/TabNavigation.tsx +354 -0
  27. package/src/components/molecules/TabNavigation/index.ts +7 -0
  28. package/src/components/molecules/index.ts +4 -0
  29. package/src/utils/index.ts +1 -0
  30. package/src/utils/token.ts +1 -0
package/dist/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var react = require('@emotion/react');
4
4
  var pawprintTokens = require('@butternutbox/pawprint-tokens');
5
- var styled52 = require('@emotion/native');
5
+ var styled60 = require('@emotion/native');
6
6
  var React60 = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var AvatarPrimitive = require('@rn-primitives/avatar');
@@ -20,6 +20,7 @@ var reactNativeGestureHandler = require('react-native-gesture-handler');
20
20
  var reactNativeWorklets = require('react-native-worklets');
21
21
  var TooltipPrimitive = require('@rn-primitives/tooltip');
22
22
  var dateFns = require('date-fns');
23
+ var TabsPrimitive = require('@rn-primitives/tabs');
23
24
 
24
25
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
25
26
 
@@ -41,7 +42,7 @@ function _interopNamespace(e) {
41
42
  return Object.freeze(n);
42
43
  }
43
44
 
44
- var styled52__default = /*#__PURE__*/_interopDefault(styled52);
45
+ var styled60__default = /*#__PURE__*/_interopDefault(styled60);
45
46
  var React60__default = /*#__PURE__*/_interopDefault(React60);
46
47
  var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
47
48
  var Svg__default = /*#__PURE__*/_interopDefault(Svg);
@@ -52,6 +53,7 @@ var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimit
52
53
  var SelectPrimitive3__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive3);
53
54
  var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
54
55
  var TooltipPrimitive__namespace = /*#__PURE__*/_interopNamespace(TooltipPrimitive);
56
+ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
55
57
 
56
58
  var __defProp = Object.defineProperty;
57
59
  var __defProps = Object.defineProperties;
@@ -234,7 +236,7 @@ var VARIANT_DEFAULTS = {
234
236
  heading: { size: "md" },
235
237
  display: { size: "lg" }
236
238
  };
237
- var StyledText = styled52__default.default(reactNative.Text)({});
239
+ var StyledText = styled60__default.default(reactNative.Text)({});
238
240
  var Typography = React60__default.default.forwardRef(
239
241
  (props, ref) => {
240
242
  const theme2 = react.useTheme();
@@ -318,7 +320,7 @@ var Typography = React60__default.default.forwardRef(
318
320
  );
319
321
  Typography.displayName = "Typography";
320
322
  var parseTokenValue2 = (value) => parseFloat(value);
321
- var StyledIconRoot = styled52__default.default(reactNative.View)(({ iconDimension }) => ({
323
+ var StyledIconRoot = styled60__default.default(reactNative.View)(({ iconDimension }) => ({
322
324
  alignItems: "center",
323
325
  justifyContent: "center",
324
326
  flexShrink: 0,
@@ -3860,7 +3862,7 @@ var SIZE_MAP = {
3860
3862
  lg: "large"
3861
3863
  };
3862
3864
  var parseTokenValue3 = (value) => parseFloat(value);
3863
- var StyledRoot = styled52__default.default(AvatarPrimitive__namespace.Root)(({ theme: theme2, size, border }) => {
3865
+ var StyledRoot = styled60__default.default(AvatarPrimitive__namespace.Root)(({ theme: theme2, size, border }) => {
3864
3866
  const { avatar } = theme2.tokens.components;
3865
3867
  const { borderRadius } = theme2.tokens.semantics.dimensions;
3866
3868
  const tokenSize = SIZE_MAP[size];
@@ -3881,12 +3883,12 @@ var StyledRoot = styled52__default.default(AvatarPrimitive__namespace.Root)(({ t
3881
3883
  borderStyle: "solid"
3882
3884
  });
3883
3885
  });
3884
- var StyledImage = styled52__default.default(AvatarPrimitive__namespace.Image)({
3886
+ var StyledImage = styled60__default.default(AvatarPrimitive__namespace.Image)({
3885
3887
  width: "100%",
3886
3888
  height: "100%",
3887
3889
  resizeMode: "cover"
3888
3890
  });
3889
- var StyledFallback = styled52__default.default(AvatarPrimitive__namespace.Fallback)(({ theme: theme2 }) => {
3891
+ var StyledFallback = styled60__default.default(AvatarPrimitive__namespace.Fallback)(({ theme: theme2 }) => {
3890
3892
  const { background, text } = theme2.tokens.semantics.colour;
3891
3893
  return {
3892
3894
  display: "flex",
@@ -3898,7 +3900,7 @@ var StyledFallback = styled52__default.default(AvatarPrimitive__namespace.Fallba
3898
3900
  color: text.primary
3899
3901
  };
3900
3902
  });
3901
- var StyledIcon = styled52__default.default(Icon)(({
3903
+ var StyledIcon = styled60__default.default(Icon)(({
3902
3904
  theme: theme2,
3903
3905
  avatarSize
3904
3906
  }) => {
@@ -3962,7 +3964,7 @@ var AvatarRoot = React60__default.default.forwardRef(
3962
3964
  AvatarRoot.displayName = "Avatar";
3963
3965
  var Avatar = AvatarRoot;
3964
3966
  var parseTokenValue4 = (value) => parseFloat(value);
3965
- var Container = styled52__default.default(reactNative.View)(({ theme: theme2, showBg }) => {
3967
+ var Container = styled60__default.default(reactNative.View)(({ theme: theme2, showBg }) => {
3966
3968
  const { colour, sizing, borderRadius } = theme2.tokens.components.carouselControls.carouselControl;
3967
3969
  const spacing = theme2.tokens.semantics.dimensions.spacing;
3968
3970
  return {
@@ -4031,7 +4033,7 @@ var CarouselControls = React60__default.default.forwardRef(
4031
4033
  );
4032
4034
  CarouselControls.displayName = "CarouselControls";
4033
4035
  var parseTokenValue5 = (value) => parseFloat(value);
4034
- var StyledBadge = styled52__default.default(reactNative.View)(({ theme: theme2, badgeVariant, badgeSize, pinned, top, bottom }) => {
4036
+ var StyledBadge = styled60__default.default(reactNative.View)(({ theme: theme2, badgeVariant, badgeSize, pinned, top, bottom }) => {
4035
4037
  const { sizing, spacing, colour, primary, pinnedBadge } = theme2.tokens.components.badges.badge;
4036
4038
  const backgroundColorMap = {
4037
4039
  primary: colour.background.default,
@@ -4145,7 +4147,7 @@ var Badge = React60__default.default.forwardRef(
4145
4147
  );
4146
4148
  Badge.displayName = "Badge";
4147
4149
  var parseTokenValue6 = (value) => parseFloat(value);
4148
- var StyledSpinner = styled52__default.default(reactNative.View)({});
4150
+ var StyledSpinner = styled60__default.default(reactNative.View)({});
4149
4151
  var Spinner = React60__default.default.forwardRef(
4150
4152
  (_a, ref) => {
4151
4153
  var _b = _a, { size = "md", variant = "dark", style } = _b, rest = __objRest(_b, ["size", "variant", "style"]);
@@ -4211,12 +4213,12 @@ var sizeToTypographyKey = {
4211
4213
  md: "medium",
4212
4214
  sm: "small"
4213
4215
  };
4214
- var IconWrapper = styled52__default.default(reactNative.View)({
4216
+ var IconWrapper = styled60__default.default(reactNative.View)({
4215
4217
  alignItems: "center",
4216
4218
  justifyContent: "center",
4217
4219
  flexShrink: 0
4218
4220
  });
4219
- var StyledButton = styled52__default.default(reactNative.Pressable)(
4221
+ var StyledButton = styled60__default.default(reactNative.Pressable)(
4220
4222
  ({
4221
4223
  buttonHeight,
4222
4224
  buttonMinWidth,
@@ -4244,11 +4246,11 @@ var StyledButton = styled52__default.default(reactNative.Pressable)(
4244
4246
  opacity: buttonOpacity
4245
4247
  }, buttonBorderWidth ? { borderWidth: buttonBorderWidth, borderColor: buttonBorderColor } : {}), buttonFullWidth ? { width: "100%" } : {})
4246
4248
  );
4247
- var StyledTextWrapper = styled52__default.default(reactNative.View)(({ textOpacity }) => ({
4249
+ var StyledTextWrapper = styled60__default.default(reactNative.View)(({ textOpacity }) => ({
4248
4250
  opacity: textOpacity,
4249
4251
  flexShrink: 0
4250
4252
  }));
4251
- var StyledSpinnerWrapper = styled52__default.default(reactNative.View)({
4253
+ var StyledSpinnerWrapper = styled60__default.default(reactNative.View)({
4252
4254
  position: "absolute",
4253
4255
  alignItems: "center",
4254
4256
  justifyContent: "center"
@@ -4369,8 +4371,10 @@ var Button = React60__default.default.forwardRef(
4369
4371
  }
4370
4372
  );
4371
4373
  Button.displayName = "Button";
4374
+
4375
+ // src/utils/token.ts
4372
4376
  var parseTokenValue8 = (value) => parseFloat(value);
4373
- var StyledHint = styled52__default.default(reactNative.View)(({
4377
+ var StyledHint = styled60__default.default(reactNative.View)(({
4374
4378
  theme: theme2,
4375
4379
  hintVariant
4376
4380
  }) => {
@@ -4407,7 +4411,7 @@ var sizeToIconSizeToken = {
4407
4411
  md: "lg",
4408
4412
  sm: "md"
4409
4413
  };
4410
- var StyledIconButton = styled52__default.default(reactNative.Pressable)(
4414
+ var StyledIconButton = styled60__default.default(reactNative.Pressable)(
4411
4415
  ({
4412
4416
  buttonDimension,
4413
4417
  buttonBorderRadius,
@@ -4426,12 +4430,12 @@ var StyledIconButton = styled52__default.default(reactNative.Pressable)(
4426
4430
  opacity: buttonOpacity
4427
4431
  }, buttonBorderWidth ? { borderWidth: buttonBorderWidth, borderColor: buttonBorderColor } : {})
4428
4432
  );
4429
- var StyledIconWrapper = styled52__default.default(reactNative.View)(({ iconDimension, iconOpacity }) => ({
4433
+ var StyledIconWrapper = styled60__default.default(reactNative.View)(({ iconDimension, iconOpacity }) => ({
4430
4434
  width: iconDimension,
4431
4435
  height: iconDimension,
4432
4436
  opacity: iconOpacity
4433
4437
  }));
4434
- var StyledSpinnerWrapper2 = styled52__default.default(reactNative.View)({
4438
+ var StyledSpinnerWrapper2 = styled60__default.default(reactNative.View)({
4435
4439
  position: "absolute",
4436
4440
  alignItems: "center",
4437
4441
  justifyContent: "center"
@@ -4539,7 +4543,7 @@ var IconButton = React60__default.default.forwardRef(
4539
4543
  );
4540
4544
  IconButton.displayName = "IconButton";
4541
4545
  var parseTokenValue10 = (value) => parseFloat(value);
4542
- var StyledRoot2 = styled52__default.default(reactNative.View)(({ illustrationHeight }) => ({
4546
+ var StyledRoot2 = styled60__default.default(reactNative.View)(({ illustrationHeight }) => ({
4543
4547
  alignItems: "center",
4544
4548
  justifyContent: "center",
4545
4549
  flexShrink: 0,
@@ -4576,7 +4580,7 @@ var Illustration = React60__default.default.forwardRef(
4576
4580
  );
4577
4581
  Illustration.displayName = "Illustration";
4578
4582
  var parseTokenValue11 = (value) => parseFloat(value);
4579
- var StyledLabelRow = styled52__default.default(reactNative.View)(({ labelGap }) => ({
4583
+ var StyledLabelRow = styled60__default.default(reactNative.View)(({ labelGap }) => ({
4580
4584
  flexDirection: "row",
4581
4585
  alignItems: "center",
4582
4586
  gap: labelGap
@@ -4824,7 +4828,7 @@ var VolumeUp = (props, ref) => /* @__PURE__ */ jsxRuntime.jsx(Svg__default.defau
4824
4828
  var ForwardRef612 = React60.forwardRef(VolumeUp);
4825
4829
  ForwardRef612.category = "core";
4826
4830
  var parseTokenValue12 = (value) => parseFloat(value);
4827
- var StyledInputWrapper = styled52__default.default(reactNative.Animated.View)(({ theme: theme2, isDisabled, containerWidth, containerHeight }) => {
4831
+ var StyledInputWrapper = styled60__default.default(reactNative.Animated.View)(({ theme: theme2, isDisabled, containerWidth, containerHeight }) => {
4828
4832
  const { spacing, colour, borderRadius, size } = theme2.tokens.components.inputs;
4829
4833
  return {
4830
4834
  flexDirection: "row",
@@ -4838,25 +4842,31 @@ var StyledInputWrapper = styled52__default.default(reactNative.Animated.View)(({
4838
4842
  flexShrink: containerWidth !== void 0 ? 0 : void 0
4839
4843
  };
4840
4844
  });
4841
- var StyledInput = styled52__default.default(reactNative.TextInput)(({ theme: theme2 }) => {
4842
- const { colour } = theme2.tokens.components.inputs;
4845
+ var StyledInput = styled60__default.default(reactNative.TextInput)(({ theme: theme2 }) => {
4846
+ const { colour, field } = theme2.tokens.components.inputs;
4847
+ const placeholderTypography = field.placeholder.default;
4843
4848
  return __spreadValues({
4844
4849
  flex: 1,
4845
4850
  minWidth: 0,
4846
4851
  minHeight: 0,
4847
4852
  padding: 0,
4848
- color: colour.field.text.default
4853
+ color: colour.field.text.default,
4854
+ fontSize: parseTokenValue12(placeholderTypography.fontSize),
4855
+ fontFamily: placeholderTypography.fontFamily,
4856
+ fontWeight: placeholderTypography.fontWeight,
4857
+ lineHeight: parseTokenValue12(placeholderTypography.lineHeight),
4858
+ letterSpacing: parseTokenValue12(placeholderTypography.letterSpacing)
4849
4859
  }, {
4850
4860
  outlineStyle: "none",
4851
4861
  outlineWidth: 0,
4852
4862
  outlineColor: "transparent"
4853
4863
  });
4854
4864
  });
4855
- var StyledFocusRing = styled52__default.default(reactNative.View)({
4865
+ var StyledFocusRing = styled60__default.default(reactNative.View)({
4856
4866
  position: "absolute",
4857
4867
  pointerEvents: "none"
4858
4868
  });
4859
- var StyledIconSlot = styled52__default.default(reactNative.View)({
4869
+ var StyledIconSlot = styled60__default.default(reactNative.View)({
4860
4870
  alignItems: "center",
4861
4871
  justifyContent: "center",
4862
4872
  flexShrink: 0
@@ -5017,7 +5027,7 @@ var InputField = React60__default.default.forwardRef(
5017
5027
  }
5018
5028
  );
5019
5029
  InputField.displayName = "Input.Field";
5020
- var StyledDescriptionRow = styled52__default.default(reactNative.View)({
5030
+ var StyledDescriptionRow = styled60__default.default(reactNative.View)({
5021
5031
  flexDirection: "row",
5022
5032
  alignItems: "center"
5023
5033
  });
@@ -5037,7 +5047,7 @@ var InputDescription = React60__default.default.forwardRef(
5037
5047
  }
5038
5048
  );
5039
5049
  InputDescription.displayName = "Input.Description";
5040
- var StyledErrorRow = styled52__default.default(reactNative.View)({
5050
+ var StyledErrorRow = styled60__default.default(reactNative.View)({
5041
5051
  flexDirection: "row",
5042
5052
  alignItems: "center"
5043
5053
  });
@@ -5058,7 +5068,7 @@ var InputError = React60__default.default.forwardRef(
5058
5068
  );
5059
5069
  InputError.displayName = "Input.Error";
5060
5070
  var parseTokenValue13 = (value) => parseFloat(value);
5061
- var StyledRoot3 = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
5071
+ var StyledRoot3 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
5062
5072
  const { spacing } = theme2.tokens.components.inputs;
5063
5073
  return {
5064
5074
  gap: parseTokenValue13(spacing.gap)
@@ -7701,7 +7711,7 @@ function registerLogo(brand, variant, component) {
7701
7711
  }
7702
7712
  LOGOS[brand][variant] = component;
7703
7713
  }
7704
- var StyledRoot4 = styled52__default.default(reactNative.View)({
7714
+ var StyledRoot4 = styled60__default.default(reactNative.View)({
7705
7715
  alignItems: "center",
7706
7716
  justifyContent: "center",
7707
7717
  flexShrink: 0
@@ -7729,7 +7739,7 @@ var Logo = React60__default.default.forwardRef(
7729
7739
  );
7730
7740
  Logo.displayName = "Logo";
7731
7741
  var parseTokenValue14 = (value) => parseFloat(value);
7732
- var StyledFieldGroup = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
7742
+ var StyledFieldGroup = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
7733
7743
  const { spacing } = theme2.tokens.components.inputs;
7734
7744
  return {
7735
7745
  flexDirection: "row",
@@ -7737,7 +7747,7 @@ var StyledFieldGroup = styled52__default.default(reactNative.View)(({ theme: the
7737
7747
  gap: parseTokenValue14(spacing.field.gap)
7738
7748
  };
7739
7749
  });
7740
- var StyledFieldTextWrapper = styled52__default.default(reactNative.View)({
7750
+ var StyledFieldTextWrapper = styled60__default.default(reactNative.View)({
7741
7751
  flexShrink: 0,
7742
7752
  justifyContent: "center"
7743
7753
  });
@@ -7776,7 +7786,7 @@ var NumberInputField = React60__default.default.forwardRef((_a, ref) => {
7776
7786
  });
7777
7787
  NumberInputField.displayName = "NumberInput.Field";
7778
7788
  var parseTokenValue15 = (value) => parseFloat(value);
7779
- var StyledRoot5 = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
7789
+ var StyledRoot5 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
7780
7790
  const { spacing } = theme2.tokens.components.inputs;
7781
7791
  return {
7782
7792
  gap: parseTokenValue15(spacing.gap)
@@ -7830,13 +7840,13 @@ var NumberInput = Object.assign(NumberInputRoot, {
7830
7840
  Error: InputError
7831
7841
  });
7832
7842
  var parseTokenValue16 = (value) => parseFloat(value);
7833
- var StyledContainer = styled52__default.default(reactNative.View)(({ switchGap, switchOpacity }) => ({
7843
+ var StyledContainer = styled60__default.default(reactNative.View)(({ switchGap, switchOpacity }) => ({
7834
7844
  flexDirection: "row",
7835
7845
  alignItems: "flex-start",
7836
7846
  gap: switchGap,
7837
7847
  opacity: switchOpacity
7838
7848
  }));
7839
- var StyledControlTrack = styled52__default.default(reactNative.View)(
7849
+ var StyledControlTrack = styled60__default.default(reactNative.View)(
7840
7850
  ({
7841
7851
  switchChecked,
7842
7852
  controlWidth,
@@ -7862,14 +7872,14 @@ var StyledControlTrack = styled52__default.default(reactNative.View)(
7862
7872
  justifyContent: "center"
7863
7873
  })
7864
7874
  );
7865
- var StyledThumb = styled52__default.default(reactNative.Animated.View)(({ thumbSize, thumbBgColor }) => ({
7875
+ var StyledThumb = styled60__default.default(reactNative.Animated.View)(({ thumbSize, thumbBgColor }) => ({
7866
7876
  width: thumbSize,
7867
7877
  height: thumbSize,
7868
7878
  borderRadius: thumbSize / 2,
7869
7879
  backgroundColor: thumbBgColor,
7870
7880
  position: "absolute"
7871
7881
  }));
7872
- var StyledContent = styled52__default.default(reactNative.View)(({ contentGap }) => ({
7882
+ var StyledContent = styled60__default.default(reactNative.View)(({ contentGap }) => ({
7873
7883
  gap: contentGap
7874
7884
  }));
7875
7885
  var Switch = React60__default.default.forwardRef(
@@ -7975,7 +7985,7 @@ var Switch = React60__default.default.forwardRef(
7975
7985
  );
7976
7986
  Switch.displayName = "Switch";
7977
7987
  var parseTokenValue17 = (value) => parseFloat(value);
7978
- var StyledTag = styled52__default.default(reactNative.View)(({ theme: theme2, tagVariant, tagSize }) => {
7988
+ var StyledTag = styled60__default.default(reactNative.View)(({ theme: theme2, tagVariant, tagSize }) => {
7979
7989
  const { sizing, spacing, colour, badge } = theme2.tokens.components.tags;
7980
7990
  const backgroundColorMap = {
7981
7991
  primary: colour.primary.background,
@@ -8048,7 +8058,7 @@ var Tag = React60__default.default.forwardRef(
8048
8058
  );
8049
8059
  Tag.displayName = "Tag";
8050
8060
  var parseTokenValue18 = (value) => parseFloat(value);
8051
- var StyledTextAreaWrapper = styled52__default.default(reactNative.Animated.View)(({ theme: theme2, isDisabled }) => {
8061
+ var StyledTextAreaWrapper = styled60__default.default(reactNative.Animated.View)(({ theme: theme2, isDisabled }) => {
8052
8062
  const { spacing, colour, borderRadius, size } = theme2.tokens.components.inputs;
8053
8063
  const { dimensions } = theme2.tokens.semantics;
8054
8064
  return {
@@ -8062,7 +8072,7 @@ var StyledTextAreaWrapper = styled52__default.default(reactNative.Animated.View)
8062
8072
  position: "relative"
8063
8073
  };
8064
8074
  });
8065
- var StyledTextArea = styled52__default.default(reactNative.TextInput)(({ theme: theme2 }) => {
8075
+ var StyledTextArea = styled60__default.default(reactNative.TextInput)(({ theme: theme2 }) => {
8066
8076
  const { colour } = theme2.tokens.components.inputs;
8067
8077
  return __spreadValues({
8068
8078
  flex: 1,
@@ -8077,17 +8087,17 @@ var StyledTextArea = styled52__default.default(reactNative.TextInput)(({ theme:
8077
8087
  outlineColor: "transparent"
8078
8088
  });
8079
8089
  });
8080
- var StyledFocusRing2 = styled52__default.default(reactNative.View)({
8090
+ var StyledFocusRing2 = styled60__default.default(reactNative.View)({
8081
8091
  position: "absolute",
8082
8092
  pointerEvents: "none"
8083
8093
  });
8084
- var TextAreaContainer = styled52__default.default(reactNative.View)({
8094
+ var TextAreaContainer = styled60__default.default(reactNative.View)({
8085
8095
  position: "relative",
8086
8096
  width: "100%",
8087
8097
  flex: 1,
8088
8098
  flexDirection: "column"
8089
8099
  });
8090
- var IconWrapper2 = styled52__default.default(reactNative.View)(({ side }) => {
8100
+ var IconWrapper2 = styled60__default.default(reactNative.View)(({ side }) => {
8091
8101
  return {
8092
8102
  position: "absolute",
8093
8103
  top: 0,
@@ -8274,18 +8284,18 @@ var TextAreaField = React60__default.default.forwardRef(
8274
8284
  );
8275
8285
  TextAreaField.displayName = "TextArea.Field";
8276
8286
  var parseTokenValue19 = (value) => parseFloat(value);
8277
- var StyledLabelWrapper = styled52__default.default(reactNative.View)({
8287
+ var StyledLabelWrapper = styled60__default.default(reactNative.View)({
8278
8288
  flexDirection: "row",
8279
8289
  alignItems: "center",
8280
8290
  justifyContent: "space-between",
8281
8291
  width: "100%"
8282
8292
  });
8283
- var StyledLabel = styled52__default.default(reactNative.View)(({ labelGap }) => ({
8293
+ var StyledLabel = styled60__default.default(reactNative.View)(({ labelGap }) => ({
8284
8294
  flexDirection: "row",
8285
8295
  alignItems: "center",
8286
8296
  gap: labelGap
8287
8297
  }));
8288
- var StyledCharCountWrapper = styled52__default.default(reactNative.View)(({ charCountGap, charCountPadding }) => ({
8298
+ var StyledCharCountWrapper = styled60__default.default(reactNative.View)(({ charCountGap, charCountPadding }) => ({
8289
8299
  flexDirection: "row",
8290
8300
  alignItems: "center",
8291
8301
  gap: charCountGap,
@@ -8349,7 +8359,7 @@ var TextAreaLabel = React60__default.default.forwardRef(
8349
8359
  );
8350
8360
  TextAreaLabel.displayName = "TextArea.Label";
8351
8361
  var parseTokenValue20 = (value) => parseFloat(value);
8352
- var StyledRoot6 = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
8362
+ var StyledRoot6 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
8353
8363
  const { spacing } = theme2.tokens.components.inputs;
8354
8364
  return {
8355
8365
  gap: parseTokenValue20(spacing.gap)
@@ -8444,25 +8454,25 @@ var AccordionContext = React60__default.default.createContext({
8444
8454
  size: "small"
8445
8455
  });
8446
8456
  var parseTokenValue21 = (value) => parseFloat(value);
8447
- var StyledRoot7 = styled52__default.default(reactNative.View)(({ rootGap }) => ({
8457
+ var StyledRoot7 = styled60__default.default(reactNative.View)(({ rootGap }) => ({
8448
8458
  width: "100%",
8449
8459
  flexDirection: "column",
8450
8460
  gap: rootGap
8451
8461
  }));
8452
- var StyledItem = styled52__default.default(reactNative.View)({
8462
+ var StyledItem = styled60__default.default(reactNative.View)({
8453
8463
  flexDirection: "column"
8454
8464
  });
8455
- var StyledTrigger = styled52__default.default(reactNative.Pressable)(({ triggerOpacity }) => ({
8465
+ var StyledTrigger = styled60__default.default(reactNative.Pressable)(({ triggerOpacity }) => ({
8456
8466
  flexDirection: "row",
8457
8467
  alignItems: "center",
8458
8468
  justifyContent: "space-between",
8459
8469
  width: "100%",
8460
8470
  opacity: triggerOpacity
8461
8471
  }));
8462
- var StyledPanel = styled52__default.default(reactNative.View)(({ panelGap }) => ({
8472
+ var StyledPanel = styled60__default.default(reactNative.View)(({ panelGap }) => ({
8463
8473
  marginTop: panelGap
8464
8474
  }));
8465
- var StyledDivider = styled52__default.default(reactNative.View)(({ dividerColor, dividerMarginTop }) => ({
8475
+ var StyledDivider = styled60__default.default(reactNative.View)(({ dividerColor, dividerMarginTop }) => ({
8466
8476
  height: 1,
8467
8477
  backgroundColor: dividerColor,
8468
8478
  marginTop: dividerMarginTop
@@ -8714,7 +8724,7 @@ function buildDelayedEntering(variant, delayMs) {
8714
8724
  }
8715
8725
  var Animated5 = React60__default.default.forwardRef(
8716
8726
  (_a, ref) => {
8717
- var _b = _a, { variant = "fade", delay, children } = _b, props = __objRest(_b, ["variant", "delay", "children"]);
8727
+ var _b = _a, { variant = "fade", delay, exit = true, children } = _b, props = __objRest(_b, ["variant", "delay", "exit", "children"]);
8718
8728
  const delayMs = delay !== void 0 && delay > 0 ? Math.round(delay * 1e3) : 0;
8719
8729
  const entering = delayMs > 0 ? buildDelayedEntering(variant, delayMs) : ENTERING[variant];
8720
8730
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -8722,7 +8732,7 @@ var Animated5 = React60__default.default.forwardRef(
8722
8732
  __spreadProps(__spreadValues({
8723
8733
  ref,
8724
8734
  entering,
8725
- exiting: EXITING[variant]
8735
+ exiting: exit ? EXITING[variant] : void 0
8726
8736
  }, props), {
8727
8737
  children
8728
8738
  })
@@ -8785,7 +8795,7 @@ var OPEN_DURATION = 320;
8785
8795
  var CLOSE_DURATION = 220;
8786
8796
  var DISMISS_THRESHOLD = 80;
8787
8797
  var parseTokenValue22 = (value) => parseFloat(value);
8788
- var StyledPanel2 = styled52__default.default(reactNative.View)(
8798
+ var StyledPanel2 = styled60__default.default(reactNative.View)(
8789
8799
  ({
8790
8800
  panelBorderRadius,
8791
8801
  panelBgColor,
@@ -9020,7 +9030,7 @@ var styles = reactNative.StyleSheet.create({
9020
9030
  }
9021
9031
  });
9022
9032
  var parseTokenValue23 = (value) => parseFloat(value);
9023
- var StyledWrapper = styled52__default.default(reactNative.View)(
9033
+ var StyledWrapper = styled60__default.default(reactNative.View)(
9024
9034
  ({ grabberPaddingTop }) => ({
9025
9035
  alignItems: "center",
9026
9036
  justifyContent: "center",
@@ -9029,7 +9039,7 @@ var StyledWrapper = styled52__default.default(reactNative.View)(
9029
9039
  paddingBottom: grabberPaddingTop
9030
9040
  })
9031
9041
  );
9032
- var StyledBar = styled52__default.default(reactNative.View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9042
+ var StyledBar = styled60__default.default(reactNative.View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9033
9043
  width: barWidth,
9034
9044
  height: barHeight,
9035
9045
  borderRadius: barBorderRadius,
@@ -9110,7 +9120,7 @@ var styles2 = reactNative.StyleSheet.create({
9110
9120
  }
9111
9121
  });
9112
9122
  var parseTokenValue25 = (value) => parseFloat(value);
9113
- var StyledGrabberWrapper = styled52__default.default(reactNative.View)(
9123
+ var StyledGrabberWrapper = styled60__default.default(reactNative.View)(
9114
9124
  ({ grabberPaddingTop }) => ({
9115
9125
  alignItems: "center",
9116
9126
  justifyContent: "center",
@@ -9118,13 +9128,13 @@ var StyledGrabberWrapper = styled52__default.default(reactNative.View)(
9118
9128
  paddingTop: grabberPaddingTop
9119
9129
  })
9120
9130
  );
9121
- var StyledGrabberBar = styled52__default.default(reactNative.View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9131
+ var StyledGrabberBar = styled60__default.default(reactNative.View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9122
9132
  width: barWidth,
9123
9133
  height: barHeight,
9124
9134
  borderRadius: barBorderRadius,
9125
9135
  backgroundColor: barColor
9126
9136
  }));
9127
- var StyledHeader = styled52__default.default(reactNative.View)(
9137
+ var StyledHeader = styled60__default.default(reactNative.View)(
9128
9138
  ({
9129
9139
  headerPaddingHorizontal,
9130
9140
  headerPaddingBottom,
@@ -9144,7 +9154,7 @@ var StyledHeader = styled52__default.default(reactNative.View)(
9144
9154
  borderBottomColor: headerBorderColor
9145
9155
  } : {}), headerBgColor ? { backgroundColor: headerBgColor } : {})
9146
9156
  );
9147
- var StyledImageContainer = styled52__default.default(reactNative.View)(({ imageHeight, imageBorderRadius }) => ({
9157
+ var StyledImageContainer = styled60__default.default(reactNative.View)(({ imageHeight, imageBorderRadius }) => ({
9148
9158
  position: "relative",
9149
9159
  width: "100%",
9150
9160
  height: imageHeight,
@@ -9152,20 +9162,20 @@ var StyledImageContainer = styled52__default.default(reactNative.View)(({ imageH
9152
9162
  overflow: "hidden",
9153
9163
  flexShrink: 0
9154
9164
  }));
9155
- var StyledImageCloseWrapper = styled52__default.default(reactNative.View)(({ closeTop, closeRight }) => ({
9165
+ var StyledImageCloseWrapper = styled60__default.default(reactNative.View)(({ closeTop, closeRight }) => ({
9156
9166
  position: "absolute",
9157
9167
  top: closeTop,
9158
9168
  right: closeRight,
9159
9169
  zIndex: 1
9160
9170
  }));
9161
- var StyledTitleRow = styled52__default.default(reactNative.View)(({ rowGap }) => ({
9171
+ var StyledTitleRow = styled60__default.default(reactNative.View)(({ rowGap }) => ({
9162
9172
  flexDirection: "row",
9163
9173
  gap: rowGap,
9164
9174
  alignItems: "flex-start",
9165
9175
  width: "100%",
9166
9176
  flexShrink: 0
9167
9177
  }));
9168
- var StyledTitleContent = styled52__default.default(reactNative.View)(
9178
+ var StyledTitleContent = styled60__default.default(reactNative.View)(
9169
9179
  ({ contentGap }) => ({
9170
9180
  flexDirection: "column",
9171
9181
  gap: contentGap,
@@ -9305,7 +9315,7 @@ var DrawerDescription = React60__default.default.forwardRef(
9305
9315
  );
9306
9316
  DrawerDescription.displayName = "Drawer.Description";
9307
9317
  var parseTokenValue26 = (value) => parseFloat(value);
9308
- var StyledScrollView = styled52__default.default(reactNative.ScrollView)(({ bodyPaddingHorizontal, bodyPaddingRight, bodyGap }) => ({
9318
+ var StyledScrollView = styled60__default.default(reactNative.ScrollView)(({ bodyPaddingHorizontal, bodyPaddingRight, bodyGap }) => ({
9309
9319
  flex: 1,
9310
9320
  paddingLeft: bodyPaddingHorizontal,
9311
9321
  paddingRight: bodyPaddingRight,
@@ -9346,7 +9356,7 @@ var DrawerBody = React60__default.default.forwardRef(
9346
9356
  );
9347
9357
  DrawerBody.displayName = "Drawer.Body";
9348
9358
  var parseTokenValue27 = (value) => parseFloat(value);
9349
- var StyledFooter = styled52__default.default(reactNative.View)(({ footerPaddingTop, footerPaddingHorizontal, footerPaddingBottom }) => ({
9359
+ var StyledFooter = styled60__default.default(reactNative.View)(({ footerPaddingTop, footerPaddingHorizontal, footerPaddingBottom }) => ({
9350
9360
  flexShrink: 0,
9351
9361
  paddingTop: footerPaddingTop,
9352
9362
  paddingHorizontal: footerPaddingHorizontal,
@@ -9458,7 +9468,7 @@ var styles3 = reactNative.StyleSheet.create({
9458
9468
  }
9459
9469
  });
9460
9470
  var parseTokenValue28 = (value) => parseFloat(value);
9461
- var StyledDockRoot = styled52__default.default(reactNative.View)(
9471
+ var StyledDockRoot = styled60__default.default(reactNative.View)(
9462
9472
  ({
9463
9473
  dockBgColor,
9464
9474
  dockBorderTopWidth,
@@ -9474,7 +9484,7 @@ var StyledDockRoot = styled52__default.default(reactNative.View)(
9474
9484
  paddingVertical: dockPaddingVertical
9475
9485
  })
9476
9486
  );
9477
- var StyledStackedInner = styled52__default.default(reactNative.View)(
9487
+ var StyledStackedInner = styled60__default.default(reactNative.View)(
9478
9488
  ({ innerGap }) => ({
9479
9489
  alignItems: "center",
9480
9490
  gap: innerGap,
@@ -9482,7 +9492,7 @@ var StyledStackedInner = styled52__default.default(reactNative.View)(
9482
9492
  maxWidth: 520
9483
9493
  })
9484
9494
  );
9485
- var StyledButtonGroup = styled52__default.default(reactNative.View)(({ groupDirection, groupAlign, groupJustify, groupGap }) => __spreadValues({
9495
+ var StyledButtonGroup = styled60__default.default(reactNative.View)(({ groupDirection, groupAlign, groupJustify, groupGap }) => __spreadValues({
9486
9496
  flexDirection: groupDirection,
9487
9497
  alignItems: groupAlign,
9488
9498
  justifyContent: groupJustify,
@@ -9553,17 +9563,17 @@ var ButtonDock = React60__default.default.forwardRef(
9553
9563
  );
9554
9564
  ButtonDock.displayName = "ButtonDock";
9555
9565
  var parseTokenValue29 = (value) => parseFloat(value);
9556
- var StyledGroupRoot = styled52__default.default(reactNative.View)(({ rootGap }) => ({
9566
+ var StyledGroupRoot = styled60__default.default(reactNative.View)(({ rootGap }) => ({
9557
9567
  gap: rootGap,
9558
9568
  alignItems: "center",
9559
9569
  width: "100%"
9560
9570
  }));
9561
- var StyledButtonRow = styled52__default.default(reactNative.View)(({ rowDirection, rowAlign, rowGap }) => __spreadValues({
9571
+ var StyledButtonRow = styled60__default.default(reactNative.View)(({ rowDirection, rowAlign, rowGap }) => __spreadValues({
9562
9572
  flexDirection: rowDirection,
9563
9573
  width: "100%",
9564
9574
  gap: rowGap
9565
9575
  }, rowAlign ? { alignItems: rowAlign } : {}));
9566
- var StyledChildSlot = styled52__default.default(reactNative.View)(
9576
+ var StyledChildSlot = styled60__default.default(reactNative.View)(
9567
9577
  ({ slotInline }) => __spreadValues({}, slotInline ? { flex: 1, minWidth: 0 } : { width: "100%", alignSelf: "stretch" })
9568
9578
  );
9569
9579
  var ButtonGroup = React60__default.default.forwardRef(
@@ -9615,7 +9625,7 @@ var ButtonGroup = React60__default.default.forwardRef(
9615
9625
  );
9616
9626
  ButtonGroup.displayName = "ButtonGroup";
9617
9627
  var parseTokenValue30 = (value) => parseFloat(value);
9618
- var StyledRootPressable = styled52__default.default(reactNative.Pressable)(
9628
+ var StyledRootPressable = styled60__default.default(reactNative.Pressable)(
9619
9629
  ({
9620
9630
  rootFlexAlign,
9621
9631
  rootGap,
@@ -9634,7 +9644,7 @@ var StyledRootPressable = styled52__default.default(reactNative.Pressable)(
9634
9644
  opacity: rootOpacity
9635
9645
  }, rootPaddingVertical !== void 0 ? { paddingVertical: rootPaddingVertical } : {}), rootPaddingHorizontal !== void 0 ? { paddingHorizontal: rootPaddingHorizontal } : {}), rootMaxWidth !== void 0 ? { maxWidth: rootMaxWidth, width: "100%" } : {}), rootBgColor ? { backgroundColor: rootBgColor } : {}), rootBorderWidth !== void 0 ? { borderWidth: rootBorderWidth, borderColor: rootBorderColor } : {}), rootBorderRadius !== void 0 ? { borderRadius: rootBorderRadius } : {})
9636
9646
  );
9637
- var StyledControl = styled52__default.default(reactNative.View)(
9647
+ var StyledControl = styled60__default.default(reactNative.View)(
9638
9648
  ({
9639
9649
  controlSize,
9640
9650
  controlBorderWidth,
@@ -9653,13 +9663,13 @@ var StyledControl = styled52__default.default(reactNative.View)(
9653
9663
  justifyContent: "center"
9654
9664
  })
9655
9665
  );
9656
- var StyledContent2 = styled52__default.default(reactNative.View)(({ contentGap }) => ({
9666
+ var StyledContent2 = styled60__default.default(reactNative.View)(({ contentGap }) => ({
9657
9667
  flexDirection: "column",
9658
9668
  gap: contentGap,
9659
9669
  flex: 1,
9660
9670
  minWidth: 0
9661
9671
  }));
9662
- var StyledIllustration = styled52__default.default(reactNative.View)(({ illustrationSize }) => ({
9672
+ var StyledIllustration = styled60__default.default(reactNative.View)(({ illustrationSize }) => ({
9663
9673
  flexShrink: 0,
9664
9674
  width: illustrationSize,
9665
9675
  height: illustrationSize,
@@ -9783,7 +9793,7 @@ var Checkbox = React60__default.default.forwardRef(
9783
9793
  );
9784
9794
  Checkbox.displayName = "Checkbox";
9785
9795
  var parseTokenValue31 = (value) => parseFloat(value);
9786
- var StyledGroup = styled52__default.default(reactNative.View)(({ groupDirection, groupGap }) => ({
9796
+ var StyledGroup = styled60__default.default(reactNative.View)(({ groupDirection, groupGap }) => ({
9787
9797
  flexDirection: groupDirection,
9788
9798
  gap: groupGap
9789
9799
  }));
@@ -9897,7 +9907,7 @@ var CopyFieldInput = React60__default.default.forwardRef(
9897
9907
  );
9898
9908
  CopyFieldInput.displayName = "CopyField.Field";
9899
9909
  var parseTokenValue32 = (value) => parseFloat(value);
9900
- var StyledRoot8 = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
9910
+ var StyledRoot8 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
9901
9911
  const { spacing } = theme2.tokens.components.inputs;
9902
9912
  return {
9903
9913
  gap: parseTokenValue32(spacing.gap)
@@ -9978,13 +9988,13 @@ var FilterTabContext = React60__default.default.createContext({
9978
9988
  }
9979
9989
  });
9980
9990
  var parseTokenValue33 = (value) => parseFloat(value);
9981
- var StyledRoot9 = styled52__default.default(reactNative.View)(({ rootGap }) => ({
9991
+ var StyledRoot9 = styled60__default.default(reactNative.View)(({ rootGap }) => ({
9982
9992
  flexDirection: "row",
9983
9993
  alignItems: "center",
9984
9994
  gap: rootGap,
9985
9995
  flexWrap: "nowrap"
9986
9996
  }));
9987
- var StyledItem2 = styled52__default.default(reactNative.Pressable)(
9997
+ var StyledItem2 = styled60__default.default(reactNative.Pressable)(
9988
9998
  ({
9989
9999
  itemHeight,
9990
10000
  itemMinWidth,
@@ -10159,7 +10169,7 @@ var FilterTab = Object.assign(FilterTabRoot, {
10159
10169
  Item: FilterTabItem
10160
10170
  });
10161
10171
  var parseTokenValue34 = (value) => parseFloat(value);
10162
- var StyledFieldWrapper = styled52__default.default(reactNative.View)(
10172
+ var StyledFieldWrapper = styled60__default.default(reactNative.View)(
10163
10173
  ({
10164
10174
  fieldBgColor,
10165
10175
  fieldBorderColor,
@@ -10180,7 +10190,7 @@ var StyledFieldWrapper = styled52__default.default(reactNative.View)(
10180
10190
  overflow: "hidden"
10181
10191
  })
10182
10192
  );
10183
- var StyledTextInput = styled52__default.default(reactNative.TextInput)(
10193
+ var StyledTextInput = styled60__default.default(reactNative.TextInput)(
10184
10194
  ({
10185
10195
  inputColor,
10186
10196
  inputFontFamily,
@@ -10202,7 +10212,7 @@ var StyledTextInput = styled52__default.default(reactNative.TextInput)(
10202
10212
  lineHeight: inputLineHeight
10203
10213
  })
10204
10214
  );
10205
- var StyledRow = styled52__default.default(reactNative.View)(({ rowGap }) => ({
10215
+ var StyledRow = styled60__default.default(reactNative.View)(({ rowGap }) => ({
10206
10216
  flexDirection: "row",
10207
10217
  alignItems: "center",
10208
10218
  alignSelf: "center",
@@ -10365,11 +10375,11 @@ var NumberFieldInput = React60__default.default.forwardRef(
10365
10375
  );
10366
10376
  NumberFieldInput.displayName = "NumberField.Input";
10367
10377
  var parseTokenValue35 = (value) => parseFloat(value);
10368
- var StyledRoot10 = styled52__default.default(reactNative.View)(({ rootGap }) => ({
10378
+ var StyledRoot10 = styled60__default.default(reactNative.View)(({ rootGap }) => ({
10369
10379
  alignItems: "center",
10370
10380
  gap: rootGap
10371
10381
  }));
10372
- var StyledLabelGroup = styled52__default.default(reactNative.View)(({ labelGap }) => ({
10382
+ var StyledLabelGroup = styled60__default.default(reactNative.View)(({ labelGap }) => ({
10373
10383
  gap: labelGap
10374
10384
  }));
10375
10385
  var NumberField = React60__default.default.forwardRef(
@@ -10518,7 +10528,7 @@ var PasswordFieldInput = React60__default.default.forwardRef((_a, ref) => {
10518
10528
  });
10519
10529
  PasswordFieldInput.displayName = "PasswordField.Field";
10520
10530
  var parseTokenValue36 = (value) => parseFloat(value);
10521
- var StyledErrorRow2 = styled52__default.default(reactNative.View)(({ gap }) => ({
10531
+ var StyledErrorRow2 = styled60__default.default(reactNative.View)(({ gap }) => ({
10522
10532
  flexDirection: "row",
10523
10533
  alignItems: "center",
10524
10534
  gap
@@ -10550,12 +10560,12 @@ var PasswordFieldError = React60__default.default.forwardRef((_a, ref) => {
10550
10560
  });
10551
10561
  PasswordFieldError.displayName = "PasswordField.Error";
10552
10562
  var parseTokenValue37 = (value) => parseFloat(value);
10553
- var StyledRequirementsList = styled52__default.default(reactNative.View)(
10563
+ var StyledRequirementsList = styled60__default.default(reactNative.View)(
10554
10564
  ({ listGap }) => ({
10555
10565
  gap: listGap
10556
10566
  })
10557
10567
  );
10558
- var StyledRequirementItem = styled52__default.default(reactNative.View)(
10568
+ var StyledRequirementItem = styled60__default.default(reactNative.View)(
10559
10569
  ({ itemGap }) => ({
10560
10570
  flexDirection: "row",
10561
10571
  alignItems: "center",
@@ -10612,7 +10622,7 @@ var PasswordFieldRequirements = React60__default.default.forwardRef((_a, ref) =>
10612
10622
  });
10613
10623
  PasswordFieldRequirements.displayName = "PasswordField.Requirements";
10614
10624
  var parseTokenValue38 = (value) => parseFloat(value);
10615
- var StyledRoot11 = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
10625
+ var StyledRoot11 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
10616
10626
  const { spacing } = theme2.tokens.components.inputs;
10617
10627
  return {
10618
10628
  gap: parseTokenValue38(spacing.gap)
@@ -10726,19 +10736,19 @@ function usePasswordField({
10726
10736
  });
10727
10737
  }
10728
10738
  var parseTokenValue39 = (value) => parseFloat(value);
10729
- var StyledRoot12 = styled52__default.default(reactNative.View)(({ rootGap }) => ({
10739
+ var StyledRoot12 = styled60__default.default(reactNative.View)(({ rootGap }) => ({
10730
10740
  flexDirection: "column",
10731
10741
  alignItems: "stretch",
10732
10742
  gap: rootGap,
10733
10743
  width: "100%"
10734
10744
  }));
10735
- var StyledHeader2 = styled52__default.default(reactNative.View)({
10745
+ var StyledHeader2 = styled60__default.default(reactNative.View)({
10736
10746
  flexDirection: "row",
10737
10747
  alignItems: "center",
10738
10748
  justifyContent: "space-between",
10739
10749
  width: "100%"
10740
10750
  });
10741
- var StyledTrack = styled52__default.default(reactNative.View)(({ trackHeight, trackMinWidth, trackBorderRadius, trackBgColor }) => ({
10751
+ var StyledTrack = styled60__default.default(reactNative.View)(({ trackHeight, trackMinWidth, trackBorderRadius, trackBgColor }) => ({
10742
10752
  position: "relative",
10743
10753
  width: "100%",
10744
10754
  minWidth: trackMinWidth,
@@ -10747,7 +10757,7 @@ var StyledTrack = styled52__default.default(reactNative.View)(({ trackHeight, tr
10747
10757
  backgroundColor: trackBgColor,
10748
10758
  overflow: "hidden"
10749
10759
  }));
10750
- var StyledIndicator = styled52__default.default(reactNative.View)(({ indicatorBorderRadius, indicatorBgColor }) => ({
10760
+ var StyledIndicator = styled60__default.default(reactNative.View)(({ indicatorBorderRadius, indicatorBgColor }) => ({
10751
10761
  height: "100%",
10752
10762
  borderRadius: indicatorBorderRadius,
10753
10763
  backgroundColor: indicatorBgColor
@@ -10844,7 +10854,7 @@ var Progress = React60__default.default.forwardRef(
10844
10854
  );
10845
10855
  Progress.displayName = "Progress";
10846
10856
  var parseTokenValue40 = (value) => parseFloat(value);
10847
- var StyledRadioRoot = styled52__default.default(reactNative.Pressable)(
10857
+ var StyledRadioRoot = styled60__default.default(reactNative.Pressable)(
10848
10858
  ({
10849
10859
  radioGap,
10850
10860
  radioOpacity,
@@ -10863,7 +10873,7 @@ var StyledRadioRoot = styled52__default.default(reactNative.Pressable)(
10863
10873
  opacity: radioOpacity
10864
10874
  }, radioPaddingVertical !== void 0 ? { paddingVertical: radioPaddingVertical } : {}), radioPaddingHorizontal !== void 0 ? { paddingHorizontal: radioPaddingHorizontal } : {}), radioMaxWidth !== void 0 ? { maxWidth: radioMaxWidth } : {}), radioBgColor ? { backgroundColor: radioBgColor } : {}), radioBorderWidth !== void 0 ? { borderWidth: radioBorderWidth, borderColor: radioBorderColor } : {}), radioBorderRadius !== void 0 ? { borderRadius: radioBorderRadius } : {})
10865
10875
  );
10866
- var StyledRadioControl = styled52__default.default(reactNative.View)(({ controlSize, controlBorderWidth, controlBorderColor }) => ({
10876
+ var StyledRadioControl = styled60__default.default(reactNative.View)(({ controlSize, controlBorderWidth, controlBorderColor }) => ({
10867
10877
  width: controlSize,
10868
10878
  height: controlSize,
10869
10879
  minWidth: controlSize,
@@ -10874,17 +10884,17 @@ var StyledRadioControl = styled52__default.default(reactNative.View)(({ controlS
10874
10884
  alignItems: "center",
10875
10885
  justifyContent: "center"
10876
10886
  }));
10877
- var StyledIndicator2 = styled52__default.default(reactNative.View)(({ indicatorSize, indicatorBgColor }) => ({
10887
+ var StyledIndicator2 = styled60__default.default(reactNative.View)(({ indicatorSize, indicatorBgColor }) => ({
10878
10888
  width: indicatorSize,
10879
10889
  height: indicatorSize,
10880
10890
  borderRadius: indicatorSize / 2,
10881
10891
  backgroundColor: indicatorBgColor
10882
10892
  }));
10883
- var StyledTextContent = styled52__default.default(reactNative.View)(({ textContentGap }) => ({
10893
+ var StyledTextContent = styled60__default.default(reactNative.View)(({ textContentGap }) => ({
10884
10894
  flexDirection: "column",
10885
10895
  gap: textContentGap
10886
10896
  }));
10887
- var StyledAssetWrapper = styled52__default.default(reactNative.View)({
10897
+ var StyledAssetWrapper = styled60__default.default(reactNative.View)({
10888
10898
  alignSelf: "center"
10889
10899
  });
10890
10900
  var Radio = React60__default.default.forwardRef(
@@ -10983,7 +10993,7 @@ var Radio = React60__default.default.forwardRef(
10983
10993
  );
10984
10994
  Radio.displayName = "Radio";
10985
10995
  var parseTokenValue41 = (value) => parseFloat(value);
10986
- var StyledRadioGroup = styled52__default.default(reactNative.View)(({ groupDirection, groupGap }) => ({
10996
+ var StyledRadioGroup = styled60__default.default(reactNative.View)(({ groupDirection, groupGap }) => ({
10987
10997
  flexDirection: groupDirection,
10988
10998
  gap: groupGap
10989
10999
  }));
@@ -11109,7 +11119,7 @@ var SearchFieldInput = React60__default.default.forwardRef((_a, ref) => {
11109
11119
  });
11110
11120
  SearchFieldInput.displayName = "SearchField.Field";
11111
11121
  var parseTokenValue42 = (value) => parseFloat(value);
11112
- var StyledRoot13 = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
11122
+ var StyledRoot13 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
11113
11123
  const { spacing } = theme2.tokens.components.inputs;
11114
11124
  return {
11115
11125
  gap: parseTokenValue42(spacing.gap)
@@ -11186,7 +11196,7 @@ function useSearchField({
11186
11196
  };
11187
11197
  }
11188
11198
  var parseTokenValue43 = (value) => parseFloat(value);
11189
- var StyledSegmentItem = styled52__default.default(reactNative.Pressable)(
11199
+ var StyledSegmentItem = styled60__default.default(reactNative.Pressable)(
11190
11200
  ({
11191
11201
  itemHeight,
11192
11202
  itemMinWidth,
@@ -11206,14 +11216,14 @@ var StyledSegmentItem = styled52__default.default(reactNative.Pressable)(
11206
11216
  opacity: itemOpacity
11207
11217
  }, itemFlex !== void 0 ? { flex: itemFlex } : { flexShrink: 0 })
11208
11218
  );
11209
- var StyledIntrinsicClip = styled52__default.default(reactNative.View)(({ clipBorderRadius, clipBgColor, clipWidth }) => __spreadValues({
11219
+ var StyledIntrinsicClip = styled60__default.default(reactNative.View)(({ clipBorderRadius, clipBgColor, clipWidth }) => __spreadValues({
11210
11220
  overflow: "hidden",
11211
11221
  borderRadius: clipBorderRadius,
11212
11222
  backgroundColor: clipBgColor,
11213
11223
  alignSelf: "flex-start",
11214
11224
  maxWidth: "100%"
11215
11225
  }, clipWidth !== void 0 ? { width: clipWidth } : {}));
11216
- var StyledScrollIndicator = styled52__default.default(reactNative.Pressable)(
11226
+ var StyledScrollIndicator = styled60__default.default(reactNative.Pressable)(
11217
11227
  ({
11218
11228
  indicatorSide,
11219
11229
  indicatorBorderRadius,
@@ -11269,7 +11279,7 @@ var ScrollIndicatorGradient = ({
11269
11279
  /* @__PURE__ */ jsxRuntime.jsx(Svg.Rect, { width: "100%", height: "100%", fill: `url(#${gradientId})` })
11270
11280
  ] }) });
11271
11281
  };
11272
- var StyledContainer2 = styled52__default.default(reactNative.View)(
11282
+ var StyledContainer2 = styled60__default.default(reactNative.View)(
11273
11283
  ({
11274
11284
  containerGap,
11275
11285
  containerPaddingVertical,
@@ -11549,7 +11559,7 @@ var SegmentedControl = Object.assign(SegmentedControlRoot, {
11549
11559
  Item: SegmentedControlItem
11550
11560
  });
11551
11561
  var parseTokenValue44 = (value) => parseFloat(value);
11552
- var StyledTriggerWrapper = styled52__default.default(reactNative.Animated.View)(({
11562
+ var StyledTriggerWrapper = styled60__default.default(reactNative.Animated.View)(({
11553
11563
  theme: theme2,
11554
11564
  state: _state
11555
11565
  }) => {
@@ -11565,12 +11575,12 @@ var StyledTriggerWrapper = styled52__default.default(reactNative.Animated.View)(
11565
11575
  borderRadius: parseTokenValue44(borderRadius.field.default)
11566
11576
  };
11567
11577
  });
11568
- var StyledIconWrapper2 = styled52__default.default(reactNative.View)({
11578
+ var StyledIconWrapper2 = styled60__default.default(reactNative.View)({
11569
11579
  flexShrink: 0,
11570
11580
  alignItems: "center",
11571
11581
  justifyContent: "center"
11572
11582
  });
11573
- var StyledArrowIcon = styled52__default.default(reactNative.Animated.View)({
11583
+ var StyledArrowIcon = styled60__default.default(reactNative.Animated.View)({
11574
11584
  flexShrink: 0,
11575
11585
  alignItems: "center",
11576
11586
  justifyContent: "center"
@@ -11656,7 +11666,7 @@ var SelectFieldTrigger = React60__default.default.forwardRef(
11656
11666
  }
11657
11667
  );
11658
11668
  SelectFieldTrigger.displayName = "SelectField.Trigger";
11659
- var StyledValue = styled52__default.default(reactNative.Text)(({ theme: theme2 }) => {
11669
+ var StyledValue = styled60__default.default(reactNative.Text)(({ theme: theme2 }) => {
11660
11670
  const { colour } = theme2.tokens.components.inputs;
11661
11671
  return {
11662
11672
  flex: 1,
@@ -11675,7 +11685,7 @@ SelectFieldValue.displayName = "SelectField.Value";
11675
11685
  var parseTokenValue45 = (value) => parseFloat(value);
11676
11686
  var DROPDOWN_OFFSET_X = -32;
11677
11687
  var DROPDOWN_OFFSET_Y = -94;
11678
- var StyledContentShadow = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
11688
+ var StyledContentShadow = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
11679
11689
  const { dropdown } = theme2.tokens.components.dropdownList;
11680
11690
  const shadow = dropdown.list.dropshadow.default;
11681
11691
  return {
@@ -11694,7 +11704,7 @@ var StyledContentShadow = styled52__default.default(reactNative.View)(({ theme:
11694
11704
  ]
11695
11705
  };
11696
11706
  });
11697
- var StyledContentInner = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
11707
+ var StyledContentInner = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
11698
11708
  const { dropdown } = theme2.tokens.components.dropdownList;
11699
11709
  const { colour } = theme2.tokens.components.inputs;
11700
11710
  return {
@@ -11723,7 +11733,7 @@ var SelectFieldContent = React60__default.default.forwardRef((_a, ref) => {
11723
11733
  });
11724
11734
  SelectFieldContent.displayName = "SelectField.Content";
11725
11735
  var parseTokenValue46 = (value) => parseFloat(value);
11726
- var StyledItem3 = styled52__default.default(reactNative.Pressable)(({ theme: theme2 }) => {
11736
+ var StyledItem3 = styled60__default.default(reactNative.Pressable)(({ theme: theme2 }) => {
11727
11737
  const { dropdown } = theme2.tokens.components.dropdownList;
11728
11738
  return {
11729
11739
  flexDirection: "row",
@@ -11737,12 +11747,12 @@ var StyledItem3 = styled52__default.default(reactNative.Pressable)(({ theme: the
11737
11747
  backgroundColor: dropdown.listItem.colour.background.default
11738
11748
  };
11739
11749
  });
11740
- var StyledIconWrapper3 = styled52__default.default(reactNative.View)({
11750
+ var StyledIconWrapper3 = styled60__default.default(reactNative.View)({
11741
11751
  flexShrink: 0,
11742
11752
  alignItems: "center",
11743
11753
  justifyContent: "center"
11744
11754
  });
11745
- var StyledContentWrapper = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
11755
+ var StyledContentWrapper = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
11746
11756
  const { dropdown } = theme2.tokens.components.dropdownList;
11747
11757
  return {
11748
11758
  flexDirection: "row",
@@ -11752,17 +11762,17 @@ var StyledContentWrapper = styled52__default.default(reactNative.View)(({ theme:
11752
11762
  minWidth: 0
11753
11763
  };
11754
11764
  });
11755
- var StyledTextWrapper2 = styled52__default.default(reactNative.View)({
11765
+ var StyledTextWrapper2 = styled60__default.default(reactNative.View)({
11756
11766
  flex: 1,
11757
11767
  minWidth: 0
11758
11768
  });
11759
- var StyledItemText = styled52__default.default(reactNative.Text)(({ theme: theme2 }) => {
11769
+ var StyledItemText = styled60__default.default(reactNative.Text)(({ theme: theme2 }) => {
11760
11770
  const { dropdown } = theme2.tokens.components.dropdownList;
11761
11771
  return {
11762
11772
  color: dropdown.listItem.colour.text.placeholder.default
11763
11773
  };
11764
11774
  });
11765
- var StyledHintText = styled52__default.default(reactNative.Text)(({ theme: theme2 }) => {
11775
+ var StyledHintText = styled60__default.default(reactNative.Text)(({ theme: theme2 }) => {
11766
11776
  const { dropdown } = theme2.tokens.components.dropdownList;
11767
11777
  return {
11768
11778
  color: dropdown.listItem.colour.text.hint.default,
@@ -11805,7 +11815,7 @@ var SelectFieldItem = React60__default.default.forwardRef(
11805
11815
  );
11806
11816
  SelectFieldItem.displayName = "SelectField.Item";
11807
11817
  var parseTokenValue47 = (value) => parseFloat(value);
11808
- var StyledRoot14 = styled52__default.default(reactNative.View)(({ theme: theme2 }) => {
11818
+ var StyledRoot14 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
11809
11819
  const { spacing } = theme2.tokens.components.inputs;
11810
11820
  return {
11811
11821
  gap: parseTokenValue47(spacing.gap)
@@ -11939,12 +11949,12 @@ function useSelectField(options = {}) {
11939
11949
  }, validationRule && { state, error });
11940
11950
  }
11941
11951
  var parseTokenValue48 = (value) => parseFloat(value);
11942
- var StyledLabelRow2 = styled52__default.default(reactNative.View)(({ labelRowGap }) => ({
11952
+ var StyledLabelRow2 = styled60__default.default(reactNative.View)(({ labelRowGap }) => ({
11943
11953
  flexDirection: "row",
11944
11954
  alignItems: "center",
11945
11955
  gap: labelRowGap
11946
11956
  }));
11947
- var StyledLabelSlot = styled52__default.default(reactNative.View)(({ labelSlotGap }) => ({
11957
+ var StyledLabelSlot = styled60__default.default(reactNative.View)(({ labelSlotGap }) => ({
11948
11958
  flexDirection: "row",
11949
11959
  alignItems: "center",
11950
11960
  gap: labelSlotGap,
@@ -12280,7 +12290,7 @@ var ICON_MAP = {
12280
12290
  info: Info_default
12281
12291
  };
12282
12292
  var parseTokenValue49 = (value) => parseFloat(value);
12283
- var StyledInlineRoot = styled52__default.default(reactNative.View)(
12293
+ var StyledInlineRoot = styled60__default.default(reactNative.View)(
12284
12294
  ({ rootPaddingH, rootPaddingV, rootGap, rootBorderRadius, rootBgColor }) => ({
12285
12295
  flexDirection: "row",
12286
12296
  alignItems: "flex-start",
@@ -12291,7 +12301,7 @@ var StyledInlineRoot = styled52__default.default(reactNative.View)(
12291
12301
  backgroundColor: rootBgColor
12292
12302
  })
12293
12303
  );
12294
- var StyledToastRoot = styled52__default.default(reactNative.View)(
12304
+ var StyledToastRoot = styled60__default.default(reactNative.View)(
12295
12305
  ({
12296
12306
  rootPaddingH,
12297
12307
  rootPaddingV,
@@ -12318,7 +12328,7 @@ var StyledToastRoot = styled52__default.default(reactNative.View)(
12318
12328
  elevation: 4
12319
12329
  })
12320
12330
  );
12321
- var StyledSystemRoot = styled52__default.default(reactNative.View)(
12331
+ var StyledSystemRoot = styled60__default.default(reactNative.View)(
12322
12332
  ({
12323
12333
  rootPaddingH,
12324
12334
  rootPaddingTop,
@@ -12338,31 +12348,31 @@ var StyledSystemRoot = styled52__default.default(reactNative.View)(
12338
12348
  width: "100%"
12339
12349
  })
12340
12350
  );
12341
- var StyledContents = styled52__default.default(reactNative.View)(({ contentsGap }) => ({
12351
+ var StyledContents = styled60__default.default(reactNative.View)(({ contentsGap }) => ({
12342
12352
  flexDirection: "column",
12343
12353
  alignItems: "flex-start",
12344
12354
  flex: 1,
12345
12355
  minWidth: 0,
12346
12356
  gap: contentsGap
12347
12357
  }));
12348
- var StyledCopyRow = styled52__default.default(reactNative.View)(({ copyGap }) => ({
12358
+ var StyledCopyRow = styled60__default.default(reactNative.View)(({ copyGap }) => ({
12349
12359
  flexDirection: "row",
12350
12360
  alignItems: "flex-start",
12351
12361
  gap: copyGap,
12352
12362
  width: "100%"
12353
12363
  }));
12354
- var StyledInlineCopy = styled52__default.default(reactNative.View)(({ copyGap }) => ({
12364
+ var StyledInlineCopy = styled60__default.default(reactNative.View)(({ copyGap }) => ({
12355
12365
  flexDirection: "column",
12356
12366
  alignItems: "flex-start",
12357
12367
  gap: copyGap,
12358
12368
  flex: 1,
12359
12369
  minWidth: 0
12360
12370
  }));
12361
- var StyledLinkWrapper = styled52__default.default(reactNative.View)(({ linkPaddingLeft }) => ({
12371
+ var StyledLinkWrapper = styled60__default.default(reactNative.View)(({ linkPaddingLeft }) => ({
12362
12372
  paddingLeft: linkPaddingLeft,
12363
12373
  width: "100%"
12364
12374
  }));
12365
- var StyledCloseButton = styled52__default.default(reactNative.Pressable)({
12375
+ var StyledCloseButton = styled60__default.default(reactNative.Pressable)({
12366
12376
  alignItems: "center",
12367
12377
  justifyContent: "center",
12368
12378
  flexShrink: 0,
@@ -12578,10 +12588,10 @@ var NIB_OFFSET = {
12578
12588
  middle: 146,
12579
12589
  right: 268
12580
12590
  };
12581
- var Container2 = styled52__default.default(reactNative.View)(({ $width }) => ({
12591
+ var Container2 = styled60__default.default(reactNative.View)(({ $width }) => ({
12582
12592
  width: $width
12583
12593
  }));
12584
- var StyledBody = styled52__default.default(reactNative.View)(
12594
+ var StyledBody = styled60__default.default(reactNative.View)(
12585
12595
  ({
12586
12596
  bgColor,
12587
12597
  borderColor,
@@ -12811,7 +12821,7 @@ var Tooltip = React60__default.default.forwardRef(
12811
12821
  );
12812
12822
  Tooltip.displayName = "Tooltip";
12813
12823
  var parseTokenValue51 = (value) => parseFloat(value);
12814
- var StyledInsightRoot = styled52__default.default(reactNative.View)(
12824
+ var StyledInsightRoot = styled60__default.default(reactNative.View)(
12815
12825
  ({
12816
12826
  rootGap,
12817
12827
  rootPaddingH,
@@ -12838,7 +12848,7 @@ var StyledInsightRoot = styled52__default.default(reactNative.View)(
12838
12848
  minWidth: rootMinWidth
12839
12849
  })
12840
12850
  );
12841
- var StyledInsightContent = styled52__default.default(reactNative.View)(
12851
+ var StyledInsightContent = styled60__default.default(reactNative.View)(
12842
12852
  ({ contentGap }) => ({
12843
12853
  flex: 1,
12844
12854
  flexDirection: "column",
@@ -12918,7 +12928,7 @@ var MessageCardInsight = React60__default.default.forwardRef(
12918
12928
  }
12919
12929
  );
12920
12930
  MessageCardInsight.displayName = "MessageCard.Insight";
12921
- var StyledBannerRoot = styled52__default.default(reactNative.View)(({ rootGap, rootPadding, rootBorderRadius, rootBgColor }) => ({
12931
+ var StyledBannerRoot = styled60__default.default(reactNative.View)(({ rootGap, rootPadding, rootBorderRadius, rootBgColor }) => ({
12922
12932
  flexDirection: "row",
12923
12933
  alignItems: "center",
12924
12934
  gap: rootGap,
@@ -12926,7 +12936,7 @@ var StyledBannerRoot = styled52__default.default(reactNative.View)(({ rootGap, r
12926
12936
  borderRadius: rootBorderRadius,
12927
12937
  backgroundColor: rootBgColor
12928
12938
  }));
12929
- var StyledBannerImage = styled52__default.default(reactNative.View)(({ imageRadius, imageBgColor }) => ({
12939
+ var StyledBannerImage = styled60__default.default(reactNative.View)(({ imageRadius, imageBgColor }) => ({
12930
12940
  flexShrink: 0,
12931
12941
  width: 108,
12932
12942
  height: 108,
@@ -12934,14 +12944,14 @@ var StyledBannerImage = styled52__default.default(reactNative.View)(({ imageRadi
12934
12944
  overflow: "hidden",
12935
12945
  backgroundColor: imageBgColor
12936
12946
  }));
12937
- var StyledBannerIllustrationSlot = styled52__default.default(reactNative.View)({
12947
+ var StyledBannerIllustrationSlot = styled60__default.default(reactNative.View)({
12938
12948
  flexShrink: 0,
12939
12949
  width: 108,
12940
12950
  height: 108,
12941
12951
  alignItems: "center",
12942
12952
  justifyContent: "center"
12943
12953
  });
12944
- var StyledBannerContents = styled52__default.default(reactNative.View)(
12954
+ var StyledBannerContents = styled60__default.default(reactNative.View)(
12945
12955
  ({ contentsGap }) => ({
12946
12956
  flex: 1,
12947
12957
  flexDirection: "column",
@@ -12951,7 +12961,7 @@ var StyledBannerContents = styled52__default.default(reactNative.View)(
12951
12961
  minWidth: 0
12952
12962
  })
12953
12963
  );
12954
- var StyledBannerCopy = styled52__default.default(reactNative.View)(({ copyGap }) => ({
12964
+ var StyledBannerCopy = styled60__default.default(reactNative.View)(({ copyGap }) => ({
12955
12965
  flexDirection: "column",
12956
12966
  alignItems: "flex-start",
12957
12967
  gap: copyGap,
@@ -13090,22 +13100,22 @@ function defaultGetDateState(date) {
13090
13100
  function getDefaultMonthLabel(year, month, locale) {
13091
13101
  return dateFns.format(new Date(year, month, 1), "MMMM yyyy", { locale });
13092
13102
  }
13093
- var StyledContainer3 = styled52__default.default(reactNative.View)(({ containerGap, containerMaxWidth }) => ({
13103
+ var StyledContainer3 = styled60__default.default(reactNative.View)(({ containerGap, containerMaxWidth }) => ({
13094
13104
  flexDirection: "column",
13095
13105
  gap: containerGap,
13096
13106
  maxWidth: containerMaxWidth
13097
13107
  }));
13098
- var StyledMonthHeader = styled52__default.default(reactNative.View)(
13108
+ var StyledMonthHeader = styled60__default.default(reactNative.View)(
13099
13109
  ({ headerGap }) => ({
13100
13110
  flexDirection: "row",
13101
13111
  alignItems: "center",
13102
13112
  gap: headerGap
13103
13113
  })
13104
13114
  );
13105
- var StyledWeekRow = styled52__default.default(reactNative.View)({
13115
+ var StyledWeekRow = styled60__default.default(reactNative.View)({
13106
13116
  flexDirection: "row"
13107
13117
  });
13108
- var StyledWeekCell = styled52__default.default(reactNative.View)(
13118
+ var StyledWeekCell = styled60__default.default(reactNative.View)(
13109
13119
  ({ cellHeight }) => ({
13110
13120
  flex: 1,
13111
13121
  alignItems: "center",
@@ -13113,14 +13123,14 @@ var StyledWeekCell = styled52__default.default(reactNative.View)(
13113
13123
  height: cellHeight
13114
13124
  })
13115
13125
  );
13116
- var StyledDatesGrid = styled52__default.default(reactNative.View)(({ rowGap }) => ({
13126
+ var StyledDatesGrid = styled60__default.default(reactNative.View)(({ rowGap }) => ({
13117
13127
  flexDirection: "column",
13118
13128
  gap: rowGap
13119
13129
  }));
13120
- var StyledDateRow = styled52__default.default(reactNative.View)({
13130
+ var StyledDateRow = styled60__default.default(reactNative.View)({
13121
13131
  flexDirection: "row"
13122
13132
  });
13123
- var StyledDateCell = styled52__default.default(reactNative.View)(
13133
+ var StyledDateCell = styled60__default.default(reactNative.View)(
13124
13134
  ({ cellHeight }) => ({
13125
13135
  flex: 1,
13126
13136
  height: cellHeight,
@@ -13128,7 +13138,7 @@ var StyledDateCell = styled52__default.default(reactNative.View)(
13128
13138
  justifyContent: "center"
13129
13139
  })
13130
13140
  );
13131
- var StyledIndicator3 = styled52__default.default(reactNative.View)(
13141
+ var StyledIndicator3 = styled60__default.default(reactNative.View)(
13132
13142
  ({
13133
13143
  indicatorSize,
13134
13144
  indicatorBorderRadius,
@@ -13493,25 +13503,25 @@ var buildPointerPath = (r) => {
13493
13503
  ].join(" ");
13494
13504
  };
13495
13505
  var parseTokenValue53 = (value) => parseFloat(value);
13496
- var StyledRoot15 = styled52__default.default(reactNative.View)(({ rootGap }) => ({
13506
+ var StyledRoot15 = styled60__default.default(reactNative.View)(({ rootGap }) => ({
13497
13507
  flexDirection: "column",
13498
13508
  gap: rootGap,
13499
13509
  width: "100%"
13500
13510
  }));
13501
- var StyledRow2 = styled52__default.default(reactNative.View)(({ rowGap }) => ({
13511
+ var StyledRow2 = styled60__default.default(reactNative.View)(({ rowGap }) => ({
13502
13512
  flexDirection: "row",
13503
13513
  alignItems: "flex-start",
13504
13514
  gap: rowGap,
13505
13515
  width: "100%"
13506
13516
  }));
13507
- var StyledItemStack = styled52__default.default(reactNative.View)(({ stackGap }) => ({
13517
+ var StyledItemStack = styled60__default.default(reactNative.View)(({ stackGap }) => ({
13508
13518
  flexDirection: "column",
13509
13519
  alignItems: "center",
13510
13520
  gap: stackGap,
13511
13521
  flex: 1,
13512
13522
  minWidth: 0
13513
13523
  }));
13514
- var StyledPictureButton = styled52__default.default(reactNative.Pressable)(
13524
+ var StyledPictureButton = styled60__default.default(reactNative.Pressable)(
13515
13525
  ({
13516
13526
  buttonBorderRadius,
13517
13527
  buttonBorderWidth,
@@ -13538,7 +13548,7 @@ var StyledPictureButton = styled52__default.default(reactNative.Pressable)(
13538
13548
  overflow: "hidden"
13539
13549
  })
13540
13550
  );
13541
- var StyledPointer = styled52__default.default(Svg__default.default)(
13551
+ var StyledPointer = styled60__default.default(Svg__default.default)(
13542
13552
  ({ pointerVisible }) => ({
13543
13553
  width: POINTER_WIDTH,
13544
13554
  height: POINTER_HEIGHT,
@@ -13682,6 +13692,806 @@ var PictureSelector = React60__default.default.forwardRef(
13682
13692
  }
13683
13693
  );
13684
13694
  PictureSelector.displayName = "PictureSelector";
13695
+ var UNIT_LABELS = {
13696
+ days: "days",
13697
+ hours: "hrs",
13698
+ minutes: "min",
13699
+ seconds: "secs"
13700
+ };
13701
+ var parseTokenValue54 = (value) => parseFloat(value);
13702
+ var pad = (value) => String(Math.max(0, Math.floor(value))).padStart(2, "0");
13703
+ var StackedRoot = styled60__default.default(reactNative.View)(({ rootGap }) => ({
13704
+ flexDirection: "row",
13705
+ alignItems: "center",
13706
+ alignSelf: "flex-start",
13707
+ gap: rootGap
13708
+ }));
13709
+ var StackedItem = styled60__default.default(reactNative.View)(
13710
+ ({
13711
+ itemGap,
13712
+ itemVerticalPadding,
13713
+ itemHorizontalPadding,
13714
+ itemBgColor,
13715
+ itemBorderRadius
13716
+ }) => ({
13717
+ flexDirection: "column",
13718
+ alignItems: "center",
13719
+ justifyContent: "center",
13720
+ gap: itemGap,
13721
+ paddingVertical: itemVerticalPadding,
13722
+ paddingHorizontal: itemHorizontalPadding,
13723
+ backgroundColor: itemBgColor,
13724
+ borderRadius: itemBorderRadius
13725
+ })
13726
+ );
13727
+ var StackedCountBox = styled60__default.default(reactNative.View)(({ countPaddingTop, countBgColor, countBorderRadius }) => ({
13728
+ alignItems: "center",
13729
+ justifyContent: "center",
13730
+ // TODO: Add token — fixed count box dimensions are not yet tokenised.
13731
+ width: 48,
13732
+ height: 36,
13733
+ paddingTop: countPaddingTop,
13734
+ backgroundColor: countBgColor,
13735
+ borderRadius: countBorderRadius
13736
+ }));
13737
+ var InlineRoot = styled60__default.default(reactNative.View)(
13738
+ ({
13739
+ rootGap,
13740
+ rootVerticalPadding,
13741
+ rootHorizontalPadding,
13742
+ rootBgColor,
13743
+ rootBorderRadius
13744
+ }) => ({
13745
+ flexDirection: "row",
13746
+ alignItems: "center",
13747
+ justifyContent: "space-between",
13748
+ gap: rootGap,
13749
+ width: "100%",
13750
+ paddingVertical: rootVerticalPadding,
13751
+ paddingHorizontal: rootHorizontalPadding,
13752
+ backgroundColor: rootBgColor,
13753
+ borderRadius: rootBorderRadius,
13754
+ overflow: "hidden"
13755
+ })
13756
+ );
13757
+ var InlineGroup = styled60__default.default(reactNative.View)(({ groupGap }) => ({
13758
+ flexDirection: "row",
13759
+ alignItems: "center",
13760
+ justifyContent: "flex-end",
13761
+ gap: groupGap
13762
+ }));
13763
+ var InlineCount = styled60__default.default(reactNative.View)(({ countGap }) => ({
13764
+ flexDirection: "row",
13765
+ alignItems: "center",
13766
+ gap: countGap
13767
+ }));
13768
+ var Countdown = React60__default.default.forwardRef(
13769
+ (_a, ref) => {
13770
+ var _b = _a, {
13771
+ layout = "stacked",
13772
+ days = 0,
13773
+ hours = 0,
13774
+ minutes = 0,
13775
+ seconds = 0,
13776
+ showDays = true,
13777
+ showSeconds = true,
13778
+ label
13779
+ } = _b, rest = __objRest(_b, [
13780
+ "layout",
13781
+ "days",
13782
+ "hours",
13783
+ "minutes",
13784
+ "seconds",
13785
+ "showDays",
13786
+ "showSeconds",
13787
+ "label"
13788
+ ]);
13789
+ const theme2 = react.useTheme();
13790
+ const { countdown } = theme2.tokens.components;
13791
+ const { countdownItem } = countdown;
13792
+ const units = [
13793
+ showDays && {
13794
+ key: "days",
13795
+ value: days,
13796
+ label: UNIT_LABELS.days
13797
+ },
13798
+ { key: "hours", value: hours, label: UNIT_LABELS.hours },
13799
+ { key: "minutes", value: minutes, label: UNIT_LABELS.minutes },
13800
+ showSeconds && {
13801
+ key: "seconds",
13802
+ value: seconds,
13803
+ label: UNIT_LABELS.seconds
13804
+ }
13805
+ ].filter(Boolean);
13806
+ const colon = (key) => /* @__PURE__ */ jsxRuntime.jsx(
13807
+ Typography,
13808
+ {
13809
+ token: countdown.typography.colon,
13810
+ color: countdown.colour.text.colon,
13811
+ children: ":"
13812
+ },
13813
+ key
13814
+ );
13815
+ if (layout === "inline") {
13816
+ return /* @__PURE__ */ jsxRuntime.jsxs(
13817
+ InlineRoot,
13818
+ __spreadProps(__spreadValues({
13819
+ ref,
13820
+ rootGap: parseTokenValue54(countdown.spacing.gap),
13821
+ rootVerticalPadding: parseTokenValue54(
13822
+ countdown.spacing.verticalPadding
13823
+ ),
13824
+ rootHorizontalPadding: parseTokenValue54(
13825
+ countdown.spacing.horizontalPadding
13826
+ ),
13827
+ rootBgColor: countdown.colour.background.default,
13828
+ rootBorderRadius: parseTokenValue54(countdown.borderRadius.default)
13829
+ }, rest), {
13830
+ children: [
13831
+ label != null && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", size: "md", color: "primary", children: label }),
13832
+ /* @__PURE__ */ jsxRuntime.jsx(
13833
+ InlineGroup,
13834
+ {
13835
+ groupGap: parseTokenValue54(countdown.countdownGroup.spacing.gap),
13836
+ children: units.map((unit, index) => /* @__PURE__ */ jsxRuntime.jsxs(React60__default.default.Fragment, { children: [
13837
+ index > 0 && colon(`colon-${unit.key}`),
13838
+ /* @__PURE__ */ jsxRuntime.jsxs(
13839
+ InlineCount,
13840
+ {
13841
+ countGap: parseTokenValue54(countdown.count.spacing.gap),
13842
+ children: [
13843
+ /* @__PURE__ */ jsxRuntime.jsx(
13844
+ Typography,
13845
+ {
13846
+ variant: "body",
13847
+ weight: "bold",
13848
+ size: "md",
13849
+ color: "primary",
13850
+ children: pad(unit.value)
13851
+ }
13852
+ ),
13853
+ /* @__PURE__ */ jsxRuntime.jsx(
13854
+ Typography,
13855
+ {
13856
+ variant: "body",
13857
+ weight: "medium",
13858
+ size: "xs",
13859
+ color: "secondary",
13860
+ children: unit.label
13861
+ }
13862
+ )
13863
+ ]
13864
+ }
13865
+ )
13866
+ ] }, unit.key))
13867
+ }
13868
+ )
13869
+ ]
13870
+ })
13871
+ );
13872
+ }
13873
+ return /* @__PURE__ */ jsxRuntime.jsx(
13874
+ StackedRoot,
13875
+ __spreadProps(__spreadValues({
13876
+ ref,
13877
+ rootGap: parseTokenValue54(countdown.spacing.gap)
13878
+ }, rest), {
13879
+ children: units.map((unit, index) => /* @__PURE__ */ jsxRuntime.jsxs(React60__default.default.Fragment, { children: [
13880
+ index > 0 && colon(`colon-${unit.key}`),
13881
+ /* @__PURE__ */ jsxRuntime.jsxs(
13882
+ StackedItem,
13883
+ {
13884
+ itemGap: parseTokenValue54(countdownItem.spacing.gap),
13885
+ itemVerticalPadding: parseTokenValue54(
13886
+ countdownItem.spacing.verticalPadding
13887
+ ),
13888
+ itemHorizontalPadding: parseTokenValue54(
13889
+ countdownItem.spacing.horizontalPadding
13890
+ ),
13891
+ itemBgColor: countdownItem.colour.background.default,
13892
+ itemBorderRadius: parseTokenValue54(
13893
+ countdownItem.borderRadius.default
13894
+ ),
13895
+ children: [
13896
+ /* @__PURE__ */ jsxRuntime.jsx(
13897
+ StackedCountBox,
13898
+ {
13899
+ countPaddingTop: parseTokenValue54(
13900
+ countdownItem.count.spacing.paddingTop
13901
+ ),
13902
+ countBgColor: countdownItem.count.colour.background.default,
13903
+ countBorderRadius: parseTokenValue54(
13904
+ countdownItem.count.borderRadius.default
13905
+ ),
13906
+ children: /* @__PURE__ */ jsxRuntime.jsx(
13907
+ Typography,
13908
+ {
13909
+ token: countdownItem.typography.count,
13910
+ color: countdownItem.count.colour.text.count,
13911
+ children: pad(unit.value)
13912
+ }
13913
+ )
13914
+ }
13915
+ ),
13916
+ /* @__PURE__ */ jsxRuntime.jsx(
13917
+ Typography,
13918
+ {
13919
+ token: countdownItem.typography.label,
13920
+ color: countdownItem.colour.text.label,
13921
+ children: unit.label
13922
+ }
13923
+ )
13924
+ ]
13925
+ }
13926
+ )
13927
+ ] }, unit.key))
13928
+ })
13929
+ );
13930
+ }
13931
+ );
13932
+ Countdown.displayName = "Countdown";
13933
+ var parseTokenValue55 = (value) => {
13934
+ if (typeof value === "number") return value;
13935
+ return parseFloat(value);
13936
+ };
13937
+ var BadgeContainer = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
13938
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
13939
+ const { sizing, borderRadius } = theme2.tokens.semantics.dimensions;
13940
+ const { colour } = theme2.tokens.semantics;
13941
+ return {
13942
+ display: "flex",
13943
+ flexDirection: "row",
13944
+ gap: parseTokenValue55(spacing["2xs"]),
13945
+ alignItems: "center",
13946
+ justifyContent: "center",
13947
+ height: parseTokenValue55(sizing["2xl"]),
13948
+ paddingRight: parseTokenValue55(spacing.sm),
13949
+ backgroundColor: colour.background.container.alt,
13950
+ borderTopRightRadius: parseTokenValue55(borderRadius.xs),
13951
+ borderBottomRightRadius: parseTokenValue55(borderRadius.xs)
13952
+ };
13953
+ });
13954
+ var BadgeIcon = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
13955
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
13956
+ const sizing = theme2.tokens.semantics.dimensions.sizing;
13957
+ return {
13958
+ display: "flex",
13959
+ alignItems: "center",
13960
+ justifyContent: "center",
13961
+ width: parseTokenValue55(sizing.md),
13962
+ height: parseTokenValue55(sizing.md),
13963
+ marginLeft: parseTokenValue55(spacing.xs),
13964
+ flexShrink: 0
13965
+ };
13966
+ });
13967
+ var Badge2 = React60__default.default.forwardRef(
13968
+ (_a, ref) => {
13969
+ var _b = _a, { icon, text } = _b, rest = __objRest(_b, ["icon", "text"]);
13970
+ return /* @__PURE__ */ jsxRuntime.jsxs(BadgeContainer, __spreadProps(__spreadValues({ ref }, rest), { children: [
13971
+ icon && /* @__PURE__ */ jsxRuntime.jsx(BadgeIcon, { children: icon }),
13972
+ /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", size: "sm", weight: "bold", children: text })
13973
+ ] }));
13974
+ }
13975
+ );
13976
+ Badge2.displayName = "ProductListingCard.Badge";
13977
+ var StyledGrid = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
13978
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
13979
+ return {
13980
+ display: "grid",
13981
+ "grid-column-gap": spacing.sm,
13982
+ "grid-row-gap": spacing.xl
13983
+ };
13984
+ });
13985
+ var Grid = React60__default.default.forwardRef(
13986
+ (_a, ref) => {
13987
+ var _b = _a, { children, xs = 1, md = 2, lg = 3 } = _b, rest = __objRest(_b, ["children", "xs", "md", "lg"]);
13988
+ const { width } = reactNative.useWindowDimensions();
13989
+ const breakpoints = pawprintTokens.DEFAULT_THEME_OPTIONS.tokens.semantics.dimensions.breakpoints.spacing;
13990
+ const SM_BREAKPOINT = parseFloat(String(breakpoints.sm));
13991
+ const MD_BREAKPOINT = parseFloat(String(breakpoints.md));
13992
+ const getItemsPerRow = () => {
13993
+ if (width >= MD_BREAKPOINT) return lg;
13994
+ if (width >= SM_BREAKPOINT) return md;
13995
+ return xs;
13996
+ };
13997
+ const itemsPerRow = getItemsPerRow();
13998
+ return /* @__PURE__ */ jsxRuntime.jsx(
13999
+ StyledGrid,
14000
+ __spreadProps(__spreadValues({
14001
+ ref,
14002
+ style: {
14003
+ gridTemplateColumns: `repeat(${itemsPerRow}, 1fr)`
14004
+ }
14005
+ }, rest), {
14006
+ children
14007
+ })
14008
+ );
14009
+ }
14010
+ );
14011
+ Grid.displayName = "ProductListingCard.Grid";
14012
+ var parseTokenValue56 = (value) => {
14013
+ if (typeof value === "number") return value;
14014
+ return parseFloat(value);
14015
+ };
14016
+ var StyledRoot16 = styled60__default.default(reactNative.Pressable)(({ theme: theme2 }) => {
14017
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14018
+ return {
14019
+ display: "flex",
14020
+ flexDirection: "column",
14021
+ gap: parseTokenValue56(spacing.md),
14022
+ alignItems: "flex-start",
14023
+ width: "100%"
14024
+ };
14025
+ });
14026
+ var ImageContainer = styled60__default.default(reactNative.View)({
14027
+ position: "relative",
14028
+ width: "100%",
14029
+ aspectRatio: 1,
14030
+ overflow: "hidden"
14031
+ });
14032
+ var StyledImage2 = styled60__default.default(reactNative.Image)({
14033
+ width: "100%",
14034
+ height: "100%",
14035
+ resizeMode: "cover"
14036
+ });
14037
+ var BadgeContainer2 = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14038
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14039
+ const { sizing, borderRadius } = theme2.tokens.semantics.dimensions;
14040
+ const { colour } = theme2.tokens.semantics;
14041
+ return {
14042
+ position: "absolute",
14043
+ top: parseTokenValue56(spacing.md),
14044
+ left: 0,
14045
+ display: "flex",
14046
+ flexDirection: "row",
14047
+ gap: parseTokenValue56(spacing["2xs"]),
14048
+ alignItems: "center",
14049
+ justifyContent: "center",
14050
+ height: parseTokenValue56(sizing["2xl"]),
14051
+ paddingRight: parseTokenValue56(spacing.sm),
14052
+ backgroundColor: colour.background.container.alt,
14053
+ borderTopRightRadius: parseTokenValue56(borderRadius.sm),
14054
+ borderBottomRightRadius: parseTokenValue56(borderRadius.sm)
14055
+ };
14056
+ });
14057
+ var ContentContainer = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14058
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14059
+ return {
14060
+ display: "flex",
14061
+ flexDirection: "column",
14062
+ gap: parseTokenValue56(spacing.md),
14063
+ alignItems: "flex-start",
14064
+ width: "100%"
14065
+ };
14066
+ });
14067
+ var DetailsContainer = styled60__default.default(reactNative.View)({
14068
+ display: "flex",
14069
+ flexDirection: "column",
14070
+ alignItems: "flex-start",
14071
+ width: "100%"
14072
+ });
14073
+ var CategoryWrapper = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14074
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14075
+ return {
14076
+ marginBottom: parseTokenValue56(spacing["3xs"])
14077
+ };
14078
+ });
14079
+ var TitleContainer = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14080
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14081
+ return {
14082
+ display: "flex",
14083
+ flexDirection: "row",
14084
+ width: "100%",
14085
+ marginBottom: parseTokenValue56(spacing.xs)
14086
+ };
14087
+ });
14088
+ var SizeWrapper = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14089
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14090
+ return {
14091
+ marginBottom: parseTokenValue56(spacing.md)
14092
+ };
14093
+ });
14094
+ var PricingContainer = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14095
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14096
+ return {
14097
+ display: "flex",
14098
+ flexDirection: "row",
14099
+ gap: Math.round(parseFloat(spacing["2xs"])),
14100
+ alignItems: "center",
14101
+ width: "100%"
14102
+ };
14103
+ });
14104
+ var _ProductListingCard = React60__default.default.forwardRef(
14105
+ (_a, ref) => {
14106
+ var _b = _a, {
14107
+ image,
14108
+ imageAlt,
14109
+ badge,
14110
+ category,
14111
+ title,
14112
+ size,
14113
+ price,
14114
+ wasPrice,
14115
+ showBadge = true,
14116
+ showCategory = true,
14117
+ showTitle = true,
14118
+ showSize = true,
14119
+ showPrice = true,
14120
+ onPress
14121
+ } = _b, rest = __objRest(_b, [
14122
+ "image",
14123
+ "imageAlt",
14124
+ "badge",
14125
+ "category",
14126
+ "title",
14127
+ "size",
14128
+ "price",
14129
+ "wasPrice",
14130
+ "showBadge",
14131
+ "showCategory",
14132
+ "showTitle",
14133
+ "showSize",
14134
+ "showPrice",
14135
+ "onPress"
14136
+ ]);
14137
+ return /* @__PURE__ */ jsxRuntime.jsxs(StyledRoot16, __spreadProps(__spreadValues({ ref, onPress }, rest), { children: [
14138
+ /* @__PURE__ */ jsxRuntime.jsxs(ImageContainer, { children: [
14139
+ image && /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { flex: 1, width: "100%", height: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(
14140
+ StyledImage2,
14141
+ {
14142
+ source: image,
14143
+ accessibilityLabel: imageAlt,
14144
+ accessible: true
14145
+ }
14146
+ ) }),
14147
+ showBadge && badge && /* @__PURE__ */ jsxRuntime.jsx(BadgeContainer2, { children: badge })
14148
+ ] }),
14149
+ /* @__PURE__ */ jsxRuntime.jsxs(ContentContainer, { children: [
14150
+ /* @__PURE__ */ jsxRuntime.jsxs(DetailsContainer, { children: [
14151
+ showCategory && category && /* @__PURE__ */ jsxRuntime.jsx(CategoryWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", size: "sm", color: "secondary", children: category }) }),
14152
+ showTitle && /* @__PURE__ */ jsxRuntime.jsx(TitleContainer, { children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "heading", size: "xs", children: title }) }),
14153
+ showSize && size && /* @__PURE__ */ jsxRuntime.jsx(SizeWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", size: "md", color: "secondary", children: size }) })
14154
+ ] }),
14155
+ showPrice && price && /* @__PURE__ */ jsxRuntime.jsxs(PricingContainer, { children: [
14156
+ /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", size: "md", color: "secondary", children: price }),
14157
+ wasPrice && /* @__PURE__ */ jsxRuntime.jsx(
14158
+ Typography,
14159
+ {
14160
+ variant: "body",
14161
+ size: "md",
14162
+ color: "secondary",
14163
+ textDecoration: "line-through",
14164
+ children: wasPrice
14165
+ }
14166
+ )
14167
+ ] })
14168
+ ] })
14169
+ ] }));
14170
+ }
14171
+ );
14172
+ _ProductListingCard.displayName = "ProductListingCard";
14173
+ var ProductListingCardWithBadgeAndGrid = Object.assign(_ProductListingCard, {
14174
+ Badge: Badge2,
14175
+ Grid
14176
+ });
14177
+ var StyledCardContainer = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14178
+ const { spacing, borderRadius } = theme2.tokens.semantics.dimensions;
14179
+ const { colour } = theme2.tokens.semantics;
14180
+ const spacingMd = parseTokenValue8(spacing.md);
14181
+ const spacingXl = parseTokenValue8(spacing.xl);
14182
+ return {
14183
+ flexDirection: "row",
14184
+ width: "100%",
14185
+ height: "100%",
14186
+ maxHeight: spacingXl * 6 + spacingMd,
14187
+ backgroundColor: colour.background.surface.default,
14188
+ borderWidth: 1,
14189
+ borderColor: colour.border.default,
14190
+ borderRadius: parseTokenValue8(borderRadius.md),
14191
+ overflow: "hidden",
14192
+ shadowColor: "#522a10",
14193
+ shadowOffset: { width: 0, height: spacingMd / 4 },
14194
+ shadowOpacity: 0.05,
14195
+ shadowRadius: spacingXl - 4,
14196
+ elevation: 5,
14197
+ zIndex: 1
14198
+ };
14199
+ });
14200
+ var StyledImage3 = styled60__default.default(reactNative.View)(() => ({
14201
+ flexShrink: 0,
14202
+ backgroundColor: "#f5f5f5",
14203
+ overflow: "hidden",
14204
+ aspectRatio: "1 / 1",
14205
+ height: "100%"
14206
+ }));
14207
+ var StyledContentArea = styled60__default.default(reactNative.View)(({ theme: theme2 }) => {
14208
+ const { spacing } = theme2.tokens.semantics.dimensions;
14209
+ return {
14210
+ flex: 1,
14211
+ paddingHorizontal: parseTokenValue8(spacing.md),
14212
+ paddingVertical: parseTokenValue8(spacing.md),
14213
+ gap: parseTokenValue8(spacing.xs),
14214
+ justifyContent: "space-between"
14215
+ };
14216
+ });
14217
+ var StyledTextContainer = styled60__default.default(reactNative.View)(() => ({
14218
+ gap: 2
14219
+ }));
14220
+ var StyledBannerWrapper = styled60__default.default(reactNative.View)(() => ({
14221
+ width: "100%",
14222
+ marginTop: -48,
14223
+ paddingTop: 24,
14224
+ paddingBottom: 16
14225
+ }));
14226
+ var StyledRootWrapper = styled60__default.default(reactNative.View)(() => {
14227
+ return {
14228
+ flexDirection: "column",
14229
+ width: "100%",
14230
+ height: "100%"
14231
+ };
14232
+ });
14233
+ var StyledNotification = styled60__default.default(Notification)(({ theme: theme2 }) => {
14234
+ const { spacing } = theme2.tokens.semantics.dimensions;
14235
+ return {
14236
+ top: parseTokenValue8(spacing.md),
14237
+ paddingHorizontal: parseTokenValue8(spacing.xl),
14238
+ paddingVertical: parseTokenValue8(spacing.md)
14239
+ };
14240
+ });
14241
+ var ProductDisplayCard = React60__default.default.forwardRef(
14242
+ (_a, ref) => {
14243
+ var _b = _a, {
14244
+ device = "mobile",
14245
+ title,
14246
+ subtext,
14247
+ showSubtext = true,
14248
+ quantity = 1,
14249
+ onQuantityChange,
14250
+ showQuantityPicker = false,
14251
+ disableQuantityButtons = false,
14252
+ hideQuantityButtons = false,
14253
+ showIncrementButton,
14254
+ showDecrementButton,
14255
+ incrementDisabled = false,
14256
+ decrementDisabled = false,
14257
+ image,
14258
+ banner,
14259
+ showBanner = false,
14260
+ bannerType = "info",
14261
+ showBannerIcon = false
14262
+ } = _b, rest = __objRest(_b, [
14263
+ "device",
14264
+ "title",
14265
+ "subtext",
14266
+ "showSubtext",
14267
+ "quantity",
14268
+ "onQuantityChange",
14269
+ "showQuantityPicker",
14270
+ "disableQuantityButtons",
14271
+ "hideQuantityButtons",
14272
+ "showIncrementButton",
14273
+ "showDecrementButton",
14274
+ "incrementDisabled",
14275
+ "decrementDisabled",
14276
+ "image",
14277
+ "banner",
14278
+ "showBanner",
14279
+ "bannerType",
14280
+ "showBannerIcon"
14281
+ ]);
14282
+ const handleQuantityChange = (newQuantity) => {
14283
+ if (newQuantity >= 1) {
14284
+ onQuantityChange == null ? void 0 : onQuantityChange(newQuantity);
14285
+ }
14286
+ };
14287
+ const cardContent = /* @__PURE__ */ jsxRuntime.jsxs(StyledCardContainer, __spreadProps(__spreadValues({ ref, cardDevice: device }, rest), { children: [
14288
+ image && /* @__PURE__ */ jsxRuntime.jsx(StyledImage3, { children: image }),
14289
+ /* @__PURE__ */ jsxRuntime.jsxs(StyledContentArea, { contentDevice: device, children: [
14290
+ /* @__PURE__ */ jsxRuntime.jsxs(StyledTextContainer, { children: [
14291
+ /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "heading", size: "xs", color: "primary", children: title }),
14292
+ showSubtext && subtext && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", size: "sm", color: "secondary", children: subtext })
14293
+ ] }),
14294
+ showQuantityPicker && /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsxRuntime.jsx(
14295
+ NumberField,
14296
+ {
14297
+ size: "sm",
14298
+ value: String(quantity),
14299
+ onChangeText: (text) => {
14300
+ const value = parseInt(text, 10);
14301
+ if (!isNaN(value)) {
14302
+ handleQuantityChange(value);
14303
+ }
14304
+ },
14305
+ onIncrement: () => handleQuantityChange(quantity + 1),
14306
+ onDecrement: () => handleQuantityChange(quantity - 1),
14307
+ min: 1,
14308
+ accessible: true,
14309
+ accessibilityLabel: `Quantity: ${quantity}`,
14310
+ showIncrementButton: showIncrementButton !== void 0 ? showIncrementButton : !hideQuantityButtons,
14311
+ showDecrementButton: showDecrementButton !== void 0 ? showDecrementButton : !hideQuantityButtons,
14312
+ incrementDisabled: incrementDisabled || disableQuantityButtons,
14313
+ decrementDisabled: decrementDisabled || disableQuantityButtons
14314
+ }
14315
+ ) })
14316
+ ] })
14317
+ ] }));
14318
+ if (showBanner && banner) {
14319
+ return /* @__PURE__ */ jsxRuntime.jsxs(StyledRootWrapper, { children: [
14320
+ cardContent,
14321
+ /* @__PURE__ */ jsxRuntime.jsx(StyledBannerWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(
14322
+ StyledNotification,
14323
+ {
14324
+ variant: "inline",
14325
+ type: bannerType,
14326
+ showIcon: showBannerIcon,
14327
+ children: banner
14328
+ }
14329
+ ) })
14330
+ ] });
14331
+ }
14332
+ return cardContent;
14333
+ }
14334
+ );
14335
+ ProductDisplayCard.displayName = "ProductDisplayCard";
14336
+ var TabNavigationContext = React60__default.default.createContext(void 0);
14337
+ var useTabNavigationContext = () => {
14338
+ const context = React60__default.default.useContext(TabNavigationContext);
14339
+ if (!context) {
14340
+ throw new Error(
14341
+ "TabNavigation.List, TabNavigation.Tab and TabNavigation.Panel must be used within a TabNavigation component."
14342
+ );
14343
+ }
14344
+ return context;
14345
+ };
14346
+ var parseTokenValue57 = (value) => parseFloat(value);
14347
+ var StyledFixedList = styled60__default.default(reactNative.View)({
14348
+ flexDirection: "row",
14349
+ alignItems: "stretch",
14350
+ width: "100%"
14351
+ });
14352
+ var StyledTab = styled60__default.default(reactNative.Pressable)(
14353
+ ({
14354
+ tabHeight,
14355
+ tabMinWidth,
14356
+ tabPaddingTop,
14357
+ tabPaddingBottom,
14358
+ tabPaddingHorizontal,
14359
+ tabGap,
14360
+ tabBorderWidth,
14361
+ tabBorderColor,
14362
+ tabFlex
14363
+ }) => __spreadValues({
14364
+ flexDirection: "row",
14365
+ alignItems: "center",
14366
+ justifyContent: "center",
14367
+ gap: tabGap,
14368
+ height: tabHeight,
14369
+ minWidth: tabMinWidth,
14370
+ paddingTop: tabPaddingTop,
14371
+ paddingBottom: tabPaddingBottom,
14372
+ paddingHorizontal: tabPaddingHorizontal,
14373
+ borderBottomWidth: tabBorderWidth,
14374
+ borderBottomColor: tabBorderColor
14375
+ }, tabFlex !== void 0 ? { flex: tabFlex } : { flexShrink: 0 })
14376
+ );
14377
+ var TabNavigationList = React60__default.default.forwardRef(
14378
+ (_a, ref) => {
14379
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
14380
+ const { layout } = useTabNavigationContext();
14381
+ if (layout === "intrinsic") {
14382
+ return /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.List, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, __spreadProps(__spreadValues({ ref }, rest), { children: /* @__PURE__ */ jsxRuntime.jsx(
14383
+ reactNative.ScrollView,
14384
+ {
14385
+ horizontal: true,
14386
+ showsHorizontalScrollIndicator: false,
14387
+ contentContainerStyle: styles4.scrollContent,
14388
+ children
14389
+ }
14390
+ ) })) });
14391
+ }
14392
+ return /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.List, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(StyledFixedList, __spreadProps(__spreadValues({ ref }, rest), { children })) });
14393
+ }
14394
+ );
14395
+ TabNavigationList.displayName = "TabNavigation.List";
14396
+ var TabNavigationTab = React60__default.default.forwardRef(
14397
+ (_a, ref) => {
14398
+ var _b = _a, { value, disabled = false, children } = _b, rest = __objRest(_b, ["value", "disabled", "children"]);
14399
+ const { layout } = useTabNavigationContext();
14400
+ const { value: selectedValue } = TabsPrimitive__namespace.useRootContext();
14401
+ const theme2 = react.useTheme();
14402
+ const { tabItem, tabitem } = theme2.tokens.components.tabNavigation;
14403
+ const { spacing, colour, borderWidth, typography } = tabItem;
14404
+ const selected = selectedValue === value;
14405
+ const token = selected ? typography.selected : typography.default;
14406
+ const borderColour = selected ? colour.border.default : colour.border.disabled;
14407
+ const textColour = disabled ? theme2.tokens.primitives.colour.brand.brown["5"] : colour.text.default;
14408
+ return /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.Trigger, { value, disabled, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
14409
+ StyledTab,
14410
+ __spreadProps(__spreadValues({
14411
+ ref,
14412
+ tabHeight: parseTokenValue57(tabitem.size.height),
14413
+ tabMinWidth: parseTokenValue57(tabitem.size.minWidth),
14414
+ tabPaddingTop: parseTokenValue57(spacing.topPadding),
14415
+ tabPaddingBottom: parseTokenValue57(spacing.bottomPadding),
14416
+ tabPaddingHorizontal: parseTokenValue57(spacing.horizontalPadding),
14417
+ tabGap: parseTokenValue57(spacing.gap),
14418
+ tabBorderWidth: parseTokenValue57(borderWidth.default),
14419
+ tabBorderColor: borderColour,
14420
+ tabFlex: layout === "fixed" ? 1 : void 0
14421
+ }, rest), {
14422
+ children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { token, color: textColour, children })
14423
+ })
14424
+ ) });
14425
+ }
14426
+ );
14427
+ TabNavigationTab.displayName = "TabNavigation.Tab";
14428
+ var TabNavigationPanel = React60__default.default.forwardRef(
14429
+ (_a, ref) => {
14430
+ var _b = _a, { value, children } = _b, rest = __objRest(_b, ["value", "children"]);
14431
+ const { animation } = useTabNavigationContext();
14432
+ return /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.Content, { value, asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Animated5, __spreadProps(__spreadValues({ ref, variant: animation, exit: false }, rest), { children })) });
14433
+ }
14434
+ );
14435
+ TabNavigationPanel.displayName = "TabNavigation.Panel";
14436
+ var TabNavigationRoot = React60__default.default.forwardRef(
14437
+ (_a, ref) => {
14438
+ var _b = _a, {
14439
+ value,
14440
+ defaultValue,
14441
+ onValueChange,
14442
+ layout = "fixed",
14443
+ animation = "slideIn",
14444
+ children
14445
+ } = _b, rest = __objRest(_b, [
14446
+ "value",
14447
+ "defaultValue",
14448
+ "onValueChange",
14449
+ "layout",
14450
+ "animation",
14451
+ "children"
14452
+ ]);
14453
+ const isControlled = typeof value === "string";
14454
+ const [uncontrolledValue, setUncontrolledValue] = React60__default.default.useState(
14455
+ () => defaultValue != null ? defaultValue : ""
14456
+ );
14457
+ const currentValue = isControlled ? value : uncontrolledValue;
14458
+ const handleValueChange = React60__default.default.useCallback(
14459
+ (newValue) => {
14460
+ if (!isControlled) {
14461
+ setUncontrolledValue(newValue);
14462
+ }
14463
+ onValueChange == null ? void 0 : onValueChange(newValue);
14464
+ },
14465
+ [isControlled, onValueChange]
14466
+ );
14467
+ const contextValue = React60__default.default.useMemo(
14468
+ () => ({ layout, animation }),
14469
+ [layout, animation]
14470
+ );
14471
+ return /* @__PURE__ */ jsxRuntime.jsx(TabNavigationContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
14472
+ TabsPrimitive__namespace.Root,
14473
+ __spreadProps(__spreadValues({
14474
+ ref,
14475
+ value: currentValue,
14476
+ onValueChange: handleValueChange
14477
+ }, rest), {
14478
+ children
14479
+ })
14480
+ ) });
14481
+ }
14482
+ );
14483
+ TabNavigationRoot.displayName = "TabNavigation";
14484
+ var styles4 = reactNative.StyleSheet.create({
14485
+ scrollContent: {
14486
+ flexDirection: "row",
14487
+ alignItems: "stretch"
14488
+ }
14489
+ });
14490
+ var TabNavigation = Object.assign(TabNavigationRoot, {
14491
+ List: TabNavigationList,
14492
+ Tab: TabNavigationTab,
14493
+ Panel: TabNavigationPanel
14494
+ });
13685
14495
 
13686
14496
  Object.defineProperty(exports, "tokens", {
13687
14497
  enumerable: true,
@@ -13689,7 +14499,7 @@ Object.defineProperty(exports, "tokens", {
13689
14499
  });
13690
14500
  Object.defineProperty(exports, "styled", {
13691
14501
  enumerable: true,
13692
- get: function () { return styled52__default.default; }
14502
+ get: function () { return styled60__default.default; }
13693
14503
  });
13694
14504
  exports.Accordion = Accordion;
13695
14505
  exports.Animated = Animated5;
@@ -13704,6 +14514,7 @@ exports.Checkbox = Checkbox;
13704
14514
  exports.CheckboxGroup = CheckboxGroup;
13705
14515
  exports.CopyField = CopyField;
13706
14516
  exports.CopyFieldInput = CopyFieldInput;
14517
+ exports.Countdown = Countdown;
13707
14518
  exports.DatePicker = DatePicker;
13708
14519
  exports.Drawer = Drawer;
13709
14520
  exports.FilterTab = FilterTab;
@@ -13730,6 +14541,8 @@ exports.PasswordFieldInput = PasswordFieldInput;
13730
14541
  exports.PasswordFieldRequirements = PasswordFieldRequirements;
13731
14542
  exports.PawprintProvider = PawprintProvider;
13732
14543
  exports.PictureSelector = PictureSelector;
14544
+ exports.ProductDisplayCard = ProductDisplayCard;
14545
+ exports.ProductListingCard = ProductListingCardWithBadgeAndGrid;
13733
14546
  exports.Progress = Progress;
13734
14547
  exports.Radio = Radio;
13735
14548
  exports.RadioGroup = RadioGroup;
@@ -13744,6 +14557,7 @@ exports.SelectFieldValue = SelectFieldValue;
13744
14557
  exports.Slider = Slider;
13745
14558
  exports.Spinner = Spinner;
13746
14559
  exports.Switch = Switch;
14560
+ exports.TabNavigation = TabNavigation;
13747
14561
  exports.Tag = Tag;
13748
14562
  exports.TextArea = TextArea;
13749
14563
  exports.TextAreaField = TextAreaField;