@butternutbox/pawprint-native 0.10.10 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -18,7 +18,6 @@ var SwitchPrimitive = require('@rn-primitives/switch');
18
18
  var Animated10 = require('react-native-reanimated');
19
19
  var slot = require('@rn-primitives/slot');
20
20
  var reactNativeSafeAreaContext = require('react-native-safe-area-context');
21
- var CheckboxPrimitive = require('@rn-primitives/checkbox');
22
21
  var ProgressPrimitive = require('@rn-primitives/progress');
23
22
  var SelectPrimitive3 = require('@rn-primitives/select');
24
23
  var SliderPrimitive = require('@rn-primitives/slider');
@@ -60,7 +59,6 @@ var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive)
60
59
  var Svg__default = /*#__PURE__*/_interopDefault(Svg);
61
60
  var SwitchPrimitive__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitive);
62
61
  var Animated10__default = /*#__PURE__*/_interopDefault(Animated10);
63
- var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
64
62
  var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimitive);
65
63
  var SelectPrimitive3__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive3);
66
64
  var SliderPrimitive__namespace = /*#__PURE__*/_interopNamespace(SliderPrimitive);
@@ -9872,90 +9870,85 @@ var Checkbox = React65__default.default.forwardRef(
9872
9870
  const isControlled = controlledChecked !== void 0;
9873
9871
  const [internalChecked, setInternalChecked] = React65__default.default.useState(defaultChecked);
9874
9872
  const isChecked = isControlled ? controlledChecked : internalChecked;
9875
- const handleCheckedChange = (checked) => {
9873
+ const handlePress = () => {
9874
+ if (disabled) return;
9875
+ const next = !isChecked;
9876
9876
  if (!isControlled) {
9877
- setInternalChecked(checked);
9877
+ setInternalChecked(next);
9878
9878
  }
9879
- onCheckedChange == null ? void 0 : onCheckedChange(checked);
9879
+ onCheckedChange == null ? void 0 : onCheckedChange(next);
9880
9880
  };
9881
9881
  const isTile = variant === "tile";
9882
9882
  const controlSize = parseTokenValue30(checkbox.size.control.default);
9883
- return /* @__PURE__ */ jsxRuntime.jsx(
9884
- CheckboxPrimitive__namespace.Root,
9885
- {
9886
- checked: isChecked,
9887
- onCheckedChange: handleCheckedChange,
9883
+ return /* @__PURE__ */ jsxRuntime.jsxs(
9884
+ StyledRootPressable,
9885
+ __spreadProps(__spreadValues({
9886
+ ref,
9887
+ onPress: handlePress,
9888
9888
  disabled,
9889
- asChild: true,
9890
- children: /* @__PURE__ */ jsxRuntime.jsxs(
9891
- StyledRootPressable,
9892
- __spreadProps(__spreadValues({
9893
- ref,
9894
- rootFlexAlign: isTile ? "center" : "flex-start",
9895
- rootGap: parseTokenValue30(
9896
- isTile ? checkbox.checkboxTile.spacing.gap : checkbox.spacing.gap
9897
- ),
9898
- rootOpacity: disabled ? parseFloat(theme2.tokens.primitives.opacity["40"]) : 1,
9899
- rootPaddingVertical: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.verticalPadding) : void 0,
9900
- rootPaddingHorizontal: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.horizontalPadding) : void 0,
9901
- rootMaxWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.size.maxWidth) : void 0,
9902
- rootBgColor: isTile ? isChecked ? checkbox.checkboxTile.colour.background.selected : checkbox.checkboxTile.colour.background.default : void 0,
9903
- rootBorderWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.borderWidth.default) : void 0,
9904
- rootBorderColor: isTile ? isChecked ? checkbox.checkboxTile.colour.border.selected : checkbox.checkboxTile.colour.border.default : void 0,
9905
- rootBorderRadius: isTile ? parseTokenValue30(checkbox.checkboxTile.borderRadius.default) : void 0,
9906
- style: typeof style === "function" ? void 0 : style
9907
- }, rest), {
9908
- children: [
9909
- /* @__PURE__ */ jsxRuntime.jsx(
9910
- StyledControl,
9911
- {
9912
- controlSize,
9913
- controlBorderWidth: parseTokenValue30(
9914
- checkbox.control.border.default
9915
- ),
9916
- controlBorderColor: isChecked ? checkbox.colour.background.selected : checkbox.colour.border.default,
9917
- controlBorderRadius: parseTokenValue30(dimensions3.borderRadius.xs),
9918
- controlBgColor: isChecked ? checkbox.colour.background.selected : "transparent",
9919
- children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxPrimitive__namespace.Indicator, { children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: Check_default, size: "xs", colour: "alt" }) })
9920
- }
9921
- ),
9922
- /* @__PURE__ */ jsxRuntime.jsxs(
9923
- StyledContent2,
9924
- {
9925
- contentGap: parseTokenValue30(checkbox.spacing.content.gap),
9926
- children: [
9927
- label && /* @__PURE__ */ jsxRuntime.jsx(
9928
- Typography,
9929
- {
9930
- token: checkbox.typography.label,
9931
- color: checkbox.colour.text.title,
9932
- children: label
9933
- }
9934
- ),
9935
- subText && /* @__PURE__ */ jsxRuntime.jsx(
9936
- Typography,
9937
- {
9938
- token: checkbox.typography.subText,
9939
- color: checkbox.colour.text.subtext,
9940
- children: subText
9941
- }
9942
- )
9943
- ]
9944
- }
9889
+ accessibilityRole: "checkbox",
9890
+ accessibilityState: { checked: isChecked, disabled },
9891
+ rootFlexAlign: isTile ? "center" : "flex-start",
9892
+ rootGap: parseTokenValue30(
9893
+ isTile ? checkbox.checkboxTile.spacing.gap : checkbox.spacing.gap
9894
+ ),
9895
+ rootOpacity: disabled ? parseFloat(theme2.tokens.primitives.opacity["40"]) : 1,
9896
+ rootPaddingVertical: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.verticalPadding) : void 0,
9897
+ rootPaddingHorizontal: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.horizontalPadding) : void 0,
9898
+ rootMaxWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.size.maxWidth) : void 0,
9899
+ rootBgColor: isTile ? isChecked ? checkbox.checkboxTile.colour.background.selected : checkbox.checkboxTile.colour.background.default : void 0,
9900
+ rootBorderWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.borderWidth.default) : void 0,
9901
+ rootBorderColor: isTile ? isChecked ? checkbox.checkboxTile.colour.border.selected : checkbox.checkboxTile.colour.border.default : void 0,
9902
+ rootBorderRadius: isTile ? parseTokenValue30(checkbox.checkboxTile.borderRadius.default) : void 0,
9903
+ style: typeof style === "function" ? void 0 : style
9904
+ }, rest), {
9905
+ children: [
9906
+ /* @__PURE__ */ jsxRuntime.jsx(
9907
+ StyledControl,
9908
+ {
9909
+ controlSize,
9910
+ controlBorderWidth: parseTokenValue30(checkbox.control.border.default),
9911
+ controlBorderColor: isChecked ? checkbox.colour.background.selected : checkbox.colour.border.default,
9912
+ controlBorderRadius: parseTokenValue30(dimensions3.borderRadius.xs),
9913
+ controlBgColor: isChecked ? checkbox.colour.background.selected : "transparent",
9914
+ children: isChecked && /* @__PURE__ */ jsxRuntime.jsx(Icon, { icon: Check_default, size: "xs", colour: "alt" })
9915
+ }
9916
+ ),
9917
+ /* @__PURE__ */ jsxRuntime.jsxs(
9918
+ StyledContent2,
9919
+ {
9920
+ contentGap: parseTokenValue30(checkbox.spacing.content.gap),
9921
+ children: [
9922
+ label && /* @__PURE__ */ jsxRuntime.jsx(
9923
+ Typography,
9924
+ {
9925
+ token: checkbox.typography.label,
9926
+ color: checkbox.colour.text.title,
9927
+ children: label
9928
+ }
9929
+ ),
9930
+ subText && /* @__PURE__ */ jsxRuntime.jsx(
9931
+ Typography,
9932
+ {
9933
+ token: checkbox.typography.subText,
9934
+ color: checkbox.colour.text.subtext,
9935
+ children: subText
9936
+ }
9937
+ )
9938
+ ]
9939
+ }
9940
+ ),
9941
+ isTile && illustration && /* @__PURE__ */ jsxRuntime.jsx(
9942
+ StyledIllustration,
9943
+ {
9944
+ illustrationSize: parseTokenValue30(
9945
+ checkbox.checkboxTile.size.illustration.default
9945
9946
  ),
9946
- isTile && illustration && /* @__PURE__ */ jsxRuntime.jsx(
9947
- StyledIllustration,
9948
- {
9949
- illustrationSize: parseTokenValue30(
9950
- checkbox.checkboxTile.size.illustration.default
9951
- ),
9952
- children: illustration
9953
- }
9954
- )
9955
- ]
9956
- })
9957
- )
9958
- }
9947
+ children: illustration
9948
+ }
9949
+ )
9950
+ ]
9951
+ })
9959
9952
  );
9960
9953
  }
9961
9954
  );
@@ -10574,7 +10567,7 @@ NumberFieldInput.displayName = "NumberField.Input";
10574
10567
  var parseTokenValue35 = (value) => parseFloat(value);
10575
10568
  var StyledRoot10 = styled50__default.default(reactNative.View)(({ rootGap, fullWidth }) => __spreadValues({
10576
10569
  gap: rootGap
10577
- }, fullWidth && { width: "100%" }));
10570
+ }, fullWidth ? { width: "100%" } : { alignItems: "center" }));
10578
10571
  var StyledLabelGroup = styled50__default.default(reactNative.View)(({ labelGap }) => ({
10579
10572
  gap: labelGap
10580
10573
  }));
@@ -10638,6 +10631,7 @@ var NumberField = React65__default.default.forwardRef(
10638
10631
  {
10639
10632
  token: typoTokens.label,
10640
10633
  color: tokens3.colour.text.label,
10634
+ align: "center",
10641
10635
  children: label
10642
10636
  }
10643
10637
  ),
@@ -10646,6 +10640,7 @@ var NumberField = React65__default.default.forwardRef(
10646
10640
  {
10647
10641
  token: typoTokens.smallLabel,
10648
10642
  color: tokens3.colour.text.description,
10643
+ align: "center",
10649
10644
  children: smallLabel
10650
10645
  }
10651
10646
  )
@@ -10675,6 +10670,7 @@ var NumberField = React65__default.default.forwardRef(
10675
10670
  {
10676
10671
  token: size === "lg" ? tokens3.typography.large.secondaryContent : tokens3.typography.small.smallLabel,
10677
10672
  color: tokens3.colour.text.description,
10673
+ align: "center",
10678
10674
  children: description
10679
10675
  }
10680
10676
  ),
@@ -10683,6 +10679,7 @@ var NumberField = React65__default.default.forwardRef(
10683
10679
  {
10684
10680
  token: size === "lg" ? tokens3.typography.large.secondaryContent : tokens3.typography.small.smallLabel,
10685
10681
  color: theme2.tokens.components.inputs.colour.description.error,
10682
+ align: "center",
10686
10683
  children: error
10687
10684
  }
10688
10685
  )
@@ -13234,6 +13231,127 @@ var Notification = React65__default.default.forwardRef(
13234
13231
  );
13235
13232
  Notification.displayName = "Notification";
13236
13233
  var parseTokenValue50 = (value) => parseFloat(value);
13234
+ var SCALE_STEP = 0.06;
13235
+ var SPRING_CONFIG = { damping: 20, stiffness: 260, mass: 0.5 };
13236
+ var CARD_ENTERING = Animated10.FadeInDown.duration(200).easing(Animated10.Easing.inOut(Animated10.Easing.quad));
13237
+ var CARD_EXITING = Animated10.FadeOutDown.duration(200);
13238
+ var CARD_BASE_STYLE = {
13239
+ position: "absolute",
13240
+ bottom: 0,
13241
+ left: 0,
13242
+ right: 0,
13243
+ transformOrigin: "50% 100%"
13244
+ };
13245
+ var StyledRoot15 = styled50__default.default(reactNative.View)(({ rootBottom, rootPaddingH }) => ({
13246
+ position: "absolute",
13247
+ left: 0,
13248
+ right: 0,
13249
+ bottom: rootBottom,
13250
+ paddingHorizontal: rootPaddingH,
13251
+ alignItems: "stretch"
13252
+ }));
13253
+ var StyledStack = styled50__default.default(reactNative.View)({
13254
+ position: "relative",
13255
+ width: "100%"
13256
+ });
13257
+ var StackedCard = ({
13258
+ item,
13259
+ depth,
13260
+ revealStep,
13261
+ onDismiss
13262
+ }) => {
13263
+ const depthSV = Animated10.useSharedValue(depth);
13264
+ React65__default.default.useEffect(() => {
13265
+ depthSV.value = Animated10.withSpring(depth, SPRING_CONFIG);
13266
+ }, [depth, depthSV]);
13267
+ const animatedStyle = Animated10.useAnimatedStyle(() => ({
13268
+ transform: [
13269
+ { translateY: depthSV.value * revealStep },
13270
+ { scale: 1 - depthSV.value * SCALE_STEP }
13271
+ ]
13272
+ }));
13273
+ const isFront = depth === 0;
13274
+ return /* @__PURE__ */ jsxRuntime.jsx(
13275
+ Animated10__default.default.View,
13276
+ {
13277
+ entering: CARD_ENTERING,
13278
+ exiting: CARD_EXITING,
13279
+ pointerEvents: isFront ? "auto" : "none",
13280
+ accessibilityElementsHidden: !isFront,
13281
+ importantForAccessibility: isFront ? "auto" : "no-hide-descendants",
13282
+ style: [CARD_BASE_STYLE, { zIndex: -depth }, animatedStyle],
13283
+ children: /* @__PURE__ */ jsxRuntime.jsx(
13284
+ Notification,
13285
+ {
13286
+ variant: "toast",
13287
+ type: item.type,
13288
+ onClose: isFront ? () => onDismiss == null ? void 0 : onDismiss(item.id) : void 0,
13289
+ children: item.message
13290
+ }
13291
+ )
13292
+ }
13293
+ );
13294
+ };
13295
+ var StackedNotifications = React65__default.default.forwardRef((_a, ref) => {
13296
+ var _b = _a, { items, onDismiss, bottomOffset } = _b, rest = __objRest(_b, ["items", "onDismiss", "bottomOffset"]);
13297
+ const theme2 = react.useTheme();
13298
+ const { spacing } = theme2.tokens.semantics.dimensions;
13299
+ const [dismissed, setDismissed] = React65__default.default.useState(/* @__PURE__ */ new Set());
13300
+ const idsKey = items.map((item) => item.id).join("|");
13301
+ React65__default.default.useEffect(() => {
13302
+ setDismissed((prev) => {
13303
+ if (prev.size === 0) return prev;
13304
+ const present = new Set(items.map((item) => item.id));
13305
+ let changed = false;
13306
+ const next = /* @__PURE__ */ new Set();
13307
+ prev.forEach((id) => {
13308
+ if (present.has(id)) next.add(id);
13309
+ else changed = true;
13310
+ });
13311
+ return changed ? next : prev;
13312
+ });
13313
+ }, [idsKey]);
13314
+ const activeItems = React65__default.default.useMemo(
13315
+ () => items.filter((item) => !dismissed.has(item.id)),
13316
+ [items, dismissed]
13317
+ );
13318
+ const layers = React65__default.default.useMemo(
13319
+ () => activeItems.slice(-3).reverse(),
13320
+ [activeItems]
13321
+ );
13322
+ const handleDismiss = (id) => {
13323
+ setDismissed((prev) => {
13324
+ const next = new Set(prev);
13325
+ next.add(id);
13326
+ return next;
13327
+ });
13328
+ onDismiss == null ? void 0 : onDismiss(id);
13329
+ };
13330
+ const rootBottom = bottomOffset != null ? bottomOffset : parseTokenValue50(spacing.lg);
13331
+ const peekStep = parseTokenValue50(spacing.xs);
13332
+ return /* @__PURE__ */ jsxRuntime.jsx(
13333
+ StyledRoot15,
13334
+ __spreadProps(__spreadValues({
13335
+ ref,
13336
+ pointerEvents: "box-none",
13337
+ rootBottom,
13338
+ rootPaddingH: parseTokenValue50(spacing.md)
13339
+ }, rest), {
13340
+ children: /* @__PURE__ */ jsxRuntime.jsx(StyledStack, { children: layers.map((item, depth) => /* @__PURE__ */ jsxRuntime.jsx(
13341
+ StackedCard,
13342
+ {
13343
+ item,
13344
+ depth,
13345
+ revealStep: peekStep,
13346
+ onDismiss: handleDismiss
13347
+ },
13348
+ item.id
13349
+ )) })
13350
+ })
13351
+ );
13352
+ });
13353
+ StackedNotifications.displayName = "StackedNotifications";
13354
+ var parseTokenValue51 = (value) => parseFloat(value);
13237
13355
  var NIB_OFFSET = {
13238
13356
  left: 24,
13239
13357
  middle: 146,
@@ -13355,9 +13473,9 @@ var Tooltip = React65__default.default.forwardRef(
13355
13473
  width
13356
13474
  } = theme2.tokens.components.tooltip;
13357
13475
  const [open, setOpen] = React65.useState(false);
13358
- const tooltipWidth = parseTokenValue50(width);
13359
- const nibWidth = parseTokenValue50(nibToken.width);
13360
- const nibHeight = parseTokenValue50(nibToken.height);
13476
+ const tooltipWidth = parseTokenValue51(width);
13477
+ const nibWidth = parseTokenValue51(nibToken.width);
13478
+ const nibHeight = parseTokenValue51(nibToken.height);
13361
13479
  const nibHalfWidth = nibWidth / 2;
13362
13480
  const nibOuterHeight = nibHeight + 1;
13363
13481
  const nibX = NIB_OFFSET[alignment];
@@ -13366,11 +13484,11 @@ var Tooltip = React65__default.default.forwardRef(
13366
13484
  const side = position === "bottom" ? "top" : "bottom";
13367
13485
  const bgColor = colour.background.default;
13368
13486
  const borderColor = colour.border.default;
13369
- const borderW = parseTokenValue50(borderWidth.default);
13370
- const borderR = parseTokenValue50(borderRadius.default);
13371
- const topPad = parseTokenValue50(spacing.topPadding);
13372
- const bottomPad = parseTokenValue50(spacing.bottomPadding);
13373
- const horizontalPad = parseTokenValue50(spacing.horizontalPading);
13487
+ const borderW = parseTokenValue51(borderWidth.default);
13488
+ const borderR = parseTokenValue51(borderRadius.default);
13489
+ const topPad = parseTokenValue51(spacing.topPadding);
13490
+ const bottomPad = parseTokenValue51(spacing.bottomPadding);
13491
+ const horizontalPad = parseTokenValue51(spacing.horizontalPading);
13374
13492
  const nibRow = /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { height: nibOuterHeight, position: "relative", zIndex: 2 }, children: /* @__PURE__ */ jsxRuntime.jsx(
13375
13493
  NibTriangle,
13376
13494
  {
@@ -13471,7 +13589,7 @@ var Tooltip = React65__default.default.forwardRef(
13471
13589
  }
13472
13590
  );
13473
13591
  Tooltip.displayName = "Tooltip";
13474
- var parseTokenValue51 = (value) => parseFloat(value);
13592
+ var parseTokenValue52 = (value) => parseFloat(value);
13475
13593
  var StyledInsightRoot = styled50__default.default(reactNative.View)(
13476
13594
  ({
13477
13595
  rootGap,
@@ -13516,26 +13634,26 @@ var MessageCardInsight = React65__default.default.forwardRef(
13516
13634
  const isSupporting = variant === "supporting";
13517
13635
  const supporting = insightCard.spacing.supporting;
13518
13636
  const standalone = insightCard.spacing.standalone;
13519
- const radiusStandalone = parseTokenValue51(
13637
+ const radiusStandalone = parseTokenValue52(
13520
13638
  insightCard.borderRadius.standalone.default
13521
13639
  );
13522
- const radiusSupporting = parseTokenValue51(
13640
+ const radiusSupporting = parseTokenValue52(
13523
13641
  insightCard.borderRadius.supporting.bottom
13524
13642
  );
13525
13643
  return /* @__PURE__ */ jsxRuntime.jsxs(
13526
13644
  StyledInsightRoot,
13527
13645
  __spreadProps(__spreadValues({
13528
13646
  ref,
13529
- rootGap: parseTokenValue51(
13647
+ rootGap: parseTokenValue52(
13530
13648
  isSupporting ? supporting.gap : standalone.gap
13531
13649
  ),
13532
- rootPaddingH: parseTokenValue51(
13650
+ rootPaddingH: parseTokenValue52(
13533
13651
  isSupporting ? semanticSpacing.md : standalone.horizontalPadding
13534
13652
  ),
13535
- rootPaddingTop: parseTokenValue51(
13653
+ rootPaddingTop: parseTokenValue52(
13536
13654
  isSupporting ? supporting.topPadding : standalone.verticalPadding
13537
13655
  ),
13538
- rootPaddingBottom: parseTokenValue51(
13656
+ rootPaddingBottom: parseTokenValue52(
13539
13657
  isSupporting ? supporting.bottomPadding : standalone.verticalPadding
13540
13658
  ),
13541
13659
  rootBorderTopLeftRadius: isSupporting ? 0 : radiusStandalone,
@@ -13543,7 +13661,7 @@ var MessageCardInsight = React65__default.default.forwardRef(
13543
13661
  rootBorderBottomLeftRadius: isSupporting ? radiusSupporting : radiusStandalone,
13544
13662
  rootBorderBottomRightRadius: isSupporting ? radiusSupporting : radiusStandalone,
13545
13663
  rootBgColor: insightCard.colour.background.default,
13546
- rootMinWidth: parseTokenValue51(insightCard.size.minWidth),
13664
+ rootMinWidth: parseTokenValue52(insightCard.size.minWidth),
13547
13665
  accessible: true,
13548
13666
  accessibilityRole: "summary"
13549
13667
  }, rest), {
@@ -13552,7 +13670,7 @@ var MessageCardInsight = React65__default.default.forwardRef(
13552
13670
  /* @__PURE__ */ jsxRuntime.jsxs(
13553
13671
  StyledInsightContent,
13554
13672
  {
13555
- contentGap: parseTokenValue51(standalone.content.gap),
13673
+ contentGap: parseTokenValue52(standalone.content.gap),
13556
13674
  children: [
13557
13675
  title && /* @__PURE__ */ jsxRuntime.jsx(
13558
13676
  Typography,
@@ -13644,9 +13762,9 @@ var MessageCardBanner = React65__default.default.forwardRef(
13644
13762
  StyledBannerRoot,
13645
13763
  __spreadProps(__spreadValues({
13646
13764
  ref,
13647
- rootGap: parseTokenValue51(dimensions3.spacing.md),
13648
- rootPadding: parseTokenValue51(dimensions3.spacing.md),
13649
- rootBorderRadius: parseTokenValue51(dimensions3.borderRadius.md),
13765
+ rootGap: parseTokenValue52(dimensions3.spacing.md),
13766
+ rootPadding: parseTokenValue52(dimensions3.spacing.md),
13767
+ rootBorderRadius: parseTokenValue52(dimensions3.borderRadius.md),
13650
13768
  rootBgColor: bgColor,
13651
13769
  accessible: true,
13652
13770
  accessibilityRole: "summary"
@@ -13658,7 +13776,7 @@ var MessageCardBanner = React65__default.default.forwardRef(
13658
13776
  }) }) : (media == null ? void 0 : media.type) === "image" ? /* @__PURE__ */ jsxRuntime.jsx(
13659
13777
  StyledBannerImage,
13660
13778
  {
13661
- imageRadius: parseTokenValue51(dimensions3.borderRadius.sm),
13779
+ imageRadius: parseTokenValue52(dimensions3.borderRadius.sm),
13662
13780
  imageBgColor: colour.background.surface.secondary,
13663
13781
  children: /* @__PURE__ */ jsxRuntime.jsx(
13664
13782
  reactNative.Image,
@@ -13674,12 +13792,12 @@ var MessageCardBanner = React65__default.default.forwardRef(
13674
13792
  /* @__PURE__ */ jsxRuntime.jsxs(
13675
13793
  StyledBannerContents,
13676
13794
  {
13677
- contentsGap: parseTokenValue51(dimensions3.spacing.xs),
13795
+ contentsGap: parseTokenValue52(dimensions3.spacing.xs),
13678
13796
  children: [
13679
13797
  /* @__PURE__ */ jsxRuntime.jsxs(
13680
13798
  StyledBannerCopy,
13681
13799
  {
13682
- copyGap: parseTokenValue51(dimensions3.spacing["3xs"]),
13800
+ copyGap: parseTokenValue52(dimensions3.spacing["3xs"]),
13683
13801
  children: [
13684
13802
  title && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "heading", size: "xs", color: "primary", children: title }),
13685
13803
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", size: "md", color: "secondary", children })
@@ -13710,7 +13828,7 @@ var MessageCard = {
13710
13828
  Insight: MessageCardInsight,
13711
13829
  Banner: MessageCardBanner
13712
13830
  };
13713
- var parseTokenValue52 = (value) => parseFloat(value);
13831
+ var parseTokenValue53 = (value) => parseFloat(value);
13714
13832
  var slideEaseOut = Animated10.Easing.out(Animated10.Easing.quad);
13715
13833
  var MONTH_SLIDE_ENTERING = {
13716
13834
  forward: Animated10.FadeInRight.duration(250).easing(slideEaseOut),
@@ -13871,17 +13989,17 @@ var DatePicker = React65__default.default.forwardRef(
13871
13989
  } = React65.useMemo(
13872
13990
  () => ({
13873
13991
  // Gap between the week-day header and the month header.
13874
- weekGap: parseTokenValue52(datePicker.spacing.gap),
13992
+ weekGap: parseTokenValue53(datePicker.spacing.gap),
13875
13993
  // Gap between the month header and the dates grid.
13876
- datesGap: parseTokenValue52(theme2.tokens.semantics.dimensions.spacing.md),
13877
- containerMaxWidth: parseTokenValue52(dt.size.width) * 7,
13878
- headerGap: parseTokenValue52(datePicker.month.spacing.gap),
13879
- cellHeight: parseTokenValue52(dt.size.height),
13880
- indicatorSize: parseTokenValue52(dt.size.indicator),
13881
- indicatorBorderRadius: parseTokenValue52(dt.borderRadius.indicator),
13882
- selectedBorderWidth: parseTokenValue52(dt.borderWidth.indicator.selected),
13883
- disabledOpacity: parseTokenValue52(dt.opacity.disabled),
13884
- rowGap: parseTokenValue52(datePicker.dates.spacing.gap)
13994
+ datesGap: parseTokenValue53(theme2.tokens.semantics.dimensions.spacing.md),
13995
+ containerMaxWidth: parseTokenValue53(dt.size.width) * 7,
13996
+ headerGap: parseTokenValue53(datePicker.month.spacing.gap),
13997
+ cellHeight: parseTokenValue53(dt.size.height),
13998
+ indicatorSize: parseTokenValue53(dt.size.indicator),
13999
+ indicatorBorderRadius: parseTokenValue53(dt.borderRadius.indicator),
14000
+ selectedBorderWidth: parseTokenValue53(dt.borderWidth.indicator.selected),
14001
+ disabledOpacity: parseTokenValue53(dt.opacity.disabled),
14002
+ rowGap: parseTokenValue53(datePicker.dates.spacing.gap)
13885
14003
  }),
13886
14004
  [datePicker, dt, theme2]
13887
14005
  );
@@ -14159,8 +14277,8 @@ var buildPointerPath = (r) => {
14159
14277
  "Z"
14160
14278
  ].join(" ");
14161
14279
  };
14162
- var parseTokenValue53 = (value) => parseFloat(value);
14163
- var StyledRoot15 = styled50__default.default(reactNative.View)(({ rootGap }) => ({
14280
+ var parseTokenValue54 = (value) => parseFloat(value);
14281
+ var StyledRoot16 = styled50__default.default(reactNative.View)(({ rootGap }) => ({
14164
14282
  flexDirection: "column",
14165
14283
  gap: rootGap,
14166
14284
  width: "100%"
@@ -14249,24 +14367,24 @@ var PictureSelector = React65__default.default.forwardRef(
14249
14367
  if (!isControlled) setInternalValue(nextValue);
14250
14368
  onValueChange == null ? void 0 : onValueChange(nextValue);
14251
14369
  };
14252
- const rootGap = parseTokenValue53(pictureSelector.spacing.container.gap);
14253
- const rowGap = parseTokenValue53(pictureSelector.spacing.buttons.gap);
14254
- const stackGap = parseTokenValue53(pictureButton.spacing.container.gap);
14255
- const buttonPadding = parseTokenValue53(pictureButton.spacing.padding);
14256
- const buttonBorderRadius = parseTokenValue53(
14370
+ const rootGap = parseTokenValue54(pictureSelector.spacing.container.gap);
14371
+ const rowGap = parseTokenValue54(pictureSelector.spacing.buttons.gap);
14372
+ const stackGap = parseTokenValue54(pictureButton.spacing.container.gap);
14373
+ const buttonPadding = parseTokenValue54(pictureButton.spacing.padding);
14374
+ const buttonBorderRadius = parseTokenValue54(
14257
14375
  pictureButton.borderRadius.default
14258
14376
  );
14259
- const borderWidthDefault = parseTokenValue53(
14377
+ const borderWidthDefault = parseTokenValue54(
14260
14378
  pictureButton.borderWidth.default
14261
14379
  );
14262
- const borderWidthActive = parseTokenValue53(pictureButton.borderWidth.active);
14380
+ const borderWidthActive = parseTokenValue54(pictureButton.borderWidth.active);
14263
14381
  const pointerPath = buildPointerPath(
14264
- parseTokenValue53(pictureButton.pointer.borderRadius.default)
14382
+ parseTokenValue54(pictureButton.pointer.borderRadius.default)
14265
14383
  );
14266
- const resolvedMinWidth = itemMinWidth != null ? itemMinWidth : parseTokenValue53(pictureButton.size.minWidth);
14384
+ const resolvedMinWidth = itemMinWidth != null ? itemMinWidth : parseTokenValue54(pictureButton.size.minWidth);
14267
14385
  const resolvedMinHeight = itemMinHeight != null ? itemMinHeight : resolvedMinWidth;
14268
14386
  return /* @__PURE__ */ jsxRuntime.jsxs(
14269
- StyledRoot15,
14387
+ StyledRoot16,
14270
14388
  __spreadProps(__spreadValues({
14271
14389
  ref,
14272
14390
  rootGap,
@@ -14356,7 +14474,7 @@ var DEFAULT_UNIT_LABELS = {
14356
14474
  seconds: { singular: "sec", plural: "secs" }
14357
14475
  };
14358
14476
  var resolveLabel = (label, value) => typeof label === "string" ? label : value === 1 ? label.singular : label.plural;
14359
- var parseTokenValue54 = (value) => parseFloat(value);
14477
+ var parseTokenValue55 = (value) => parseFloat(value);
14360
14478
  var pad = (value) => String(Math.max(0, Math.floor(value))).padStart(2, "0");
14361
14479
  var StackedRoot = styled50__default.default(reactNative.View)(({ rootGap }) => ({
14362
14480
  flexDirection: "row",
@@ -14486,28 +14604,28 @@ var Countdown = React65__default.default.forwardRef(
14486
14604
  InlineRoot,
14487
14605
  __spreadProps(__spreadValues({
14488
14606
  ref,
14489
- rootGap: parseTokenValue54(countdown.spacing.gap),
14490
- rootVerticalPadding: parseTokenValue54(
14607
+ rootGap: parseTokenValue55(countdown.spacing.gap),
14608
+ rootVerticalPadding: parseTokenValue55(
14491
14609
  countdown.spacing.verticalPadding
14492
14610
  ),
14493
- rootHorizontalPadding: parseTokenValue54(
14611
+ rootHorizontalPadding: parseTokenValue55(
14494
14612
  countdown.spacing.horizontalPadding
14495
14613
  ),
14496
14614
  rootBgColor: countdown.colour.background.default,
14497
- rootBorderRadius: parseTokenValue54(countdown.borderRadius.default)
14615
+ rootBorderRadius: parseTokenValue55(countdown.borderRadius.default)
14498
14616
  }, rest), {
14499
14617
  children: [
14500
14618
  label != null && /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body", weight: "bold", size: "md", color: "primary", children: label }),
14501
14619
  /* @__PURE__ */ jsxRuntime.jsx(
14502
14620
  InlineGroup,
14503
14621
  {
14504
- groupGap: parseTokenValue54(countdown.countdownGroup.spacing.gap),
14622
+ groupGap: parseTokenValue55(countdown.countdownGroup.spacing.gap),
14505
14623
  children: units.map((unit, index) => /* @__PURE__ */ jsxRuntime.jsxs(React65__default.default.Fragment, { children: [
14506
14624
  index > 0 && colon(`colon-${unit.key}`),
14507
14625
  /* @__PURE__ */ jsxRuntime.jsxs(
14508
14626
  InlineCount,
14509
14627
  {
14510
- countGap: parseTokenValue54(countdown.count.spacing.gap),
14628
+ countGap: parseTokenValue55(countdown.count.spacing.gap),
14511
14629
  children: [
14512
14630
  /* @__PURE__ */ jsxRuntime.jsx(
14513
14631
  Typography,
@@ -14543,33 +14661,33 @@ var Countdown = React65__default.default.forwardRef(
14543
14661
  StackedRoot,
14544
14662
  __spreadProps(__spreadValues({
14545
14663
  ref,
14546
- rootGap: parseTokenValue54(countdown.spacing.gap)
14664
+ rootGap: parseTokenValue55(countdown.spacing.gap)
14547
14665
  }, rest), {
14548
14666
  children: units.map((unit, index) => /* @__PURE__ */ jsxRuntime.jsxs(React65__default.default.Fragment, { children: [
14549
14667
  index > 0 && colon(`colon-${unit.key}`),
14550
14668
  /* @__PURE__ */ jsxRuntime.jsxs(
14551
14669
  StackedItem,
14552
14670
  {
14553
- itemGap: parseTokenValue54(countdownItem.spacing.gap),
14554
- itemVerticalPadding: parseTokenValue54(
14671
+ itemGap: parseTokenValue55(countdownItem.spacing.gap),
14672
+ itemVerticalPadding: parseTokenValue55(
14555
14673
  countdownItem.spacing.verticalPadding
14556
14674
  ),
14557
- itemHorizontalPadding: parseTokenValue54(
14675
+ itemHorizontalPadding: parseTokenValue55(
14558
14676
  countdownItem.spacing.horizontalPadding
14559
14677
  ),
14560
14678
  itemBgColor: countdownItem.colour.background.default,
14561
- itemBorderRadius: parseTokenValue54(
14679
+ itemBorderRadius: parseTokenValue55(
14562
14680
  countdownItem.borderRadius.default
14563
14681
  ),
14564
14682
  children: [
14565
14683
  /* @__PURE__ */ jsxRuntime.jsx(
14566
14684
  StackedCountBox,
14567
14685
  {
14568
- countPaddingTop: parseTokenValue54(
14686
+ countPaddingTop: parseTokenValue55(
14569
14687
  countdownItem.count.spacing.paddingTop
14570
14688
  ),
14571
14689
  countBgColor: countdownItem.count.colour.background.default,
14572
- countBorderRadius: parseTokenValue54(
14690
+ countBorderRadius: parseTokenValue55(
14573
14691
  countdownItem.count.borderRadius.default
14574
14692
  ),
14575
14693
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -14599,7 +14717,7 @@ var Countdown = React65__default.default.forwardRef(
14599
14717
  }
14600
14718
  );
14601
14719
  Countdown.displayName = "Countdown";
14602
- var parseTokenValue55 = (value) => {
14720
+ var parseTokenValue56 = (value) => {
14603
14721
  if (typeof value === "number") return value;
14604
14722
  return parseFloat(value);
14605
14723
  };
@@ -14610,14 +14728,14 @@ var BadgeContainer = styled50__default.default(reactNative.View)(({ theme: theme
14610
14728
  return {
14611
14729
  display: "flex",
14612
14730
  flexDirection: "row",
14613
- gap: parseTokenValue55(spacing["2xs"]),
14731
+ gap: parseTokenValue56(spacing["2xs"]),
14614
14732
  alignItems: "center",
14615
14733
  justifyContent: "center",
14616
- height: parseTokenValue55(sizing["2xl"]),
14617
- paddingRight: parseTokenValue55(spacing.xs),
14734
+ height: parseTokenValue56(sizing["2xl"]),
14735
+ paddingRight: parseTokenValue56(spacing.xs),
14618
14736
  backgroundColor: colour.background.container.brand,
14619
- borderTopRightRadius: parseTokenValue55(borderRadius.xs),
14620
- borderBottomRightRadius: parseTokenValue55(borderRadius.xs)
14737
+ borderTopRightRadius: parseTokenValue56(borderRadius.xs),
14738
+ borderBottomRightRadius: parseTokenValue56(borderRadius.xs)
14621
14739
  };
14622
14740
  });
14623
14741
  var BadgeIcon = styled50__default.default(reactNative.View)(({ theme: theme2 }) => {
@@ -14627,9 +14745,9 @@ var BadgeIcon = styled50__default.default(reactNative.View)(({ theme: theme2 })
14627
14745
  display: "flex",
14628
14746
  alignItems: "center",
14629
14747
  justifyContent: "center",
14630
- width: parseTokenValue55(sizing.md),
14631
- height: parseTokenValue55(sizing.md),
14632
- marginLeft: parseTokenValue55(spacing.xs),
14748
+ width: parseTokenValue56(sizing.md),
14749
+ height: parseTokenValue56(sizing.md),
14750
+ marginLeft: parseTokenValue56(spacing.xs),
14633
14751
  flexShrink: 0
14634
14752
  };
14635
14753
  });
@@ -14678,16 +14796,16 @@ var Grid = React65__default.default.forwardRef(
14678
14796
  }
14679
14797
  );
14680
14798
  Grid.displayName = "ProductListingCard.Grid";
14681
- var parseTokenValue56 = (value) => {
14799
+ var parseTokenValue57 = (value) => {
14682
14800
  if (typeof value === "number") return value;
14683
14801
  return parseFloat(value);
14684
14802
  };
14685
- var StyledRoot16 = styled50__default.default(reactNative.Pressable)(({ theme: theme2 }) => {
14803
+ var StyledRoot17 = styled50__default.default(reactNative.Pressable)(({ theme: theme2 }) => {
14686
14804
  const spacing = theme2.tokens.semantics.dimensions.spacing;
14687
14805
  return {
14688
14806
  display: "flex",
14689
14807
  flexDirection: "column",
14690
- gap: parseTokenValue56(spacing.md),
14808
+ gap: parseTokenValue57(spacing.md),
14691
14809
  alignItems: "flex-start",
14692
14810
  width: "100%"
14693
14811
  };
@@ -14697,7 +14815,7 @@ var ImageContainer = styled50__default.default(reactNative.View)(({ theme: theme
14697
14815
  width: "100%",
14698
14816
  aspectRatio: 1,
14699
14817
  overflow: "hidden",
14700
- borderRadius: parseTokenValue56(
14818
+ borderRadius: parseTokenValue57(
14701
14819
  theme2.tokens.semantics.dimensions.borderRadius.md
14702
14820
  )
14703
14821
  }));
@@ -14708,7 +14826,7 @@ var StyledImage2 = styled50__default.default(reactNative.Image)({
14708
14826
  });
14709
14827
  var BadgeContainer2 = styled50__default.default(reactNative.View)(({ theme: theme2 }) => ({
14710
14828
  position: "absolute",
14711
- top: parseTokenValue56(theme2.tokens.semantics.dimensions.spacing.md),
14829
+ top: parseTokenValue57(theme2.tokens.semantics.dimensions.spacing.md),
14712
14830
  left: 0
14713
14831
  }));
14714
14832
  var ContentContainer = styled50__default.default(reactNative.View)(({ theme: theme2 }) => {
@@ -14716,7 +14834,7 @@ var ContentContainer = styled50__default.default(reactNative.View)(({ theme: the
14716
14834
  return {
14717
14835
  display: "flex",
14718
14836
  flexDirection: "column",
14719
- gap: parseTokenValue56(spacing.md),
14837
+ gap: parseTokenValue57(spacing.md),
14720
14838
  alignItems: "flex-start",
14721
14839
  width: "100%"
14722
14840
  };
@@ -14730,7 +14848,7 @@ var DetailsContainer = styled50__default.default(reactNative.View)({
14730
14848
  var CategoryWrapper = styled50__default.default(reactNative.View)(({ theme: theme2 }) => {
14731
14849
  const spacing = theme2.tokens.semantics.dimensions.spacing;
14732
14850
  return {
14733
- marginBottom: parseTokenValue56(spacing["3xs"])
14851
+ marginBottom: parseTokenValue57(spacing["3xs"])
14734
14852
  };
14735
14853
  });
14736
14854
  var TitleContainer = styled50__default.default(reactNative.View)({
@@ -14783,7 +14901,7 @@ var _ProductListingCard = React65__default.default.forwardRef(
14783
14901
  "showPrice",
14784
14902
  "onPress"
14785
14903
  ]);
14786
- return /* @__PURE__ */ jsxRuntime.jsxs(StyledRoot16, __spreadProps(__spreadValues({ ref, onPress }, rest), { children: [
14904
+ return /* @__PURE__ */ jsxRuntime.jsxs(StyledRoot17, __spreadProps(__spreadValues({ ref, onPress }, rest), { children: [
14787
14905
  /* @__PURE__ */ jsxRuntime.jsxs(ImageContainer, { children: [
14788
14906
  image && /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: { flex: 1, width: "100%", height: "100%" }, children: typeof image === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
14789
14907
  StyledImage2,
@@ -15078,7 +15196,7 @@ var useTabNavigationContext = () => {
15078
15196
  }
15079
15197
  return context;
15080
15198
  };
15081
- var parseTokenValue57 = (value) => parseFloat(value);
15199
+ var parseTokenValue58 = (value) => parseFloat(value);
15082
15200
  var StyledFixedList = styled50__default.default(reactNative.View)({
15083
15201
  flexDirection: "row",
15084
15202
  alignItems: "stretch",
@@ -15144,13 +15262,13 @@ var TabNavigationTab = React65__default.default.forwardRef(
15144
15262
  StyledTab,
15145
15263
  __spreadProps(__spreadValues({
15146
15264
  ref,
15147
- tabHeight: parseTokenValue57(tabitem.size.height),
15148
- tabMinWidth: parseTokenValue57(tabitem.size.minWidth),
15149
- tabPaddingTop: parseTokenValue57(spacing.topPadding),
15150
- tabPaddingBottom: parseTokenValue57(spacing.bottomPadding),
15151
- tabPaddingHorizontal: parseTokenValue57(spacing.horizontalPadding),
15152
- tabGap: parseTokenValue57(spacing.gap),
15153
- tabBorderWidth: parseTokenValue57(borderWidth.default),
15265
+ tabHeight: parseTokenValue58(tabitem.size.height),
15266
+ tabMinWidth: parseTokenValue58(tabitem.size.minWidth),
15267
+ tabPaddingTop: parseTokenValue58(spacing.topPadding),
15268
+ tabPaddingBottom: parseTokenValue58(spacing.bottomPadding),
15269
+ tabPaddingHorizontal: parseTokenValue58(spacing.horizontalPadding),
15270
+ tabGap: parseTokenValue58(spacing.gap),
15271
+ tabBorderWidth: parseTokenValue58(borderWidth.default),
15154
15272
  tabBorderColor: borderColour,
15155
15273
  tabFlex: layout === "fixed" ? 1 : void 0
15156
15274
  }, rest), {
@@ -15298,6 +15416,7 @@ exports.SelectFieldTrigger = SelectFieldTrigger;
15298
15416
  exports.SelectFieldValue = SelectFieldValue;
15299
15417
  exports.Slider = Slider;
15300
15418
  exports.Spinner = Spinner;
15419
+ exports.StackedNotifications = StackedNotifications;
15301
15420
  exports.Switch = Switch;
15302
15421
  exports.TabNavigation = TabNavigation;
15303
15422
  exports.Tag = Tag;