@butternutbox/pawprint-native 0.10.11 → 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.js CHANGED
@@ -15,10 +15,9 @@ import * as AvatarPrimitive from '@rn-primitives/avatar';
15
15
  import { Text, View, Animated, Pressable, TextInput, Easing, StyleSheet, useWindowDimensions, PanResponder, Image, ScrollView, Keyboard, ActionSheetIOS, TouchableOpacity, Platform, Modal, TouchableWithoutFeedback, FlatList, Linking, Clipboard, Alert } from 'react-native';
16
16
  import Svg, { Path, Defs, LinearGradient, Stop, Rect, G, ClipPath } from 'react-native-svg';
17
17
  import * as SwitchPrimitive from '@rn-primitives/switch';
18
- import Animated10, { Keyframe, Easing as Easing$1, FadeInLeft, FadeInRight, FadeInUp, FadeInDown, FadeIn, FadeOutLeft, FadeOutRight, FadeOutUp, FadeOutDown, FadeOut, useSharedValue, useAnimatedStyle, ComplexAnimationBuilder } from 'react-native-reanimated';
18
+ import Animated10, { Keyframe, Easing as Easing$1, FadeInLeft, FadeInRight, FadeInUp, FadeInDown, FadeIn, FadeOutLeft, FadeOutRight, FadeOutUp, FadeOutDown, FadeOut, useSharedValue, useAnimatedStyle, ComplexAnimationBuilder, withSpring } from 'react-native-reanimated';
19
19
  import { Slot } from '@rn-primitives/slot';
20
20
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
21
- import * as CheckboxPrimitive from '@rn-primitives/checkbox';
22
21
  import * as ProgressPrimitive from '@rn-primitives/progress';
23
22
  import * as SelectPrimitive3 from '@rn-primitives/select';
24
23
  import * as SliderPrimitive from '@rn-primitives/slider';
@@ -9833,90 +9832,85 @@ var Checkbox = React65.forwardRef(
9833
9832
  const isControlled = controlledChecked !== void 0;
9834
9833
  const [internalChecked, setInternalChecked] = React65.useState(defaultChecked);
9835
9834
  const isChecked = isControlled ? controlledChecked : internalChecked;
9836
- const handleCheckedChange = (checked) => {
9835
+ const handlePress = () => {
9836
+ if (disabled) return;
9837
+ const next = !isChecked;
9837
9838
  if (!isControlled) {
9838
- setInternalChecked(checked);
9839
+ setInternalChecked(next);
9839
9840
  }
9840
- onCheckedChange == null ? void 0 : onCheckedChange(checked);
9841
+ onCheckedChange == null ? void 0 : onCheckedChange(next);
9841
9842
  };
9842
9843
  const isTile = variant === "tile";
9843
9844
  const controlSize = parseTokenValue30(checkbox.size.control.default);
9844
- return /* @__PURE__ */ jsx(
9845
- CheckboxPrimitive.Root,
9846
- {
9847
- checked: isChecked,
9848
- onCheckedChange: handleCheckedChange,
9845
+ return /* @__PURE__ */ jsxs(
9846
+ StyledRootPressable,
9847
+ __spreadProps(__spreadValues({
9848
+ ref,
9849
+ onPress: handlePress,
9849
9850
  disabled,
9850
- asChild: true,
9851
- children: /* @__PURE__ */ jsxs(
9852
- StyledRootPressable,
9853
- __spreadProps(__spreadValues({
9854
- ref,
9855
- rootFlexAlign: isTile ? "center" : "flex-start",
9856
- rootGap: parseTokenValue30(
9857
- isTile ? checkbox.checkboxTile.spacing.gap : checkbox.spacing.gap
9858
- ),
9859
- rootOpacity: disabled ? parseFloat(theme2.tokens.primitives.opacity["40"]) : 1,
9860
- rootPaddingVertical: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.verticalPadding) : void 0,
9861
- rootPaddingHorizontal: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.horizontalPadding) : void 0,
9862
- rootMaxWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.size.maxWidth) : void 0,
9863
- rootBgColor: isTile ? isChecked ? checkbox.checkboxTile.colour.background.selected : checkbox.checkboxTile.colour.background.default : void 0,
9864
- rootBorderWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.borderWidth.default) : void 0,
9865
- rootBorderColor: isTile ? isChecked ? checkbox.checkboxTile.colour.border.selected : checkbox.checkboxTile.colour.border.default : void 0,
9866
- rootBorderRadius: isTile ? parseTokenValue30(checkbox.checkboxTile.borderRadius.default) : void 0,
9867
- style: typeof style === "function" ? void 0 : style
9868
- }, rest), {
9869
- children: [
9870
- /* @__PURE__ */ jsx(
9871
- StyledControl,
9872
- {
9873
- controlSize,
9874
- controlBorderWidth: parseTokenValue30(
9875
- checkbox.control.border.default
9876
- ),
9877
- controlBorderColor: isChecked ? checkbox.colour.background.selected : checkbox.colour.border.default,
9878
- controlBorderRadius: parseTokenValue30(dimensions3.borderRadius.xs),
9879
- controlBgColor: isChecked ? checkbox.colour.background.selected : "transparent",
9880
- children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, { children: /* @__PURE__ */ jsx(Icon, { icon: Check_default, size: "xs", colour: "alt" }) })
9881
- }
9882
- ),
9883
- /* @__PURE__ */ jsxs(
9884
- StyledContent2,
9885
- {
9886
- contentGap: parseTokenValue30(checkbox.spacing.content.gap),
9887
- children: [
9888
- label && /* @__PURE__ */ jsx(
9889
- Typography,
9890
- {
9891
- token: checkbox.typography.label,
9892
- color: checkbox.colour.text.title,
9893
- children: label
9894
- }
9895
- ),
9896
- subText && /* @__PURE__ */ jsx(
9897
- Typography,
9898
- {
9899
- token: checkbox.typography.subText,
9900
- color: checkbox.colour.text.subtext,
9901
- children: subText
9902
- }
9903
- )
9904
- ]
9905
- }
9851
+ accessibilityRole: "checkbox",
9852
+ accessibilityState: { checked: isChecked, disabled },
9853
+ rootFlexAlign: isTile ? "center" : "flex-start",
9854
+ rootGap: parseTokenValue30(
9855
+ isTile ? checkbox.checkboxTile.spacing.gap : checkbox.spacing.gap
9856
+ ),
9857
+ rootOpacity: disabled ? parseFloat(theme2.tokens.primitives.opacity["40"]) : 1,
9858
+ rootPaddingVertical: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.verticalPadding) : void 0,
9859
+ rootPaddingHorizontal: isTile ? parseTokenValue30(checkbox.checkboxTile.spacing.horizontalPadding) : void 0,
9860
+ rootMaxWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.size.maxWidth) : void 0,
9861
+ rootBgColor: isTile ? isChecked ? checkbox.checkboxTile.colour.background.selected : checkbox.checkboxTile.colour.background.default : void 0,
9862
+ rootBorderWidth: isTile ? parseTokenValue30(checkbox.checkboxTile.borderWidth.default) : void 0,
9863
+ rootBorderColor: isTile ? isChecked ? checkbox.checkboxTile.colour.border.selected : checkbox.checkboxTile.colour.border.default : void 0,
9864
+ rootBorderRadius: isTile ? parseTokenValue30(checkbox.checkboxTile.borderRadius.default) : void 0,
9865
+ style: typeof style === "function" ? void 0 : style
9866
+ }, rest), {
9867
+ children: [
9868
+ /* @__PURE__ */ jsx(
9869
+ StyledControl,
9870
+ {
9871
+ controlSize,
9872
+ controlBorderWidth: parseTokenValue30(checkbox.control.border.default),
9873
+ controlBorderColor: isChecked ? checkbox.colour.background.selected : checkbox.colour.border.default,
9874
+ controlBorderRadius: parseTokenValue30(dimensions3.borderRadius.xs),
9875
+ controlBgColor: isChecked ? checkbox.colour.background.selected : "transparent",
9876
+ children: isChecked && /* @__PURE__ */ jsx(Icon, { icon: Check_default, size: "xs", colour: "alt" })
9877
+ }
9878
+ ),
9879
+ /* @__PURE__ */ jsxs(
9880
+ StyledContent2,
9881
+ {
9882
+ contentGap: parseTokenValue30(checkbox.spacing.content.gap),
9883
+ children: [
9884
+ label && /* @__PURE__ */ jsx(
9885
+ Typography,
9886
+ {
9887
+ token: checkbox.typography.label,
9888
+ color: checkbox.colour.text.title,
9889
+ children: label
9890
+ }
9891
+ ),
9892
+ subText && /* @__PURE__ */ jsx(
9893
+ Typography,
9894
+ {
9895
+ token: checkbox.typography.subText,
9896
+ color: checkbox.colour.text.subtext,
9897
+ children: subText
9898
+ }
9899
+ )
9900
+ ]
9901
+ }
9902
+ ),
9903
+ isTile && illustration && /* @__PURE__ */ jsx(
9904
+ StyledIllustration,
9905
+ {
9906
+ illustrationSize: parseTokenValue30(
9907
+ checkbox.checkboxTile.size.illustration.default
9906
9908
  ),
9907
- isTile && illustration && /* @__PURE__ */ jsx(
9908
- StyledIllustration,
9909
- {
9910
- illustrationSize: parseTokenValue30(
9911
- checkbox.checkboxTile.size.illustration.default
9912
- ),
9913
- children: illustration
9914
- }
9915
- )
9916
- ]
9917
- })
9918
- )
9919
- }
9909
+ children: illustration
9910
+ }
9911
+ )
9912
+ ]
9913
+ })
9920
9914
  );
9921
9915
  }
9922
9916
  );
@@ -13199,6 +13193,127 @@ var Notification = React65.forwardRef(
13199
13193
  );
13200
13194
  Notification.displayName = "Notification";
13201
13195
  var parseTokenValue50 = (value) => parseFloat(value);
13196
+ var SCALE_STEP = 0.06;
13197
+ var SPRING_CONFIG = { damping: 20, stiffness: 260, mass: 0.5 };
13198
+ var CARD_ENTERING = FadeInDown.duration(200).easing(Easing$1.inOut(Easing$1.quad));
13199
+ var CARD_EXITING = FadeOutDown.duration(200);
13200
+ var CARD_BASE_STYLE = {
13201
+ position: "absolute",
13202
+ bottom: 0,
13203
+ left: 0,
13204
+ right: 0,
13205
+ transformOrigin: "50% 100%"
13206
+ };
13207
+ var StyledRoot15 = styled50(View)(({ rootBottom, rootPaddingH }) => ({
13208
+ position: "absolute",
13209
+ left: 0,
13210
+ right: 0,
13211
+ bottom: rootBottom,
13212
+ paddingHorizontal: rootPaddingH,
13213
+ alignItems: "stretch"
13214
+ }));
13215
+ var StyledStack = styled50(View)({
13216
+ position: "relative",
13217
+ width: "100%"
13218
+ });
13219
+ var StackedCard = ({
13220
+ item,
13221
+ depth,
13222
+ revealStep,
13223
+ onDismiss
13224
+ }) => {
13225
+ const depthSV = useSharedValue(depth);
13226
+ React65.useEffect(() => {
13227
+ depthSV.value = withSpring(depth, SPRING_CONFIG);
13228
+ }, [depth, depthSV]);
13229
+ const animatedStyle = useAnimatedStyle(() => ({
13230
+ transform: [
13231
+ { translateY: depthSV.value * revealStep },
13232
+ { scale: 1 - depthSV.value * SCALE_STEP }
13233
+ ]
13234
+ }));
13235
+ const isFront = depth === 0;
13236
+ return /* @__PURE__ */ jsx(
13237
+ Animated10.View,
13238
+ {
13239
+ entering: CARD_ENTERING,
13240
+ exiting: CARD_EXITING,
13241
+ pointerEvents: isFront ? "auto" : "none",
13242
+ accessibilityElementsHidden: !isFront,
13243
+ importantForAccessibility: isFront ? "auto" : "no-hide-descendants",
13244
+ style: [CARD_BASE_STYLE, { zIndex: -depth }, animatedStyle],
13245
+ children: /* @__PURE__ */ jsx(
13246
+ Notification,
13247
+ {
13248
+ variant: "toast",
13249
+ type: item.type,
13250
+ onClose: isFront ? () => onDismiss == null ? void 0 : onDismiss(item.id) : void 0,
13251
+ children: item.message
13252
+ }
13253
+ )
13254
+ }
13255
+ );
13256
+ };
13257
+ var StackedNotifications = React65.forwardRef((_a, ref) => {
13258
+ var _b = _a, { items, onDismiss, bottomOffset } = _b, rest = __objRest(_b, ["items", "onDismiss", "bottomOffset"]);
13259
+ const theme2 = useTheme();
13260
+ const { spacing } = theme2.tokens.semantics.dimensions;
13261
+ const [dismissed, setDismissed] = React65.useState(/* @__PURE__ */ new Set());
13262
+ const idsKey = items.map((item) => item.id).join("|");
13263
+ React65.useEffect(() => {
13264
+ setDismissed((prev) => {
13265
+ if (prev.size === 0) return prev;
13266
+ const present = new Set(items.map((item) => item.id));
13267
+ let changed = false;
13268
+ const next = /* @__PURE__ */ new Set();
13269
+ prev.forEach((id) => {
13270
+ if (present.has(id)) next.add(id);
13271
+ else changed = true;
13272
+ });
13273
+ return changed ? next : prev;
13274
+ });
13275
+ }, [idsKey]);
13276
+ const activeItems = React65.useMemo(
13277
+ () => items.filter((item) => !dismissed.has(item.id)),
13278
+ [items, dismissed]
13279
+ );
13280
+ const layers = React65.useMemo(
13281
+ () => activeItems.slice(-3).reverse(),
13282
+ [activeItems]
13283
+ );
13284
+ const handleDismiss = (id) => {
13285
+ setDismissed((prev) => {
13286
+ const next = new Set(prev);
13287
+ next.add(id);
13288
+ return next;
13289
+ });
13290
+ onDismiss == null ? void 0 : onDismiss(id);
13291
+ };
13292
+ const rootBottom = bottomOffset != null ? bottomOffset : parseTokenValue50(spacing.lg);
13293
+ const peekStep = parseTokenValue50(spacing.xs);
13294
+ return /* @__PURE__ */ jsx(
13295
+ StyledRoot15,
13296
+ __spreadProps(__spreadValues({
13297
+ ref,
13298
+ pointerEvents: "box-none",
13299
+ rootBottom,
13300
+ rootPaddingH: parseTokenValue50(spacing.md)
13301
+ }, rest), {
13302
+ children: /* @__PURE__ */ jsx(StyledStack, { children: layers.map((item, depth) => /* @__PURE__ */ jsx(
13303
+ StackedCard,
13304
+ {
13305
+ item,
13306
+ depth,
13307
+ revealStep: peekStep,
13308
+ onDismiss: handleDismiss
13309
+ },
13310
+ item.id
13311
+ )) })
13312
+ })
13313
+ );
13314
+ });
13315
+ StackedNotifications.displayName = "StackedNotifications";
13316
+ var parseTokenValue51 = (value) => parseFloat(value);
13202
13317
  var NIB_OFFSET = {
13203
13318
  left: 24,
13204
13319
  middle: 146,
@@ -13320,9 +13435,9 @@ var Tooltip = React65.forwardRef(
13320
13435
  width
13321
13436
  } = theme2.tokens.components.tooltip;
13322
13437
  const [open, setOpen] = useState(false);
13323
- const tooltipWidth = parseTokenValue50(width);
13324
- const nibWidth = parseTokenValue50(nibToken.width);
13325
- const nibHeight = parseTokenValue50(nibToken.height);
13438
+ const tooltipWidth = parseTokenValue51(width);
13439
+ const nibWidth = parseTokenValue51(nibToken.width);
13440
+ const nibHeight = parseTokenValue51(nibToken.height);
13326
13441
  const nibHalfWidth = nibWidth / 2;
13327
13442
  const nibOuterHeight = nibHeight + 1;
13328
13443
  const nibX = NIB_OFFSET[alignment];
@@ -13331,11 +13446,11 @@ var Tooltip = React65.forwardRef(
13331
13446
  const side = position === "bottom" ? "top" : "bottom";
13332
13447
  const bgColor = colour.background.default;
13333
13448
  const borderColor = colour.border.default;
13334
- const borderW = parseTokenValue50(borderWidth.default);
13335
- const borderR = parseTokenValue50(borderRadius.default);
13336
- const topPad = parseTokenValue50(spacing.topPadding);
13337
- const bottomPad = parseTokenValue50(spacing.bottomPadding);
13338
- const horizontalPad = parseTokenValue50(spacing.horizontalPading);
13449
+ const borderW = parseTokenValue51(borderWidth.default);
13450
+ const borderR = parseTokenValue51(borderRadius.default);
13451
+ const topPad = parseTokenValue51(spacing.topPadding);
13452
+ const bottomPad = parseTokenValue51(spacing.bottomPadding);
13453
+ const horizontalPad = parseTokenValue51(spacing.horizontalPading);
13339
13454
  const nibRow = /* @__PURE__ */ jsx(View, { style: { height: nibOuterHeight, position: "relative", zIndex: 2 }, children: /* @__PURE__ */ jsx(
13340
13455
  NibTriangle,
13341
13456
  {
@@ -13436,7 +13551,7 @@ var Tooltip = React65.forwardRef(
13436
13551
  }
13437
13552
  );
13438
13553
  Tooltip.displayName = "Tooltip";
13439
- var parseTokenValue51 = (value) => parseFloat(value);
13554
+ var parseTokenValue52 = (value) => parseFloat(value);
13440
13555
  var StyledInsightRoot = styled50(View)(
13441
13556
  ({
13442
13557
  rootGap,
@@ -13481,26 +13596,26 @@ var MessageCardInsight = React65.forwardRef(
13481
13596
  const isSupporting = variant === "supporting";
13482
13597
  const supporting = insightCard.spacing.supporting;
13483
13598
  const standalone = insightCard.spacing.standalone;
13484
- const radiusStandalone = parseTokenValue51(
13599
+ const radiusStandalone = parseTokenValue52(
13485
13600
  insightCard.borderRadius.standalone.default
13486
13601
  );
13487
- const radiusSupporting = parseTokenValue51(
13602
+ const radiusSupporting = parseTokenValue52(
13488
13603
  insightCard.borderRadius.supporting.bottom
13489
13604
  );
13490
13605
  return /* @__PURE__ */ jsxs(
13491
13606
  StyledInsightRoot,
13492
13607
  __spreadProps(__spreadValues({
13493
13608
  ref,
13494
- rootGap: parseTokenValue51(
13609
+ rootGap: parseTokenValue52(
13495
13610
  isSupporting ? supporting.gap : standalone.gap
13496
13611
  ),
13497
- rootPaddingH: parseTokenValue51(
13612
+ rootPaddingH: parseTokenValue52(
13498
13613
  isSupporting ? semanticSpacing.md : standalone.horizontalPadding
13499
13614
  ),
13500
- rootPaddingTop: parseTokenValue51(
13615
+ rootPaddingTop: parseTokenValue52(
13501
13616
  isSupporting ? supporting.topPadding : standalone.verticalPadding
13502
13617
  ),
13503
- rootPaddingBottom: parseTokenValue51(
13618
+ rootPaddingBottom: parseTokenValue52(
13504
13619
  isSupporting ? supporting.bottomPadding : standalone.verticalPadding
13505
13620
  ),
13506
13621
  rootBorderTopLeftRadius: isSupporting ? 0 : radiusStandalone,
@@ -13508,7 +13623,7 @@ var MessageCardInsight = React65.forwardRef(
13508
13623
  rootBorderBottomLeftRadius: isSupporting ? radiusSupporting : radiusStandalone,
13509
13624
  rootBorderBottomRightRadius: isSupporting ? radiusSupporting : radiusStandalone,
13510
13625
  rootBgColor: insightCard.colour.background.default,
13511
- rootMinWidth: parseTokenValue51(insightCard.size.minWidth),
13626
+ rootMinWidth: parseTokenValue52(insightCard.size.minWidth),
13512
13627
  accessible: true,
13513
13628
  accessibilityRole: "summary"
13514
13629
  }, rest), {
@@ -13517,7 +13632,7 @@ var MessageCardInsight = React65.forwardRef(
13517
13632
  /* @__PURE__ */ jsxs(
13518
13633
  StyledInsightContent,
13519
13634
  {
13520
- contentGap: parseTokenValue51(standalone.content.gap),
13635
+ contentGap: parseTokenValue52(standalone.content.gap),
13521
13636
  children: [
13522
13637
  title && /* @__PURE__ */ jsx(
13523
13638
  Typography,
@@ -13609,9 +13724,9 @@ var MessageCardBanner = React65.forwardRef(
13609
13724
  StyledBannerRoot,
13610
13725
  __spreadProps(__spreadValues({
13611
13726
  ref,
13612
- rootGap: parseTokenValue51(dimensions3.spacing.md),
13613
- rootPadding: parseTokenValue51(dimensions3.spacing.md),
13614
- rootBorderRadius: parseTokenValue51(dimensions3.borderRadius.md),
13727
+ rootGap: parseTokenValue52(dimensions3.spacing.md),
13728
+ rootPadding: parseTokenValue52(dimensions3.spacing.md),
13729
+ rootBorderRadius: parseTokenValue52(dimensions3.borderRadius.md),
13615
13730
  rootBgColor: bgColor,
13616
13731
  accessible: true,
13617
13732
  accessibilityRole: "summary"
@@ -13623,7 +13738,7 @@ var MessageCardBanner = React65.forwardRef(
13623
13738
  }) }) : (media == null ? void 0 : media.type) === "image" ? /* @__PURE__ */ jsx(
13624
13739
  StyledBannerImage,
13625
13740
  {
13626
- imageRadius: parseTokenValue51(dimensions3.borderRadius.sm),
13741
+ imageRadius: parseTokenValue52(dimensions3.borderRadius.sm),
13627
13742
  imageBgColor: colour.background.surface.secondary,
13628
13743
  children: /* @__PURE__ */ jsx(
13629
13744
  Image,
@@ -13639,12 +13754,12 @@ var MessageCardBanner = React65.forwardRef(
13639
13754
  /* @__PURE__ */ jsxs(
13640
13755
  StyledBannerContents,
13641
13756
  {
13642
- contentsGap: parseTokenValue51(dimensions3.spacing.xs),
13757
+ contentsGap: parseTokenValue52(dimensions3.spacing.xs),
13643
13758
  children: [
13644
13759
  /* @__PURE__ */ jsxs(
13645
13760
  StyledBannerCopy,
13646
13761
  {
13647
- copyGap: parseTokenValue51(dimensions3.spacing["3xs"]),
13762
+ copyGap: parseTokenValue52(dimensions3.spacing["3xs"]),
13648
13763
  children: [
13649
13764
  title && /* @__PURE__ */ jsx(Typography, { variant: "heading", size: "xs", color: "primary", children: title }),
13650
13765
  /* @__PURE__ */ jsx(Typography, { variant: "body", size: "md", color: "secondary", children })
@@ -13675,7 +13790,7 @@ var MessageCard = {
13675
13790
  Insight: MessageCardInsight,
13676
13791
  Banner: MessageCardBanner
13677
13792
  };
13678
- var parseTokenValue52 = (value) => parseFloat(value);
13793
+ var parseTokenValue53 = (value) => parseFloat(value);
13679
13794
  var slideEaseOut = Easing$1.out(Easing$1.quad);
13680
13795
  var MONTH_SLIDE_ENTERING = {
13681
13796
  forward: FadeInRight.duration(250).easing(slideEaseOut),
@@ -13836,17 +13951,17 @@ var DatePicker = React65.forwardRef(
13836
13951
  } = useMemo(
13837
13952
  () => ({
13838
13953
  // Gap between the week-day header and the month header.
13839
- weekGap: parseTokenValue52(datePicker.spacing.gap),
13954
+ weekGap: parseTokenValue53(datePicker.spacing.gap),
13840
13955
  // Gap between the month header and the dates grid.
13841
- datesGap: parseTokenValue52(theme2.tokens.semantics.dimensions.spacing.md),
13842
- containerMaxWidth: parseTokenValue52(dt.size.width) * 7,
13843
- headerGap: parseTokenValue52(datePicker.month.spacing.gap),
13844
- cellHeight: parseTokenValue52(dt.size.height),
13845
- indicatorSize: parseTokenValue52(dt.size.indicator),
13846
- indicatorBorderRadius: parseTokenValue52(dt.borderRadius.indicator),
13847
- selectedBorderWidth: parseTokenValue52(dt.borderWidth.indicator.selected),
13848
- disabledOpacity: parseTokenValue52(dt.opacity.disabled),
13849
- rowGap: parseTokenValue52(datePicker.dates.spacing.gap)
13956
+ datesGap: parseTokenValue53(theme2.tokens.semantics.dimensions.spacing.md),
13957
+ containerMaxWidth: parseTokenValue53(dt.size.width) * 7,
13958
+ headerGap: parseTokenValue53(datePicker.month.spacing.gap),
13959
+ cellHeight: parseTokenValue53(dt.size.height),
13960
+ indicatorSize: parseTokenValue53(dt.size.indicator),
13961
+ indicatorBorderRadius: parseTokenValue53(dt.borderRadius.indicator),
13962
+ selectedBorderWidth: parseTokenValue53(dt.borderWidth.indicator.selected),
13963
+ disabledOpacity: parseTokenValue53(dt.opacity.disabled),
13964
+ rowGap: parseTokenValue53(datePicker.dates.spacing.gap)
13850
13965
  }),
13851
13966
  [datePicker, dt, theme2]
13852
13967
  );
@@ -14124,8 +14239,8 @@ var buildPointerPath = (r) => {
14124
14239
  "Z"
14125
14240
  ].join(" ");
14126
14241
  };
14127
- var parseTokenValue53 = (value) => parseFloat(value);
14128
- var StyledRoot15 = styled50(View)(({ rootGap }) => ({
14242
+ var parseTokenValue54 = (value) => parseFloat(value);
14243
+ var StyledRoot16 = styled50(View)(({ rootGap }) => ({
14129
14244
  flexDirection: "column",
14130
14245
  gap: rootGap,
14131
14246
  width: "100%"
@@ -14214,24 +14329,24 @@ var PictureSelector = React65.forwardRef(
14214
14329
  if (!isControlled) setInternalValue(nextValue);
14215
14330
  onValueChange == null ? void 0 : onValueChange(nextValue);
14216
14331
  };
14217
- const rootGap = parseTokenValue53(pictureSelector.spacing.container.gap);
14218
- const rowGap = parseTokenValue53(pictureSelector.spacing.buttons.gap);
14219
- const stackGap = parseTokenValue53(pictureButton.spacing.container.gap);
14220
- const buttonPadding = parseTokenValue53(pictureButton.spacing.padding);
14221
- const buttonBorderRadius = parseTokenValue53(
14332
+ const rootGap = parseTokenValue54(pictureSelector.spacing.container.gap);
14333
+ const rowGap = parseTokenValue54(pictureSelector.spacing.buttons.gap);
14334
+ const stackGap = parseTokenValue54(pictureButton.spacing.container.gap);
14335
+ const buttonPadding = parseTokenValue54(pictureButton.spacing.padding);
14336
+ const buttonBorderRadius = parseTokenValue54(
14222
14337
  pictureButton.borderRadius.default
14223
14338
  );
14224
- const borderWidthDefault = parseTokenValue53(
14339
+ const borderWidthDefault = parseTokenValue54(
14225
14340
  pictureButton.borderWidth.default
14226
14341
  );
14227
- const borderWidthActive = parseTokenValue53(pictureButton.borderWidth.active);
14342
+ const borderWidthActive = parseTokenValue54(pictureButton.borderWidth.active);
14228
14343
  const pointerPath = buildPointerPath(
14229
- parseTokenValue53(pictureButton.pointer.borderRadius.default)
14344
+ parseTokenValue54(pictureButton.pointer.borderRadius.default)
14230
14345
  );
14231
- const resolvedMinWidth = itemMinWidth != null ? itemMinWidth : parseTokenValue53(pictureButton.size.minWidth);
14346
+ const resolvedMinWidth = itemMinWidth != null ? itemMinWidth : parseTokenValue54(pictureButton.size.minWidth);
14232
14347
  const resolvedMinHeight = itemMinHeight != null ? itemMinHeight : resolvedMinWidth;
14233
14348
  return /* @__PURE__ */ jsxs(
14234
- StyledRoot15,
14349
+ StyledRoot16,
14235
14350
  __spreadProps(__spreadValues({
14236
14351
  ref,
14237
14352
  rootGap,
@@ -14321,7 +14436,7 @@ var DEFAULT_UNIT_LABELS = {
14321
14436
  seconds: { singular: "sec", plural: "secs" }
14322
14437
  };
14323
14438
  var resolveLabel = (label, value) => typeof label === "string" ? label : value === 1 ? label.singular : label.plural;
14324
- var parseTokenValue54 = (value) => parseFloat(value);
14439
+ var parseTokenValue55 = (value) => parseFloat(value);
14325
14440
  var pad = (value) => String(Math.max(0, Math.floor(value))).padStart(2, "0");
14326
14441
  var StackedRoot = styled50(View)(({ rootGap }) => ({
14327
14442
  flexDirection: "row",
@@ -14451,28 +14566,28 @@ var Countdown = React65.forwardRef(
14451
14566
  InlineRoot,
14452
14567
  __spreadProps(__spreadValues({
14453
14568
  ref,
14454
- rootGap: parseTokenValue54(countdown.spacing.gap),
14455
- rootVerticalPadding: parseTokenValue54(
14569
+ rootGap: parseTokenValue55(countdown.spacing.gap),
14570
+ rootVerticalPadding: parseTokenValue55(
14456
14571
  countdown.spacing.verticalPadding
14457
14572
  ),
14458
- rootHorizontalPadding: parseTokenValue54(
14573
+ rootHorizontalPadding: parseTokenValue55(
14459
14574
  countdown.spacing.horizontalPadding
14460
14575
  ),
14461
14576
  rootBgColor: countdown.colour.background.default,
14462
- rootBorderRadius: parseTokenValue54(countdown.borderRadius.default)
14577
+ rootBorderRadius: parseTokenValue55(countdown.borderRadius.default)
14463
14578
  }, rest), {
14464
14579
  children: [
14465
14580
  label != null && /* @__PURE__ */ jsx(Typography, { variant: "body", weight: "bold", size: "md", color: "primary", children: label }),
14466
14581
  /* @__PURE__ */ jsx(
14467
14582
  InlineGroup,
14468
14583
  {
14469
- groupGap: parseTokenValue54(countdown.countdownGroup.spacing.gap),
14584
+ groupGap: parseTokenValue55(countdown.countdownGroup.spacing.gap),
14470
14585
  children: units.map((unit, index) => /* @__PURE__ */ jsxs(React65.Fragment, { children: [
14471
14586
  index > 0 && colon(`colon-${unit.key}`),
14472
14587
  /* @__PURE__ */ jsxs(
14473
14588
  InlineCount,
14474
14589
  {
14475
- countGap: parseTokenValue54(countdown.count.spacing.gap),
14590
+ countGap: parseTokenValue55(countdown.count.spacing.gap),
14476
14591
  children: [
14477
14592
  /* @__PURE__ */ jsx(
14478
14593
  Typography,
@@ -14508,33 +14623,33 @@ var Countdown = React65.forwardRef(
14508
14623
  StackedRoot,
14509
14624
  __spreadProps(__spreadValues({
14510
14625
  ref,
14511
- rootGap: parseTokenValue54(countdown.spacing.gap)
14626
+ rootGap: parseTokenValue55(countdown.spacing.gap)
14512
14627
  }, rest), {
14513
14628
  children: units.map((unit, index) => /* @__PURE__ */ jsxs(React65.Fragment, { children: [
14514
14629
  index > 0 && colon(`colon-${unit.key}`),
14515
14630
  /* @__PURE__ */ jsxs(
14516
14631
  StackedItem,
14517
14632
  {
14518
- itemGap: parseTokenValue54(countdownItem.spacing.gap),
14519
- itemVerticalPadding: parseTokenValue54(
14633
+ itemGap: parseTokenValue55(countdownItem.spacing.gap),
14634
+ itemVerticalPadding: parseTokenValue55(
14520
14635
  countdownItem.spacing.verticalPadding
14521
14636
  ),
14522
- itemHorizontalPadding: parseTokenValue54(
14637
+ itemHorizontalPadding: parseTokenValue55(
14523
14638
  countdownItem.spacing.horizontalPadding
14524
14639
  ),
14525
14640
  itemBgColor: countdownItem.colour.background.default,
14526
- itemBorderRadius: parseTokenValue54(
14641
+ itemBorderRadius: parseTokenValue55(
14527
14642
  countdownItem.borderRadius.default
14528
14643
  ),
14529
14644
  children: [
14530
14645
  /* @__PURE__ */ jsx(
14531
14646
  StackedCountBox,
14532
14647
  {
14533
- countPaddingTop: parseTokenValue54(
14648
+ countPaddingTop: parseTokenValue55(
14534
14649
  countdownItem.count.spacing.paddingTop
14535
14650
  ),
14536
14651
  countBgColor: countdownItem.count.colour.background.default,
14537
- countBorderRadius: parseTokenValue54(
14652
+ countBorderRadius: parseTokenValue55(
14538
14653
  countdownItem.count.borderRadius.default
14539
14654
  ),
14540
14655
  children: /* @__PURE__ */ jsx(
@@ -14564,7 +14679,7 @@ var Countdown = React65.forwardRef(
14564
14679
  }
14565
14680
  );
14566
14681
  Countdown.displayName = "Countdown";
14567
- var parseTokenValue55 = (value) => {
14682
+ var parseTokenValue56 = (value) => {
14568
14683
  if (typeof value === "number") return value;
14569
14684
  return parseFloat(value);
14570
14685
  };
@@ -14575,14 +14690,14 @@ var BadgeContainer = styled50(View)(({ theme: theme2 }) => {
14575
14690
  return {
14576
14691
  display: "flex",
14577
14692
  flexDirection: "row",
14578
- gap: parseTokenValue55(spacing["2xs"]),
14693
+ gap: parseTokenValue56(spacing["2xs"]),
14579
14694
  alignItems: "center",
14580
14695
  justifyContent: "center",
14581
- height: parseTokenValue55(sizing["2xl"]),
14582
- paddingRight: parseTokenValue55(spacing.xs),
14696
+ height: parseTokenValue56(sizing["2xl"]),
14697
+ paddingRight: parseTokenValue56(spacing.xs),
14583
14698
  backgroundColor: colour.background.container.brand,
14584
- borderTopRightRadius: parseTokenValue55(borderRadius.xs),
14585
- borderBottomRightRadius: parseTokenValue55(borderRadius.xs)
14699
+ borderTopRightRadius: parseTokenValue56(borderRadius.xs),
14700
+ borderBottomRightRadius: parseTokenValue56(borderRadius.xs)
14586
14701
  };
14587
14702
  });
14588
14703
  var BadgeIcon = styled50(View)(({ theme: theme2 }) => {
@@ -14592,9 +14707,9 @@ var BadgeIcon = styled50(View)(({ theme: theme2 }) => {
14592
14707
  display: "flex",
14593
14708
  alignItems: "center",
14594
14709
  justifyContent: "center",
14595
- width: parseTokenValue55(sizing.md),
14596
- height: parseTokenValue55(sizing.md),
14597
- marginLeft: parseTokenValue55(spacing.xs),
14710
+ width: parseTokenValue56(sizing.md),
14711
+ height: parseTokenValue56(sizing.md),
14712
+ marginLeft: parseTokenValue56(spacing.xs),
14598
14713
  flexShrink: 0
14599
14714
  };
14600
14715
  });
@@ -14643,16 +14758,16 @@ var Grid = React65.forwardRef(
14643
14758
  }
14644
14759
  );
14645
14760
  Grid.displayName = "ProductListingCard.Grid";
14646
- var parseTokenValue56 = (value) => {
14761
+ var parseTokenValue57 = (value) => {
14647
14762
  if (typeof value === "number") return value;
14648
14763
  return parseFloat(value);
14649
14764
  };
14650
- var StyledRoot16 = styled50(Pressable)(({ theme: theme2 }) => {
14765
+ var StyledRoot17 = styled50(Pressable)(({ theme: theme2 }) => {
14651
14766
  const spacing = theme2.tokens.semantics.dimensions.spacing;
14652
14767
  return {
14653
14768
  display: "flex",
14654
14769
  flexDirection: "column",
14655
- gap: parseTokenValue56(spacing.md),
14770
+ gap: parseTokenValue57(spacing.md),
14656
14771
  alignItems: "flex-start",
14657
14772
  width: "100%"
14658
14773
  };
@@ -14662,7 +14777,7 @@ var ImageContainer = styled50(View)(({ theme: theme2 }) => ({
14662
14777
  width: "100%",
14663
14778
  aspectRatio: 1,
14664
14779
  overflow: "hidden",
14665
- borderRadius: parseTokenValue56(
14780
+ borderRadius: parseTokenValue57(
14666
14781
  theme2.tokens.semantics.dimensions.borderRadius.md
14667
14782
  )
14668
14783
  }));
@@ -14673,7 +14788,7 @@ var StyledImage2 = styled50(Image)({
14673
14788
  });
14674
14789
  var BadgeContainer2 = styled50(View)(({ theme: theme2 }) => ({
14675
14790
  position: "absolute",
14676
- top: parseTokenValue56(theme2.tokens.semantics.dimensions.spacing.md),
14791
+ top: parseTokenValue57(theme2.tokens.semantics.dimensions.spacing.md),
14677
14792
  left: 0
14678
14793
  }));
14679
14794
  var ContentContainer = styled50(View)(({ theme: theme2 }) => {
@@ -14681,7 +14796,7 @@ var ContentContainer = styled50(View)(({ theme: theme2 }) => {
14681
14796
  return {
14682
14797
  display: "flex",
14683
14798
  flexDirection: "column",
14684
- gap: parseTokenValue56(spacing.md),
14799
+ gap: parseTokenValue57(spacing.md),
14685
14800
  alignItems: "flex-start",
14686
14801
  width: "100%"
14687
14802
  };
@@ -14695,7 +14810,7 @@ var DetailsContainer = styled50(View)({
14695
14810
  var CategoryWrapper = styled50(View)(({ theme: theme2 }) => {
14696
14811
  const spacing = theme2.tokens.semantics.dimensions.spacing;
14697
14812
  return {
14698
- marginBottom: parseTokenValue56(spacing["3xs"])
14813
+ marginBottom: parseTokenValue57(spacing["3xs"])
14699
14814
  };
14700
14815
  });
14701
14816
  var TitleContainer = styled50(View)({
@@ -14748,7 +14863,7 @@ var _ProductListingCard = React65.forwardRef(
14748
14863
  "showPrice",
14749
14864
  "onPress"
14750
14865
  ]);
14751
- return /* @__PURE__ */ jsxs(StyledRoot16, __spreadProps(__spreadValues({ ref, onPress }, rest), { children: [
14866
+ return /* @__PURE__ */ jsxs(StyledRoot17, __spreadProps(__spreadValues({ ref, onPress }, rest), { children: [
14752
14867
  /* @__PURE__ */ jsxs(ImageContainer, { children: [
14753
14868
  image && /* @__PURE__ */ jsx(View, { style: { flex: 1, width: "100%", height: "100%" }, children: typeof image === "string" ? /* @__PURE__ */ jsx(
14754
14869
  StyledImage2,
@@ -15043,7 +15158,7 @@ var useTabNavigationContext = () => {
15043
15158
  }
15044
15159
  return context;
15045
15160
  };
15046
- var parseTokenValue57 = (value) => parseFloat(value);
15161
+ var parseTokenValue58 = (value) => parseFloat(value);
15047
15162
  var StyledFixedList = styled50(View)({
15048
15163
  flexDirection: "row",
15049
15164
  alignItems: "stretch",
@@ -15109,13 +15224,13 @@ var TabNavigationTab = React65.forwardRef(
15109
15224
  StyledTab,
15110
15225
  __spreadProps(__spreadValues({
15111
15226
  ref,
15112
- tabHeight: parseTokenValue57(tabitem.size.height),
15113
- tabMinWidth: parseTokenValue57(tabitem.size.minWidth),
15114
- tabPaddingTop: parseTokenValue57(spacing.topPadding),
15115
- tabPaddingBottom: parseTokenValue57(spacing.bottomPadding),
15116
- tabPaddingHorizontal: parseTokenValue57(spacing.horizontalPadding),
15117
- tabGap: parseTokenValue57(spacing.gap),
15118
- tabBorderWidth: parseTokenValue57(borderWidth.default),
15227
+ tabHeight: parseTokenValue58(tabitem.size.height),
15228
+ tabMinWidth: parseTokenValue58(tabitem.size.minWidth),
15229
+ tabPaddingTop: parseTokenValue58(spacing.topPadding),
15230
+ tabPaddingBottom: parseTokenValue58(spacing.bottomPadding),
15231
+ tabPaddingHorizontal: parseTokenValue58(spacing.horizontalPadding),
15232
+ tabGap: parseTokenValue58(spacing.gap),
15233
+ tabBorderWidth: parseTokenValue58(borderWidth.default),
15119
15234
  tabBorderColor: borderColour,
15120
15235
  tabFlex: layout === "fixed" ? 1 : void 0
15121
15236
  }, rest), {
@@ -15197,6 +15312,6 @@ var TabNavigation = Object.assign(TabNavigationRoot, {
15197
15312
  Panel: TabNavigationPanel
15198
15313
  });
15199
15314
 
15200
- 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, InputText, Link, Logo, MessageCard, MessageCardBanner, MessageCardInsight, NativeSelectPicker, Notification, NumberField, NumberInput, NumberInputField, PasswordField, PasswordFieldInput, PasswordFieldRequirements, PawprintProvider, PictureSelector, ProductDisplayCard, ProductListingCardWithBadgeAndGrid as ProductListingCard, Progress, Radio, RadioGroup, RadioTile, 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 };
15315
+ 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, InputText, Link, Logo, MessageCard, MessageCardBanner, MessageCardInsight, NativeSelectPicker, Notification, NumberField, NumberInput, NumberInputField, PasswordField, PasswordFieldInput, PasswordFieldRequirements, PawprintProvider, PictureSelector, ProductDisplayCard, ProductListingCardWithBadgeAndGrid as ProductListingCard, Progress, Radio, RadioGroup, RadioTile, SearchField, SearchFieldInput, SegmentedControl, SelectField, SelectFieldContent, SelectFieldItem, SelectFieldTrigger, SelectFieldValue, Slider, Spinner, StackedNotifications, 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 };
15201
15316
  //# sourceMappingURL=index.js.map
15202
15317
  //# sourceMappingURL=index.js.map