@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.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { useTheme, ThemeProvider as ThemeProvider$1 } from '@emotion/react';
2
- import { Brand, Theme, THEME_OPTIONS_MAP, DEFAULT_THEME_OPTIONS, tokens } from '@butternutbox/pawprint-tokens';
2
+ import { Brand, Theme, DEFAULT_THEME_OPTIONS, THEME_OPTIONS_MAP, tokens } from '@butternutbox/pawprint-tokens';
3
3
  export { tokens } from '@butternutbox/pawprint-tokens';
4
- import styled52 from '@emotion/native';
4
+ import styled60 from '@emotion/native';
5
5
  export { default as styled } from '@emotion/native';
6
6
  import React60, { createContext, forwardRef, useRef, useEffect, useState, useCallback, useMemo, useContext } from 'react';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -20,6 +20,7 @@ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
20
20
  import { scheduleOnRN } from 'react-native-worklets';
21
21
  import * as TooltipPrimitive from '@rn-primitives/tooltip';
22
22
  import { isSameDay, isToday, isBefore, format } from 'date-fns';
23
+ import * as TabsPrimitive from '@rn-primitives/tabs';
23
24
 
24
25
  var __defProp = Object.defineProperty;
25
26
  var __defProps = Object.defineProperties;
@@ -202,7 +203,7 @@ var VARIANT_DEFAULTS = {
202
203
  heading: { size: "md" },
203
204
  display: { size: "lg" }
204
205
  };
205
- var StyledText = styled52(Text)({});
206
+ var StyledText = styled60(Text)({});
206
207
  var Typography = React60.forwardRef(
207
208
  (props, ref) => {
208
209
  const theme2 = useTheme();
@@ -286,7 +287,7 @@ var Typography = React60.forwardRef(
286
287
  );
287
288
  Typography.displayName = "Typography";
288
289
  var parseTokenValue2 = (value) => parseFloat(value);
289
- var StyledIconRoot = styled52(View)(({ iconDimension }) => ({
290
+ var StyledIconRoot = styled60(View)(({ iconDimension }) => ({
290
291
  alignItems: "center",
291
292
  justifyContent: "center",
292
293
  flexShrink: 0,
@@ -3828,7 +3829,7 @@ var SIZE_MAP = {
3828
3829
  lg: "large"
3829
3830
  };
3830
3831
  var parseTokenValue3 = (value) => parseFloat(value);
3831
- var StyledRoot = styled52(AvatarPrimitive.Root)(({ theme: theme2, size, border }) => {
3832
+ var StyledRoot = styled60(AvatarPrimitive.Root)(({ theme: theme2, size, border }) => {
3832
3833
  const { avatar } = theme2.tokens.components;
3833
3834
  const { borderRadius } = theme2.tokens.semantics.dimensions;
3834
3835
  const tokenSize = SIZE_MAP[size];
@@ -3849,12 +3850,12 @@ var StyledRoot = styled52(AvatarPrimitive.Root)(({ theme: theme2, size, border }
3849
3850
  borderStyle: "solid"
3850
3851
  });
3851
3852
  });
3852
- var StyledImage = styled52(AvatarPrimitive.Image)({
3853
+ var StyledImage = styled60(AvatarPrimitive.Image)({
3853
3854
  width: "100%",
3854
3855
  height: "100%",
3855
3856
  resizeMode: "cover"
3856
3857
  });
3857
- var StyledFallback = styled52(AvatarPrimitive.Fallback)(({ theme: theme2 }) => {
3858
+ var StyledFallback = styled60(AvatarPrimitive.Fallback)(({ theme: theme2 }) => {
3858
3859
  const { background, text } = theme2.tokens.semantics.colour;
3859
3860
  return {
3860
3861
  display: "flex",
@@ -3866,7 +3867,7 @@ var StyledFallback = styled52(AvatarPrimitive.Fallback)(({ theme: theme2 }) => {
3866
3867
  color: text.primary
3867
3868
  };
3868
3869
  });
3869
- var StyledIcon = styled52(Icon)(({
3870
+ var StyledIcon = styled60(Icon)(({
3870
3871
  theme: theme2,
3871
3872
  avatarSize
3872
3873
  }) => {
@@ -3930,7 +3931,7 @@ var AvatarRoot = React60.forwardRef(
3930
3931
  AvatarRoot.displayName = "Avatar";
3931
3932
  var Avatar = AvatarRoot;
3932
3933
  var parseTokenValue4 = (value) => parseFloat(value);
3933
- var Container = styled52(View)(({ theme: theme2, showBg }) => {
3934
+ var Container = styled60(View)(({ theme: theme2, showBg }) => {
3934
3935
  const { colour, sizing, borderRadius } = theme2.tokens.components.carouselControls.carouselControl;
3935
3936
  const spacing = theme2.tokens.semantics.dimensions.spacing;
3936
3937
  return {
@@ -3999,7 +4000,7 @@ var CarouselControls = React60.forwardRef(
3999
4000
  );
4000
4001
  CarouselControls.displayName = "CarouselControls";
4001
4002
  var parseTokenValue5 = (value) => parseFloat(value);
4002
- var StyledBadge = styled52(View)(({ theme: theme2, badgeVariant, badgeSize, pinned, top, bottom }) => {
4003
+ var StyledBadge = styled60(View)(({ theme: theme2, badgeVariant, badgeSize, pinned, top, bottom }) => {
4003
4004
  const { sizing, spacing, colour, primary, pinnedBadge } = theme2.tokens.components.badges.badge;
4004
4005
  const backgroundColorMap = {
4005
4006
  primary: colour.background.default,
@@ -4113,7 +4114,7 @@ var Badge = React60.forwardRef(
4113
4114
  );
4114
4115
  Badge.displayName = "Badge";
4115
4116
  var parseTokenValue6 = (value) => parseFloat(value);
4116
- var StyledSpinner = styled52(View)({});
4117
+ var StyledSpinner = styled60(View)({});
4117
4118
  var Spinner = React60.forwardRef(
4118
4119
  (_a, ref) => {
4119
4120
  var _b = _a, { size = "md", variant = "dark", style } = _b, rest = __objRest(_b, ["size", "variant", "style"]);
@@ -4179,12 +4180,12 @@ var sizeToTypographyKey = {
4179
4180
  md: "medium",
4180
4181
  sm: "small"
4181
4182
  };
4182
- var IconWrapper = styled52(View)({
4183
+ var IconWrapper = styled60(View)({
4183
4184
  alignItems: "center",
4184
4185
  justifyContent: "center",
4185
4186
  flexShrink: 0
4186
4187
  });
4187
- var StyledButton = styled52(Pressable)(
4188
+ var StyledButton = styled60(Pressable)(
4188
4189
  ({
4189
4190
  buttonHeight,
4190
4191
  buttonMinWidth,
@@ -4212,11 +4213,11 @@ var StyledButton = styled52(Pressable)(
4212
4213
  opacity: buttonOpacity
4213
4214
  }, buttonBorderWidth ? { borderWidth: buttonBorderWidth, borderColor: buttonBorderColor } : {}), buttonFullWidth ? { width: "100%" } : {})
4214
4215
  );
4215
- var StyledTextWrapper = styled52(View)(({ textOpacity }) => ({
4216
+ var StyledTextWrapper = styled60(View)(({ textOpacity }) => ({
4216
4217
  opacity: textOpacity,
4217
4218
  flexShrink: 0
4218
4219
  }));
4219
- var StyledSpinnerWrapper = styled52(View)({
4220
+ var StyledSpinnerWrapper = styled60(View)({
4220
4221
  position: "absolute",
4221
4222
  alignItems: "center",
4222
4223
  justifyContent: "center"
@@ -4337,8 +4338,10 @@ var Button = React60.forwardRef(
4337
4338
  }
4338
4339
  );
4339
4340
  Button.displayName = "Button";
4341
+
4342
+ // src/utils/token.ts
4340
4343
  var parseTokenValue8 = (value) => parseFloat(value);
4341
- var StyledHint = styled52(View)(({
4344
+ var StyledHint = styled60(View)(({
4342
4345
  theme: theme2,
4343
4346
  hintVariant
4344
4347
  }) => {
@@ -4375,7 +4378,7 @@ var sizeToIconSizeToken = {
4375
4378
  md: "lg",
4376
4379
  sm: "md"
4377
4380
  };
4378
- var StyledIconButton = styled52(Pressable)(
4381
+ var StyledIconButton = styled60(Pressable)(
4379
4382
  ({
4380
4383
  buttonDimension,
4381
4384
  buttonBorderRadius,
@@ -4394,12 +4397,12 @@ var StyledIconButton = styled52(Pressable)(
4394
4397
  opacity: buttonOpacity
4395
4398
  }, buttonBorderWidth ? { borderWidth: buttonBorderWidth, borderColor: buttonBorderColor } : {})
4396
4399
  );
4397
- var StyledIconWrapper = styled52(View)(({ iconDimension, iconOpacity }) => ({
4400
+ var StyledIconWrapper = styled60(View)(({ iconDimension, iconOpacity }) => ({
4398
4401
  width: iconDimension,
4399
4402
  height: iconDimension,
4400
4403
  opacity: iconOpacity
4401
4404
  }));
4402
- var StyledSpinnerWrapper2 = styled52(View)({
4405
+ var StyledSpinnerWrapper2 = styled60(View)({
4403
4406
  position: "absolute",
4404
4407
  alignItems: "center",
4405
4408
  justifyContent: "center"
@@ -4507,7 +4510,7 @@ var IconButton = React60.forwardRef(
4507
4510
  );
4508
4511
  IconButton.displayName = "IconButton";
4509
4512
  var parseTokenValue10 = (value) => parseFloat(value);
4510
- var StyledRoot2 = styled52(View)(({ illustrationHeight }) => ({
4513
+ var StyledRoot2 = styled60(View)(({ illustrationHeight }) => ({
4511
4514
  alignItems: "center",
4512
4515
  justifyContent: "center",
4513
4516
  flexShrink: 0,
@@ -4544,7 +4547,7 @@ var Illustration = React60.forwardRef(
4544
4547
  );
4545
4548
  Illustration.displayName = "Illustration";
4546
4549
  var parseTokenValue11 = (value) => parseFloat(value);
4547
- var StyledLabelRow = styled52(View)(({ labelGap }) => ({
4550
+ var StyledLabelRow = styled60(View)(({ labelGap }) => ({
4548
4551
  flexDirection: "row",
4549
4552
  alignItems: "center",
4550
4553
  gap: labelGap
@@ -4792,7 +4795,7 @@ var VolumeUp = (props, ref) => /* @__PURE__ */ jsx(Svg, __spreadProps2(__spreadV
4792
4795
  var ForwardRef612 = forwardRef(VolumeUp);
4793
4796
  ForwardRef612.category = "core";
4794
4797
  var parseTokenValue12 = (value) => parseFloat(value);
4795
- var StyledInputWrapper = styled52(Animated.View)(({ theme: theme2, isDisabled, containerWidth, containerHeight }) => {
4798
+ var StyledInputWrapper = styled60(Animated.View)(({ theme: theme2, isDisabled, containerWidth, containerHeight }) => {
4796
4799
  const { spacing, colour, borderRadius, size } = theme2.tokens.components.inputs;
4797
4800
  return {
4798
4801
  flexDirection: "row",
@@ -4806,25 +4809,31 @@ var StyledInputWrapper = styled52(Animated.View)(({ theme: theme2, isDisabled, c
4806
4809
  flexShrink: containerWidth !== void 0 ? 0 : void 0
4807
4810
  };
4808
4811
  });
4809
- var StyledInput = styled52(TextInput)(({ theme: theme2 }) => {
4810
- const { colour } = theme2.tokens.components.inputs;
4812
+ var StyledInput = styled60(TextInput)(({ theme: theme2 }) => {
4813
+ const { colour, field } = theme2.tokens.components.inputs;
4814
+ const placeholderTypography = field.placeholder.default;
4811
4815
  return __spreadValues({
4812
4816
  flex: 1,
4813
4817
  minWidth: 0,
4814
4818
  minHeight: 0,
4815
4819
  padding: 0,
4816
- color: colour.field.text.default
4820
+ color: colour.field.text.default,
4821
+ fontSize: parseTokenValue12(placeholderTypography.fontSize),
4822
+ fontFamily: placeholderTypography.fontFamily,
4823
+ fontWeight: placeholderTypography.fontWeight,
4824
+ lineHeight: parseTokenValue12(placeholderTypography.lineHeight),
4825
+ letterSpacing: parseTokenValue12(placeholderTypography.letterSpacing)
4817
4826
  }, {
4818
4827
  outlineStyle: "none",
4819
4828
  outlineWidth: 0,
4820
4829
  outlineColor: "transparent"
4821
4830
  });
4822
4831
  });
4823
- var StyledFocusRing = styled52(View)({
4832
+ var StyledFocusRing = styled60(View)({
4824
4833
  position: "absolute",
4825
4834
  pointerEvents: "none"
4826
4835
  });
4827
- var StyledIconSlot = styled52(View)({
4836
+ var StyledIconSlot = styled60(View)({
4828
4837
  alignItems: "center",
4829
4838
  justifyContent: "center",
4830
4839
  flexShrink: 0
@@ -4985,7 +4994,7 @@ var InputField = React60.forwardRef(
4985
4994
  }
4986
4995
  );
4987
4996
  InputField.displayName = "Input.Field";
4988
- var StyledDescriptionRow = styled52(View)({
4997
+ var StyledDescriptionRow = styled60(View)({
4989
4998
  flexDirection: "row",
4990
4999
  alignItems: "center"
4991
5000
  });
@@ -5005,7 +5014,7 @@ var InputDescription = React60.forwardRef(
5005
5014
  }
5006
5015
  );
5007
5016
  InputDescription.displayName = "Input.Description";
5008
- var StyledErrorRow = styled52(View)({
5017
+ var StyledErrorRow = styled60(View)({
5009
5018
  flexDirection: "row",
5010
5019
  alignItems: "center"
5011
5020
  });
@@ -5026,7 +5035,7 @@ var InputError = React60.forwardRef(
5026
5035
  );
5027
5036
  InputError.displayName = "Input.Error";
5028
5037
  var parseTokenValue13 = (value) => parseFloat(value);
5029
- var StyledRoot3 = styled52(View)(({ theme: theme2 }) => {
5038
+ var StyledRoot3 = styled60(View)(({ theme: theme2 }) => {
5030
5039
  const { spacing } = theme2.tokens.components.inputs;
5031
5040
  return {
5032
5041
  gap: parseTokenValue13(spacing.gap)
@@ -7669,7 +7678,7 @@ function registerLogo(brand, variant, component) {
7669
7678
  }
7670
7679
  LOGOS[brand][variant] = component;
7671
7680
  }
7672
- var StyledRoot4 = styled52(View)({
7681
+ var StyledRoot4 = styled60(View)({
7673
7682
  alignItems: "center",
7674
7683
  justifyContent: "center",
7675
7684
  flexShrink: 0
@@ -7697,7 +7706,7 @@ var Logo = React60.forwardRef(
7697
7706
  );
7698
7707
  Logo.displayName = "Logo";
7699
7708
  var parseTokenValue14 = (value) => parseFloat(value);
7700
- var StyledFieldGroup = styled52(View)(({ theme: theme2 }) => {
7709
+ var StyledFieldGroup = styled60(View)(({ theme: theme2 }) => {
7701
7710
  const { spacing } = theme2.tokens.components.inputs;
7702
7711
  return {
7703
7712
  flexDirection: "row",
@@ -7705,7 +7714,7 @@ var StyledFieldGroup = styled52(View)(({ theme: theme2 }) => {
7705
7714
  gap: parseTokenValue14(spacing.field.gap)
7706
7715
  };
7707
7716
  });
7708
- var StyledFieldTextWrapper = styled52(View)({
7717
+ var StyledFieldTextWrapper = styled60(View)({
7709
7718
  flexShrink: 0,
7710
7719
  justifyContent: "center"
7711
7720
  });
@@ -7744,7 +7753,7 @@ var NumberInputField = React60.forwardRef((_a, ref) => {
7744
7753
  });
7745
7754
  NumberInputField.displayName = "NumberInput.Field";
7746
7755
  var parseTokenValue15 = (value) => parseFloat(value);
7747
- var StyledRoot5 = styled52(View)(({ theme: theme2 }) => {
7756
+ var StyledRoot5 = styled60(View)(({ theme: theme2 }) => {
7748
7757
  const { spacing } = theme2.tokens.components.inputs;
7749
7758
  return {
7750
7759
  gap: parseTokenValue15(spacing.gap)
@@ -7798,13 +7807,13 @@ var NumberInput = Object.assign(NumberInputRoot, {
7798
7807
  Error: InputError
7799
7808
  });
7800
7809
  var parseTokenValue16 = (value) => parseFloat(value);
7801
- var StyledContainer = styled52(View)(({ switchGap, switchOpacity }) => ({
7810
+ var StyledContainer = styled60(View)(({ switchGap, switchOpacity }) => ({
7802
7811
  flexDirection: "row",
7803
7812
  alignItems: "flex-start",
7804
7813
  gap: switchGap,
7805
7814
  opacity: switchOpacity
7806
7815
  }));
7807
- var StyledControlTrack = styled52(View)(
7816
+ var StyledControlTrack = styled60(View)(
7808
7817
  ({
7809
7818
  switchChecked,
7810
7819
  controlWidth,
@@ -7830,14 +7839,14 @@ var StyledControlTrack = styled52(View)(
7830
7839
  justifyContent: "center"
7831
7840
  })
7832
7841
  );
7833
- var StyledThumb = styled52(Animated.View)(({ thumbSize, thumbBgColor }) => ({
7842
+ var StyledThumb = styled60(Animated.View)(({ thumbSize, thumbBgColor }) => ({
7834
7843
  width: thumbSize,
7835
7844
  height: thumbSize,
7836
7845
  borderRadius: thumbSize / 2,
7837
7846
  backgroundColor: thumbBgColor,
7838
7847
  position: "absolute"
7839
7848
  }));
7840
- var StyledContent = styled52(View)(({ contentGap }) => ({
7849
+ var StyledContent = styled60(View)(({ contentGap }) => ({
7841
7850
  gap: contentGap
7842
7851
  }));
7843
7852
  var Switch = React60.forwardRef(
@@ -7943,7 +7952,7 @@ var Switch = React60.forwardRef(
7943
7952
  );
7944
7953
  Switch.displayName = "Switch";
7945
7954
  var parseTokenValue17 = (value) => parseFloat(value);
7946
- var StyledTag = styled52(View)(({ theme: theme2, tagVariant, tagSize }) => {
7955
+ var StyledTag = styled60(View)(({ theme: theme2, tagVariant, tagSize }) => {
7947
7956
  const { sizing, spacing, colour, badge } = theme2.tokens.components.tags;
7948
7957
  const backgroundColorMap = {
7949
7958
  primary: colour.primary.background,
@@ -8016,7 +8025,7 @@ var Tag = React60.forwardRef(
8016
8025
  );
8017
8026
  Tag.displayName = "Tag";
8018
8027
  var parseTokenValue18 = (value) => parseFloat(value);
8019
- var StyledTextAreaWrapper = styled52(Animated.View)(({ theme: theme2, isDisabled }) => {
8028
+ var StyledTextAreaWrapper = styled60(Animated.View)(({ theme: theme2, isDisabled }) => {
8020
8029
  const { spacing, colour, borderRadius, size } = theme2.tokens.components.inputs;
8021
8030
  const { dimensions } = theme2.tokens.semantics;
8022
8031
  return {
@@ -8030,7 +8039,7 @@ var StyledTextAreaWrapper = styled52(Animated.View)(({ theme: theme2, isDisabled
8030
8039
  position: "relative"
8031
8040
  };
8032
8041
  });
8033
- var StyledTextArea = styled52(TextInput)(({ theme: theme2 }) => {
8042
+ var StyledTextArea = styled60(TextInput)(({ theme: theme2 }) => {
8034
8043
  const { colour } = theme2.tokens.components.inputs;
8035
8044
  return __spreadValues({
8036
8045
  flex: 1,
@@ -8045,17 +8054,17 @@ var StyledTextArea = styled52(TextInput)(({ theme: theme2 }) => {
8045
8054
  outlineColor: "transparent"
8046
8055
  });
8047
8056
  });
8048
- var StyledFocusRing2 = styled52(View)({
8057
+ var StyledFocusRing2 = styled60(View)({
8049
8058
  position: "absolute",
8050
8059
  pointerEvents: "none"
8051
8060
  });
8052
- var TextAreaContainer = styled52(View)({
8061
+ var TextAreaContainer = styled60(View)({
8053
8062
  position: "relative",
8054
8063
  width: "100%",
8055
8064
  flex: 1,
8056
8065
  flexDirection: "column"
8057
8066
  });
8058
- var IconWrapper2 = styled52(View)(({ side }) => {
8067
+ var IconWrapper2 = styled60(View)(({ side }) => {
8059
8068
  return {
8060
8069
  position: "absolute",
8061
8070
  top: 0,
@@ -8242,18 +8251,18 @@ var TextAreaField = React60.forwardRef(
8242
8251
  );
8243
8252
  TextAreaField.displayName = "TextArea.Field";
8244
8253
  var parseTokenValue19 = (value) => parseFloat(value);
8245
- var StyledLabelWrapper = styled52(View)({
8254
+ var StyledLabelWrapper = styled60(View)({
8246
8255
  flexDirection: "row",
8247
8256
  alignItems: "center",
8248
8257
  justifyContent: "space-between",
8249
8258
  width: "100%"
8250
8259
  });
8251
- var StyledLabel = styled52(View)(({ labelGap }) => ({
8260
+ var StyledLabel = styled60(View)(({ labelGap }) => ({
8252
8261
  flexDirection: "row",
8253
8262
  alignItems: "center",
8254
8263
  gap: labelGap
8255
8264
  }));
8256
- var StyledCharCountWrapper = styled52(View)(({ charCountGap, charCountPadding }) => ({
8265
+ var StyledCharCountWrapper = styled60(View)(({ charCountGap, charCountPadding }) => ({
8257
8266
  flexDirection: "row",
8258
8267
  alignItems: "center",
8259
8268
  gap: charCountGap,
@@ -8317,7 +8326,7 @@ var TextAreaLabel = React60.forwardRef(
8317
8326
  );
8318
8327
  TextAreaLabel.displayName = "TextArea.Label";
8319
8328
  var parseTokenValue20 = (value) => parseFloat(value);
8320
- var StyledRoot6 = styled52(View)(({ theme: theme2 }) => {
8329
+ var StyledRoot6 = styled60(View)(({ theme: theme2 }) => {
8321
8330
  const { spacing } = theme2.tokens.components.inputs;
8322
8331
  return {
8323
8332
  gap: parseTokenValue20(spacing.gap)
@@ -8412,25 +8421,25 @@ var AccordionContext = React60.createContext({
8412
8421
  size: "small"
8413
8422
  });
8414
8423
  var parseTokenValue21 = (value) => parseFloat(value);
8415
- var StyledRoot7 = styled52(View)(({ rootGap }) => ({
8424
+ var StyledRoot7 = styled60(View)(({ rootGap }) => ({
8416
8425
  width: "100%",
8417
8426
  flexDirection: "column",
8418
8427
  gap: rootGap
8419
8428
  }));
8420
- var StyledItem = styled52(View)({
8429
+ var StyledItem = styled60(View)({
8421
8430
  flexDirection: "column"
8422
8431
  });
8423
- var StyledTrigger = styled52(Pressable)(({ triggerOpacity }) => ({
8432
+ var StyledTrigger = styled60(Pressable)(({ triggerOpacity }) => ({
8424
8433
  flexDirection: "row",
8425
8434
  alignItems: "center",
8426
8435
  justifyContent: "space-between",
8427
8436
  width: "100%",
8428
8437
  opacity: triggerOpacity
8429
8438
  }));
8430
- var StyledPanel = styled52(View)(({ panelGap }) => ({
8439
+ var StyledPanel = styled60(View)(({ panelGap }) => ({
8431
8440
  marginTop: panelGap
8432
8441
  }));
8433
- var StyledDivider = styled52(View)(({ dividerColor, dividerMarginTop }) => ({
8442
+ var StyledDivider = styled60(View)(({ dividerColor, dividerMarginTop }) => ({
8434
8443
  height: 1,
8435
8444
  backgroundColor: dividerColor,
8436
8445
  marginTop: dividerMarginTop
@@ -8682,7 +8691,7 @@ function buildDelayedEntering(variant, delayMs) {
8682
8691
  }
8683
8692
  var Animated5 = React60.forwardRef(
8684
8693
  (_a, ref) => {
8685
- var _b = _a, { variant = "fade", delay, children } = _b, props = __objRest(_b, ["variant", "delay", "children"]);
8694
+ var _b = _a, { variant = "fade", delay, exit = true, children } = _b, props = __objRest(_b, ["variant", "delay", "exit", "children"]);
8686
8695
  const delayMs = delay !== void 0 && delay > 0 ? Math.round(delay * 1e3) : 0;
8687
8696
  const entering = delayMs > 0 ? buildDelayedEntering(variant, delayMs) : ENTERING[variant];
8688
8697
  return /* @__PURE__ */ jsx(
@@ -8690,7 +8699,7 @@ var Animated5 = React60.forwardRef(
8690
8699
  __spreadProps(__spreadValues({
8691
8700
  ref,
8692
8701
  entering,
8693
- exiting: EXITING[variant]
8702
+ exiting: exit ? EXITING[variant] : void 0
8694
8703
  }, props), {
8695
8704
  children
8696
8705
  })
@@ -8753,7 +8762,7 @@ var OPEN_DURATION = 320;
8753
8762
  var CLOSE_DURATION = 220;
8754
8763
  var DISMISS_THRESHOLD = 80;
8755
8764
  var parseTokenValue22 = (value) => parseFloat(value);
8756
- var StyledPanel2 = styled52(View)(
8765
+ var StyledPanel2 = styled60(View)(
8757
8766
  ({
8758
8767
  panelBorderRadius,
8759
8768
  panelBgColor,
@@ -8988,7 +8997,7 @@ var styles = StyleSheet.create({
8988
8997
  }
8989
8998
  });
8990
8999
  var parseTokenValue23 = (value) => parseFloat(value);
8991
- var StyledWrapper = styled52(View)(
9000
+ var StyledWrapper = styled60(View)(
8992
9001
  ({ grabberPaddingTop }) => ({
8993
9002
  alignItems: "center",
8994
9003
  justifyContent: "center",
@@ -8997,7 +9006,7 @@ var StyledWrapper = styled52(View)(
8997
9006
  paddingBottom: grabberPaddingTop
8998
9007
  })
8999
9008
  );
9000
- var StyledBar = styled52(View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9009
+ var StyledBar = styled60(View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9001
9010
  width: barWidth,
9002
9011
  height: barHeight,
9003
9012
  borderRadius: barBorderRadius,
@@ -9078,7 +9087,7 @@ var styles2 = StyleSheet.create({
9078
9087
  }
9079
9088
  });
9080
9089
  var parseTokenValue25 = (value) => parseFloat(value);
9081
- var StyledGrabberWrapper = styled52(View)(
9090
+ var StyledGrabberWrapper = styled60(View)(
9082
9091
  ({ grabberPaddingTop }) => ({
9083
9092
  alignItems: "center",
9084
9093
  justifyContent: "center",
@@ -9086,13 +9095,13 @@ var StyledGrabberWrapper = styled52(View)(
9086
9095
  paddingTop: grabberPaddingTop
9087
9096
  })
9088
9097
  );
9089
- var StyledGrabberBar = styled52(View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9098
+ var StyledGrabberBar = styled60(View)(({ barWidth, barHeight, barBorderRadius, barColor }) => ({
9090
9099
  width: barWidth,
9091
9100
  height: barHeight,
9092
9101
  borderRadius: barBorderRadius,
9093
9102
  backgroundColor: barColor
9094
9103
  }));
9095
- var StyledHeader = styled52(View)(
9104
+ var StyledHeader = styled60(View)(
9096
9105
  ({
9097
9106
  headerPaddingHorizontal,
9098
9107
  headerPaddingBottom,
@@ -9112,7 +9121,7 @@ var StyledHeader = styled52(View)(
9112
9121
  borderBottomColor: headerBorderColor
9113
9122
  } : {}), headerBgColor ? { backgroundColor: headerBgColor } : {})
9114
9123
  );
9115
- var StyledImageContainer = styled52(View)(({ imageHeight, imageBorderRadius }) => ({
9124
+ var StyledImageContainer = styled60(View)(({ imageHeight, imageBorderRadius }) => ({
9116
9125
  position: "relative",
9117
9126
  width: "100%",
9118
9127
  height: imageHeight,
@@ -9120,20 +9129,20 @@ var StyledImageContainer = styled52(View)(({ imageHeight, imageBorderRadius }) =
9120
9129
  overflow: "hidden",
9121
9130
  flexShrink: 0
9122
9131
  }));
9123
- var StyledImageCloseWrapper = styled52(View)(({ closeTop, closeRight }) => ({
9132
+ var StyledImageCloseWrapper = styled60(View)(({ closeTop, closeRight }) => ({
9124
9133
  position: "absolute",
9125
9134
  top: closeTop,
9126
9135
  right: closeRight,
9127
9136
  zIndex: 1
9128
9137
  }));
9129
- var StyledTitleRow = styled52(View)(({ rowGap }) => ({
9138
+ var StyledTitleRow = styled60(View)(({ rowGap }) => ({
9130
9139
  flexDirection: "row",
9131
9140
  gap: rowGap,
9132
9141
  alignItems: "flex-start",
9133
9142
  width: "100%",
9134
9143
  flexShrink: 0
9135
9144
  }));
9136
- var StyledTitleContent = styled52(View)(
9145
+ var StyledTitleContent = styled60(View)(
9137
9146
  ({ contentGap }) => ({
9138
9147
  flexDirection: "column",
9139
9148
  gap: contentGap,
@@ -9273,7 +9282,7 @@ var DrawerDescription = React60.forwardRef(
9273
9282
  );
9274
9283
  DrawerDescription.displayName = "Drawer.Description";
9275
9284
  var parseTokenValue26 = (value) => parseFloat(value);
9276
- var StyledScrollView = styled52(ScrollView)(({ bodyPaddingHorizontal, bodyPaddingRight, bodyGap }) => ({
9285
+ var StyledScrollView = styled60(ScrollView)(({ bodyPaddingHorizontal, bodyPaddingRight, bodyGap }) => ({
9277
9286
  flex: 1,
9278
9287
  paddingLeft: bodyPaddingHorizontal,
9279
9288
  paddingRight: bodyPaddingRight,
@@ -9314,7 +9323,7 @@ var DrawerBody = React60.forwardRef(
9314
9323
  );
9315
9324
  DrawerBody.displayName = "Drawer.Body";
9316
9325
  var parseTokenValue27 = (value) => parseFloat(value);
9317
- var StyledFooter = styled52(View)(({ footerPaddingTop, footerPaddingHorizontal, footerPaddingBottom }) => ({
9326
+ var StyledFooter = styled60(View)(({ footerPaddingTop, footerPaddingHorizontal, footerPaddingBottom }) => ({
9318
9327
  flexShrink: 0,
9319
9328
  paddingTop: footerPaddingTop,
9320
9329
  paddingHorizontal: footerPaddingHorizontal,
@@ -9426,7 +9435,7 @@ var styles3 = StyleSheet.create({
9426
9435
  }
9427
9436
  });
9428
9437
  var parseTokenValue28 = (value) => parseFloat(value);
9429
- var StyledDockRoot = styled52(View)(
9438
+ var StyledDockRoot = styled60(View)(
9430
9439
  ({
9431
9440
  dockBgColor,
9432
9441
  dockBorderTopWidth,
@@ -9442,7 +9451,7 @@ var StyledDockRoot = styled52(View)(
9442
9451
  paddingVertical: dockPaddingVertical
9443
9452
  })
9444
9453
  );
9445
- var StyledStackedInner = styled52(View)(
9454
+ var StyledStackedInner = styled60(View)(
9446
9455
  ({ innerGap }) => ({
9447
9456
  alignItems: "center",
9448
9457
  gap: innerGap,
@@ -9450,7 +9459,7 @@ var StyledStackedInner = styled52(View)(
9450
9459
  maxWidth: 520
9451
9460
  })
9452
9461
  );
9453
- var StyledButtonGroup = styled52(View)(({ groupDirection, groupAlign, groupJustify, groupGap }) => __spreadValues({
9462
+ var StyledButtonGroup = styled60(View)(({ groupDirection, groupAlign, groupJustify, groupGap }) => __spreadValues({
9454
9463
  flexDirection: groupDirection,
9455
9464
  alignItems: groupAlign,
9456
9465
  justifyContent: groupJustify,
@@ -9521,17 +9530,17 @@ var ButtonDock = React60.forwardRef(
9521
9530
  );
9522
9531
  ButtonDock.displayName = "ButtonDock";
9523
9532
  var parseTokenValue29 = (value) => parseFloat(value);
9524
- var StyledGroupRoot = styled52(View)(({ rootGap }) => ({
9533
+ var StyledGroupRoot = styled60(View)(({ rootGap }) => ({
9525
9534
  gap: rootGap,
9526
9535
  alignItems: "center",
9527
9536
  width: "100%"
9528
9537
  }));
9529
- var StyledButtonRow = styled52(View)(({ rowDirection, rowAlign, rowGap }) => __spreadValues({
9538
+ var StyledButtonRow = styled60(View)(({ rowDirection, rowAlign, rowGap }) => __spreadValues({
9530
9539
  flexDirection: rowDirection,
9531
9540
  width: "100%",
9532
9541
  gap: rowGap
9533
9542
  }, rowAlign ? { alignItems: rowAlign } : {}));
9534
- var StyledChildSlot = styled52(View)(
9543
+ var StyledChildSlot = styled60(View)(
9535
9544
  ({ slotInline }) => __spreadValues({}, slotInline ? { flex: 1, minWidth: 0 } : { width: "100%", alignSelf: "stretch" })
9536
9545
  );
9537
9546
  var ButtonGroup = React60.forwardRef(
@@ -9583,7 +9592,7 @@ var ButtonGroup = React60.forwardRef(
9583
9592
  );
9584
9593
  ButtonGroup.displayName = "ButtonGroup";
9585
9594
  var parseTokenValue30 = (value) => parseFloat(value);
9586
- var StyledRootPressable = styled52(Pressable)(
9595
+ var StyledRootPressable = styled60(Pressable)(
9587
9596
  ({
9588
9597
  rootFlexAlign,
9589
9598
  rootGap,
@@ -9602,7 +9611,7 @@ var StyledRootPressable = styled52(Pressable)(
9602
9611
  opacity: rootOpacity
9603
9612
  }, 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 } : {})
9604
9613
  );
9605
- var StyledControl = styled52(View)(
9614
+ var StyledControl = styled60(View)(
9606
9615
  ({
9607
9616
  controlSize,
9608
9617
  controlBorderWidth,
@@ -9621,13 +9630,13 @@ var StyledControl = styled52(View)(
9621
9630
  justifyContent: "center"
9622
9631
  })
9623
9632
  );
9624
- var StyledContent2 = styled52(View)(({ contentGap }) => ({
9633
+ var StyledContent2 = styled60(View)(({ contentGap }) => ({
9625
9634
  flexDirection: "column",
9626
9635
  gap: contentGap,
9627
9636
  flex: 1,
9628
9637
  minWidth: 0
9629
9638
  }));
9630
- var StyledIllustration = styled52(View)(({ illustrationSize }) => ({
9639
+ var StyledIllustration = styled60(View)(({ illustrationSize }) => ({
9631
9640
  flexShrink: 0,
9632
9641
  width: illustrationSize,
9633
9642
  height: illustrationSize,
@@ -9751,7 +9760,7 @@ var Checkbox = React60.forwardRef(
9751
9760
  );
9752
9761
  Checkbox.displayName = "Checkbox";
9753
9762
  var parseTokenValue31 = (value) => parseFloat(value);
9754
- var StyledGroup = styled52(View)(({ groupDirection, groupGap }) => ({
9763
+ var StyledGroup = styled60(View)(({ groupDirection, groupGap }) => ({
9755
9764
  flexDirection: groupDirection,
9756
9765
  gap: groupGap
9757
9766
  }));
@@ -9865,7 +9874,7 @@ var CopyFieldInput = React60.forwardRef(
9865
9874
  );
9866
9875
  CopyFieldInput.displayName = "CopyField.Field";
9867
9876
  var parseTokenValue32 = (value) => parseFloat(value);
9868
- var StyledRoot8 = styled52(View)(({ theme: theme2 }) => {
9877
+ var StyledRoot8 = styled60(View)(({ theme: theme2 }) => {
9869
9878
  const { spacing } = theme2.tokens.components.inputs;
9870
9879
  return {
9871
9880
  gap: parseTokenValue32(spacing.gap)
@@ -9946,13 +9955,13 @@ var FilterTabContext = React60.createContext({
9946
9955
  }
9947
9956
  });
9948
9957
  var parseTokenValue33 = (value) => parseFloat(value);
9949
- var StyledRoot9 = styled52(View)(({ rootGap }) => ({
9958
+ var StyledRoot9 = styled60(View)(({ rootGap }) => ({
9950
9959
  flexDirection: "row",
9951
9960
  alignItems: "center",
9952
9961
  gap: rootGap,
9953
9962
  flexWrap: "nowrap"
9954
9963
  }));
9955
- var StyledItem2 = styled52(Pressable)(
9964
+ var StyledItem2 = styled60(Pressable)(
9956
9965
  ({
9957
9966
  itemHeight,
9958
9967
  itemMinWidth,
@@ -10127,7 +10136,7 @@ var FilterTab = Object.assign(FilterTabRoot, {
10127
10136
  Item: FilterTabItem
10128
10137
  });
10129
10138
  var parseTokenValue34 = (value) => parseFloat(value);
10130
- var StyledFieldWrapper = styled52(View)(
10139
+ var StyledFieldWrapper = styled60(View)(
10131
10140
  ({
10132
10141
  fieldBgColor,
10133
10142
  fieldBorderColor,
@@ -10148,7 +10157,7 @@ var StyledFieldWrapper = styled52(View)(
10148
10157
  overflow: "hidden"
10149
10158
  })
10150
10159
  );
10151
- var StyledTextInput = styled52(TextInput)(
10160
+ var StyledTextInput = styled60(TextInput)(
10152
10161
  ({
10153
10162
  inputColor,
10154
10163
  inputFontFamily,
@@ -10170,7 +10179,7 @@ var StyledTextInput = styled52(TextInput)(
10170
10179
  lineHeight: inputLineHeight
10171
10180
  })
10172
10181
  );
10173
- var StyledRow = styled52(View)(({ rowGap }) => ({
10182
+ var StyledRow = styled60(View)(({ rowGap }) => ({
10174
10183
  flexDirection: "row",
10175
10184
  alignItems: "center",
10176
10185
  alignSelf: "center",
@@ -10333,11 +10342,11 @@ var NumberFieldInput = React60.forwardRef(
10333
10342
  );
10334
10343
  NumberFieldInput.displayName = "NumberField.Input";
10335
10344
  var parseTokenValue35 = (value) => parseFloat(value);
10336
- var StyledRoot10 = styled52(View)(({ rootGap }) => ({
10345
+ var StyledRoot10 = styled60(View)(({ rootGap }) => ({
10337
10346
  alignItems: "center",
10338
10347
  gap: rootGap
10339
10348
  }));
10340
- var StyledLabelGroup = styled52(View)(({ labelGap }) => ({
10349
+ var StyledLabelGroup = styled60(View)(({ labelGap }) => ({
10341
10350
  gap: labelGap
10342
10351
  }));
10343
10352
  var NumberField = React60.forwardRef(
@@ -10486,7 +10495,7 @@ var PasswordFieldInput = React60.forwardRef((_a, ref) => {
10486
10495
  });
10487
10496
  PasswordFieldInput.displayName = "PasswordField.Field";
10488
10497
  var parseTokenValue36 = (value) => parseFloat(value);
10489
- var StyledErrorRow2 = styled52(View)(({ gap }) => ({
10498
+ var StyledErrorRow2 = styled60(View)(({ gap }) => ({
10490
10499
  flexDirection: "row",
10491
10500
  alignItems: "center",
10492
10501
  gap
@@ -10518,12 +10527,12 @@ var PasswordFieldError = React60.forwardRef((_a, ref) => {
10518
10527
  });
10519
10528
  PasswordFieldError.displayName = "PasswordField.Error";
10520
10529
  var parseTokenValue37 = (value) => parseFloat(value);
10521
- var StyledRequirementsList = styled52(View)(
10530
+ var StyledRequirementsList = styled60(View)(
10522
10531
  ({ listGap }) => ({
10523
10532
  gap: listGap
10524
10533
  })
10525
10534
  );
10526
- var StyledRequirementItem = styled52(View)(
10535
+ var StyledRequirementItem = styled60(View)(
10527
10536
  ({ itemGap }) => ({
10528
10537
  flexDirection: "row",
10529
10538
  alignItems: "center",
@@ -10580,7 +10589,7 @@ var PasswordFieldRequirements = React60.forwardRef((_a, ref) => {
10580
10589
  });
10581
10590
  PasswordFieldRequirements.displayName = "PasswordField.Requirements";
10582
10591
  var parseTokenValue38 = (value) => parseFloat(value);
10583
- var StyledRoot11 = styled52(View)(({ theme: theme2 }) => {
10592
+ var StyledRoot11 = styled60(View)(({ theme: theme2 }) => {
10584
10593
  const { spacing } = theme2.tokens.components.inputs;
10585
10594
  return {
10586
10595
  gap: parseTokenValue38(spacing.gap)
@@ -10694,19 +10703,19 @@ function usePasswordField({
10694
10703
  });
10695
10704
  }
10696
10705
  var parseTokenValue39 = (value) => parseFloat(value);
10697
- var StyledRoot12 = styled52(View)(({ rootGap }) => ({
10706
+ var StyledRoot12 = styled60(View)(({ rootGap }) => ({
10698
10707
  flexDirection: "column",
10699
10708
  alignItems: "stretch",
10700
10709
  gap: rootGap,
10701
10710
  width: "100%"
10702
10711
  }));
10703
- var StyledHeader2 = styled52(View)({
10712
+ var StyledHeader2 = styled60(View)({
10704
10713
  flexDirection: "row",
10705
10714
  alignItems: "center",
10706
10715
  justifyContent: "space-between",
10707
10716
  width: "100%"
10708
10717
  });
10709
- var StyledTrack = styled52(View)(({ trackHeight, trackMinWidth, trackBorderRadius, trackBgColor }) => ({
10718
+ var StyledTrack = styled60(View)(({ trackHeight, trackMinWidth, trackBorderRadius, trackBgColor }) => ({
10710
10719
  position: "relative",
10711
10720
  width: "100%",
10712
10721
  minWidth: trackMinWidth,
@@ -10715,7 +10724,7 @@ var StyledTrack = styled52(View)(({ trackHeight, trackMinWidth, trackBorderRadiu
10715
10724
  backgroundColor: trackBgColor,
10716
10725
  overflow: "hidden"
10717
10726
  }));
10718
- var StyledIndicator = styled52(View)(({ indicatorBorderRadius, indicatorBgColor }) => ({
10727
+ var StyledIndicator = styled60(View)(({ indicatorBorderRadius, indicatorBgColor }) => ({
10719
10728
  height: "100%",
10720
10729
  borderRadius: indicatorBorderRadius,
10721
10730
  backgroundColor: indicatorBgColor
@@ -10812,7 +10821,7 @@ var Progress = React60.forwardRef(
10812
10821
  );
10813
10822
  Progress.displayName = "Progress";
10814
10823
  var parseTokenValue40 = (value) => parseFloat(value);
10815
- var StyledRadioRoot = styled52(Pressable)(
10824
+ var StyledRadioRoot = styled60(Pressable)(
10816
10825
  ({
10817
10826
  radioGap,
10818
10827
  radioOpacity,
@@ -10831,7 +10840,7 @@ var StyledRadioRoot = styled52(Pressable)(
10831
10840
  opacity: radioOpacity
10832
10841
  }, 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 } : {})
10833
10842
  );
10834
- var StyledRadioControl = styled52(View)(({ controlSize, controlBorderWidth, controlBorderColor }) => ({
10843
+ var StyledRadioControl = styled60(View)(({ controlSize, controlBorderWidth, controlBorderColor }) => ({
10835
10844
  width: controlSize,
10836
10845
  height: controlSize,
10837
10846
  minWidth: controlSize,
@@ -10842,17 +10851,17 @@ var StyledRadioControl = styled52(View)(({ controlSize, controlBorderWidth, cont
10842
10851
  alignItems: "center",
10843
10852
  justifyContent: "center"
10844
10853
  }));
10845
- var StyledIndicator2 = styled52(View)(({ indicatorSize, indicatorBgColor }) => ({
10854
+ var StyledIndicator2 = styled60(View)(({ indicatorSize, indicatorBgColor }) => ({
10846
10855
  width: indicatorSize,
10847
10856
  height: indicatorSize,
10848
10857
  borderRadius: indicatorSize / 2,
10849
10858
  backgroundColor: indicatorBgColor
10850
10859
  }));
10851
- var StyledTextContent = styled52(View)(({ textContentGap }) => ({
10860
+ var StyledTextContent = styled60(View)(({ textContentGap }) => ({
10852
10861
  flexDirection: "column",
10853
10862
  gap: textContentGap
10854
10863
  }));
10855
- var StyledAssetWrapper = styled52(View)({
10864
+ var StyledAssetWrapper = styled60(View)({
10856
10865
  alignSelf: "center"
10857
10866
  });
10858
10867
  var Radio = React60.forwardRef(
@@ -10951,7 +10960,7 @@ var Radio = React60.forwardRef(
10951
10960
  );
10952
10961
  Radio.displayName = "Radio";
10953
10962
  var parseTokenValue41 = (value) => parseFloat(value);
10954
- var StyledRadioGroup = styled52(View)(({ groupDirection, groupGap }) => ({
10963
+ var StyledRadioGroup = styled60(View)(({ groupDirection, groupGap }) => ({
10955
10964
  flexDirection: groupDirection,
10956
10965
  gap: groupGap
10957
10966
  }));
@@ -11077,7 +11086,7 @@ var SearchFieldInput = React60.forwardRef((_a, ref) => {
11077
11086
  });
11078
11087
  SearchFieldInput.displayName = "SearchField.Field";
11079
11088
  var parseTokenValue42 = (value) => parseFloat(value);
11080
- var StyledRoot13 = styled52(View)(({ theme: theme2 }) => {
11089
+ var StyledRoot13 = styled60(View)(({ theme: theme2 }) => {
11081
11090
  const { spacing } = theme2.tokens.components.inputs;
11082
11091
  return {
11083
11092
  gap: parseTokenValue42(spacing.gap)
@@ -11154,7 +11163,7 @@ function useSearchField({
11154
11163
  };
11155
11164
  }
11156
11165
  var parseTokenValue43 = (value) => parseFloat(value);
11157
- var StyledSegmentItem = styled52(Pressable)(
11166
+ var StyledSegmentItem = styled60(Pressable)(
11158
11167
  ({
11159
11168
  itemHeight,
11160
11169
  itemMinWidth,
@@ -11174,14 +11183,14 @@ var StyledSegmentItem = styled52(Pressable)(
11174
11183
  opacity: itemOpacity
11175
11184
  }, itemFlex !== void 0 ? { flex: itemFlex } : { flexShrink: 0 })
11176
11185
  );
11177
- var StyledIntrinsicClip = styled52(View)(({ clipBorderRadius, clipBgColor, clipWidth }) => __spreadValues({
11186
+ var StyledIntrinsicClip = styled60(View)(({ clipBorderRadius, clipBgColor, clipWidth }) => __spreadValues({
11178
11187
  overflow: "hidden",
11179
11188
  borderRadius: clipBorderRadius,
11180
11189
  backgroundColor: clipBgColor,
11181
11190
  alignSelf: "flex-start",
11182
11191
  maxWidth: "100%"
11183
11192
  }, clipWidth !== void 0 ? { width: clipWidth } : {}));
11184
- var StyledScrollIndicator = styled52(Pressable)(
11193
+ var StyledScrollIndicator = styled60(Pressable)(
11185
11194
  ({
11186
11195
  indicatorSide,
11187
11196
  indicatorBorderRadius,
@@ -11237,7 +11246,7 @@ var ScrollIndicatorGradient = ({
11237
11246
  /* @__PURE__ */ jsx(Rect, { width: "100%", height: "100%", fill: `url(#${gradientId})` })
11238
11247
  ] }) });
11239
11248
  };
11240
- var StyledContainer2 = styled52(View)(
11249
+ var StyledContainer2 = styled60(View)(
11241
11250
  ({
11242
11251
  containerGap,
11243
11252
  containerPaddingVertical,
@@ -11517,7 +11526,7 @@ var SegmentedControl = Object.assign(SegmentedControlRoot, {
11517
11526
  Item: SegmentedControlItem
11518
11527
  });
11519
11528
  var parseTokenValue44 = (value) => parseFloat(value);
11520
- var StyledTriggerWrapper = styled52(Animated.View)(({
11529
+ var StyledTriggerWrapper = styled60(Animated.View)(({
11521
11530
  theme: theme2,
11522
11531
  state: _state
11523
11532
  }) => {
@@ -11533,12 +11542,12 @@ var StyledTriggerWrapper = styled52(Animated.View)(({
11533
11542
  borderRadius: parseTokenValue44(borderRadius.field.default)
11534
11543
  };
11535
11544
  });
11536
- var StyledIconWrapper2 = styled52(View)({
11545
+ var StyledIconWrapper2 = styled60(View)({
11537
11546
  flexShrink: 0,
11538
11547
  alignItems: "center",
11539
11548
  justifyContent: "center"
11540
11549
  });
11541
- var StyledArrowIcon = styled52(Animated.View)({
11550
+ var StyledArrowIcon = styled60(Animated.View)({
11542
11551
  flexShrink: 0,
11543
11552
  alignItems: "center",
11544
11553
  justifyContent: "center"
@@ -11624,7 +11633,7 @@ var SelectFieldTrigger = React60.forwardRef(
11624
11633
  }
11625
11634
  );
11626
11635
  SelectFieldTrigger.displayName = "SelectField.Trigger";
11627
- var StyledValue = styled52(Text)(({ theme: theme2 }) => {
11636
+ var StyledValue = styled60(Text)(({ theme: theme2 }) => {
11628
11637
  const { colour } = theme2.tokens.components.inputs;
11629
11638
  return {
11630
11639
  flex: 1,
@@ -11643,7 +11652,7 @@ SelectFieldValue.displayName = "SelectField.Value";
11643
11652
  var parseTokenValue45 = (value) => parseFloat(value);
11644
11653
  var DROPDOWN_OFFSET_X = -32;
11645
11654
  var DROPDOWN_OFFSET_Y = -94;
11646
- var StyledContentShadow = styled52(View)(({ theme: theme2 }) => {
11655
+ var StyledContentShadow = styled60(View)(({ theme: theme2 }) => {
11647
11656
  const { dropdown } = theme2.tokens.components.dropdownList;
11648
11657
  const shadow = dropdown.list.dropshadow.default;
11649
11658
  return {
@@ -11662,7 +11671,7 @@ var StyledContentShadow = styled52(View)(({ theme: theme2 }) => {
11662
11671
  ]
11663
11672
  };
11664
11673
  });
11665
- var StyledContentInner = styled52(View)(({ theme: theme2 }) => {
11674
+ var StyledContentInner = styled60(View)(({ theme: theme2 }) => {
11666
11675
  const { dropdown } = theme2.tokens.components.dropdownList;
11667
11676
  const { colour } = theme2.tokens.components.inputs;
11668
11677
  return {
@@ -11691,7 +11700,7 @@ var SelectFieldContent = React60.forwardRef((_a, ref) => {
11691
11700
  });
11692
11701
  SelectFieldContent.displayName = "SelectField.Content";
11693
11702
  var parseTokenValue46 = (value) => parseFloat(value);
11694
- var StyledItem3 = styled52(Pressable)(({ theme: theme2 }) => {
11703
+ var StyledItem3 = styled60(Pressable)(({ theme: theme2 }) => {
11695
11704
  const { dropdown } = theme2.tokens.components.dropdownList;
11696
11705
  return {
11697
11706
  flexDirection: "row",
@@ -11705,12 +11714,12 @@ var StyledItem3 = styled52(Pressable)(({ theme: theme2 }) => {
11705
11714
  backgroundColor: dropdown.listItem.colour.background.default
11706
11715
  };
11707
11716
  });
11708
- var StyledIconWrapper3 = styled52(View)({
11717
+ var StyledIconWrapper3 = styled60(View)({
11709
11718
  flexShrink: 0,
11710
11719
  alignItems: "center",
11711
11720
  justifyContent: "center"
11712
11721
  });
11713
- var StyledContentWrapper = styled52(View)(({ theme: theme2 }) => {
11722
+ var StyledContentWrapper = styled60(View)(({ theme: theme2 }) => {
11714
11723
  const { dropdown } = theme2.tokens.components.dropdownList;
11715
11724
  return {
11716
11725
  flexDirection: "row",
@@ -11720,17 +11729,17 @@ var StyledContentWrapper = styled52(View)(({ theme: theme2 }) => {
11720
11729
  minWidth: 0
11721
11730
  };
11722
11731
  });
11723
- var StyledTextWrapper2 = styled52(View)({
11732
+ var StyledTextWrapper2 = styled60(View)({
11724
11733
  flex: 1,
11725
11734
  minWidth: 0
11726
11735
  });
11727
- var StyledItemText = styled52(Text)(({ theme: theme2 }) => {
11736
+ var StyledItemText = styled60(Text)(({ theme: theme2 }) => {
11728
11737
  const { dropdown } = theme2.tokens.components.dropdownList;
11729
11738
  return {
11730
11739
  color: dropdown.listItem.colour.text.placeholder.default
11731
11740
  };
11732
11741
  });
11733
- var StyledHintText = styled52(Text)(({ theme: theme2 }) => {
11742
+ var StyledHintText = styled60(Text)(({ theme: theme2 }) => {
11734
11743
  const { dropdown } = theme2.tokens.components.dropdownList;
11735
11744
  return {
11736
11745
  color: dropdown.listItem.colour.text.hint.default,
@@ -11773,7 +11782,7 @@ var SelectFieldItem = React60.forwardRef(
11773
11782
  );
11774
11783
  SelectFieldItem.displayName = "SelectField.Item";
11775
11784
  var parseTokenValue47 = (value) => parseFloat(value);
11776
- var StyledRoot14 = styled52(View)(({ theme: theme2 }) => {
11785
+ var StyledRoot14 = styled60(View)(({ theme: theme2 }) => {
11777
11786
  const { spacing } = theme2.tokens.components.inputs;
11778
11787
  return {
11779
11788
  gap: parseTokenValue47(spacing.gap)
@@ -11907,12 +11916,12 @@ function useSelectField(options = {}) {
11907
11916
  }, validationRule && { state, error });
11908
11917
  }
11909
11918
  var parseTokenValue48 = (value) => parseFloat(value);
11910
- var StyledLabelRow2 = styled52(View)(({ labelRowGap }) => ({
11919
+ var StyledLabelRow2 = styled60(View)(({ labelRowGap }) => ({
11911
11920
  flexDirection: "row",
11912
11921
  alignItems: "center",
11913
11922
  gap: labelRowGap
11914
11923
  }));
11915
- var StyledLabelSlot = styled52(View)(({ labelSlotGap }) => ({
11924
+ var StyledLabelSlot = styled60(View)(({ labelSlotGap }) => ({
11916
11925
  flexDirection: "row",
11917
11926
  alignItems: "center",
11918
11927
  gap: labelSlotGap,
@@ -12248,7 +12257,7 @@ var ICON_MAP = {
12248
12257
  info: Info_default
12249
12258
  };
12250
12259
  var parseTokenValue49 = (value) => parseFloat(value);
12251
- var StyledInlineRoot = styled52(View)(
12260
+ var StyledInlineRoot = styled60(View)(
12252
12261
  ({ rootPaddingH, rootPaddingV, rootGap, rootBorderRadius, rootBgColor }) => ({
12253
12262
  flexDirection: "row",
12254
12263
  alignItems: "flex-start",
@@ -12259,7 +12268,7 @@ var StyledInlineRoot = styled52(View)(
12259
12268
  backgroundColor: rootBgColor
12260
12269
  })
12261
12270
  );
12262
- var StyledToastRoot = styled52(View)(
12271
+ var StyledToastRoot = styled60(View)(
12263
12272
  ({
12264
12273
  rootPaddingH,
12265
12274
  rootPaddingV,
@@ -12286,7 +12295,7 @@ var StyledToastRoot = styled52(View)(
12286
12295
  elevation: 4
12287
12296
  })
12288
12297
  );
12289
- var StyledSystemRoot = styled52(View)(
12298
+ var StyledSystemRoot = styled60(View)(
12290
12299
  ({
12291
12300
  rootPaddingH,
12292
12301
  rootPaddingTop,
@@ -12306,31 +12315,31 @@ var StyledSystemRoot = styled52(View)(
12306
12315
  width: "100%"
12307
12316
  })
12308
12317
  );
12309
- var StyledContents = styled52(View)(({ contentsGap }) => ({
12318
+ var StyledContents = styled60(View)(({ contentsGap }) => ({
12310
12319
  flexDirection: "column",
12311
12320
  alignItems: "flex-start",
12312
12321
  flex: 1,
12313
12322
  minWidth: 0,
12314
12323
  gap: contentsGap
12315
12324
  }));
12316
- var StyledCopyRow = styled52(View)(({ copyGap }) => ({
12325
+ var StyledCopyRow = styled60(View)(({ copyGap }) => ({
12317
12326
  flexDirection: "row",
12318
12327
  alignItems: "flex-start",
12319
12328
  gap: copyGap,
12320
12329
  width: "100%"
12321
12330
  }));
12322
- var StyledInlineCopy = styled52(View)(({ copyGap }) => ({
12331
+ var StyledInlineCopy = styled60(View)(({ copyGap }) => ({
12323
12332
  flexDirection: "column",
12324
12333
  alignItems: "flex-start",
12325
12334
  gap: copyGap,
12326
12335
  flex: 1,
12327
12336
  minWidth: 0
12328
12337
  }));
12329
- var StyledLinkWrapper = styled52(View)(({ linkPaddingLeft }) => ({
12338
+ var StyledLinkWrapper = styled60(View)(({ linkPaddingLeft }) => ({
12330
12339
  paddingLeft: linkPaddingLeft,
12331
12340
  width: "100%"
12332
12341
  }));
12333
- var StyledCloseButton = styled52(Pressable)({
12342
+ var StyledCloseButton = styled60(Pressable)({
12334
12343
  alignItems: "center",
12335
12344
  justifyContent: "center",
12336
12345
  flexShrink: 0,
@@ -12546,10 +12555,10 @@ var NIB_OFFSET = {
12546
12555
  middle: 146,
12547
12556
  right: 268
12548
12557
  };
12549
- var Container2 = styled52(View)(({ $width }) => ({
12558
+ var Container2 = styled60(View)(({ $width }) => ({
12550
12559
  width: $width
12551
12560
  }));
12552
- var StyledBody = styled52(View)(
12561
+ var StyledBody = styled60(View)(
12553
12562
  ({
12554
12563
  bgColor,
12555
12564
  borderColor,
@@ -12779,7 +12788,7 @@ var Tooltip = React60.forwardRef(
12779
12788
  );
12780
12789
  Tooltip.displayName = "Tooltip";
12781
12790
  var parseTokenValue51 = (value) => parseFloat(value);
12782
- var StyledInsightRoot = styled52(View)(
12791
+ var StyledInsightRoot = styled60(View)(
12783
12792
  ({
12784
12793
  rootGap,
12785
12794
  rootPaddingH,
@@ -12806,7 +12815,7 @@ var StyledInsightRoot = styled52(View)(
12806
12815
  minWidth: rootMinWidth
12807
12816
  })
12808
12817
  );
12809
- var StyledInsightContent = styled52(View)(
12818
+ var StyledInsightContent = styled60(View)(
12810
12819
  ({ contentGap }) => ({
12811
12820
  flex: 1,
12812
12821
  flexDirection: "column",
@@ -12886,7 +12895,7 @@ var MessageCardInsight = React60.forwardRef(
12886
12895
  }
12887
12896
  );
12888
12897
  MessageCardInsight.displayName = "MessageCard.Insight";
12889
- var StyledBannerRoot = styled52(View)(({ rootGap, rootPadding, rootBorderRadius, rootBgColor }) => ({
12898
+ var StyledBannerRoot = styled60(View)(({ rootGap, rootPadding, rootBorderRadius, rootBgColor }) => ({
12890
12899
  flexDirection: "row",
12891
12900
  alignItems: "center",
12892
12901
  gap: rootGap,
@@ -12894,7 +12903,7 @@ var StyledBannerRoot = styled52(View)(({ rootGap, rootPadding, rootBorderRadius,
12894
12903
  borderRadius: rootBorderRadius,
12895
12904
  backgroundColor: rootBgColor
12896
12905
  }));
12897
- var StyledBannerImage = styled52(View)(({ imageRadius, imageBgColor }) => ({
12906
+ var StyledBannerImage = styled60(View)(({ imageRadius, imageBgColor }) => ({
12898
12907
  flexShrink: 0,
12899
12908
  width: 108,
12900
12909
  height: 108,
@@ -12902,14 +12911,14 @@ var StyledBannerImage = styled52(View)(({ imageRadius, imageBgColor }) => ({
12902
12911
  overflow: "hidden",
12903
12912
  backgroundColor: imageBgColor
12904
12913
  }));
12905
- var StyledBannerIllustrationSlot = styled52(View)({
12914
+ var StyledBannerIllustrationSlot = styled60(View)({
12906
12915
  flexShrink: 0,
12907
12916
  width: 108,
12908
12917
  height: 108,
12909
12918
  alignItems: "center",
12910
12919
  justifyContent: "center"
12911
12920
  });
12912
- var StyledBannerContents = styled52(View)(
12921
+ var StyledBannerContents = styled60(View)(
12913
12922
  ({ contentsGap }) => ({
12914
12923
  flex: 1,
12915
12924
  flexDirection: "column",
@@ -12919,7 +12928,7 @@ var StyledBannerContents = styled52(View)(
12919
12928
  minWidth: 0
12920
12929
  })
12921
12930
  );
12922
- var StyledBannerCopy = styled52(View)(({ copyGap }) => ({
12931
+ var StyledBannerCopy = styled60(View)(({ copyGap }) => ({
12923
12932
  flexDirection: "column",
12924
12933
  alignItems: "flex-start",
12925
12934
  gap: copyGap,
@@ -13058,22 +13067,22 @@ function defaultGetDateState(date) {
13058
13067
  function getDefaultMonthLabel(year, month, locale) {
13059
13068
  return format(new Date(year, month, 1), "MMMM yyyy", { locale });
13060
13069
  }
13061
- var StyledContainer3 = styled52(View)(({ containerGap, containerMaxWidth }) => ({
13070
+ var StyledContainer3 = styled60(View)(({ containerGap, containerMaxWidth }) => ({
13062
13071
  flexDirection: "column",
13063
13072
  gap: containerGap,
13064
13073
  maxWidth: containerMaxWidth
13065
13074
  }));
13066
- var StyledMonthHeader = styled52(View)(
13075
+ var StyledMonthHeader = styled60(View)(
13067
13076
  ({ headerGap }) => ({
13068
13077
  flexDirection: "row",
13069
13078
  alignItems: "center",
13070
13079
  gap: headerGap
13071
13080
  })
13072
13081
  );
13073
- var StyledWeekRow = styled52(View)({
13082
+ var StyledWeekRow = styled60(View)({
13074
13083
  flexDirection: "row"
13075
13084
  });
13076
- var StyledWeekCell = styled52(View)(
13085
+ var StyledWeekCell = styled60(View)(
13077
13086
  ({ cellHeight }) => ({
13078
13087
  flex: 1,
13079
13088
  alignItems: "center",
@@ -13081,14 +13090,14 @@ var StyledWeekCell = styled52(View)(
13081
13090
  height: cellHeight
13082
13091
  })
13083
13092
  );
13084
- var StyledDatesGrid = styled52(View)(({ rowGap }) => ({
13093
+ var StyledDatesGrid = styled60(View)(({ rowGap }) => ({
13085
13094
  flexDirection: "column",
13086
13095
  gap: rowGap
13087
13096
  }));
13088
- var StyledDateRow = styled52(View)({
13097
+ var StyledDateRow = styled60(View)({
13089
13098
  flexDirection: "row"
13090
13099
  });
13091
- var StyledDateCell = styled52(View)(
13100
+ var StyledDateCell = styled60(View)(
13092
13101
  ({ cellHeight }) => ({
13093
13102
  flex: 1,
13094
13103
  height: cellHeight,
@@ -13096,7 +13105,7 @@ var StyledDateCell = styled52(View)(
13096
13105
  justifyContent: "center"
13097
13106
  })
13098
13107
  );
13099
- var StyledIndicator3 = styled52(View)(
13108
+ var StyledIndicator3 = styled60(View)(
13100
13109
  ({
13101
13110
  indicatorSize,
13102
13111
  indicatorBorderRadius,
@@ -13461,25 +13470,25 @@ var buildPointerPath = (r) => {
13461
13470
  ].join(" ");
13462
13471
  };
13463
13472
  var parseTokenValue53 = (value) => parseFloat(value);
13464
- var StyledRoot15 = styled52(View)(({ rootGap }) => ({
13473
+ var StyledRoot15 = styled60(View)(({ rootGap }) => ({
13465
13474
  flexDirection: "column",
13466
13475
  gap: rootGap,
13467
13476
  width: "100%"
13468
13477
  }));
13469
- var StyledRow2 = styled52(View)(({ rowGap }) => ({
13478
+ var StyledRow2 = styled60(View)(({ rowGap }) => ({
13470
13479
  flexDirection: "row",
13471
13480
  alignItems: "flex-start",
13472
13481
  gap: rowGap,
13473
13482
  width: "100%"
13474
13483
  }));
13475
- var StyledItemStack = styled52(View)(({ stackGap }) => ({
13484
+ var StyledItemStack = styled60(View)(({ stackGap }) => ({
13476
13485
  flexDirection: "column",
13477
13486
  alignItems: "center",
13478
13487
  gap: stackGap,
13479
13488
  flex: 1,
13480
13489
  minWidth: 0
13481
13490
  }));
13482
- var StyledPictureButton = styled52(Pressable)(
13491
+ var StyledPictureButton = styled60(Pressable)(
13483
13492
  ({
13484
13493
  buttonBorderRadius,
13485
13494
  buttonBorderWidth,
@@ -13506,7 +13515,7 @@ var StyledPictureButton = styled52(Pressable)(
13506
13515
  overflow: "hidden"
13507
13516
  })
13508
13517
  );
13509
- var StyledPointer = styled52(Svg)(
13518
+ var StyledPointer = styled60(Svg)(
13510
13519
  ({ pointerVisible }) => ({
13511
13520
  width: POINTER_WIDTH,
13512
13521
  height: POINTER_HEIGHT,
@@ -13650,7 +13659,807 @@ var PictureSelector = React60.forwardRef(
13650
13659
  }
13651
13660
  );
13652
13661
  PictureSelector.displayName = "PictureSelector";
13662
+ var UNIT_LABELS = {
13663
+ days: "days",
13664
+ hours: "hrs",
13665
+ minutes: "min",
13666
+ seconds: "secs"
13667
+ };
13668
+ var parseTokenValue54 = (value) => parseFloat(value);
13669
+ var pad = (value) => String(Math.max(0, Math.floor(value))).padStart(2, "0");
13670
+ var StackedRoot = styled60(View)(({ rootGap }) => ({
13671
+ flexDirection: "row",
13672
+ alignItems: "center",
13673
+ alignSelf: "flex-start",
13674
+ gap: rootGap
13675
+ }));
13676
+ var StackedItem = styled60(View)(
13677
+ ({
13678
+ itemGap,
13679
+ itemVerticalPadding,
13680
+ itemHorizontalPadding,
13681
+ itemBgColor,
13682
+ itemBorderRadius
13683
+ }) => ({
13684
+ flexDirection: "column",
13685
+ alignItems: "center",
13686
+ justifyContent: "center",
13687
+ gap: itemGap,
13688
+ paddingVertical: itemVerticalPadding,
13689
+ paddingHorizontal: itemHorizontalPadding,
13690
+ backgroundColor: itemBgColor,
13691
+ borderRadius: itemBorderRadius
13692
+ })
13693
+ );
13694
+ var StackedCountBox = styled60(View)(({ countPaddingTop, countBgColor, countBorderRadius }) => ({
13695
+ alignItems: "center",
13696
+ justifyContent: "center",
13697
+ // TODO: Add token — fixed count box dimensions are not yet tokenised.
13698
+ width: 48,
13699
+ height: 36,
13700
+ paddingTop: countPaddingTop,
13701
+ backgroundColor: countBgColor,
13702
+ borderRadius: countBorderRadius
13703
+ }));
13704
+ var InlineRoot = styled60(View)(
13705
+ ({
13706
+ rootGap,
13707
+ rootVerticalPadding,
13708
+ rootHorizontalPadding,
13709
+ rootBgColor,
13710
+ rootBorderRadius
13711
+ }) => ({
13712
+ flexDirection: "row",
13713
+ alignItems: "center",
13714
+ justifyContent: "space-between",
13715
+ gap: rootGap,
13716
+ width: "100%",
13717
+ paddingVertical: rootVerticalPadding,
13718
+ paddingHorizontal: rootHorizontalPadding,
13719
+ backgroundColor: rootBgColor,
13720
+ borderRadius: rootBorderRadius,
13721
+ overflow: "hidden"
13722
+ })
13723
+ );
13724
+ var InlineGroup = styled60(View)(({ groupGap }) => ({
13725
+ flexDirection: "row",
13726
+ alignItems: "center",
13727
+ justifyContent: "flex-end",
13728
+ gap: groupGap
13729
+ }));
13730
+ var InlineCount = styled60(View)(({ countGap }) => ({
13731
+ flexDirection: "row",
13732
+ alignItems: "center",
13733
+ gap: countGap
13734
+ }));
13735
+ var Countdown = React60.forwardRef(
13736
+ (_a, ref) => {
13737
+ var _b = _a, {
13738
+ layout = "stacked",
13739
+ days = 0,
13740
+ hours = 0,
13741
+ minutes = 0,
13742
+ seconds = 0,
13743
+ showDays = true,
13744
+ showSeconds = true,
13745
+ label
13746
+ } = _b, rest = __objRest(_b, [
13747
+ "layout",
13748
+ "days",
13749
+ "hours",
13750
+ "minutes",
13751
+ "seconds",
13752
+ "showDays",
13753
+ "showSeconds",
13754
+ "label"
13755
+ ]);
13756
+ const theme2 = useTheme();
13757
+ const { countdown } = theme2.tokens.components;
13758
+ const { countdownItem } = countdown;
13759
+ const units = [
13760
+ showDays && {
13761
+ key: "days",
13762
+ value: days,
13763
+ label: UNIT_LABELS.days
13764
+ },
13765
+ { key: "hours", value: hours, label: UNIT_LABELS.hours },
13766
+ { key: "minutes", value: minutes, label: UNIT_LABELS.minutes },
13767
+ showSeconds && {
13768
+ key: "seconds",
13769
+ value: seconds,
13770
+ label: UNIT_LABELS.seconds
13771
+ }
13772
+ ].filter(Boolean);
13773
+ const colon = (key) => /* @__PURE__ */ jsx(
13774
+ Typography,
13775
+ {
13776
+ token: countdown.typography.colon,
13777
+ color: countdown.colour.text.colon,
13778
+ children: ":"
13779
+ },
13780
+ key
13781
+ );
13782
+ if (layout === "inline") {
13783
+ return /* @__PURE__ */ jsxs(
13784
+ InlineRoot,
13785
+ __spreadProps(__spreadValues({
13786
+ ref,
13787
+ rootGap: parseTokenValue54(countdown.spacing.gap),
13788
+ rootVerticalPadding: parseTokenValue54(
13789
+ countdown.spacing.verticalPadding
13790
+ ),
13791
+ rootHorizontalPadding: parseTokenValue54(
13792
+ countdown.spacing.horizontalPadding
13793
+ ),
13794
+ rootBgColor: countdown.colour.background.default,
13795
+ rootBorderRadius: parseTokenValue54(countdown.borderRadius.default)
13796
+ }, rest), {
13797
+ children: [
13798
+ label != null && /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", size: "md", color: "primary", children: label }),
13799
+ /* @__PURE__ */ jsx(
13800
+ InlineGroup,
13801
+ {
13802
+ groupGap: parseTokenValue54(countdown.countdownGroup.spacing.gap),
13803
+ children: units.map((unit, index) => /* @__PURE__ */ jsxs(React60.Fragment, { children: [
13804
+ index > 0 && colon(`colon-${unit.key}`),
13805
+ /* @__PURE__ */ jsxs(
13806
+ InlineCount,
13807
+ {
13808
+ countGap: parseTokenValue54(countdown.count.spacing.gap),
13809
+ children: [
13810
+ /* @__PURE__ */ jsx(
13811
+ Typography,
13812
+ {
13813
+ variant: "body",
13814
+ weight: "bold",
13815
+ size: "md",
13816
+ color: "primary",
13817
+ children: pad(unit.value)
13818
+ }
13819
+ ),
13820
+ /* @__PURE__ */ jsx(
13821
+ Typography,
13822
+ {
13823
+ variant: "body",
13824
+ weight: "medium",
13825
+ size: "xs",
13826
+ color: "secondary",
13827
+ children: unit.label
13828
+ }
13829
+ )
13830
+ ]
13831
+ }
13832
+ )
13833
+ ] }, unit.key))
13834
+ }
13835
+ )
13836
+ ]
13837
+ })
13838
+ );
13839
+ }
13840
+ return /* @__PURE__ */ jsx(
13841
+ StackedRoot,
13842
+ __spreadProps(__spreadValues({
13843
+ ref,
13844
+ rootGap: parseTokenValue54(countdown.spacing.gap)
13845
+ }, rest), {
13846
+ children: units.map((unit, index) => /* @__PURE__ */ jsxs(React60.Fragment, { children: [
13847
+ index > 0 && colon(`colon-${unit.key}`),
13848
+ /* @__PURE__ */ jsxs(
13849
+ StackedItem,
13850
+ {
13851
+ itemGap: parseTokenValue54(countdownItem.spacing.gap),
13852
+ itemVerticalPadding: parseTokenValue54(
13853
+ countdownItem.spacing.verticalPadding
13854
+ ),
13855
+ itemHorizontalPadding: parseTokenValue54(
13856
+ countdownItem.spacing.horizontalPadding
13857
+ ),
13858
+ itemBgColor: countdownItem.colour.background.default,
13859
+ itemBorderRadius: parseTokenValue54(
13860
+ countdownItem.borderRadius.default
13861
+ ),
13862
+ children: [
13863
+ /* @__PURE__ */ jsx(
13864
+ StackedCountBox,
13865
+ {
13866
+ countPaddingTop: parseTokenValue54(
13867
+ countdownItem.count.spacing.paddingTop
13868
+ ),
13869
+ countBgColor: countdownItem.count.colour.background.default,
13870
+ countBorderRadius: parseTokenValue54(
13871
+ countdownItem.count.borderRadius.default
13872
+ ),
13873
+ children: /* @__PURE__ */ jsx(
13874
+ Typography,
13875
+ {
13876
+ token: countdownItem.typography.count,
13877
+ color: countdownItem.count.colour.text.count,
13878
+ children: pad(unit.value)
13879
+ }
13880
+ )
13881
+ }
13882
+ ),
13883
+ /* @__PURE__ */ jsx(
13884
+ Typography,
13885
+ {
13886
+ token: countdownItem.typography.label,
13887
+ color: countdownItem.colour.text.label,
13888
+ children: unit.label
13889
+ }
13890
+ )
13891
+ ]
13892
+ }
13893
+ )
13894
+ ] }, unit.key))
13895
+ })
13896
+ );
13897
+ }
13898
+ );
13899
+ Countdown.displayName = "Countdown";
13900
+ var parseTokenValue55 = (value) => {
13901
+ if (typeof value === "number") return value;
13902
+ return parseFloat(value);
13903
+ };
13904
+ var BadgeContainer = styled60(View)(({ theme: theme2 }) => {
13905
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
13906
+ const { sizing, borderRadius } = theme2.tokens.semantics.dimensions;
13907
+ const { colour } = theme2.tokens.semantics;
13908
+ return {
13909
+ display: "flex",
13910
+ flexDirection: "row",
13911
+ gap: parseTokenValue55(spacing["2xs"]),
13912
+ alignItems: "center",
13913
+ justifyContent: "center",
13914
+ height: parseTokenValue55(sizing["2xl"]),
13915
+ paddingRight: parseTokenValue55(spacing.sm),
13916
+ backgroundColor: colour.background.container.alt,
13917
+ borderTopRightRadius: parseTokenValue55(borderRadius.xs),
13918
+ borderBottomRightRadius: parseTokenValue55(borderRadius.xs)
13919
+ };
13920
+ });
13921
+ var BadgeIcon = styled60(View)(({ theme: theme2 }) => {
13922
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
13923
+ const sizing = theme2.tokens.semantics.dimensions.sizing;
13924
+ return {
13925
+ display: "flex",
13926
+ alignItems: "center",
13927
+ justifyContent: "center",
13928
+ width: parseTokenValue55(sizing.md),
13929
+ height: parseTokenValue55(sizing.md),
13930
+ marginLeft: parseTokenValue55(spacing.xs),
13931
+ flexShrink: 0
13932
+ };
13933
+ });
13934
+ var Badge2 = React60.forwardRef(
13935
+ (_a, ref) => {
13936
+ var _b = _a, { icon, text } = _b, rest = __objRest(_b, ["icon", "text"]);
13937
+ return /* @__PURE__ */ jsxs(BadgeContainer, __spreadProps(__spreadValues({ ref }, rest), { children: [
13938
+ icon && /* @__PURE__ */ jsx(BadgeIcon, { children: icon }),
13939
+ /* @__PURE__ */ jsx(Typography, { variant: "body", size: "sm", weight: "bold", children: text })
13940
+ ] }));
13941
+ }
13942
+ );
13943
+ Badge2.displayName = "ProductListingCard.Badge";
13944
+ var StyledGrid = styled60(View)(({ theme: theme2 }) => {
13945
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
13946
+ return {
13947
+ display: "grid",
13948
+ "grid-column-gap": spacing.sm,
13949
+ "grid-row-gap": spacing.xl
13950
+ };
13951
+ });
13952
+ var Grid = React60.forwardRef(
13953
+ (_a, ref) => {
13954
+ var _b = _a, { children, xs = 1, md = 2, lg = 3 } = _b, rest = __objRest(_b, ["children", "xs", "md", "lg"]);
13955
+ const { width } = useWindowDimensions();
13956
+ const breakpoints = DEFAULT_THEME_OPTIONS.tokens.semantics.dimensions.breakpoints.spacing;
13957
+ const SM_BREAKPOINT = parseFloat(String(breakpoints.sm));
13958
+ const MD_BREAKPOINT = parseFloat(String(breakpoints.md));
13959
+ const getItemsPerRow = () => {
13960
+ if (width >= MD_BREAKPOINT) return lg;
13961
+ if (width >= SM_BREAKPOINT) return md;
13962
+ return xs;
13963
+ };
13964
+ const itemsPerRow = getItemsPerRow();
13965
+ return /* @__PURE__ */ jsx(
13966
+ StyledGrid,
13967
+ __spreadProps(__spreadValues({
13968
+ ref,
13969
+ style: {
13970
+ gridTemplateColumns: `repeat(${itemsPerRow}, 1fr)`
13971
+ }
13972
+ }, rest), {
13973
+ children
13974
+ })
13975
+ );
13976
+ }
13977
+ );
13978
+ Grid.displayName = "ProductListingCard.Grid";
13979
+ var parseTokenValue56 = (value) => {
13980
+ if (typeof value === "number") return value;
13981
+ return parseFloat(value);
13982
+ };
13983
+ var StyledRoot16 = styled60(Pressable)(({ theme: theme2 }) => {
13984
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
13985
+ return {
13986
+ display: "flex",
13987
+ flexDirection: "column",
13988
+ gap: parseTokenValue56(spacing.md),
13989
+ alignItems: "flex-start",
13990
+ width: "100%"
13991
+ };
13992
+ });
13993
+ var ImageContainer = styled60(View)({
13994
+ position: "relative",
13995
+ width: "100%",
13996
+ aspectRatio: 1,
13997
+ overflow: "hidden"
13998
+ });
13999
+ var StyledImage2 = styled60(Image)({
14000
+ width: "100%",
14001
+ height: "100%",
14002
+ resizeMode: "cover"
14003
+ });
14004
+ var BadgeContainer2 = styled60(View)(({ theme: theme2 }) => {
14005
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14006
+ const { sizing, borderRadius } = theme2.tokens.semantics.dimensions;
14007
+ const { colour } = theme2.tokens.semantics;
14008
+ return {
14009
+ position: "absolute",
14010
+ top: parseTokenValue56(spacing.md),
14011
+ left: 0,
14012
+ display: "flex",
14013
+ flexDirection: "row",
14014
+ gap: parseTokenValue56(spacing["2xs"]),
14015
+ alignItems: "center",
14016
+ justifyContent: "center",
14017
+ height: parseTokenValue56(sizing["2xl"]),
14018
+ paddingRight: parseTokenValue56(spacing.sm),
14019
+ backgroundColor: colour.background.container.alt,
14020
+ borderTopRightRadius: parseTokenValue56(borderRadius.sm),
14021
+ borderBottomRightRadius: parseTokenValue56(borderRadius.sm)
14022
+ };
14023
+ });
14024
+ var ContentContainer = styled60(View)(({ theme: theme2 }) => {
14025
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14026
+ return {
14027
+ display: "flex",
14028
+ flexDirection: "column",
14029
+ gap: parseTokenValue56(spacing.md),
14030
+ alignItems: "flex-start",
14031
+ width: "100%"
14032
+ };
14033
+ });
14034
+ var DetailsContainer = styled60(View)({
14035
+ display: "flex",
14036
+ flexDirection: "column",
14037
+ alignItems: "flex-start",
14038
+ width: "100%"
14039
+ });
14040
+ var CategoryWrapper = styled60(View)(({ theme: theme2 }) => {
14041
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14042
+ return {
14043
+ marginBottom: parseTokenValue56(spacing["3xs"])
14044
+ };
14045
+ });
14046
+ var TitleContainer = styled60(View)(({ theme: theme2 }) => {
14047
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14048
+ return {
14049
+ display: "flex",
14050
+ flexDirection: "row",
14051
+ width: "100%",
14052
+ marginBottom: parseTokenValue56(spacing.xs)
14053
+ };
14054
+ });
14055
+ var SizeWrapper = styled60(View)(({ theme: theme2 }) => {
14056
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14057
+ return {
14058
+ marginBottom: parseTokenValue56(spacing.md)
14059
+ };
14060
+ });
14061
+ var PricingContainer = styled60(View)(({ theme: theme2 }) => {
14062
+ const spacing = theme2.tokens.semantics.dimensions.spacing;
14063
+ return {
14064
+ display: "flex",
14065
+ flexDirection: "row",
14066
+ gap: Math.round(parseFloat(spacing["2xs"])),
14067
+ alignItems: "center",
14068
+ width: "100%"
14069
+ };
14070
+ });
14071
+ var _ProductListingCard = React60.forwardRef(
14072
+ (_a, ref) => {
14073
+ var _b = _a, {
14074
+ image,
14075
+ imageAlt,
14076
+ badge,
14077
+ category,
14078
+ title,
14079
+ size,
14080
+ price,
14081
+ wasPrice,
14082
+ showBadge = true,
14083
+ showCategory = true,
14084
+ showTitle = true,
14085
+ showSize = true,
14086
+ showPrice = true,
14087
+ onPress
14088
+ } = _b, rest = __objRest(_b, [
14089
+ "image",
14090
+ "imageAlt",
14091
+ "badge",
14092
+ "category",
14093
+ "title",
14094
+ "size",
14095
+ "price",
14096
+ "wasPrice",
14097
+ "showBadge",
14098
+ "showCategory",
14099
+ "showTitle",
14100
+ "showSize",
14101
+ "showPrice",
14102
+ "onPress"
14103
+ ]);
14104
+ return /* @__PURE__ */ jsxs(StyledRoot16, __spreadProps(__spreadValues({ ref, onPress }, rest), { children: [
14105
+ /* @__PURE__ */ jsxs(ImageContainer, { children: [
14106
+ image && /* @__PURE__ */ jsx(View, { style: { flex: 1, width: "100%", height: "100%" }, children: /* @__PURE__ */ jsx(
14107
+ StyledImage2,
14108
+ {
14109
+ source: image,
14110
+ accessibilityLabel: imageAlt,
14111
+ accessible: true
14112
+ }
14113
+ ) }),
14114
+ showBadge && badge && /* @__PURE__ */ jsx(BadgeContainer2, { children: badge })
14115
+ ] }),
14116
+ /* @__PURE__ */ jsxs(ContentContainer, { children: [
14117
+ /* @__PURE__ */ jsxs(DetailsContainer, { children: [
14118
+ showCategory && category && /* @__PURE__ */ jsx(CategoryWrapper, { children: /* @__PURE__ */ jsx(Typography, { variant: "body", size: "sm", color: "secondary", children: category }) }),
14119
+ showTitle && /* @__PURE__ */ jsx(TitleContainer, { children: /* @__PURE__ */ jsx(Typography, { variant: "heading", size: "xs", children: title }) }),
14120
+ showSize && size && /* @__PURE__ */ jsx(SizeWrapper, { children: /* @__PURE__ */ jsx(Typography, { variant: "body", size: "md", color: "secondary", children: size }) })
14121
+ ] }),
14122
+ showPrice && price && /* @__PURE__ */ jsxs(PricingContainer, { children: [
14123
+ /* @__PURE__ */ jsx(Typography, { variant: "body", size: "md", color: "secondary", children: price }),
14124
+ wasPrice && /* @__PURE__ */ jsx(
14125
+ Typography,
14126
+ {
14127
+ variant: "body",
14128
+ size: "md",
14129
+ color: "secondary",
14130
+ textDecoration: "line-through",
14131
+ children: wasPrice
14132
+ }
14133
+ )
14134
+ ] })
14135
+ ] })
14136
+ ] }));
14137
+ }
14138
+ );
14139
+ _ProductListingCard.displayName = "ProductListingCard";
14140
+ var ProductListingCardWithBadgeAndGrid = Object.assign(_ProductListingCard, {
14141
+ Badge: Badge2,
14142
+ Grid
14143
+ });
14144
+ var StyledCardContainer = styled60(View)(({ theme: theme2 }) => {
14145
+ const { spacing, borderRadius } = theme2.tokens.semantics.dimensions;
14146
+ const { colour } = theme2.tokens.semantics;
14147
+ const spacingMd = parseTokenValue8(spacing.md);
14148
+ const spacingXl = parseTokenValue8(spacing.xl);
14149
+ return {
14150
+ flexDirection: "row",
14151
+ width: "100%",
14152
+ height: "100%",
14153
+ maxHeight: spacingXl * 6 + spacingMd,
14154
+ backgroundColor: colour.background.surface.default,
14155
+ borderWidth: 1,
14156
+ borderColor: colour.border.default,
14157
+ borderRadius: parseTokenValue8(borderRadius.md),
14158
+ overflow: "hidden",
14159
+ shadowColor: "#522a10",
14160
+ shadowOffset: { width: 0, height: spacingMd / 4 },
14161
+ shadowOpacity: 0.05,
14162
+ shadowRadius: spacingXl - 4,
14163
+ elevation: 5,
14164
+ zIndex: 1
14165
+ };
14166
+ });
14167
+ var StyledImage3 = styled60(View)(() => ({
14168
+ flexShrink: 0,
14169
+ backgroundColor: "#f5f5f5",
14170
+ overflow: "hidden",
14171
+ aspectRatio: "1 / 1",
14172
+ height: "100%"
14173
+ }));
14174
+ var StyledContentArea = styled60(View)(({ theme: theme2 }) => {
14175
+ const { spacing } = theme2.tokens.semantics.dimensions;
14176
+ return {
14177
+ flex: 1,
14178
+ paddingHorizontal: parseTokenValue8(spacing.md),
14179
+ paddingVertical: parseTokenValue8(spacing.md),
14180
+ gap: parseTokenValue8(spacing.xs),
14181
+ justifyContent: "space-between"
14182
+ };
14183
+ });
14184
+ var StyledTextContainer = styled60(View)(() => ({
14185
+ gap: 2
14186
+ }));
14187
+ var StyledBannerWrapper = styled60(View)(() => ({
14188
+ width: "100%",
14189
+ marginTop: -48,
14190
+ paddingTop: 24,
14191
+ paddingBottom: 16
14192
+ }));
14193
+ var StyledRootWrapper = styled60(View)(() => {
14194
+ return {
14195
+ flexDirection: "column",
14196
+ width: "100%",
14197
+ height: "100%"
14198
+ };
14199
+ });
14200
+ var StyledNotification = styled60(Notification)(({ theme: theme2 }) => {
14201
+ const { spacing } = theme2.tokens.semantics.dimensions;
14202
+ return {
14203
+ top: parseTokenValue8(spacing.md),
14204
+ paddingHorizontal: parseTokenValue8(spacing.xl),
14205
+ paddingVertical: parseTokenValue8(spacing.md)
14206
+ };
14207
+ });
14208
+ var ProductDisplayCard = React60.forwardRef(
14209
+ (_a, ref) => {
14210
+ var _b = _a, {
14211
+ device = "mobile",
14212
+ title,
14213
+ subtext,
14214
+ showSubtext = true,
14215
+ quantity = 1,
14216
+ onQuantityChange,
14217
+ showQuantityPicker = false,
14218
+ disableQuantityButtons = false,
14219
+ hideQuantityButtons = false,
14220
+ showIncrementButton,
14221
+ showDecrementButton,
14222
+ incrementDisabled = false,
14223
+ decrementDisabled = false,
14224
+ image,
14225
+ banner,
14226
+ showBanner = false,
14227
+ bannerType = "info",
14228
+ showBannerIcon = false
14229
+ } = _b, rest = __objRest(_b, [
14230
+ "device",
14231
+ "title",
14232
+ "subtext",
14233
+ "showSubtext",
14234
+ "quantity",
14235
+ "onQuantityChange",
14236
+ "showQuantityPicker",
14237
+ "disableQuantityButtons",
14238
+ "hideQuantityButtons",
14239
+ "showIncrementButton",
14240
+ "showDecrementButton",
14241
+ "incrementDisabled",
14242
+ "decrementDisabled",
14243
+ "image",
14244
+ "banner",
14245
+ "showBanner",
14246
+ "bannerType",
14247
+ "showBannerIcon"
14248
+ ]);
14249
+ const handleQuantityChange = (newQuantity) => {
14250
+ if (newQuantity >= 1) {
14251
+ onQuantityChange == null ? void 0 : onQuantityChange(newQuantity);
14252
+ }
14253
+ };
14254
+ const cardContent = /* @__PURE__ */ jsxs(StyledCardContainer, __spreadProps(__spreadValues({ ref, cardDevice: device }, rest), { children: [
14255
+ image && /* @__PURE__ */ jsx(StyledImage3, { children: image }),
14256
+ /* @__PURE__ */ jsxs(StyledContentArea, { contentDevice: device, children: [
14257
+ /* @__PURE__ */ jsxs(StyledTextContainer, { children: [
14258
+ /* @__PURE__ */ jsx(Typography, { variant: "heading", size: "xs", color: "primary", children: title }),
14259
+ showSubtext && subtext && /* @__PURE__ */ jsx(Typography, { variant: "body", size: "sm", color: "secondary", children: subtext })
14260
+ ] }),
14261
+ showQuantityPicker && /* @__PURE__ */ jsx(View, { style: { marginLeft: "auto" }, children: /* @__PURE__ */ jsx(
14262
+ NumberField,
14263
+ {
14264
+ size: "sm",
14265
+ value: String(quantity),
14266
+ onChangeText: (text) => {
14267
+ const value = parseInt(text, 10);
14268
+ if (!isNaN(value)) {
14269
+ handleQuantityChange(value);
14270
+ }
14271
+ },
14272
+ onIncrement: () => handleQuantityChange(quantity + 1),
14273
+ onDecrement: () => handleQuantityChange(quantity - 1),
14274
+ min: 1,
14275
+ accessible: true,
14276
+ accessibilityLabel: `Quantity: ${quantity}`,
14277
+ showIncrementButton: showIncrementButton !== void 0 ? showIncrementButton : !hideQuantityButtons,
14278
+ showDecrementButton: showDecrementButton !== void 0 ? showDecrementButton : !hideQuantityButtons,
14279
+ incrementDisabled: incrementDisabled || disableQuantityButtons,
14280
+ decrementDisabled: decrementDisabled || disableQuantityButtons
14281
+ }
14282
+ ) })
14283
+ ] })
14284
+ ] }));
14285
+ if (showBanner && banner) {
14286
+ return /* @__PURE__ */ jsxs(StyledRootWrapper, { children: [
14287
+ cardContent,
14288
+ /* @__PURE__ */ jsx(StyledBannerWrapper, { children: /* @__PURE__ */ jsx(
14289
+ StyledNotification,
14290
+ {
14291
+ variant: "inline",
14292
+ type: bannerType,
14293
+ showIcon: showBannerIcon,
14294
+ children: banner
14295
+ }
14296
+ ) })
14297
+ ] });
14298
+ }
14299
+ return cardContent;
14300
+ }
14301
+ );
14302
+ ProductDisplayCard.displayName = "ProductDisplayCard";
14303
+ var TabNavigationContext = React60.createContext(void 0);
14304
+ var useTabNavigationContext = () => {
14305
+ const context = React60.useContext(TabNavigationContext);
14306
+ if (!context) {
14307
+ throw new Error(
14308
+ "TabNavigation.List, TabNavigation.Tab and TabNavigation.Panel must be used within a TabNavigation component."
14309
+ );
14310
+ }
14311
+ return context;
14312
+ };
14313
+ var parseTokenValue57 = (value) => parseFloat(value);
14314
+ var StyledFixedList = styled60(View)({
14315
+ flexDirection: "row",
14316
+ alignItems: "stretch",
14317
+ width: "100%"
14318
+ });
14319
+ var StyledTab = styled60(Pressable)(
14320
+ ({
14321
+ tabHeight,
14322
+ tabMinWidth,
14323
+ tabPaddingTop,
14324
+ tabPaddingBottom,
14325
+ tabPaddingHorizontal,
14326
+ tabGap,
14327
+ tabBorderWidth,
14328
+ tabBorderColor,
14329
+ tabFlex
14330
+ }) => __spreadValues({
14331
+ flexDirection: "row",
14332
+ alignItems: "center",
14333
+ justifyContent: "center",
14334
+ gap: tabGap,
14335
+ height: tabHeight,
14336
+ minWidth: tabMinWidth,
14337
+ paddingTop: tabPaddingTop,
14338
+ paddingBottom: tabPaddingBottom,
14339
+ paddingHorizontal: tabPaddingHorizontal,
14340
+ borderBottomWidth: tabBorderWidth,
14341
+ borderBottomColor: tabBorderColor
14342
+ }, tabFlex !== void 0 ? { flex: tabFlex } : { flexShrink: 0 })
14343
+ );
14344
+ var TabNavigationList = React60.forwardRef(
14345
+ (_a, ref) => {
14346
+ var _b = _a, { children } = _b, rest = __objRest(_b, ["children"]);
14347
+ const { layout } = useTabNavigationContext();
14348
+ if (layout === "intrinsic") {
14349
+ return /* @__PURE__ */ jsx(TabsPrimitive.List, { asChild: true, children: /* @__PURE__ */ jsx(View, __spreadProps(__spreadValues({ ref }, rest), { children: /* @__PURE__ */ jsx(
14350
+ ScrollView,
14351
+ {
14352
+ horizontal: true,
14353
+ showsHorizontalScrollIndicator: false,
14354
+ contentContainerStyle: styles4.scrollContent,
14355
+ children
14356
+ }
14357
+ ) })) });
14358
+ }
14359
+ return /* @__PURE__ */ jsx(TabsPrimitive.List, { asChild: true, children: /* @__PURE__ */ jsx(StyledFixedList, __spreadProps(__spreadValues({ ref }, rest), { children })) });
14360
+ }
14361
+ );
14362
+ TabNavigationList.displayName = "TabNavigation.List";
14363
+ var TabNavigationTab = React60.forwardRef(
14364
+ (_a, ref) => {
14365
+ var _b = _a, { value, disabled = false, children } = _b, rest = __objRest(_b, ["value", "disabled", "children"]);
14366
+ const { layout } = useTabNavigationContext();
14367
+ const { value: selectedValue } = TabsPrimitive.useRootContext();
14368
+ const theme2 = useTheme();
14369
+ const { tabItem, tabitem } = theme2.tokens.components.tabNavigation;
14370
+ const { spacing, colour, borderWidth, typography } = tabItem;
14371
+ const selected = selectedValue === value;
14372
+ const token = selected ? typography.selected : typography.default;
14373
+ const borderColour = selected ? colour.border.default : colour.border.disabled;
14374
+ const textColour = disabled ? theme2.tokens.primitives.colour.brand.brown["5"] : colour.text.default;
14375
+ return /* @__PURE__ */ jsx(TabsPrimitive.Trigger, { value, disabled, asChild: true, children: /* @__PURE__ */ jsx(
14376
+ StyledTab,
14377
+ __spreadProps(__spreadValues({
14378
+ ref,
14379
+ tabHeight: parseTokenValue57(tabitem.size.height),
14380
+ tabMinWidth: parseTokenValue57(tabitem.size.minWidth),
14381
+ tabPaddingTop: parseTokenValue57(spacing.topPadding),
14382
+ tabPaddingBottom: parseTokenValue57(spacing.bottomPadding),
14383
+ tabPaddingHorizontal: parseTokenValue57(spacing.horizontalPadding),
14384
+ tabGap: parseTokenValue57(spacing.gap),
14385
+ tabBorderWidth: parseTokenValue57(borderWidth.default),
14386
+ tabBorderColor: borderColour,
14387
+ tabFlex: layout === "fixed" ? 1 : void 0
14388
+ }, rest), {
14389
+ children: /* @__PURE__ */ jsx(Typography, { token, color: textColour, children })
14390
+ })
14391
+ ) });
14392
+ }
14393
+ );
14394
+ TabNavigationTab.displayName = "TabNavigation.Tab";
14395
+ var TabNavigationPanel = React60.forwardRef(
14396
+ (_a, ref) => {
14397
+ var _b = _a, { value, children } = _b, rest = __objRest(_b, ["value", "children"]);
14398
+ const { animation } = useTabNavigationContext();
14399
+ return /* @__PURE__ */ jsx(TabsPrimitive.Content, { value, asChild: true, children: /* @__PURE__ */ jsx(Animated5, __spreadProps(__spreadValues({ ref, variant: animation, exit: false }, rest), { children })) });
14400
+ }
14401
+ );
14402
+ TabNavigationPanel.displayName = "TabNavigation.Panel";
14403
+ var TabNavigationRoot = React60.forwardRef(
14404
+ (_a, ref) => {
14405
+ var _b = _a, {
14406
+ value,
14407
+ defaultValue,
14408
+ onValueChange,
14409
+ layout = "fixed",
14410
+ animation = "slideIn",
14411
+ children
14412
+ } = _b, rest = __objRest(_b, [
14413
+ "value",
14414
+ "defaultValue",
14415
+ "onValueChange",
14416
+ "layout",
14417
+ "animation",
14418
+ "children"
14419
+ ]);
14420
+ const isControlled = typeof value === "string";
14421
+ const [uncontrolledValue, setUncontrolledValue] = React60.useState(
14422
+ () => defaultValue != null ? defaultValue : ""
14423
+ );
14424
+ const currentValue = isControlled ? value : uncontrolledValue;
14425
+ const handleValueChange = React60.useCallback(
14426
+ (newValue) => {
14427
+ if (!isControlled) {
14428
+ setUncontrolledValue(newValue);
14429
+ }
14430
+ onValueChange == null ? void 0 : onValueChange(newValue);
14431
+ },
14432
+ [isControlled, onValueChange]
14433
+ );
14434
+ const contextValue = React60.useMemo(
14435
+ () => ({ layout, animation }),
14436
+ [layout, animation]
14437
+ );
14438
+ return /* @__PURE__ */ jsx(TabNavigationContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
14439
+ TabsPrimitive.Root,
14440
+ __spreadProps(__spreadValues({
14441
+ ref,
14442
+ value: currentValue,
14443
+ onValueChange: handleValueChange
14444
+ }, rest), {
14445
+ children
14446
+ })
14447
+ ) });
14448
+ }
14449
+ );
14450
+ TabNavigationRoot.displayName = "TabNavigation";
14451
+ var styles4 = StyleSheet.create({
14452
+ scrollContent: {
14453
+ flexDirection: "row",
14454
+ alignItems: "stretch"
14455
+ }
14456
+ });
14457
+ var TabNavigation = Object.assign(TabNavigationRoot, {
14458
+ List: TabNavigationList,
14459
+ Tab: TabNavigationTab,
14460
+ Panel: TabNavigationPanel
14461
+ });
13653
14462
 
13654
- export { Accordion, Animated5 as Animated, Avatar, BRAND_FONTS, Badge, Button, ButtonDock, ButtonGroup, CarouselControls, Checkbox, CheckboxGroup, CopyField, CopyFieldInput, DatePicker, Drawer, FilterTab, Hint, Icon, IconButton, Illustration, Input, InputDescription, InputError, InputField, InputLabel, Link, Logo, MessageCard, MessageCardBanner, MessageCardInsight, Notification, NumberField, NumberInput, NumberInputField, PasswordField, PasswordFieldInput, PasswordFieldRequirements, PawprintProvider, PictureSelector, Progress, Radio, RadioGroup, SearchField, SearchFieldInput, SegmentedControl, SelectField, SelectFieldContent, SelectFieldItem, SelectFieldTrigger, SelectFieldValue, Slider, Spinner, Switch, Tag, TextArea, TextAreaField, TextAreaLabel, ThemeProvider, Tooltip, Typography, createPawprintTheme, fadeAnimation, fadeDownAnimation, fadeUpAnimation, registerLogo, resolveFont, resolveLogo, scaleAnimation, slideInAnimation, slideOutAnimation, theme, useCopyField, usePasswordField, usePawprint, useSearchField, useSelectField };
14463
+ export { Accordion, Animated5 as Animated, Avatar, BRAND_FONTS, Badge, Button, ButtonDock, ButtonGroup, CarouselControls, Checkbox, CheckboxGroup, CopyField, CopyFieldInput, Countdown, DatePicker, Drawer, FilterTab, Hint, Icon, IconButton, Illustration, Input, InputDescription, InputError, InputField, InputLabel, Link, Logo, MessageCard, MessageCardBanner, MessageCardInsight, Notification, NumberField, NumberInput, NumberInputField, PasswordField, PasswordFieldInput, PasswordFieldRequirements, PawprintProvider, PictureSelector, ProductDisplayCard, ProductListingCardWithBadgeAndGrid as ProductListingCard, Progress, Radio, RadioGroup, SearchField, SearchFieldInput, SegmentedControl, SelectField, SelectFieldContent, SelectFieldItem, SelectFieldTrigger, SelectFieldValue, Slider, Spinner, Switch, TabNavigation, Tag, TextArea, TextAreaField, TextAreaLabel, ThemeProvider, Tooltip, Typography, createPawprintTheme, fadeAnimation, fadeDownAnimation, fadeUpAnimation, registerLogo, resolveFont, resolveLogo, scaleAnimation, slideInAnimation, slideOutAnimation, theme, useCopyField, usePasswordField, usePawprint, useSearchField, useSelectField };
13655
14464
  //# sourceMappingURL=index.js.map
13656
14465
  //# sourceMappingURL=index.js.map