@wlloyalty/wll-react-sdk 1.0.25 → 1.0.26

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
@@ -6395,7 +6395,7 @@ var Text$2 = /*#__PURE__*/React__namespace.forwardRef((props, forwardedRef) => {
6395
6395
  }
6396
6396
  supportedProps.style = [numberOfLines != null && numberOfLines > 1 && {
6397
6397
  WebkitLineClamp: numberOfLines
6398
- }, hasTextAncestor === true ? styles$x.textHasAncestor$raw : styles$x.text$raw, numberOfLines === 1 && styles$x.textOneLine, numberOfLines != null && numberOfLines > 1 && styles$x.textMultiLine, props.style, selectable === true && styles$x.selectable, selectable === false && styles$x.notSelectable, onPress && styles$x.pressable];
6398
+ }, hasTextAncestor === true ? styles$w.textHasAncestor$raw : styles$w.text$raw, numberOfLines === 1 && styles$w.textOneLine, numberOfLines != null && numberOfLines > 1 && styles$w.textMultiLine, props.style, selectable === true && styles$w.selectable, selectable === false && styles$w.notSelectable, onPress && styles$w.pressable];
6399
6399
  if (props.href != null) {
6400
6400
  component = 'a';
6401
6401
  if (hrefAttrs != null) {
@@ -6440,7 +6440,7 @@ var textStyle = {
6440
6440
  whiteSpace: 'pre-wrap',
6441
6441
  wordWrap: 'break-word'
6442
6442
  };
6443
- var styles$x = StyleSheet$1.create({
6443
+ var styles$w = StyleSheet$1.create({
6444
6444
  text$raw: textStyle,
6445
6445
  textHasAncestor$raw: _objectSpread2(_objectSpread2({}, textStyle), {}, {
6446
6446
  color: 'inherit',
@@ -7075,7 +7075,7 @@ var View$1 = /*#__PURE__*/React__namespace.forwardRef((props, forwardedRef) => {
7075
7075
  var writingDirection = componentDirection || contextDirection;
7076
7076
  var supportedProps = pickProps(rest);
7077
7077
  supportedProps.dir = componentDirection;
7078
- supportedProps.style = [styles$w.view$raw, hasTextAncestor && styles$w.inline, props.style];
7078
+ supportedProps.style = [styles$v.view$raw, hasTextAncestor && styles$v.inline, props.style];
7079
7079
  if (props.href != null) {
7080
7080
  component = 'a';
7081
7081
  if (hrefAttrs != null) {
@@ -7101,7 +7101,7 @@ var View$1 = /*#__PURE__*/React__namespace.forwardRef((props, forwardedRef) => {
7101
7101
  });
7102
7102
  });
7103
7103
  View$1.displayName = 'View';
7104
- var styles$w = StyleSheet$1.create({
7104
+ var styles$v = StyleSheet$1.create({
7105
7105
  view$raw: {
7106
7106
  alignItems: 'stretch',
7107
7107
  backgroundColor: 'transparent',
@@ -7202,14 +7202,14 @@ function TouchableOpacity(props, forwardedRef) {
7202
7202
  focusable: !disabled && focusable !== false,
7203
7203
  pointerEvents: disabled ? 'box-none' : undefined,
7204
7204
  ref: setRef,
7205
- style: [styles$v.root, !disabled && styles$v.actionable, style, opacityOverride != null && {
7205
+ style: [styles$u.root, !disabled && styles$u.actionable, style, opacityOverride != null && {
7206
7206
  opacity: opacityOverride
7207
7207
  }, {
7208
7208
  transitionDuration: duration
7209
7209
  }]
7210
7210
  }));
7211
7211
  }
7212
- var styles$v = StyleSheet$1.create({
7212
+ var styles$u = StyleSheet$1.create({
7213
7213
  root: {
7214
7214
  transitionProperty: 'opacity',
7215
7215
  transitionDuration: '0.15s',
@@ -7302,6 +7302,16 @@ function __generator(thisArg, body) {
7302
7302
  }
7303
7303
  }
7304
7304
 
7305
+ function __spreadArray(to, from, pack) {
7306
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
7307
+ if (ar || !(i in from)) {
7308
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
7309
+ ar[i] = from[i];
7310
+ }
7311
+ }
7312
+ return to.concat(ar || Array.prototype.slice.call(from));
7313
+ }
7314
+
7305
7315
  typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
7306
7316
  var e = new Error(message);
7307
7317
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
@@ -7536,78 +7546,6 @@ var getStateColor = function (baseColor, type, count) {
7536
7546
  })
7537
7547
  });
7538
7548
 
7539
- var createTheme = function (baseTheme) {
7540
- if (baseTheme === void 0) {
7541
- baseTheme = {};
7542
- }
7543
- var mergedTheme = __assign(__assign({}, defaultTheme), baseTheme);
7544
- var background = mergedTheme.background,
7545
- primary = mergedTheme.primary,
7546
- accent = mergedTheme.accent,
7547
- positive = mergedTheme.positive,
7548
- negative = mergedTheme.negative,
7549
- surfaceText = mergedTheme.surfaceText,
7550
- surface = mergedTheme.surface,
7551
- text = mergedTheme.text;
7552
- return __assign(__assign({}, mergedTheme), {
7553
- sizes: sizes,
7554
- derivedBackground: getDerivedColor(background),
7555
- primaryText: getReadableTextColor(primary),
7556
- accentText: getReadableTextColor(accent),
7557
- positiveText: getReadableTextColor(positive),
7558
- negativeText: getReadableTextColor(negative),
7559
- derivedSurface: getDerivedColorPercentages(surface),
7560
- derivedSurfaceText: getDerivedColorPercentages(surfaceText),
7561
- alphaDerivedPrimary: getAlphaDerivedColors(primary),
7562
- alphaDerivedText: getAlphaDerivedColors(text)
7563
- });
7564
- };
7565
- var WllSdkContext = /*#__PURE__*/React.createContext(undefined);
7566
- var WllSdkProvider = function (_a) {
7567
- var children = _a.children,
7568
- providedTheme = _a.theme,
7569
- config = _a.config,
7570
- _b = _a.navigationConfig,
7571
- navigationConfig = _b === void 0 ? {} : _b;
7572
- var _c = React.useState(function () {
7573
- return createTheme(providedTheme || {});
7574
- }),
7575
- theme = _c[0],
7576
- setThemeState = _c[1];
7577
- React.useEffect(function () {
7578
- setThemeState(createTheme(providedTheme || {}));
7579
- }, [providedTheme]);
7580
- var setTheme = React.useCallback(function (newTheme) {
7581
- setThemeState(function (prevTheme) {
7582
- return createTheme(__assign(__assign({}, prevTheme), newTheme));
7583
- });
7584
- }, []);
7585
- var getGroupByID = useGetGroupByID(config);
7586
- var getSectionByID = useGetSectionByID(config);
7587
- var getTileByID = useGetTileByID(config);
7588
- var handleNavigation = useNavigation(navigationConfig);
7589
- var contextValue = React.useMemo(function () {
7590
- return {
7591
- theme: theme,
7592
- setTheme: setTheme,
7593
- getGroupByID: getGroupByID,
7594
- getSectionByID: getSectionByID,
7595
- getTileByID: getTileByID,
7596
- handleNavigation: handleNavigation
7597
- };
7598
- }, [theme, setTheme, getGroupByID, getSectionByID, getTileByID, handleNavigation]);
7599
- return /*#__PURE__*/React.createElement(WllSdkContext.Provider, {
7600
- value: contextValue
7601
- }, children);
7602
- };
7603
- var useWllSdk = function () {
7604
- var context = React.useContext(WllSdkContext);
7605
- if (context === undefined) {
7606
- throw new Error('useWllSdk must be used within a WllSdkProvider');
7607
- }
7608
- return context;
7609
- };
7610
-
7611
7549
  /**
7612
7550
  * Copyright (c) 2013-present, Facebook, Inc.
7613
7551
  *
@@ -7781,6 +7719,196 @@ if (canUseDOM$1) {
7781
7719
  }
7782
7720
  }
7783
7721
 
7722
+ var DIMENSION_MODES = {
7723
+ DESKTOP: 'desktop',
7724
+ TABLET: 'tablet',
7725
+ MOBILE: 'mobile'
7726
+ };
7727
+ var TABLET_SCREEN_WIDTH = 728;
7728
+ var SMALL_SCREEN_WIDTH = 530;
7729
+
7730
+ /**
7731
+ * Copyright (c) Nicolas Gallagher.
7732
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
7733
+ *
7734
+ * This source code is licensed under the MIT license found in the
7735
+ * LICENSE file in the root directory of this source tree.
7736
+ *
7737
+ *
7738
+ */
7739
+
7740
+ var Platform = {
7741
+ OS: 'web',
7742
+ select: obj => 'web' in obj ? obj.web : obj.default,
7743
+ get isTesting() {
7744
+ if (process.env.NODE_ENV === 'test') {
7745
+ return true;
7746
+ }
7747
+ return false;
7748
+ }
7749
+ };
7750
+ var Platform$1 = Platform;
7751
+
7752
+ var isWeb = Platform$1.OS === 'web';
7753
+ function getDimensionMode(window) {
7754
+ if (!window || !window.width) {
7755
+ return DIMENSION_MODES.MOBILE;
7756
+ }
7757
+ var screenWidth = window.width;
7758
+ if (screenWidth >= TABLET_SCREEN_WIDTH) {
7759
+ return DIMENSION_MODES.DESKTOP;
7760
+ }
7761
+ if (screenWidth >= SMALL_SCREEN_WIDTH) {
7762
+ return DIMENSION_MODES.TABLET;
7763
+ }
7764
+ return DIMENSION_MODES.MOBILE;
7765
+ }
7766
+ function useResponsive$1() {
7767
+ var deviceWindow = Dimensions.get('window');
7768
+ var _a = React.useState(getDimensionMode(deviceWindow)),
7769
+ dimensionMode = _a[0],
7770
+ setDimensionMode = _a[1];
7771
+ React.useEffect(function () {
7772
+ if (!isWeb) return;
7773
+ var subscription = Dimensions.addEventListener('change', function (_a) {
7774
+ var window = _a.window;
7775
+ if (window) {
7776
+ var mode = getDimensionMode(window);
7777
+ setDimensionMode(mode);
7778
+ }
7779
+ });
7780
+ return function () {
7781
+ if (subscription) {
7782
+ subscription.remove();
7783
+ }
7784
+ };
7785
+ }, []);
7786
+ return {
7787
+ dimensionMode: dimensionMode,
7788
+ isDesktop: dimensionMode === DIMENSION_MODES.DESKTOP,
7789
+ isTablet: dimensionMode === DIMENSION_MODES.TABLET,
7790
+ isMobile: dimensionMode === DIMENSION_MODES.MOBILE
7791
+ };
7792
+ }
7793
+
7794
+ var ResponsiveContext = /*#__PURE__*/React.createContext(undefined);
7795
+ function ResponsiveProvider(_a) {
7796
+ var children = _a.children;
7797
+ var _b = React.useState(function () {
7798
+ var window = Dimensions.get('window');
7799
+ var dimensionMode = getDimensionMode(window);
7800
+ return {
7801
+ dimensionMode: dimensionMode,
7802
+ isDesktop: dimensionMode === DIMENSION_MODES.DESKTOP,
7803
+ isTablet: dimensionMode === DIMENSION_MODES.TABLET,
7804
+ isMobile: dimensionMode === DIMENSION_MODES.MOBILE
7805
+ };
7806
+ }),
7807
+ state = _b[0],
7808
+ setState = _b[1];
7809
+ React.useEffect(function () {
7810
+ var subscription = Dimensions.addEventListener('change', function (_a) {
7811
+ var window = _a.window;
7812
+ if (window) {
7813
+ var dimensionMode = getDimensionMode(window);
7814
+ setState({
7815
+ dimensionMode: dimensionMode,
7816
+ isDesktop: dimensionMode === DIMENSION_MODES.DESKTOP,
7817
+ isTablet: dimensionMode === DIMENSION_MODES.TABLET,
7818
+ isMobile: dimensionMode === DIMENSION_MODES.MOBILE
7819
+ });
7820
+ }
7821
+ });
7822
+ return function () {
7823
+ if (subscription) {
7824
+ subscription.remove();
7825
+ }
7826
+ };
7827
+ }, []);
7828
+ return /*#__PURE__*/React.createElement(ResponsiveContext.Provider, {
7829
+ value: state
7830
+ }, children);
7831
+ }
7832
+ function useResponsive() {
7833
+ var context = React.useContext(ResponsiveContext);
7834
+ if (context === undefined) {
7835
+ throw new Error('useResponsive must be used within a ResponsiveProvider');
7836
+ }
7837
+ return context;
7838
+ }
7839
+
7840
+ var createTheme = function (baseTheme) {
7841
+ if (baseTheme === void 0) {
7842
+ baseTheme = {};
7843
+ }
7844
+ var mergedTheme = __assign(__assign({}, defaultTheme), baseTheme);
7845
+ var background = mergedTheme.background,
7846
+ primary = mergedTheme.primary,
7847
+ accent = mergedTheme.accent,
7848
+ positive = mergedTheme.positive,
7849
+ negative = mergedTheme.negative,
7850
+ surfaceText = mergedTheme.surfaceText,
7851
+ surface = mergedTheme.surface,
7852
+ text = mergedTheme.text;
7853
+ return __assign(__assign({}, mergedTheme), {
7854
+ sizes: sizes,
7855
+ derivedBackground: getDerivedColor(background),
7856
+ primaryText: getReadableTextColor(primary),
7857
+ accentText: getReadableTextColor(accent),
7858
+ positiveText: getReadableTextColor(positive),
7859
+ negativeText: getReadableTextColor(negative),
7860
+ derivedSurface: getDerivedColorPercentages(surface),
7861
+ derivedSurfaceText: getDerivedColorPercentages(surfaceText),
7862
+ alphaDerivedPrimary: getAlphaDerivedColors(primary),
7863
+ alphaDerivedText: getAlphaDerivedColors(text)
7864
+ });
7865
+ };
7866
+ var WllSdkContext = /*#__PURE__*/React.createContext(undefined);
7867
+ var WllSdkProvider = function (_a) {
7868
+ var children = _a.children,
7869
+ providedTheme = _a.theme,
7870
+ config = _a.config,
7871
+ _b = _a.navigationConfig,
7872
+ navigationConfig = _b === void 0 ? {} : _b;
7873
+ var _c = React.useState(function () {
7874
+ return createTheme(providedTheme || {});
7875
+ }),
7876
+ theme = _c[0],
7877
+ setThemeState = _c[1];
7878
+ React.useEffect(function () {
7879
+ setThemeState(createTheme(providedTheme || {}));
7880
+ }, [providedTheme]);
7881
+ var setTheme = React.useCallback(function (newTheme) {
7882
+ setThemeState(function (prevTheme) {
7883
+ return createTheme(__assign(__assign({}, prevTheme), newTheme));
7884
+ });
7885
+ }, []);
7886
+ var getGroupByID = useGetGroupByID(config);
7887
+ var getSectionByID = useGetSectionByID(config);
7888
+ var getTileByID = useGetTileByID(config);
7889
+ var handleNavigation = useNavigation(navigationConfig);
7890
+ var contextValue = React.useMemo(function () {
7891
+ return {
7892
+ theme: theme,
7893
+ setTheme: setTheme,
7894
+ getGroupByID: getGroupByID,
7895
+ getSectionByID: getSectionByID,
7896
+ getTileByID: getTileByID,
7897
+ handleNavigation: handleNavigation
7898
+ };
7899
+ }, [theme, setTheme, getGroupByID, getSectionByID, getTileByID, handleNavigation]);
7900
+ return /*#__PURE__*/React.createElement(WllSdkContext.Provider, {
7901
+ value: contextValue
7902
+ }, /*#__PURE__*/React.createElement(ResponsiveProvider, null, children));
7903
+ };
7904
+ var useWllSdk = function () {
7905
+ var context = React.useContext(WllSdkContext);
7906
+ if (context === undefined) {
7907
+ throw new Error('useWllSdk must be used within a WllSdkProvider');
7908
+ }
7909
+ return context;
7910
+ };
7911
+
7784
7912
  var BREAKPOINTS = {
7785
7913
  MOBILE: 0,
7786
7914
  TABLET: 767,
@@ -7806,6 +7934,11 @@ var createResponsiveStyle = function (style) {
7806
7934
  }, {});
7807
7935
  return responsiveStyle;
7808
7936
  };
7937
+ var getResponsiveValue = function (desktopValue, mobileValue, isDesktop, isTablet) {
7938
+ if (isDesktop) return desktopValue;
7939
+ if (isTablet) return Math.round((desktopValue + mobileValue) / 2); // Tablet gets the middle value
7940
+ return mobileValue;
7941
+ };
7809
7942
 
7810
7943
  function createVariantSystem(baseStyle, variantStyles) {
7811
7944
  return function (theme, variant) {
@@ -7814,22 +7947,7 @@ function createVariantSystem(baseStyle, variantStyles) {
7814
7947
  };
7815
7948
  }
7816
7949
 
7817
- var styles$u = StyleSheet$1.create({
7818
- button: createResponsiveStyle({
7819
- justifyContent: 'center',
7820
- alignItems: 'center',
7821
- paddingHorizontal: [12, 12, 24],
7822
- paddingVertical: [12, 12, 12],
7823
- alignSelf: 'flex-start'
7824
- }),
7825
- // @ts-ignore
7826
- text: createResponsiveStyle({
7827
- textAlign: 'center',
7828
- textTransform: 'uppercase',
7829
- fontSize: [12, 12, 18]
7830
- })
7831
- });
7832
- var useButtonStyles = createVariantSystem(styles$u.button, function (theme) {
7950
+ var useButtonStyles = createVariantSystem({}, function (theme) {
7833
7951
  return {
7834
7952
  primary: {
7835
7953
  backgroundColor: theme.primary
@@ -7845,7 +7963,7 @@ var useButtonStyles = createVariantSystem(styles$u.button, function (theme) {
7845
7963
  }
7846
7964
  };
7847
7965
  });
7848
- var useTextStyles = createVariantSystem(styles$u.text, function (theme) {
7966
+ var useTextStyles = createVariantSystem({}, function (theme) {
7849
7967
  return {
7850
7968
  primary: {
7851
7969
  color: theme.primaryText
@@ -7866,17 +7984,33 @@ var Button = function (_a) {
7866
7984
  onPress = _a.onPress,
7867
7985
  variant = _a.variant;
7868
7986
  var theme = useWllSdk().theme;
7987
+ var _b = useResponsive$1(),
7988
+ isDesktop = _b.isDesktop,
7989
+ isTablet = _b.isTablet;
7869
7990
  var buttonStyle = useButtonStyles(theme, variant);
7870
7991
  var textStyle = useTextStyles(theme, variant);
7992
+ var dynamicStyles = StyleSheet$1.create({
7993
+ button: {
7994
+ justifyContent: 'center',
7995
+ alignItems: 'center',
7996
+ paddingHorizontal: getResponsiveValue(24, 12, isDesktop, isTablet),
7997
+ paddingVertical: 12,
7998
+ alignSelf: 'flex-start'
7999
+ },
8000
+ text: {
8001
+ textAlign: 'center',
8002
+ textTransform: 'uppercase',
8003
+ fontSize: getResponsiveValue(18, 12, isDesktop, isTablet),
8004
+ fontWeight: '700'
8005
+ }
8006
+ });
7871
8007
  return /*#__PURE__*/React__namespace.createElement(TouchableOpacity$1, {
7872
- style: [buttonStyle, {
8008
+ style: [dynamicStyles.button, buttonStyle, {
7873
8009
  borderRadius: theme.sizes.borderRadiusButton
7874
8010
  }],
7875
8011
  onPress: onPress
7876
8012
  }, /*#__PURE__*/React__namespace.createElement(Text$3, {
7877
- style: [textStyle, {
7878
- fontWeight: '700'
7879
- }]
8013
+ style: [dynamicStyles.text, textStyle]
7880
8014
  }, title));
7881
8015
  };
7882
8016
 
@@ -8049,28 +8183,6 @@ var styles$r = StyleSheet$1.create({
8049
8183
  }
8050
8184
  });
8051
8185
 
8052
- /**
8053
- * Copyright (c) Nicolas Gallagher.
8054
- * Copyright (c) Meta Platforms, Inc. and affiliates.
8055
- *
8056
- * This source code is licensed under the MIT license found in the
8057
- * LICENSE file in the root directory of this source tree.
8058
- *
8059
- *
8060
- */
8061
-
8062
- var Platform = {
8063
- OS: 'web',
8064
- select: obj => 'web' in obj ? obj.web : obj.default,
8065
- get isTesting() {
8066
- if (process.env.NODE_ENV === 'test') {
8067
- return true;
8068
- }
8069
- return false;
8070
- }
8071
- };
8072
- var Platform$1 = Platform;
8073
-
8074
8186
  /**
8075
8187
  * Copyright (c) Meta Platforms, Inc. and affiliates.
8076
8188
  *
@@ -18103,48 +18215,51 @@ var Text = function (_a) {
18103
18215
  _a.isSurface;
18104
18216
  var props = __rest(_a, ["variant", "style", "isSurface"]);
18105
18217
  var theme = useWllSdk().theme;
18218
+ var _d = useResponsive(),
18219
+ isDesktop = _d.isDesktop,
18220
+ isTablet = _d.isTablet;
18106
18221
  var getVariantStyle = function (variant) {
18107
18222
  var baseStyle = {
18108
18223
  color: theme.surfaceText
18109
18224
  };
18110
18225
  switch (variant) {
18111
18226
  case 'eyebrow':
18112
- return createResponsiveStyle(__assign(__assign({}, baseStyle), {
18113
- fontSize: [12, 12, 14],
18114
- marginBottom: [4, 4, 8]
18115
- }));
18227
+ return __assign(__assign({}, baseStyle), {
18228
+ fontSize: getResponsiveValue(14, 12, isDesktop, isTablet),
18229
+ marginBottom: getResponsiveValue(8, 4, isDesktop, isTablet)
18230
+ });
18116
18231
  case 'title':
18117
- return createResponsiveStyle(__assign(__assign({}, baseStyle), {
18118
- fontSize: [14, 14, 24],
18232
+ return __assign(__assign({}, baseStyle), {
18233
+ fontSize: getResponsiveValue(24, 14, isDesktop, isTablet),
18119
18234
  fontWeight: 'bold'
18120
- }));
18121
- case 'description':
18122
- return createResponsiveStyle(__assign({}, baseStyle));
18235
+ });
18123
18236
  case 'body':
18124
- return createResponsiveStyle({
18237
+ return {
18125
18238
  color: theme.derivedSurfaceText[20],
18126
- fontSize: [10, 10, 14]
18127
- });
18239
+ fontSize: getResponsiveValue(14, 10, isDesktop, isTablet)
18240
+ };
18128
18241
  case 'caption':
18129
- return createResponsiveStyle(__assign(__assign({}, baseStyle), {
18242
+ return __assign(__assign({}, baseStyle), {
18130
18243
  fontWeight: 'bold',
18131
- fontSize: [18, 18, 24],
18244
+ fontSize: getResponsiveValue(24, 18, isDesktop, isTablet),
18132
18245
  color: theme.primary
18133
- }));
18134
- case 'label':
18135
- return createResponsiveStyle(__assign({}, baseStyle));
18246
+ });
18136
18247
  case 'tier-earned':
18137
- return createResponsiveStyle(__assign(__assign({}, baseStyle), {
18138
- fontSize: [14, 14, 20],
18248
+ return __assign(__assign({}, baseStyle), {
18249
+ fontSize: getResponsiveValue(20, 14, isDesktop, isTablet),
18139
18250
  fontWeight: 'bold'
18140
- }));
18251
+ });
18141
18252
  case 'tier-requirement':
18142
- return createResponsiveStyle(__assign(__assign({}, baseStyle), {
18143
- fontSize: [12, 12, 18],
18253
+ return __assign(__assign({}, baseStyle), {
18254
+ fontSize: getResponsiveValue(18, 12, isDesktop, isTablet),
18144
18255
  fontWeight: 'bold'
18145
- }));
18256
+ });
18257
+ case 'description':
18258
+ case 'label':
18146
18259
  default:
18147
- return createResponsiveStyle(__assign({}, baseStyle));
18260
+ return __assign(__assign({}, baseStyle), {
18261
+ fontSize: getResponsiveValue(12, 10, isDesktop, isTablet)
18262
+ });
18148
18263
  }
18149
18264
  };
18150
18265
  var variantStyle = getVariantStyle(variant);
@@ -18995,8 +19110,9 @@ var BaseTileContent = function (_a) {
18995
19110
  // For half tiles with an image, don't show other content
18996
19111
  if (isHalfSize && artworkUrl) return null;
18997
19112
  return /*#__PURE__*/React.createElement(View$2, {
18998
- style: [styles$f.content, isHalfSize && {
18999
- justifyContent: 'center'
19113
+ style: [styles$f.content, {
19114
+ justifyContent: 'center',
19115
+ height: !artworkUrl ? '100%' : undefined
19000
19116
  }]
19001
19117
  }, children);
19002
19118
  };
@@ -19099,6 +19215,38 @@ var styles$f = StyleSheet$1.create({
19099
19215
  })
19100
19216
  });
19101
19217
 
19218
+ var Indicator = function () {
19219
+ var _a = useResponsive$1(),
19220
+ isDesktop = _a.isDesktop,
19221
+ isTablet = _a.isTablet;
19222
+ var getCurrentLayout = function () {
19223
+ if (isDesktop) return 'Desktop Layout';
19224
+ if (isTablet) return 'Tablet Layout';
19225
+ return 'Mobile Layout';
19226
+ };
19227
+ return /*#__PURE__*/React.createElement(View$2, {
19228
+ style: styles$e.indicator
19229
+ }, /*#__PURE__*/React.createElement(Text$3, {
19230
+ style: styles$e.indicatorText
19231
+ }, getCurrentLayout()));
19232
+ };
19233
+ var styles$e = StyleSheet$1.create({
19234
+ indicator: {
19235
+ position: 'absolute',
19236
+ top: 10,
19237
+ right: 10,
19238
+ backgroundColor: 'red',
19239
+ paddingHorizontal: 12,
19240
+ paddingVertical: 6,
19241
+ borderRadius: 4
19242
+ },
19243
+ indicatorText: {
19244
+ color: 'white',
19245
+ fontSize: 12,
19246
+ fontWeight: 'bold'
19247
+ }
19248
+ });
19249
+
19102
19250
  var GRID_GAP = 16;
19103
19251
 
19104
19252
  var Skeleton = function (_a) {
@@ -19132,29 +19280,29 @@ var Skeleton = function (_a) {
19132
19280
  borderRadius: theme.sizes.borderRadiusLg
19133
19281
  };
19134
19282
  return /*#__PURE__*/React__namespace.createElement(View$2, null, /*#__PURE__*/React__namespace.createElement(Animated$1.View, {
19135
- style: [styles$e.skeleton, styles$e.title, {
19283
+ style: [styles$d.skeleton, styles$d.title, {
19136
19284
  opacity: opacity,
19137
19285
  backgroundColor: theme.alphaDerivedText[20],
19138
19286
  borderRadius: 6
19139
19287
  }]
19140
19288
  }), /*#__PURE__*/React__namespace.createElement(Animated$1.View, {
19141
- style: [styles$e.skeleton, styles$e.body, {
19289
+ style: [styles$d.skeleton, styles$d.body, {
19142
19290
  opacity: opacity,
19143
19291
  backgroundColor: theme.alphaDerivedText[20],
19144
19292
  borderRadius: 6
19145
19293
  }]
19146
19294
  }), /*#__PURE__*/React__namespace.createElement(Animated$1.View, {
19147
- style: [styles$e.container, style]
19295
+ style: [styles$d.container, style]
19148
19296
  }, Array.from({
19149
19297
  length: numberOfSquares
19150
19298
  }).map(function (_, index) {
19151
19299
  return /*#__PURE__*/React__namespace.createElement(Animated$1.View, {
19152
19300
  key: index,
19153
- style: [styles$e.skeleton, styles$e.square, sharedSkeletonStyle]
19301
+ style: [styles$d.skeleton, styles$d.square, sharedSkeletonStyle]
19154
19302
  });
19155
19303
  })));
19156
19304
  };
19157
- var styles$e = StyleSheet$1.create({
19305
+ var styles$d = StyleSheet$1.create({
19158
19306
  container: {
19159
19307
  flexDirection: 'row',
19160
19308
  flexWrap: 'wrap',
@@ -19191,9 +19339,9 @@ var BadgeTileInner$1 = function (_a) {
19191
19339
  return /*#__PURE__*/React.createElement(BaseTile, {
19192
19340
  tile: tile
19193
19341
  }, /*#__PURE__*/React.createElement(View$2, {
19194
- style: styles$d.contentContainer
19342
+ style: styles$c.contentContainer
19195
19343
  }, /*#__PURE__*/React.createElement(BadgeTile$1.Image, null), /*#__PURE__*/React.createElement(View$2, {
19196
- style: styles$d.textContainer
19344
+ style: styles$c.textContainer
19197
19345
  }, /*#__PURE__*/React.createElement(RowHeader, null, /*#__PURE__*/React.createElement(BadgeTile$1.Title, null), /*#__PURE__*/React.createElement(BadgeTile$1.Chevron, null)), /*#__PURE__*/React.createElement(BadgeTile$1.Body, null))));
19198
19346
  };
19199
19347
  var BadgeTileImage = function (props) {
@@ -19204,7 +19352,7 @@ var BadgeTileImage = function (props) {
19204
19352
  var badgeDetails = (_a = configuration.details) === null || _a === void 0 ? void 0 : _a[0];
19205
19353
  if (!(badgeDetails === null || badgeDetails === void 0 ? void 0 : badgeDetails.artworkUrl)) return null;
19206
19354
  return /*#__PURE__*/React.createElement(View$2, {
19207
- style: [styles$d.imageContainer, {
19355
+ style: [styles$c.imageContainer, {
19208
19356
  backgroundColor: theme.alphaDerivedPrimary[20]
19209
19357
  }]
19210
19358
  }, configuration.count === 0 && /*#__PURE__*/React.createElement(Locked, null), /*#__PURE__*/React.createElement(ProgressiveImage, _extends({}, props, {
@@ -19212,7 +19360,7 @@ var BadgeTileImage = function (props) {
19212
19360
  uri: badgeDetails.artworkUrl
19213
19361
  },
19214
19362
  resizeMode: "contain",
19215
- style: styles$d.image
19363
+ style: styles$c.image
19216
19364
  })));
19217
19365
  };
19218
19366
  var BadgeTileTitle$1 = function (props) {
@@ -19242,7 +19390,7 @@ var Locked = function () {
19242
19390
  var width = Dimensions.get('window').width;
19243
19391
  var iconSize = Math.min(width * 0.1, 50);
19244
19392
  return /*#__PURE__*/React.createElement(View$2, {
19245
- style: styles$d.lockOverlay
19393
+ style: styles$c.lockOverlay
19246
19394
  }, /*#__PURE__*/React.createElement(LucideIcons.LockKeyholeIcon, {
19247
19395
  color: "#FFF",
19248
19396
  size: iconSize
@@ -19260,7 +19408,7 @@ BadgeTile$1.Image = BadgeTileImage;
19260
19408
  BadgeTile$1.Title = BadgeTileTitle$1;
19261
19409
  BadgeTile$1.Body = BadgeTileBody;
19262
19410
  BadgeTile$1.Chevron = BadgeTileChevron;
19263
- var styles$d = StyleSheet$1.create({
19411
+ var styles$c = StyleSheet$1.create({
19264
19412
  contentContainer: {
19265
19413
  flexDirection: 'column',
19266
19414
  height: '100%'
@@ -19303,7 +19451,7 @@ var BadgeTileInner = function (_a) {
19303
19451
  return /*#__PURE__*/React.createElement(BaseTile, {
19304
19452
  tile: tile
19305
19453
  }, /*#__PURE__*/React.createElement(View$2, {
19306
- style: styles$c.container
19454
+ style: styles$b.container
19307
19455
  }, /*#__PURE__*/React.createElement(BadgeTile.Media, null, /*#__PURE__*/React.createElement(BadgeTile.Status, null)), /*#__PURE__*/React.createElement(Column, {
19308
19456
  justify: "between",
19309
19457
  align: "start"
@@ -19321,12 +19469,12 @@ var BadgeTileMedia = function (_a) {
19321
19469
  var displayUrl = count === 0 ? emptyBadgeArtworkUrl : artworkUrl;
19322
19470
  if (!displayUrl) return null;
19323
19471
  return /*#__PURE__*/React.createElement(View$2, {
19324
- style: styles$c.header
19472
+ style: styles$b.header
19325
19473
  }, /*#__PURE__*/React.createElement(ProgressiveImage, _extends({}, props, {
19326
19474
  source: {
19327
19475
  uri: displayUrl
19328
19476
  },
19329
- style: styles$c.image,
19477
+ style: styles$b.image,
19330
19478
  resizeMode: "contain",
19331
19479
  isDesaturated: shouldDesaturate(type, count)
19332
19480
  })), children);
@@ -19341,7 +19489,7 @@ var BadgeTileTitle = function () {
19341
19489
  if (!displayText) return null;
19342
19490
  return /*#__PURE__*/React.createElement(View$2, null, /*#__PURE__*/React.createElement(Text, {
19343
19491
  variant: "title",
19344
- style: styles$c.titleText,
19492
+ style: styles$b.titleText,
19345
19493
  numberOfLines: 2,
19346
19494
  ellipsizeMode: "tail"
19347
19495
  }, displayText));
@@ -19353,10 +19501,10 @@ var BadgeTileDescription = function () {
19353
19501
  description = configuration.description;
19354
19502
  if (count === 0 || !description) return null;
19355
19503
  return /*#__PURE__*/React.createElement(View$2, {
19356
- style: styles$c.descriptionContainer
19504
+ style: styles$b.descriptionContainer
19357
19505
  }, /*#__PURE__*/React.createElement(Text, {
19358
19506
  variant: "body",
19359
- style: styles$c.descriptionText,
19507
+ style: styles$b.descriptionText,
19360
19508
  numberOfLines: 2,
19361
19509
  ellipsizeMode: "tail"
19362
19510
  }, description));
@@ -19371,7 +19519,7 @@ var BadgeTileDateEarned = function () {
19371
19519
  badgeNotEarnedMessage = configuration.badgeNotEarnedMessage;
19372
19520
  var theme = useWllSdk().theme;
19373
19521
  var backgroundColor = getStateColor(theme.alphaDerivedPrimary[20], type, count);
19374
- var containerStyle = [styles$c.dateEarnedContainer, {
19522
+ var containerStyle = [styles$b.dateEarnedContainer, {
19375
19523
  backgroundColor: backgroundColor
19376
19524
  }];
19377
19525
  if (type === exports.BadgeTileType.Latest && count === 0) {
@@ -19400,12 +19548,12 @@ var BadgeTileStatus = function () {
19400
19548
  return null;
19401
19549
  }
19402
19550
  return /*#__PURE__*/React.createElement(View$2, {
19403
- style: styles$c.indicatorContainer
19551
+ style: styles$b.indicatorContainer
19404
19552
  }, count === 0 ? /*#__PURE__*/React.createElement(LucideIcons.LockKeyholeIcon, {
19405
19553
  color: "#FFF",
19406
19554
  size: 20
19407
19555
  }) : /*#__PURE__*/React.createElement(Text, {
19408
- style: styles$c.countText
19556
+ style: styles$b.countText
19409
19557
  }, count, "x"));
19410
19558
  };
19411
19559
  var BadgeTile = BadgeTileInner;
@@ -19414,7 +19562,7 @@ BadgeTile.Title = BadgeTileTitle;
19414
19562
  BadgeTile.Description = BadgeTileDescription;
19415
19563
  BadgeTile.DateEarned = BadgeTileDateEarned;
19416
19564
  BadgeTile.Status = BadgeTileStatus;
19417
- var styles$c = StyleSheet$1.create({
19565
+ var styles$b = StyleSheet$1.create({
19418
19566
  container: {
19419
19567
  flex: 1
19420
19568
  },
@@ -19463,7 +19611,7 @@ var BannerTile = function (_a) {
19463
19611
  return /*#__PURE__*/React__namespace.createElement(BaseBanner, {
19464
19612
  tile: tile
19465
19613
  }, /*#__PURE__*/React__namespace.createElement(BannerTile.Media, null), /*#__PURE__*/React__namespace.createElement(View$2, {
19466
- style: styles$b.slideContent
19614
+ style: styles$a.slideContent
19467
19615
  }, /*#__PURE__*/React__namespace.createElement(BannerTile.Title, null), /*#__PURE__*/React__namespace.createElement(BannerTile.Description, null), /*#__PURE__*/React__namespace.createElement(BannerTile.CTA, null)));
19468
19616
  };
19469
19617
  var BannerTileMedia = function () {
@@ -19471,12 +19619,12 @@ var BannerTileMedia = function () {
19471
19619
  var artworkUrl = configuration.artworkUrl;
19472
19620
  if (!artworkUrl) return null;
19473
19621
  return /*#__PURE__*/React__namespace.createElement(View$2, {
19474
- style: styles$b.mediaContainer
19622
+ style: styles$a.mediaContainer
19475
19623
  }, /*#__PURE__*/React__namespace.createElement(ProgressiveImage, {
19476
19624
  source: {
19477
19625
  uri: artworkUrl
19478
19626
  },
19479
- style: styles$b.media
19627
+ style: styles$a.media
19480
19628
  }));
19481
19629
  };
19482
19630
  var BannerTileTitle = function () {
@@ -19488,7 +19636,7 @@ var BannerTileTitle = function () {
19488
19636
  // @ts-ignore
19489
19637
  React__namespace.createElement(Text, {
19490
19638
  variant: "title",
19491
- style: styles$b.title
19639
+ style: styles$a.title
19492
19640
  }, title)
19493
19641
  );
19494
19642
  };
@@ -19498,7 +19646,7 @@ var BannerTileDescription = function () {
19498
19646
  var description = configuration.description;
19499
19647
  if (!description) return null;
19500
19648
  return /*#__PURE__*/React__namespace.createElement(Text, {
19501
- style: [styles$b.description, {
19649
+ style: [styles$a.description, {
19502
19650
  color: theme.derivedSurfaceText[20]
19503
19651
  }]
19504
19652
  }, description);
@@ -19517,7 +19665,7 @@ var BannerTileCTA = function () {
19517
19665
  onPress: handlePress
19518
19666
  });
19519
19667
  };
19520
- var styles$b = StyleSheet$1.create({
19668
+ var styles$a = StyleSheet$1.create({
19521
19669
  slide: createResponsiveStyle({
19522
19670
  width: '100%',
19523
19671
  maxWidth: 1080,
@@ -19531,11 +19679,12 @@ var styles$b = StyleSheet$1.create({
19531
19679
  flex: 1
19532
19680
  }),
19533
19681
  mediaContainer: createResponsiveStyle({
19534
- width: '20%',
19682
+ width: '30%',
19535
19683
  aspectRatio: 1,
19536
19684
  position: 'relative',
19537
19685
  overflow: 'hidden',
19538
- marginRight: [8, 8, 24]
19686
+ marginRight: [8, 8, 24],
19687
+ height: 320
19539
19688
  }),
19540
19689
  media: {
19541
19690
  position: 'absolute',
@@ -19570,13 +19719,13 @@ var ContentTileRoot = function (_a) {
19570
19719
  };
19571
19720
  var ContentTileMedia = function () {
19572
19721
  return /*#__PURE__*/React__namespace.createElement(BaseTile.Media, {
19573
- style: styles$a.media
19722
+ style: styles$9.media
19574
19723
  });
19575
19724
  };
19576
19725
  var ContentTileContent = function (_a) {
19577
19726
  var children = _a.children;
19578
19727
  return /*#__PURE__*/React__namespace.createElement(BaseTile.Content, null, /*#__PURE__*/React__namespace.createElement(View$2, {
19579
- style: styles$a.content
19728
+ style: styles$9.content
19580
19729
  }, children));
19581
19730
  };
19582
19731
  var ContentTileHeader = function () {
@@ -19585,7 +19734,7 @@ var ContentTileHeader = function () {
19585
19734
  var ContentTileBody = function () {
19586
19735
  return /*#__PURE__*/React__namespace.createElement(BaseTile.Body, null);
19587
19736
  };
19588
- var styles$a = StyleSheet$1.create({
19737
+ var styles$9 = StyleSheet$1.create({
19589
19738
  content: createResponsiveStyle({
19590
19739
  paddingHorizontal: [8, 8, 12],
19591
19740
  flex: 1,
@@ -19602,6 +19751,22 @@ ContentTile.Content = ContentTileContent;
19602
19751
  ContentTile.Header = ContentTileHeader;
19603
19752
  ContentTile.Body = ContentTileBody;
19604
19753
 
19754
+ /**
19755
+ * Sorts tiles by priority (higher priority first) and maintains original order for equal priorities
19756
+ * @param tiles Array of tiles to sort
19757
+ * @returns Sorted array of tiles
19758
+ */
19759
+ var sortByPriority = function (tiles) {
19760
+ return __spreadArray([], tiles, true).sort(function (a, b) {
19761
+ // Sort by priority (higher priority first)
19762
+ if (a.priority !== b.priority) {
19763
+ return b.priority - a.priority;
19764
+ }
19765
+ // If priorities are equal, maintain original order
19766
+ return tiles.indexOf(a) - tiles.indexOf(b);
19767
+ });
19768
+ };
19769
+
19605
19770
  exports.SectionType = void 0;
19606
19771
  (function (SectionType) {
19607
19772
  SectionType["Grid"] = "GRID";
@@ -19612,34 +19777,37 @@ var SectionHeader = function (_a) {
19612
19777
  var title = _a.title,
19613
19778
  description = _a.description;
19614
19779
  var theme = useWllSdk().theme;
19780
+ var _b = useResponsive$1(),
19781
+ isDesktop = _b.isDesktop,
19782
+ isTablet = _b.isTablet;
19615
19783
  if (!title && !description) {
19616
19784
  return null;
19617
19785
  }
19786
+ var dynamicStyles = StyleSheet$1.create({
19787
+ sectionHeader: {
19788
+ marginBottom: getResponsiveValue(16, 8, isDesktop, isTablet)
19789
+ },
19790
+ sectionTitle: {
19791
+ fontSize: getResponsiveValue(32, 18, isDesktop, isTablet),
19792
+ marginBottom: getResponsiveValue(8, 4, isDesktop, isTablet)
19793
+ },
19794
+ sectionDescription: {
19795
+ fontSize: getResponsiveValue(24, 14, isDesktop, isTablet)
19796
+ }
19797
+ });
19618
19798
  return /*#__PURE__*/React.createElement(View$2, {
19619
- style: styles$9.sectionHeader
19799
+ style: dynamicStyles.sectionHeader
19620
19800
  }, title && /*#__PURE__*/React.createElement(Text, {
19621
- style: [styles$9.sectionTitle, {
19801
+ style: [dynamicStyles.sectionTitle, {
19622
19802
  fontWeight: '700',
19623
19803
  color: theme.text
19624
19804
  }]
19625
19805
  }, title), description && /*#__PURE__*/React.createElement(Text, {
19626
- style: [styles$9.sectionDescription, {
19806
+ style: [dynamicStyles.sectionDescription, {
19627
19807
  color: theme.alphaDerivedText[80]
19628
19808
  }]
19629
19809
  }, description));
19630
19810
  };
19631
- var styles$9 = StyleSheet$1.create({
19632
- sectionHeader: createResponsiveStyle({
19633
- marginBottom: [8, 8, 16]
19634
- }),
19635
- sectionTitle: createResponsiveStyle({
19636
- fontSize: [18, 18, 32],
19637
- marginBottom: [4, 4, 8]
19638
- }),
19639
- sectionDescription: createResponsiveStyle({
19640
- fontSize: [14, 14, 24]
19641
- })
19642
- });
19643
19811
 
19644
19812
  var Carousel = function (_a) {
19645
19813
  var section = _a.section;
@@ -19652,6 +19820,7 @@ var Carousel = function (_a) {
19652
19820
  var bannerTiles = section.tiles.filter(function (tile) {
19653
19821
  return tile.type === exports.TileType.Banner;
19654
19822
  });
19823
+ var sortedTiles = sortByPriority(bannerTiles);
19655
19824
  var animatedIndex = React.useRef(new Animated$1.Value(0)).current;
19656
19825
  var handleScroll = React.useCallback(function (event) {
19657
19826
  var contentOffsetX = event.nativeEvent.contentOffset.x;
@@ -19674,14 +19843,14 @@ var Carousel = function (_a) {
19674
19843
  };
19675
19844
  var handleNext = function () {
19676
19845
  var _a;
19677
- var newIndex = Math.min(bannerTiles.length - 1, currentIndex + 1);
19846
+ var newIndex = Math.min(sortedTiles.length - 1, currentIndex + 1);
19678
19847
  setCurrentIndex(newIndex);
19679
19848
  (_a = scrollViewRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
19680
19849
  x: newIndex * slideWidth,
19681
19850
  animated: true
19682
19851
  });
19683
19852
  };
19684
- var displayControls = bannerTiles.length > 1;
19853
+ var displayControls = sortedTiles.length > 1;
19685
19854
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SectionHeader, {
19686
19855
  title: section.title,
19687
19856
  description: section.description
@@ -19710,19 +19879,12 @@ var Carousel = function (_a) {
19710
19879
  width: slideWidth
19711
19880
  }],
19712
19881
  contentContainerStyle: {
19713
- width: slideWidth * bannerTiles.length
19882
+ width: slideWidth * sortedTiles.length
19714
19883
  },
19715
19884
  decelerationRate: "fast",
19716
19885
  snapToInterval: slideWidth,
19717
19886
  snapToAlignment: "start"
19718
- }, bannerTiles.sort(function (a, b) {
19719
- // Sort by priority (higher priority first)
19720
- if (a.priority !== b.priority) {
19721
- return b.priority - a.priority;
19722
- }
19723
- // If priorities are equal, maintain original order
19724
- return bannerTiles.indexOf(a) - bannerTiles.indexOf(b);
19725
- }).map(function (tile, index) {
19887
+ }, sortedTiles.map(function (tile, index) {
19726
19888
  return /*#__PURE__*/React.createElement(View$2, {
19727
19889
  key: index,
19728
19890
  style: [{
@@ -19742,7 +19904,7 @@ var Carousel = function (_a) {
19742
19904
  color: theme.primary
19743
19905
  }))), displayControls && /*#__PURE__*/React.createElement(View$2, {
19744
19906
  style: styles$8.indicators
19745
- }, bannerTiles.map(function (_, index) {
19907
+ }, sortedTiles.map(function (_, index) {
19746
19908
  var width = animatedIndex.interpolate({
19747
19909
  inputRange: [index - 1, index, index + 1],
19748
19910
  outputRange: [8, 30, 8],
@@ -19759,7 +19921,7 @@ var Carousel = function (_a) {
19759
19921
  });
19760
19922
  }))));
19761
19923
  };
19762
- var buttonSize = 30;
19924
+ var buttonSize = 42;
19763
19925
  var styles$8 = StyleSheet$1.create({
19764
19926
  container: {
19765
19927
  width: '100%',
@@ -19788,22 +19950,6 @@ var styles$8 = StyleSheet$1.create({
19788
19950
  carouselContent: {
19789
19951
  overflow: 'hidden'
19790
19952
  },
19791
- slideContent: {
19792
- padding: 20,
19793
- flex: 1
19794
- },
19795
- imageContainer: {
19796
- width: '20%',
19797
- aspectRatio: 1,
19798
- position: 'relative',
19799
- overflow: 'hidden'
19800
- },
19801
- image: {
19802
- position: 'absolute',
19803
- width: '100%',
19804
- height: '100%',
19805
- objectFit: 'cover'
19806
- },
19807
19953
  navButton: {
19808
19954
  padding: 10,
19809
19955
  alignItems: 'center',
@@ -19844,45 +19990,10 @@ var styles$8 = StyleSheet$1.create({
19844
19990
  }
19845
19991
  });
19846
19992
 
19847
- /**
19848
- * Copyright (c) Meta Platforms, Inc. and affiliates.
19849
- *
19850
- * This source code is licensed under the MIT license found in the
19851
- * LICENSE file in the root directory of this source tree.
19852
- *
19853
- * @format
19854
- *
19855
- */
19856
-
19857
- function useWindowDimensions() {
19858
- var _useState = React.useState(() => Dimensions.get('window')),
19859
- dims = _useState[0],
19860
- setDims = _useState[1];
19861
- React.useEffect(() => {
19862
- function handleChange(_ref) {
19863
- var window = _ref.window;
19864
- if (window != null) {
19865
- setDims(window);
19866
- }
19867
- }
19868
- Dimensions.addEventListener('change', handleChange);
19869
- // We might have missed an update between calling `get` in render and
19870
- // `addEventListener` in this handler, so we set it here. If there was
19871
- // no change, React will filter out this update as a no-op.
19872
- setDims(Dimensions.get('window'));
19873
- return () => {
19874
- Dimensions.removeEventListener('change', handleChange);
19875
- };
19876
- }, []);
19877
- return dims;
19878
- }
19879
-
19880
19993
  var Grid = function (_a) {
19881
19994
  var section = _a.section;
19882
- var width = useWindowDimensions().width;
19883
- var isDesktop = width >= 700;
19995
+ var isDesktop = useResponsive().isDesktop;
19884
19996
  var columnsPerRow = isDesktop ? 4 : 2;
19885
- var gap = GRID_GAP;
19886
19997
  var renderGrid = function () {
19887
19998
  var tileContainers = [];
19888
19999
  var currentTiles = [];
@@ -19897,28 +20008,33 @@ var Grid = function (_a) {
19897
20008
  var allHalfTiles = gridTiles.every(function (tile) {
19898
20009
  return tile.tileHeight === exports.TileHeight.Half;
19899
20010
  });
20011
+ var getTileWidth = function (columns) {
20012
+ return {
20013
+ width: "calc(".concat(100 / columns, "% - ").concat((columns - 1) * GRID_GAP / columns, "px)"),
20014
+ marginBottom: GRID_GAP,
20015
+ height: 'auto'
20016
+ };
20017
+ };
19900
20018
  if (isDesktop && allHalfTiles) {
19901
20019
  gridTiles.forEach(function (tile, index) {
19902
20020
  var isLastInRow = (index + 1) % columnsPerRow === 0;
19903
20021
  tileContainers.push( /*#__PURE__*/React__namespace.createElement(View$2, {
19904
- key: "container-".concat(index)
20022
+ key: "container-".concat(index),
20023
+ style: [
19905
20024
  // @ts-ignore
19906
- ,
19907
- style: {
19908
- width: "calc(".concat(100 / columnsPerRow, "% - ").concat((columnsPerRow - 1) * gap / columnsPerRow, "px)"),
19909
- marginRight: isLastInRow ? 0 : gap,
19910
- marginBottom: gap,
19911
- height: 'auto'
19912
- }
20025
+ getTileWidth(columnsPerRow), !isLastInRow && {
20026
+ marginRight: GRID_GAP
20027
+ }]
19913
20028
  }, /*#__PURE__*/React__namespace.createElement(TileContainer, {
19914
20029
  tiles: [tile]
19915
20030
  })));
19916
20031
  });
19917
20032
  return tileContainers;
19918
20033
  }
19919
- gridTiles.forEach(function (tile, index) {
20034
+ var sortedTiles = sortByPriority(gridTiles);
20035
+ sortedTiles.forEach(function (tile, index) {
19920
20036
  currentTiles.push(tile);
19921
- var nextTile = gridTiles[index + 1];
20037
+ var nextTile = sortedTiles[index + 1];
19922
20038
  var shouldStartNewContainer = function (currentTiles, currentTile, nextTile) {
19923
20039
  if (currentTiles.length === 2) return true;
19924
20040
  if (currentTile.tileHeight === exports.TileHeight.Full) return true;
@@ -19935,14 +20051,12 @@ var Grid = function (_a) {
19935
20051
  if (shouldStartNewContainer(currentTiles, tile, nextTile)) {
19936
20052
  var isLastInRow = (tileContainers.length + 1) % columnsPerRow === 0;
19937
20053
  tileContainers.push( /*#__PURE__*/React__namespace.createElement(View$2, {
19938
- key: "container-".concat(index)
20054
+ key: "container-".concat(index),
20055
+ style: [
19939
20056
  // @ts-ignore
19940
- ,
19941
- style: {
19942
- width: "calc(".concat(100 / columnsPerRow, "% - ").concat((columnsPerRow - 1) * gap / columnsPerRow, "px)"),
19943
- marginRight: isLastInRow ? 0 : gap,
19944
- marginBottom: gap
19945
- }
20057
+ getTileWidth(columnsPerRow), !isLastInRow && {
20058
+ marginRight: GRID_GAP
20059
+ }]
19946
20060
  }, /*#__PURE__*/React__namespace.createElement(TileContainer, {
19947
20061
  tiles: currentTiles
19948
20062
  })));
@@ -19962,7 +20076,7 @@ var styles$7 = StyleSheet$1.create({
19962
20076
  grid: {
19963
20077
  flexDirection: 'row',
19964
20078
  flexWrap: 'wrap',
19965
- height: 'auto'
20079
+ width: '100%'
19966
20080
  }
19967
20081
  });
19968
20082
 
@@ -20102,16 +20216,10 @@ var Group = function (_a) {
20102
20216
  if (!groupData.sections || groupData.sections.length === 0) {
20103
20217
  return /*#__PURE__*/React.createElement(View$2, {
20104
20218
  style: styles$4.emptyConatiner
20105
- }, /*#__PURE__*/React.createElement(Text$3, null, "No sections available"), ";");
20219
+ }, /*#__PURE__*/React.createElement(Text$3, null, "No sections available"));
20106
20220
  }
20107
- return /*#__PURE__*/React.createElement(View$2, null, groupData.sections.sort(function (a, b) {
20108
- // Sort by priority (higher priority first)
20109
- if (a.priority !== b.priority) {
20110
- return b.priority - a.priority;
20111
- }
20112
- // If priorities are equal, maintain original order
20113
- return groupData.sections.indexOf(a) - groupData.sections.indexOf(b);
20114
- }).map(function (section) {
20221
+ var sortedSections = sortByPriority(groupData.sections);
20222
+ return /*#__PURE__*/React.createElement(View$2, null, sortedSections.map(function (section) {
20115
20223
  return /*#__PURE__*/React.createElement(Section, {
20116
20224
  key: section.id,
20117
20225
  section: section
@@ -20240,13 +20348,22 @@ var RewardCategoryHeader = function () {
20240
20348
  var _a = configuration,
20241
20349
  showName = _a.showName,
20242
20350
  name = _a.name;
20351
+ var _b = useResponsive$1(),
20352
+ isDesktop = _b.isDesktop,
20353
+ isTablet = _b.isTablet;
20243
20354
  if (!showName || !name) return null;
20355
+ var dynamicStyles = StyleSheet$1.create({
20356
+ headerText: {
20357
+ fontSize: getResponsiveValue(16, 12, isDesktop, isTablet),
20358
+ paddingHorizontal: getResponsiveValue(40, 20, isDesktop, isTablet)
20359
+ }
20360
+ });
20244
20361
  return /*#__PURE__*/React__namespace.createElement(View$2, {
20245
20362
  style: [styles$3.header, {
20246
20363
  backgroundColor: theme.primary
20247
20364
  }]
20248
20365
  }, /*#__PURE__*/React__namespace.createElement(Text, {
20249
- style: [styles$3.headerText, {
20366
+ style: [dynamicStyles.headerText, {
20250
20367
  color: theme.primaryText
20251
20368
  }],
20252
20369
  ellipsizeMode: "tail",
@@ -20275,10 +20392,6 @@ var styles$3 = StyleSheet$1.create({
20275
20392
  alignItems: 'center',
20276
20393
  justifyContent: 'center'
20277
20394
  },
20278
- headerText: {
20279
- fontSize: 16,
20280
- paddingHorizontal: 30
20281
- },
20282
20395
  background: {
20283
20396
  position: 'absolute',
20284
20397
  width: '100%',
@@ -20748,6 +20861,7 @@ var styles$1 = StyleSheet$1.create({
20748
20861
 
20749
20862
  var TileContainer = function (_a) {
20750
20863
  var tiles = _a.tiles;
20864
+ var isDesktop = useResponsive$1().isDesktop;
20751
20865
  var renderTile = function (tile) {
20752
20866
  switch (tile.type) {
20753
20867
  case exports.TileType.Content:
@@ -20781,7 +20895,7 @@ var TileContainer = function (_a) {
20781
20895
  return tile.tileHeight === exports.TileHeight.Half;
20782
20896
  });
20783
20897
  return /*#__PURE__*/React__namespace.createElement(View$2, {
20784
- style: [styles.container, allHalfTiles ? {
20898
+ style: [styles.container, isDesktop && allHalfTiles ? {
20785
20899
  aspectRatio: 2
20786
20900
  } : {
20787
20901
  aspectRatio: 1
@@ -20825,6 +20939,7 @@ exports.ContentTileConfig = ContentTileConfig;
20825
20939
  exports.Grid = Grid;
20826
20940
  exports.Group = Group;
20827
20941
  exports.Icon = Icon;
20942
+ exports.Indicator = Indicator;
20828
20943
  exports.LoadingIndicator = LoadingIndicator;
20829
20944
  exports.PointsTile = PointsTile;
20830
20945
  exports.PointsTileConfig = PointsTileConfig;