@wlloyalty/wll-react-sdk 1.8.0 → 1.9.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.
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../node_modules/tslib/tslib.es6.js","../lib/utils/navigationHelpers.ts","../lib/hooks/useNavigationHandler.ts","../lib/utils/apiHelpers.ts","../lib/utils/eventEmitter.ts","../lib/constants/device.ts","../lib/utils/styling.ts","../lib/constants/theme.ts","../lib/utils/storybookThemes.ts","../lib/utils/themeHelpers.ts","../lib/constants/responsive.ts","../lib/hooks/useResponsive.ts","../lib/context/ResponsiveContext.tsx","../lib/context/WllSdkContext.tsx","../lib/utils/variant.ts","../lib/utils/responsiveHelper.ts","../lib/components/atoms/Button/styles.ts","../lib/components/atoms/Button/index.tsx","../lib/components/atoms/Icon/index.tsx","../lib/components/atoms/LoadingIndicator/index.tsx","../lib/components/atoms/ProgressBar/index.tsx","../lib/types/tile.ts","../lib/hooks/useHandleTilePress.ts","../lib/hooks/useTileSize.ts","../lib/components/atoms/Text/index.tsx","../lib/components/atoms/BaseTile/base-tile-body.tsx","../lib/utils/contextHelpers.ts","../lib/components/atoms/BaseTile/styles.ts","../lib/components/atoms/BaseTile/base-tile-content.tsx","../lib/components/atoms/BaseTile/base-tile-header.tsx","../lib/components/atoms/BaseTile/base-tile-media.tsx","../lib/components/atoms/BaseTile/base-tile-title.tsx","../lib/components/atoms/BaseTile/index.tsx","../lib/components/atoms/ProgressiveImage/index.tsx","../lib/constants/index.ts","../lib/components/atoms/BaseBanner/index.tsx","../lib/components/atoms/Indicator/index.tsx","../lib/constants/grid.ts","../lib/components/atoms/SkeletonTile/index.tsx","../lib/components/atoms/Skeleton/index.tsx","../lib/components/hoc/withTileFetching.tsx","../lib/utils/transforms.ts","../lib/components/organisms/BadgeTile/badge-tile-date-earned.tsx","../lib/components/organisms/BadgeTile/badge-tile-description.tsx","../lib/components/organisms/BadgeTile/styles.tsx","../lib/components/organisms/BadgeTile/badge-tile-media.tsx","../lib/components/organisms/BadgeTile/badge-tile-status.tsx","../lib/components/organisms/BadgeTile/badge-tile-title.tsx","../lib/components/organisms/BadgeTile/index.tsx","../lib/components/organisms/BannerTile/banner-tile-cta.tsx","../lib/components/organisms/BannerTile/styles.ts","../lib/components/organisms/BannerTile/banner-tile-description.tsx","../lib/components/organisms/BannerTile/banner-tile-media.tsx","../lib/components/organisms/BannerTile/banner-tile-title.tsx","../lib/components/organisms/BannerTile/index.tsx","../lib/components/organisms/ContentTile/content-tile-chevron.tsx","../lib/components/organisms/ContentTile/styles.ts","../lib/components/organisms/ContentTile/content-tile-media.tsx","../lib/components/organisms/ContentTile/content-tile-summary.tsx","../lib/components/organisms/ContentTile/content-tile-title.tsx","../lib/components/organisms/ContentTile/index.tsx","../lib/hooks/useGroupRefresh.tsx","../lib/hooks/useInitialGroupFetch.tsx","../lib/hooks/useInvalidateData.ts","../lib/hooks/usePullToRefresh.ts","../lib/types/section.ts","../lib/components/molecules/SectionHeader/styles.ts","../lib/components/molecules/SectionHeader/index.tsx","../lib/components/molecules/Carousel/styles.ts","../lib/components/molecules/Carousel/index.tsx","../lib/components/molecules/CarouselNavButton/styles.ts","../lib/components/molecules/CarouselNavButton/index.tsx","../lib/components/molecules/Grid/index.tsx","../lib/components/molecules/ProgressIndicator/index.tsx","../lib/components/organisms/Section/styles.ts","../lib/components/organisms/Section/index.tsx","../lib/components/organisms/Group/index.tsx","../lib/utils/pointsHelpers.ts","../lib/types/common.ts","../lib/components/atoms/Primatives/Column.tsx","../lib/components/atoms/Primatives/FullFlex.tsx","../lib/components/atoms/Primatives/Layout.tsx","../lib/components/atoms/Primatives/Row.tsx","../lib/components/atoms/Primatives/Spacer.tsx","../lib/components/organisms/PointsTile/styles.ts","../lib/components/organisms/PointsTile/points-tile-formatted-points.tsx","../lib/components/organisms/PointsTile/points-tile-media.tsx","../lib/components/organisms/PointsTile/points-tile-title.tsx","../lib/components/organisms/PointsTile/points-tile-chevron.tsx","../lib/components/organisms/PointsTile/index.tsx","../lib/components/organisms/RewardCategoryTile/styles.ts","../lib/components/organisms/RewardCategoryTile/reward-category-header.tsx","../lib/components/organisms/RewardCategoryTile/reward-category-media.tsx","../lib/components/organisms/RewardCategoryTile/index.tsx","../lib/components/organisms/RewardTile/reward-tile-chevron.tsx","../lib/components/organisms/RewardTile/styles.ts","../lib/components/organisms/RewardTile/reward-tile-media.tsx","../lib/components/organisms/RewardTile/reward-tile-points.tsx","../lib/components/organisms/RewardTile/reward-tile-summary.tsx","../lib/components/organisms/RewardTile/reward-tile-title.tsx","../lib/components/organisms/RewardTile/index.tsx","../lib/components/organisms/TierTileUpdated/styles.ts","../lib/components/organisms/TierTileUpdated/index.tsx","../lib/components/organisms/RoundupTile/roundup-tile-formatted-points.tsx","../lib/components/organisms/RoundupTile/styles.ts","../lib/components/organisms/RoundupTile/roundup-tile-media.tsx","../lib/components/organisms/RoundupTile/roundup-tile-title.tsx","../lib/components/organisms/RoundupTile/roundup-tile-chevron.tsx","../lib/components/organisms/RoundupTile/index.tsx","../lib/components/organisms/VenueTile/venue-tile-chevron.tsx","../lib/components/organisms/VenueTile/styles.ts","../lib/components/organisms/VenueTile/venue-tile-media.tsx","../lib/components/organisms/VenueTile/venue-tile-description.tsx","../lib/components/organisms/VenueTile/venue-tile-title.tsx","../lib/components/organisms/VenueTile/index.tsx","../lib/components/atoms/TileContainer/index.tsx","../lib/components/atoms/Chip/styles.ts","../lib/components/atoms/Chip/index.tsx","../lib/types/wll.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { NavigationType } from '../types/navigation';\n\nexport const parseNavigationLink = (\n link: string\n): { type: NavigationType; target: string } => {\n let result: { type: NavigationType; target: string };\n if (\n link.startsWith('http://') ||\n link.startsWith('https://') ||\n link.startsWith('mailto:')\n ) {\n result = { type: 'external', target: link };\n } else if (link.startsWith('#')) {\n result = { type: 'modal', target: link.slice(1) };\n } else {\n result = { type: 'internal', target: link };\n }\n return result;\n};\n","import { useCallback } from 'react';\nimport { NavigationConfig } from '../types/navigation';\nimport { CTALinkTarget } from '../types/tile';\nimport { parseNavigationLink } from '../utils/navigationHelpers';\n\nexport const useNavigation = (config: NavigationConfig) => {\n const handleNavigation = useCallback(\n async (link: string, ctaTarget: CTALinkTarget): Promise<void> => {\n const { type, target } = parseNavigationLink(link);\n const windowTarget = ctaTarget === 'SAME_FRAME' ? '_self' : '_blank';\n\n if (config.navigationHandlers?.[type]) {\n return Promise.resolve(config.navigationHandlers[type]({ target, windowTarget }));\n }\n return Promise.resolve();\n },\n [config]\n );\n\n return handleNavigation;\n};\n","import { useCallback } from 'react';\nimport { SDKConfig } from '../context/WllSdkContext';\n\ntype APIResponse<T> = {\n status: 'success' | 'fail' | 'error';\n data: T | null;\n error?: string;\n};\n\nexport const useCreateRequestOptions = (config: SDKConfig) => {\n return useCallback(\n (options: RequestInit = {}) => {\n // Only create headers if we're not using a custom fetcher\n if (!config.fetcher) {\n const headers = new Headers(options.headers);\n headers.set('x-api-key', config.apiKey);\n headers.set('Authorization', `Bearer ${config.userToken}`);\n\n return {\n ...options,\n headers,\n };\n }\n },\n [config.apiKey, config.userToken, config.fetcher]\n );\n};\n\nexport const useMakeRequest = (config: SDKConfig) => {\n const createRequestOptions = useCreateRequestOptions(config);\n\n return useCallback(\n async <T>(url: string): Promise<APIResponse<T>> => {\n try {\n if (config.fetcher) {\n return await config.fetcher(url, createRequestOptions());\n }\n\n const response = await fetch(url, createRequestOptions());\n const json = await response.json();\n if (json.status === 'fail') {\n return {\n status: 'fail',\n data: null,\n error: json.message || 'API returned non-success status',\n };\n }\n\n return json;\n } catch (error) {\n return {\n status: 'error',\n data: null,\n error:\n error instanceof Error\n ? error.message\n : 'An unknown error occurred',\n };\n }\n },\n [createRequestOptions, config.fetcher]\n );\n};\n\nexport const createResourceGetter = (\n resource: string,\n includeHydrate = false\n) => {\n return (config: SDKConfig) => {\n const makeRequest = useMakeRequest(config);\n\n return useCallback(\n (id: string) => {\n const params = new URLSearchParams();\n\n if (includeHydrate) {\n params.append('hydrate', 'true');\n }\n\n // Always append locale=en\n params.append('locale', config.locale || 'en');\n\n const baseUrl = config.coreApiUrl;\n const queryString = params.toString();\n\n return makeRequest(\n `${baseUrl}/tiles-management/${resource}/${id}${queryString ? `?${queryString}` : ''}`\n );\n },\n [makeRequest, resource, includeHydrate, config.coreApiUrl, config.locale]\n );\n };\n};\n\nexport const useGetGroupByID = createResourceGetter('groups', true);\nexport const useGetSectionByID = createResourceGetter('sections');\nexport const useGetTileByID = createResourceGetter('tiles');\n","/**\n * Type definition for event callback functions\n * @typedef {function} EventCallback\n * @param {any} [data] - Optional data passed with the event\n */\nexport type EventCallback = (data?: any) => void;\n\n/**\n * Supported event types for the SDK event system\n * @typedef {string} EventTypes\n */\nexport type EventTypes =\n | 'GROUP_DATA_CHANGED'\n | 'SECTION_DATA_CHANGED'\n | 'TILE_DATA_CHANGED'\n | string;\n\n/**\n * A simple event emitter for handling SDK events\n * Provides a pub-sub mechanism for components to communicate\n */\nexport class EventEmitter {\n /**\n * Map of event types to arrays of callback functions\n * @private\n */\n private events: Map<EventTypes, EventCallback[]> = new Map();\n\n /**\n * Subscribe to an event\n * @param {EventTypes} event - The event type to subscribe to\n * @param {EventCallback} callback - The callback function to execute when the event is emitted\n * @returns {Function} An unsubscribe function that removes this callback when called\n */\n on(event: EventTypes, callback: EventCallback): () => void {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n\n this.events.get(event)?.push(callback);\n\n return () => {\n const callbacks = this.events.get(event);\n if (callbacks) {\n const index = callbacks.indexOf(callback);\n if (index !== -1) {\n callbacks.splice(index, 1);\n }\n }\n };\n }\n\n /**\n * Emit an event with optional data\n * @param {EventTypes} event - The event type to emit\n * @param {any} [data] - Optional data to pass to the event callbacks\n */\n emit(event: EventTypes, data?: any): void {\n const callbacks = this.events.get(event);\n if (callbacks) {\n callbacks.forEach((callback) => callback(data));\n }\n }\n\n /**\n * Remove all event listeners\n * Use this method to clean up when the event emitter is no longer needed\n */\n clear(): void {\n this.events.clear();\n }\n}\n\n/**\n * Singleton instance of the EventEmitter for use throughout the SDK\n */\nexport const sdkEventEmitter = new EventEmitter();\n","import { Dimensions, Platform } from \"react-native\";\n\nexport const IS_WEB = Platform.OS === \"web\";\nexport const IS_IOS = Platform.OS === \"ios\";\nexport const IS_ANDROID = Platform.OS === \"android\";\nexport const IS_MOBILE = IS_IOS || IS_ANDROID;\nexport const IS_DESKTOP = !IS_MOBILE;\n\nconst { width, height } = Dimensions.get(\"window\");\n\nexport const SCREEN_WIDTH = width;\nexport const SCREEN_HEIGHT = height;\n","import { StyleSheet } from 'react-native';\nimport { IS_WEB } from '../constants/device';\nimport { BaseThemeObject } from '../types/theme';\n\nexport const sizes = {\n borderRadiusSm: 15,\n borderRadiusLg: 20,\n borderRadiusButton: 9,\n borderRadiusRounded: 9999,\n xxxs: 4,\n xxs: 8,\n xs: 10,\n sm: 12,\n md: 14,\n lg: 16,\n xl: 20,\n xxl: 24,\n xxxl: 32,\n xxxxl: 40,\n xxxxxl: 60,\n} as const;\n\nexport const commonStyles = StyleSheet.create({\n emptyContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport const defaultTheme: BaseThemeObject = {\n fontFamily:\n '-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif',\n background: '#F0F0F0',\n text: '#000000',\n primary: '#392ed7',\n accent: '#ff6a3d',\n surface: '#f8f7fc',\n surfaceText: '#000000',\n pageButtonBackground: '#392ed7',\n pageButtonText: '#ffffff',\n errorPrimary: '#000000',\n positive: '#008000',\n negative: '#ff0000',\n};\n\n/**\n * Creates appropriate directional margin styles for both web and native platforms.\n * Handles RTL layouts correctly across platforms by using the I18nManager.\n *\n * @param value - The margin value to apply\n * @returns An object with the appropriate margin style property\n */\nexport const getDirectionalMargin = (value: number) => {\n if (IS_WEB) {\n // Check document direction for web\n // We need to use this because React Native Web does not support I18nManager\n // and marginStart/marginEnd resolves to margin-left/margin-right and not margin-inline-start/end\n const isRTL =\n typeof document !== 'undefined' && document.documentElement.dir === 'rtl';\n\n return isRTL ? { marginLeft: value } : { marginRight: value };\n }\n\n // For native platforms, use marginEnd which automatically handles RTL\n return { marginEnd: value };\n};\n","import { IS_WEB } from './device';\n\nexport const COLOR_CONSTANTS = {\n MINIMUM_CONTRAST_RATIO: 2,\n DEFAULT_LIGHTNESS_ADJUSTMENT: 0.2,\n DESATURATION_LIGHTEN_AMOUNT: IS_WEB ? 0.8 : 0.2,\n DEFAULT_COLOR: '#FFFFFF',\n} as const;\n","import { BaseThemeObject } from '../types/theme';\nimport { defaultTheme } from './styling';\n\n// Storybook Themes\nexport const storyBookThemes = {\n modern: {\n ...defaultTheme,\n primary: '#f72585',\n accent: '#ffc300',\n background: '#e5e5e5',\n surface: '#f4f3ee',\n surfaceText: '#f72585',\n },\n warm: {\n ...defaultTheme,\n primary: '#014F5C',\n accent: '#F38A51',\n background: '#BE9C80',\n surface: '#F1CFB3',\n surfaceText: '#014F5C',\n },\n dark: {\n ...defaultTheme,\n background: '#1e1e1e',\n text: '#ffffff',\n primary: '#ffbe0b',\n accent: '#d00000',\n surface: '#2f3037',\n surfaceText: '#ffffff',\n },\n forest: {\n ...defaultTheme,\n primary: '#354f52',\n accent: '#84a98c',\n background: '#f0f4f0',\n surface: '#cad2c5',\n surfaceText: '#2d3436',\n },\n sunset: {\n ...defaultTheme,\n primary: '#c32f27',\n accent: '#db7c26',\n background: '#f9edcc',\n surface: '#f0dfad',\n surfaceText: '#2d3436',\n },\n};\n\n// Define the theme type\nexport type ThemeName =\n | 'default'\n | 'dark'\n | 'modern'\n | 'warm'\n | 'forest'\n | 'sunset';\n\n// Create the themes object\nexport const themes: Record<ThemeName, BaseThemeObject> = {\n default: defaultTheme,\n dark: storyBookThemes.dark,\n modern: storyBookThemes.modern,\n warm: storyBookThemes.warm,\n forest: storyBookThemes.forest,\n sunset: storyBookThemes.sunset,\n};\n\n// Theme selector items\nexport const themeItems: Array<{ value: ThemeName; title: string }> = [\n { value: 'default', title: 'Default' },\n { value: 'dark', title: 'Dark' },\n { value: 'modern', title: 'Modern' },\n { value: 'warm', title: 'Warm' },\n { value: 'forest', title: 'Forest' },\n { value: 'sunset', title: 'Sunset' },\n];\n","import Color from 'color';\nimport { COLOR_CONSTANTS } from '../constants/theme';\nimport {\n BaseThemeObject,\n DerivedColors,\n DesaturationType,\n PercentageKey,\n} from '../types/theme';\nimport { themeItems, ThemeName, themes } from './storybookThemes';\n\nconst isValidColor = (color: string): boolean => {\n try {\n Color(color);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Validates a theme object to ensure all required colors are present and valid\n * @param theme - Partial theme object to validate\n * @returns Boolean indicating if theme is valid\n */\nexport const validateTheme = (theme: Partial<BaseThemeObject>): boolean => {\n const requiredColors = [\n 'accent',\n 'background',\n 'primary',\n 'surface',\n 'surfaceText',\n 'text',\n ] as const;\n\n const missingOrInvalidColors = requiredColors.filter(\n (color) => !theme[color] || !isValidColor(theme[color]!)\n );\n\n if (missingOrInvalidColors.length > 0) {\n console.warn(\n 'Theme validation failed. Missing or invalid colors:',\n missingOrInvalidColors.map((color) => ({\n color,\n value: theme[color],\n exists: !!theme[color],\n isValid: theme[color] ? isValidColor(theme[color]!) : false,\n }))\n );\n }\n\n return missingOrInvalidColors.length === 0;\n};\n\n/**\n * Safely creates a Color instance with error handling\n * @param color - Color string to process\n * @returns Color instance or null if invalid\n */\nconst createSafeColor = (color: string): Color | null => {\n try {\n const colorInstance = Color(color);\n return colorInstance;\n } catch (error) {\n console.error(`Invalid color value: ${color}`, error);\n return null;\n }\n};\n\n/**\n * Returns a derived color based on the background darkness\n * @param color - Base color to derive from\n * @returns Derived color string or default color if invalid\n */\nexport const getDerivedColor = (color: string): string => {\n const backgroundColor = createSafeColor(color);\n if (!backgroundColor) return COLOR_CONSTANTS.DEFAULT_COLOR;\n\n return backgroundColor.isDark()\n ? backgroundColor\n .lighten(COLOR_CONSTANTS.DEFAULT_LIGHTNESS_ADJUSTMENT)\n .string()\n : backgroundColor\n .darken(COLOR_CONSTANTS.DEFAULT_LIGHTNESS_ADJUSTMENT)\n .string();\n};\n\n/**\n * Determines the most readable text color (black or white) for a given background\n * @param backgroundColor - Background color to check against\n * @returns Hex color string for text\n */\nexport const getReadableTextColor = (backgroundColor: string): string => {\n const bgColor = createSafeColor(backgroundColor);\n if (!bgColor) return COLOR_CONSTANTS.DEFAULT_COLOR;\n\n const white = Color('#fff');\n const black = Color('#000');\n\n const contrastWithWhite = bgColor.contrast(white);\n return contrastWithWhite >= COLOR_CONSTANTS.MINIMUM_CONTRAST_RATIO\n ? white.hex()\n : black.hex();\n};\n\nconst percentages: PercentageKey[] = [\n 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95,\n];\n\n/**\n * Generates a set of derived colors based on a base color and derivation function\n * @param color - Base color to derive from\n * @param derivationFunction - Function to generate variations\n * @returns Object containing derived colors at different percentages\n */\nconst generateDerivedColors = (\n color: string,\n derivationFunction: (baseColor: Color, percentage: PercentageKey) => Color\n): DerivedColors => {\n const baseColor = createSafeColor(color);\n if (!baseColor) {\n return percentages.reduce((acc, percentage) => {\n acc[percentage] = COLOR_CONSTANTS.DEFAULT_COLOR;\n return acc;\n }, {} as DerivedColors);\n }\n\n const result = {} as DerivedColors;\n percentages.forEach((percentage) => {\n try {\n const derivedColor = derivationFunction(baseColor, percentage);\n result[percentage] = derivedColor.toString();\n } catch (error) {\n console.error(`Error generating derived color for ${percentage}%`, error);\n result[percentage] = COLOR_CONSTANTS.DEFAULT_COLOR;\n }\n });\n return result;\n};\n\n/**\n * Generates a set of colors with varying lightness based on the base color\n * @param color - Base color to derive from\n * @returns Object containing derived colors at different lightness levels\n */\nexport const getDerivedColorPercentages = (color: string): DerivedColors => {\n const baseColor = createSafeColor(color);\n if (!baseColor)\n return generateDerivedColors(\n COLOR_CONSTANTS.DEFAULT_COLOR,\n (color) => color\n );\n\n const isDark = baseColor.isDark();\n return generateDerivedColors(color, (baseColor, percentage) =>\n isDark\n ? baseColor.lightness(percentage)\n : baseColor.lightness(100 - percentage)\n );\n};\n\n/**\n * Generates a set of colors with varying alpha values\n * @param color - Base color to derive from\n * @returns Object containing derived colors at different alpha levels\n */\nexport const getAlphaDerivedColors = (color: string): DerivedColors => {\n return generateDerivedColors(color, (baseColor, percentage) =>\n baseColor.alpha(percentage / 100)\n );\n};\n\n/**\n * Determines if a color should be desaturated based on type and count\n * @param type - Type of desaturation to apply\n * @param count - Count value affecting desaturation\n * @returns Boolean indicating if color should be desaturated\n */\nexport const shouldDesaturate = (\n type: DesaturationType,\n count: number\n): boolean => {\n switch (type) {\n case 'SPECIFIC':\n return count === 0;\n default:\n return false;\n }\n};\n\n/**\n * Desaturates a color and lightens it\n * @param color - Color to desaturate\n * @returns Desaturated color string or default color if invalid\n */\nexport const desaturateColor = (color: string): string => {\n const baseColor = createSafeColor(color);\n if (!baseColor) return COLOR_CONSTANTS.DEFAULT_COLOR;\n\n return baseColor\n .grayscale()\n .lighten(COLOR_CONSTANTS.DESATURATION_LIGHTEN_AMOUNT)\n .toString();\n};\n\n/**\n * Gets the appropriate state color based on type and count\n * @param baseColor - Base color to process\n * @param type - Type of state\n * @param count - Count affecting the state\n * @returns Processed color string\n */\nexport const getStateColor = (\n baseColor: string,\n type: DesaturationType,\n count: number\n): string => {\n return shouldDesaturate(type, count) ? desaturateColor(baseColor) : baseColor;\n};\n\n// Export theme-related items\nexport { themeItems, ThemeName, themes };\n","export const DIMENSION_MODES = {\n DESKTOP: 'desktop' as const,\n TABLET: 'tablet' as const,\n MOBILE: 'mobile' as const,\n};\n\nexport const TABLET_SCREEN_WIDTH = 768;\nexport const SMALL_SCREEN_WIDTH = 480;\n","import { useEffect, useState } from 'react';\nimport { Dimensions, Platform } from 'react-native';\nimport {\n DIMENSION_MODES,\n SMALL_SCREEN_WIDTH,\n TABLET_SCREEN_WIDTH,\n} from '../constants/responsive';\nimport { DimensionMode, WindowDimensions } from '../types/responsive';\n\nconst isWeb = Platform.OS === 'web';\n\nexport function getDimensionMode(window: WindowDimensions): DimensionMode {\n if (!window || !window.width) {\n return DIMENSION_MODES.MOBILE;\n }\n\n const { width: screenWidth } = window;\n\n if (screenWidth >= TABLET_SCREEN_WIDTH) {\n return DIMENSION_MODES.DESKTOP;\n }\n if (screenWidth >= SMALL_SCREEN_WIDTH) {\n return DIMENSION_MODES.TABLET;\n }\n return DIMENSION_MODES.MOBILE;\n}\n\nexport function useResponsive() {\n const deviceWindow = Dimensions.get('window');\n const [dimensionMode, setDimensionMode] = useState<DimensionMode>(\n getDimensionMode(deviceWindow)\n );\n\n useEffect(() => {\n if (!isWeb) return;\n\n const subscription = Dimensions.addEventListener('change', ({ window }) => {\n if (window) {\n const mode = getDimensionMode(window);\n setDimensionMode(mode);\n }\n });\n\n return () => {\n if (subscription) {\n subscription.remove();\n }\n };\n }, []);\n\n return {\n dimensionMode,\n isDesktop: dimensionMode === DIMENSION_MODES.DESKTOP,\n isTablet: dimensionMode === DIMENSION_MODES.TABLET,\n isMobile: dimensionMode === DIMENSION_MODES.MOBILE,\n };\n}\n","import React, {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { Dimensions } from 'react-native';\nimport { DIMENSION_MODES } from '../constants/responsive';\nimport { getDimensionMode } from '../hooks/useResponsive';\nimport { ResponsiveContextType } from '../types/responsive';\n\nconst ResponsiveContext = createContext<ResponsiveContextType | undefined>(\n undefined\n);\n\nexport function ResponsiveProvider({ children }: PropsWithChildren) {\n const getDerivedState = useCallback((window: any) => {\n const dimensionMode = getDimensionMode(window);\n return {\n dimensionMode,\n isDesktop: dimensionMode === DIMENSION_MODES.DESKTOP,\n isTablet: dimensionMode === DIMENSION_MODES.TABLET,\n isMobile: dimensionMode === DIMENSION_MODES.MOBILE,\n };\n }, []);\n\n const [state, setState] = useState(() => {\n const window = Dimensions.get('window');\n return getDerivedState(window);\n });\n\n const value = useMemo(() => state, [state]);\n\n useEffect(() => {\n const subscription = Dimensions.addEventListener('change', ({ window }) => {\n if (window) {\n setState(getDerivedState(window));\n }\n });\n\n return () => {\n if (subscription) {\n subscription.remove();\n }\n };\n }, [getDerivedState]);\n\n return (\n <ResponsiveContext.Provider value={value}>\n {children}\n </ResponsiveContext.Provider>\n );\n}\n\nexport function useResponsive(): ResponsiveContextType {\n const context = useContext(ResponsiveContext);\n if (context === undefined) {\n throw new Error('useResponsive must be used within a ResponsiveProvider');\n }\n return context;\n}\n","import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { useNavigation } from '../hooks/useNavigationHandler';\nimport { TGroup } from '../types/group';\nimport { WithChildren } from '../types/helpers';\nimport { NavigationConfig } from '../types/navigation';\nimport { TSection } from '../types/section';\nimport { BaseThemeObject, ThemeContextType, ThemeObject } from '../types/theme';\nimport { CTALinkTarget, Tile } from '../types/tile';\nimport {\n useGetGroupByID,\n useGetSectionByID,\n useGetTileByID,\n} from '../utils/apiHelpers';\nimport { EventTypes, sdkEventEmitter } from '../utils/eventEmitter';\nimport { defaultTheme, sizes } from '../utils/styling';\nimport {\n getAlphaDerivedColors,\n getDerivedColor,\n getDerivedColorPercentages,\n getReadableTextColor,\n validateTheme,\n} from '../utils/themeHelpers';\nimport { ResponsiveProvider } from './ResponsiveContext';\n\nexport enum CoreApiUrl {\n PRODUCTION_EU = 'https://api.core.wlloyalty.net/v1',\n PRODUCTION_US = 'https://api.core.us.wlloyalty.net/v1',\n STAGING_EU = 'https://api.staging.core.wlloyalty.net/v1',\n STAGING_US = 'https://api.staging.core.us.wlloyalty.net/v1',\n DEVELOPMENT = 'https://localhost:8080/v1',\n}\n\nexport type AllowedCoreApiUrl = `${CoreApiUrl}`;\n\nexport type SDKConfig = {\n apiKey: string;\n userToken?: string;\n fetcher?: Fetcher;\n locale?: string;\n coreApiUrl: AllowedCoreApiUrl;\n};\n\ntype Fetcher = <T>(\n endpoint: string,\n options?: RequestInit\n) => Promise<APIResponse<T>>;\n\nexport type APIResponse<T> = {\n status: 'success' | 'error';\n data: T | null;\n error?: string;\n};\n\ntype WllSdkContextType = ThemeContextType & {\n getGroupByID: (id: string) => Promise<APIResponse<TGroup>>;\n getSectionByID: (id: string) => Promise<APIResponse<TSection>>;\n getTileByID: (id: string) => Promise<APIResponse<Tile>>;\n handleNavigation: (link: string, target: CTALinkTarget) => Promise<void>;\n refreshGroup: (id: string) => Promise<APIResponse<TGroup>>;\n notifyDataChange: (eventType: EventTypes, data?: any) => void;\n subscribeToDataChange: (\n eventType: EventTypes,\n callback: (data?: any) => void\n ) => () => void;\n} & Readonly<{\n readonly config: SDKConfig;\n }>;\n\ntype WllSdkProviderProps = WithChildren & {\n theme?: Partial<BaseThemeObject>;\n config: SDKConfig;\n navigationConfig?: NavigationConfig;\n};\n\nconst createTheme = (baseTheme: Partial<BaseThemeObject> = {}): ThemeObject => {\n const mergedTheme = {\n ...defaultTheme,\n ...baseTheme,\n } as BaseThemeObject;\n\n return {\n ...mergedTheme,\n sizes,\n derivedBackground: getDerivedColor(mergedTheme.background),\n primaryText: getReadableTextColor(mergedTheme.primary),\n accentText: getReadableTextColor(mergedTheme.accent),\n positiveText: getReadableTextColor(mergedTheme.positive),\n negativeText: getReadableTextColor(mergedTheme.negative),\n derivedSurface: getDerivedColorPercentages(mergedTheme.surface),\n derivedSurfaceText: getDerivedColorPercentages(mergedTheme.surfaceText),\n alphaDerivedPrimary: getAlphaDerivedColors(mergedTheme.primary),\n alphaDerivedText: getAlphaDerivedColors(mergedTheme.text),\n };\n};\n\nconst WllSdkContext = createContext<WllSdkContextType | undefined>(undefined);\n\nexport const WllSdkProvider = ({\n children,\n theme: providedTheme,\n config,\n navigationConfig = {},\n}: WllSdkProviderProps): React.ReactElement => {\n validateConfig(config);\n\n const [theme, setThemeState] = useState(() => {\n const themeToUse = providedTheme || {};\n if (!validateTheme(themeToUse)) {\n console.warn(\n 'Invalid theme provided. Some required colors are missing or invalid.'\n );\n }\n return createTheme(themeToUse);\n });\n\n useEffect(() => {\n const themeToUse = providedTheme || {};\n if (!validateTheme(themeToUse)) {\n console.warn(\n 'Invalid theme provided. Some required colors are missing or invalid.'\n );\n }\n\n setThemeState(createTheme(themeToUse));\n }, [providedTheme]);\n\n const setTheme = useCallback((newTheme: Partial<BaseThemeObject>) => {\n if (!validateTheme(newTheme)) {\n console.warn(\n 'Invalid theme provided. Some required colors are missing or invalid.'\n );\n }\n setThemeState((prevTheme) => createTheme({ ...prevTheme, ...newTheme }));\n }, []);\n\n const getGroupByID = useGetGroupByID(config) as (\n id: string\n ) => Promise<APIResponse<TGroup>>;\n const getSectionByID = useGetSectionByID(config) as (\n id: string\n ) => Promise<APIResponse<TSection>>;\n const getTileByID = useGetTileByID(config) as (\n id: string\n ) => Promise<APIResponse<Tile>>;\n\n const handleNavigation = useNavigation(navigationConfig);\n\n const refreshGroup = useCallback(\n async (id: string) => {\n return getGroupByID(id);\n },\n [getGroupByID]\n );\n\n const notifyDataChange = useCallback((eventType: EventTypes, data?: any) => {\n sdkEventEmitter.emit(eventType, data);\n }, []);\n\n const subscribeToDataChange = useCallback(\n (eventType: EventTypes, callback: (data?: any) => void) => {\n return sdkEventEmitter.on(eventType, callback);\n },\n []\n );\n\n const contextValue = useMemo(\n () => ({\n theme,\n setTheme,\n getGroupByID,\n getSectionByID,\n getTileByID,\n handleNavigation,\n refreshGroup,\n notifyDataChange,\n subscribeToDataChange,\n config,\n }),\n [\n theme,\n setTheme,\n getGroupByID,\n getSectionByID,\n getTileByID,\n handleNavigation,\n refreshGroup,\n notifyDataChange,\n subscribeToDataChange,\n config,\n ]\n );\n return (\n <WllSdkContext.Provider value={contextValue}>\n <ResponsiveProvider>{children}</ResponsiveProvider>\n </WllSdkContext.Provider>\n );\n};\n\nexport const useWllSdk = (): WllSdkContextType => {\n const context = useContext(WllSdkContext);\n if (context === undefined) {\n throw new Error('useWllSdk must be used within a WllSdkProvider');\n }\n return context;\n};\n\n/**\n * Validates the SDK configuration object\n * @param config - The configuration object to validate\n * @throws {Error} If apiKey is missing\n * @throws {Error} If locale is provided but not in ISO 639-1 format (e.g. 'en')\n */\nconst validateConfig = (config: SDKConfig): void => {\n if (!config.apiKey) {\n throw new Error('API key is required');\n }\n\n if (config.locale && !/^[a-z]{2}$/.test(config.locale)) {\n throw new Error(\n 'Invalid locale format. Expected ISO 639-1 language code (e.g. \"en\")'\n );\n }\n};\n","import { TextStyle, ViewStyle } from \"react-native\";\nimport { ThemeObject } from \"../types/theme\";\n\ntype StyleVariants<V extends string> = Record<V, ViewStyle | TextStyle>;\n\nexport function createVariantSystem<V extends string>(\n baseStyle: ViewStyle | TextStyle,\n variantStyles: (theme: ThemeObject) => StyleVariants<V>\n) {\n return (theme: ThemeObject, variant: V) => {\n const styles = variantStyles(theme);\n return [baseStyle, styles[variant]];\n };\n}\n","import { useEffect, useState } from 'react';\nimport { Dimensions, Platform } from 'react-native';\nimport {\n SMALL_SCREEN_WIDTH,\n TABLET_SCREEN_WIDTH,\n} from '../constants/responsive';\n\nconst clamp = (value: number, min: number, max: number) =>\n Math.min(Math.max(value, min), max);\n\nconst lerp = (start: number, end: number, t: number) =>\n start + (end - start) * t;\n\nconst getWindowWidth = () => {\n if (Platform.OS === 'web') {\n return window.innerWidth;\n }\n return Dimensions.get('window').width;\n};\n\nexport const getResponsiveValue = (\n desktopValue: number,\n mobileValue: number,\n isDesktop: boolean,\n isTablet: boolean\n) => {\n const width = getWindowWidth();\n const tabletValue = (desktopValue + mobileValue) / 2;\n\n // Desktop to Tablet scaling\n if (width >= TABLET_SCREEN_WIDTH) {\n const t = clamp((width - TABLET_SCREEN_WIDTH) / 300, 0, 1); // 300px scaling range\n return Math.round(lerp(tabletValue, desktopValue, t));\n }\n\n // Tablet to Mobile scaling\n if (width > SMALL_SCREEN_WIDTH) {\n const t = clamp(\n (width - SMALL_SCREEN_WIDTH) / (TABLET_SCREEN_WIDTH - SMALL_SCREEN_WIDTH),\n 0,\n 1\n );\n return Math.round(lerp(mobileValue, tabletValue, t));\n }\n\n return mobileValue;\n};\n\nexport const useResponsiveValue = (\n desktopValue: number,\n mobileValue: number,\n isDesktop: boolean,\n isTablet: boolean\n) => {\n const [value, setValue] = useState(() =>\n getResponsiveValue(desktopValue, mobileValue, isDesktop, isTablet)\n );\n\n useEffect(() => {\n if (Platform.OS !== 'web') return;\n\n const handleResize = () => {\n setValue(\n getResponsiveValue(desktopValue, mobileValue, isDesktop, isTablet)\n );\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [desktopValue, mobileValue, isDesktop, isTablet]);\n\n return value;\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useButtonDynamicStyles = (): ReturnType<\n typeof StyleSheet.create\n> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n button: {\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n paddingVertical: theme.sizes.sm,\n alignSelf: 'flex-start',\n },\n text: {\n textAlign: 'center',\n textTransform: 'uppercase',\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n fontWeight: '700',\n },\n });\n};\n","import * as React from 'react';\nimport { Pressable, Text } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Variant } from '../../../types/theme';\nimport { createVariantSystem } from '../../../utils/variant';\nimport { useButtonDynamicStyles } from './styles';\n\ntype ButtonProps = {\n title: string;\n onPress: () => void;\n variant: Variant;\n disabled?: boolean;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n icon?: React.ReactNode;\n testID?: string;\n};\n\nconst useButtonStyles = createVariantSystem({}, (theme) => ({\n primary: {\n backgroundColor: theme.primary,\n },\n accent: {\n backgroundColor: theme.accent,\n },\n positive: {\n backgroundColor: theme.positive,\n },\n negative: {\n backgroundColor: theme.negative,\n },\n}));\n\nconst useTextStyles = createVariantSystem({}, (theme) => ({\n primary: {\n color: theme.primaryText,\n },\n accent: {\n color: theme.accentText,\n },\n positive: {\n color: theme.positiveText,\n },\n negative: {\n color: theme.negativeText,\n },\n}));\n\nconst Button = ({\n title,\n onPress,\n variant,\n disabled = false,\n accessibilityLabel,\n accessibilityHint,\n icon,\n testID,\n}: ButtonProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const buttonStyle = useButtonStyles(theme, variant);\n const textStyle = useTextStyles(theme, variant);\n const styles = useButtonDynamicStyles();\n\n return (\n <Pressable\n style={({ pressed }) => [\n styles.button,\n buttonStyle,\n { borderRadius: theme.sizes.borderRadiusButton },\n disabled && { opacity: 0.5 },\n pressed && { opacity: 0.7 },\n ]}\n onPress={onPress}\n disabled={disabled}\n accessible={true}\n role=\"button\"\n accessibilityLabel={accessibilityLabel || title}\n accessibilityHint={accessibilityHint}\n accessibilityState={{ disabled }}\n testID={testID}\n >\n {icon && icon}\n {title && <Text style={[styles.text, textStyle]}>{title}</Text>}\n </Pressable>\n );\n};\n\nexport default Button;\n","/* istanbul ignore file */\nimport * as LucideReactIcons from 'lucide-react';\nimport * as React from 'react';\nimport { Platform, View, ViewProps } from 'react-native';\n\nlet LucideReactNativeIcons: any;\nif (Platform.OS !== 'web') {\n // This dynamic import pattern helps with tree-shaking for web builds\n try {\n LucideReactNativeIcons = require('lucide-react-native');\n } catch (e) {\n console.warn(\n 'lucide-react-native is not installed. Icons may not render correctly on native platforms.'\n );\n }\n}\n\ntype IconName = keyof typeof LucideReactIcons;\n\ntype IconProps = {\n name: IconName;\n color?: string;\n size?: number;\n strokeWidth?: number;\n} & Omit<ViewProps, 'style'>;\n\nconst Icon = ({\n name,\n color = 'black',\n size = 24,\n strokeWidth = 2,\n ...props\n}: IconProps): React.ReactElement | null => {\n // Choose the appropriate icon library based on platform\n const iconLib =\n Platform.OS === 'web' ? LucideReactIcons : LucideReactNativeIcons;\n\n if (!iconLib) {\n console.warn('Icon library not available for this platform');\n return null;\n }\n\n const LucideIcon = iconLib[name] as React.ElementType;\n\n if (!LucideIcon) {\n console.warn(`Icon \"${name}\" not found in Lucide icons`);\n return null;\n }\n\n if (Platform.OS === 'web') {\n return (\n <View {...props}>\n <LucideIcon color={color} size={size} strokeWidth={strokeWidth} />\n </View>\n );\n } else {\n return (\n <View {...props}>\n <LucideIcon color={color} size={size} strokeWidth={strokeWidth} />\n </View>\n );\n }\n};\n\nexport default Icon;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { ActivityIndicator, StyleSheet, View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\nconst LoadingIndicator = (): React.ReactElement => {\n const { theme } = useWllSdk();\n\n return (\n <View\n style={[\n styles.container,\n {\n borderRadius: theme.sizes.borderRadiusSm,\n padding: theme.sizes.md,\n },\n ]}\n >\n <ActivityIndicator size=\"small\" color={theme.primary} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n },\n});\n\nexport default LoadingIndicator;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { Animated, StyleSheet, View, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Size, ThemeObject, Variant } from '../../../types/theme';\nimport { createVariantSystem } from '../../../utils/variant';\n\nexport type ProgressBarProps = {\n percentage: number;\n variant?: Variant;\n height?: Size;\n animationDuration?: number;\n};\n\nconst useStyles = (theme: ThemeObject) => {\n return StyleSheet.create({\n container: {\n width: '100%',\n borderRadius: theme.sizes.borderRadiusRounded,\n overflow: 'hidden',\n },\n progress: {\n borderRadius: theme.sizes.borderRadiusRounded,\n height: '100%',\n },\n });\n};\n\nconst useContainerStyles = (theme: ThemeObject) => ({\n sm: { height: theme.sizes.xxs },\n md: { height: theme.sizes.xs },\n lg: { height: theme.sizes.sm },\n});\n\nconst useProgressStyles = createVariantSystem(\n // @ts-ignore\n (theme: ThemeObject) => ({ borderRadius: theme.sizes.borderRadiusSmRounded }),\n (theme: ThemeObject) => ({\n primary: { backgroundColor: theme.primary },\n accent: { backgroundColor: theme.accent },\n positive: { backgroundColor: theme.positive },\n negative: { backgroundColor: theme.negative },\n })\n);\n\nconst ProgressBar = ({\n percentage,\n variant = 'primary',\n height = 'sm',\n animationDuration = 300,\n}: ProgressBarProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const styles = useStyles(theme);\n const containerStyles = useContainerStyles(theme);\n const progressStyles = useProgressStyles(theme, variant);\n\n const animatedWidth = React.useRef(new Animated.Value(0)).current;\n\n const containerStyle = [\n styles.container,\n containerStyles[height],\n { backgroundColor: theme.derivedSurface[20] },\n ];\n\n React.useEffect(() => {\n Animated.timing(animatedWidth, {\n toValue: Math.min(Math.max(percentage, 0), 100),\n duration: animationDuration,\n useNativeDriver: false,\n }).start();\n }, [percentage, animationDuration]);\n\n const progressWidth: ViewStyle = {\n width: animatedWidth.interpolate({\n inputRange: [0, 100],\n outputRange: ['0%', '100%'],\n }),\n };\n\n return (\n <View style={containerStyle}>\n <Animated.View style={[styles.progress, progressStyles, progressWidth]} />\n </View>\n );\n};\n\nexport default ProgressBar;\n","import { Availability, RewardCategory, TierType } from './wll';\n\nexport enum CTALinkTarget {\n sameWindow = 'SAME_FRAME',\n newWindow = 'NEW_WINDOW',\n}\n\nexport enum TierTileType {\n currentTier = 'CURRENT',\n specificTier = 'SPECIFIC',\n}\n\nexport enum ProgressType {\n Name = 'NAME',\n Points = 'POINTS',\n}\n\nexport enum TileType {\n Banner = 'BANNER',\n Points = 'POINTS',\n Content = 'CONTENT',\n Reward = 'REWARD',\n Badge = 'BADGE',\n RewardCategory = 'REWARD_CATEGORY',\n Tier = 'TIER',\n Roundup = 'ROUND_UP_BALANCE',\n Venue = 'VENUE',\n}\n\nexport enum TileHeight {\n Half = 'HALF',\n Full = 'FULL',\n}\n\nexport type ProgessType = 'NAME' | 'POINTS';\n\nexport enum StatusVariant {\n PRIMARY = 'primary',\n GREEN = 'green',\n GREY = 'grey',\n}\n\nexport class BannerTileConfig {\n artworkUrl?: string | null;\n title?: string | null;\n description?: string | null;\n ctaText?: string | null;\n ctaLink?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n}\n\nexport class PointsTileConfig {\n title?: string | null;\n pointsMultiplier?: number;\n pointsPrefix?: string | null;\n pointsSuffix?: string | null;\n artworkUrl?: string | null;\n points?: number;\n ctaLink?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n}\n\nexport class RoundupTileConfig {\n title?: string | null;\n amountPrefix?: string | null;\n amountSuffix?: string | null;\n artworkUrl?: string | null;\n balance?: number;\n ctaLink?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n}\n\nexport class ContentTileConfig {\n title?: string | null;\n body?: string | null;\n artworkUrl?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n ctaLink?: string | null;\n isLocked?: boolean;\n}\n\nexport class RewardTileConfig {\n rewardId: string = '';\n defaultLocale: string = 'en';\n showPrice: boolean = false;\n showArtwork?: boolean;\n showDetails?: boolean;\n isLocked?: boolean;\n id: string = '';\n createdAt: string = '';\n updatedAt: string = '';\n name: string = '';\n pictureUrl: string = '';\n value: number = 0;\n price: number = 0;\n priority: number = 0;\n availability: Availability = {\n start: '',\n end: '',\n };\n purchasable: boolean = false;\n tier: string | null = null;\n category: RewardCategory = {\n name: '',\n priority: 0,\n type: '',\n id: '',\n createdAt: '',\n updatedAt: '',\n description: null,\n metadata: null,\n pictureUrl: '',\n };\n discounts: any[] = [];\n summary: string | null = null;\n redemptionMessage: string | null = null;\n visibilityCriteria: string | null = null;\n type: 'VOUCHER' = 'VOUCHER';\n codeType: 'HUMAN' | 'OTP' = 'HUMAN';\n code: string | null = null;\n purchaseExpiration: string | null = null;\n hideCode: boolean = false;\n notificationConfig: any | null = null;\n artworkUrl: string | undefined = undefined;\n pointsMultiplier: number = 1;\n pointsPrefix: string | null = null;\n pointsSuffix: string | null = null;\n}\n\nexport class VenueTileConfig {\n venueId: string = '';\n name: string = '';\n artworkUrl: string = '';\n description: string = '';\n isLocked?: boolean;\n}\n\nexport enum BadgeTileType {\n Specific = 'SPECIFIC',\n Latest = 'LATEST_EARNED',\n}\n\nexport class BadgeTileConfig {\n type: BadgeTileType = BadgeTileType.Specific;\n badgeId: string = '';\n internalName?: string;\n defaultLocale: string = 'en';\n priority: number = 0;\n internalDescription?: string | null;\n status?: string;\n id: string = '';\n createdAt: string = '';\n updatedAt: string = '';\n details?: BadgeDetail[] = [];\n count: number = 0;\n name: string = '';\n locale: string = 'en';\n description: string = '';\n artworkUrl: string = '';\n emptyBadgeMessage?: string;\n emptyBadgeArtworkUrl?: string;\n awardedDatePrefix?: string;\n badgeNotEarnedMessage?: string;\n lastEarnedAt?: string;\n}\n\nexport type BadgeDetail = {\n name: string;\n locale: string;\n description: string;\n artworkUrl: string;\n id: string;\n createdAt: string;\n updatedAt: string;\n emptyBadgeMessage?: string;\n emptyBadgeArtworkUrl?: string;\n awardedDatePrefix?: string;\n badgeNotEarnedMessage?: string;\n};\n\nexport class RewardCategoryTileConfig {\n showName: boolean = true;\n rewardCategoryId: string = '';\n artworkUrl: string = '';\n name: string = '';\n}\n\nexport class TierTileConfig {\n progressType: ProgressType = ProgressType.Name;\n pointsMultiplier?: number;\n pointsPrefix?: string;\n pointsSuffix?: string;\n tier?: TierType;\n tierId?: string;\n targetTier?: TierType | undefined;\n type?: TierTileType;\n targetTierAttainingPeriod?: Date | null;\n title: string = '';\n emptyDescription?: string = '';\n emptyArtworkUrl?: string = '';\n pointsToTierPrefix?: string = '';\n pointsToTierSuffix?: string = '';\n locale: string = 'en';\n}\n\nexport type Tile = {\n id: string | null;\n type?: TileType;\n active: boolean;\n createdAt: string | null;\n updatedAt: string | null;\n tileHeight: TileHeight;\n configuration: TileConfig;\n priority: number;\n};\n\nconst getConfigForTileType = (tileType: TileType) => {\n switch (tileType) {\n case TileType.Banner:\n return BannerTileConfig;\n case TileType.Points:\n return PointsTileConfig;\n case TileType.Content:\n return ContentTileConfig;\n case TileType.Reward:\n return RewardTileConfig;\n case TileType.Venue:\n return VenueTileConfig;\n case TileType.Badge:\n return BadgeTileConfig;\n case TileType.RewardCategory:\n return RewardCategoryTileConfig;\n case TileType.Tier:\n return TierTileConfig;\n default:\n throw new Error(`Tile type ${tileType} is not supported`);\n }\n};\n\nexport type TileConfig = InstanceType<ReturnType<typeof getConfigForTileType>>;\n\nexport type TileSizeInfo = {\n isFullSize: boolean;\n isHalfSize: boolean;\n};\n","import { useCallback } from 'react';\nimport { useWllSdk } from '../context/WllSdkContext';\nimport {\n CTALinkTarget,\n RewardCategoryTileConfig,\n RewardTileConfig,\n VenueTileConfig,\n Tile,\n TileType,\n} from '../types/tile';\n\nexport const useHandleTilePress = (\n tile: Tile,\n ctaLink?: string | null,\n ctaLinkTarget?: string\n) => {\n const { handleNavigation } = useWllSdk();\n\n return useCallback(() => {\n if (tile?.type === TileType.Reward) {\n const config = tile.configuration as RewardTileConfig;\n if (config?.rewardId) {\n const url = `/reward?id=${config.rewardId}`;\n return handleNavigation(url, CTALinkTarget.sameWindow);\n }\n }\n\n if (tile?.type === TileType.Venue) {\n const config = tile.configuration as VenueTileConfig;\n if (config?.venueId) {\n const url = `/venue?id=${config.venueId}`;\n return handleNavigation(url, CTALinkTarget.sameWindow);\n }\n }\n\n if (tile?.type === TileType.RewardCategory) {\n const config = tile.configuration as RewardCategoryTileConfig;\n const url = `/category?id=${config.rewardCategoryId}`;\n if (config?.rewardCategoryId) {\n return handleNavigation(url, CTALinkTarget.sameWindow);\n }\n }\n\n if (ctaLink) {\n const target =\n (ctaLinkTarget as CTALinkTarget) || CTALinkTarget.sameWindow;\n return handleNavigation(ctaLink, target);\n }\n }, [tile, ctaLink, ctaLinkTarget, handleNavigation]);\n};\n","import { useMemo } from 'react';\nimport { Tile, TileHeight } from '../types/tile';\n\nexport const useTileSize = (tile: Tile) => {\n return useMemo(\n () => ({\n isFullSize: tile.tileHeight === TileHeight.Full,\n isHalfSize: tile.tileHeight === TileHeight.Half,\n }),\n [tile.tileHeight]\n );\n};\n","import * as React from 'react';\nimport {\n Text as RNText,\n TextProps as RNTextProps,\n Role,\n StyleProp,\n StyleSheet,\n TextStyle,\n} from 'react-native';\nimport { IS_MOBILE, IS_WEB } from '../../../constants/device';\nimport { useResponsive } from '../../../context/ResponsiveContext';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\ntype TextVariant =\n | 'eyebrow'\n | 'title'\n | 'description'\n | 'body'\n | 'caption'\n | 'label'\n | 'tier-requirement'\n | 'tier-earned';\n\ntype TextProps = RNTextProps & {\n variant?: TextVariant;\n style?: StyleProp<TextStyle>;\n isSurface?: boolean;\n};\n\nexport const Text = ({\n variant = 'body',\n style,\n isSurface = false,\n ...props\n}: TextProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n\n const getVariantStyle = (variant: TextVariant): TextStyle => {\n const baseStyle = {\n color: theme.surfaceText,\n };\n\n switch (variant) {\n case 'eyebrow':\n return {\n ...baseStyle,\n fontSize: useResponsiveValue(\n theme.sizes.md,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n };\n case 'title':\n return {\n ...baseStyle,\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n fontWeight: 'bold',\n };\n case 'body':\n return {\n color: theme.derivedSurfaceText[20],\n fontSize: useResponsiveValue(\n theme.sizes.md,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n };\n case 'caption':\n return {\n ...baseStyle,\n fontWeight: 'bold',\n fontSize: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xl,\n isDesktop,\n isTablet\n ),\n color: theme.primary,\n };\n case 'description':\n case 'label':\n default:\n return {\n ...baseStyle,\n fontSize: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n };\n }\n };\n\n const variantStyle = getVariantStyle(variant);\n\n // NOTE: React Native Web has different style resolution rules compared to CSS.\n // 1. We create styles using StyleSheet.create for better performance\n // 2. Base styles set the initial fontFamily\n // 3. variantStyle contains responsive fontSize and other variant-specific styles\n // 4. webOverrides ensures fontFamily is correctly applied on web platform\n // (prevents system font stack from being incorrectly applied)\n // 5. custom style prop has highest precedence\n // The order matters because RN Web resolves styles by specific properties\n // rather than last-declaration-wins like in CSS\n // https://necolas.github.io/react-native-web/docs/styling/#how-it-works\n\n const styles = StyleSheet.create({\n base: {\n fontFamily: theme.fontFamily,\n },\n webOverrides: IS_WEB\n ? {\n fontFamily: theme.fontFamily,\n }\n : {},\n });\n\n // Determine appropriate accessibility role based on variant\n // This helps screen readers understand the semantic meaning\n let accessibilityRole;\n\n switch (variant) {\n case 'title':\n accessibilityRole = IS_MOBILE ? 'heading' : 'header';\n break;\n case 'caption':\n accessibilityRole = IS_MOBILE ? 'contentinfo' : 'text';\n break;\n case 'eyebrow':\n accessibilityRole = IS_MOBILE ? 'contentinfo' : 'text';\n break;\n case 'description':\n accessibilityRole = IS_MOBILE ? 'article' : 'paragraph';\n break;\n case 'label':\n accessibilityRole = IS_MOBILE ? 'option' : 'text';\n break;\n default:\n accessibilityRole = IS_MOBILE ? 'contentinfo' : 'text';\n }\n\n const combinedStyles = [\n styles.base,\n variantStyle,\n styles.webOverrides,\n style,\n ];\n\n return (\n <RNText\n style={combinedStyles}\n {...props}\n accessible\n role={accessibilityRole as Role}\n />\n );\n};\n\nexport default Text;\n","import React from 'react';\nimport { TextProps, TextStyle } from 'react-native';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { ContentTileConfig } from '../../../types/tile';\nimport Text from '../Text';\nimport { useTileContext } from './index';\n\ntype BaseTileBodyProps = Omit<TextProps, 'style'> & {\n variant?:\n | 'eyebrow'\n | 'title'\n | 'description'\n | 'body'\n | 'caption'\n | 'label'\n | 'tier-requirement'\n | 'tier-earned';\n isSurface?: boolean;\n style?: TextStyle;\n};\n\n/**\n * Renders the body text of a BaseTile component.\n *\n * @param {BaseTileBodyProps} props - Component props including text styling options\n * @returns {React.ReactElement|null} The rendered body text or null if conditions for display are not met\n */\nexport const BaseTileBody = (props: BaseTileBodyProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n const responsive = useResponsive();\n\n if (!tileContext || !tileContext.configuration || !responsive) return null;\n\n const { isDesktop, isTablet } = responsive;\n const { body, artworkUrl } = tileContext.configuration as ContentTileConfig;\n\n const sizeInfo = useTileSize(tileContext);\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n // Don't show body for half tiles with image\n if ((isHalfSize && artworkUrl) || !body) return null;\n\n const getNumberOfLines = (): number | undefined => {\n if (!isHalfSize && !artworkUrl) return undefined;\n return isDesktop ? 3 : isTablet ? 4 : 3;\n };\n\n return (\n <Text\n variant=\"body\"\n {...props}\n role=\"article\"\n accessibilityLabel={body}\n numberOfLines={getNumberOfLines()}\n testID=\"tile-body\"\n >\n {body}\n </Text>\n );\n};\n","import { TileSizeInfo } from '../types/tile';\n\n/**\n * Utility function that checks if a component context and its configuration exist.\n * Works for both tile contexts and banner contexts.\n *\n * @param context - The component context to validate (tileContext or bannerContext)\n * @returns `true` if both the context and its configuration exist, otherwise `false`\n */\nexport function isContextValid(context: any): boolean {\n return (\n context !== null &&\n context !== undefined &&\n context.configuration !== null &&\n context.configuration !== undefined\n );\n}\n\n/**\n * Checks if a tile's content should be hidden based on its size and artwork configuration.\n *\n * @param {TileSizeInfo | null} sizeInfo - The size information for the tile\n * @param {string | null | undefined} artworkUrl - The URL of the tile's artwork\n * @returns {boolean} True if the content should be hidden, false otherwise\n */\n\nexport const shouldHideContentForHalfTile = (\n sizeInfo: TileSizeInfo | null,\n artworkUrl?: string | null\n): boolean => {\n if (!sizeInfo) return false;\n return sizeInfo.isHalfSize && !!artworkUrl;\n};\n","import { StyleSheet } from 'react-native';\nimport { useTileContext } from '.';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const baseStyles = StyleSheet.create({\n imageContainer: {\n width: '100%',\n position: 'relative',\n },\n container: {\n flex: 1,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n },\n content: {\n display: 'flex',\n },\n media: {\n width: '100%',\n objectFit: 'cover',\n },\n});\n\n/**\n * Custom hook that returns the styles for the BaseTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the BaseTile component\n */\nexport const useBaseTileStyles = () => {\n const tileContext = useTileContext();\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n\n if (!tileContext || !tileContext.configuration) {\n return StyleSheet.create({\n container: baseStyles.container,\n content: baseStyles.content,\n header: {\n marginBottom: 0,\n marginTop: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n media: baseStyles.media,\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n });\n }\n\n const sizeInfo = useTileSize(tileContext);\n const isHalfSize = sizeInfo?.isHalfSize || false;\n const { artworkUrl, title, body } =\n tileContext.configuration as ContentTileConfig;\n // Access showDetails safely only for Reward tiles to avoid type errors on ContentTileConfig\n const rewardShowDetails: boolean | undefined =\n tileContext.type === 'REWARD'\n ? (tileContext.configuration as unknown as { showDetails?: boolean })\n .showDetails\n : undefined;\n\n // In Reward tiles that show details (title, summary, points), the content height\n // can exceed a square aspect ratio. To prevent clipping (e.g., points cut off in\n // TwoPerRow), allow the container to naturally size and do not enforce aspectRatio.\n const isRewardWithDetails =\n tileContext.type === 'REWARD' && rewardShowDetails !== false;\n\n return StyleSheet.create({\n container: {\n ...baseStyles.container,\n backgroundColor: theme.surface,\n // Allow natural height for reward tiles with details; keep the aspect ratio otherwise\n ...(isRewardWithDetails\n ? { height: undefined }\n : { height: '100%' as const }),\n\n borderRadius: useResponsiveValue(\n theme.sizes.borderRadiusLg,\n theme.sizes.borderRadiusSm,\n isDesktop,\n isTablet\n ),\n justifyContent: 'center',\n alignItems: 'center',\n },\n content: {\n ...baseStyles.content,\n justifyContent: 'center',\n height: !artworkUrl ? '100%' : undefined,\n },\n header: {\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n marginTop:\n !isHalfSize && artworkUrl\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : undefined,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n textAlign: isHalfSize ? 'center' : undefined,\n },\n media: {\n ...baseStyles.media,\n flexBasis: !isHalfSize && title && body ? '50%' : '100%',\n height: isHalfSize ? '100%' : undefined,\n },\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n });\n};\n","import React, { ReactNode } from 'react';\nimport { View } from 'react-native';\n\nimport { useTileContext } from '.';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { WithChildren } from '../../../types/helpers';\nimport { ContentTileConfig } from '../../../types/tile';\nimport {\n isContextValid,\n shouldHideContentForHalfTile,\n} from '../../../utils/contextHelpers';\nimport { baseStyles } from './styles';\n\ntype BaseTileContentProps = WithChildren;\n\n/**\n * Renders the content section of a BaseTile component.\n *\n * @param {BaseTileContentProps} props - Component props\n * @param {ReactNode} props.children - Child elements to render within the content area\n * @returns {React.ReactElement|null} The rendered content or null if conditions for display are not met\n */\n\nexport const BaseTileContent = ({\n children,\n}: BaseTileContentProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl } = tileContext.configuration as ContentTileConfig;\n\n const sizeInfo = useTileSize(tileContext);\n\n if (!sizeInfo) return null;\n\n if (shouldHideContentForHalfTile(sizeInfo, artworkUrl)) return null;\n\n return (\n <View\n testID=\"tile-content\"\n style={[\n baseStyles.content,\n {\n justifyContent: 'center',\n height: !artworkUrl ? '100%' : undefined,\n },\n ]}\n role=\"none\"\n >\n {children}\n </View>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { View, ViewStyle } from 'react-native';\nimport { useTileContext } from '.';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { WithChildren } from '../../../types/helpers';\nimport { ContentTileConfig } from '../../../types/tile';\nimport {\n isContextValid,\n shouldHideContentForHalfTile,\n} from '../../../utils/contextHelpers';\nimport { useBaseTileStyles } from './styles';\n\ntype BaseTileHeaderProps = WithChildren;\n\n/**\n * Renders the header section of a BaseTile component.\n *\n * @param {BaseTileHeaderProps} props - Component props\n * @param {ReactNode} props.children - Child elements to render within the header\n * @returns {React.ReactElement|null} The rendered header or null if conditions for display are not met\n */\nexport const BaseTileHeader = ({\n children,\n}: BaseTileHeaderProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl } = tileContext.configuration as ContentTileConfig;\n\n const sizeInfo = useTileSize(tileContext);\n if (!sizeInfo) return null;\n\n if (shouldHideContentForHalfTile(sizeInfo, artworkUrl)) return null;\n\n const dynamicStyles = useBaseTileStyles();\n\n const combinedStyle: ViewStyle = {\n ...dynamicStyles.header,\n marginTop: sizeInfo.isHalfSize ? 0 : dynamicStyles.header.marginTop,\n ...(sizeInfo.isHalfSize ? { alignItems: 'center' } : {}),\n };\n\n return (\n <View style={combinedStyle} testID=\"tile-header\" role=\"heading\">\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { ImagePropsNoSource } from '../../../types/common';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport Icon from '../Icon';\nimport ProgressiveImage from '../ProgressiveImage';\nimport { useTileContext } from './index';\nimport { baseStyles, useBaseTileStyles } from './styles';\n\n/**\n * Renders the media (image) for a BaseTile component.\n *\n * @param {ImagePropsNoSource} props - The image props excluding source\n * @returns {React.ReactElement|null} The rendered image or null if no artwork URL is present\n */\nexport const BaseTileMedia = (\n props: ImagePropsNoSource\n): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = '', isLocked = false } =\n tileContext.configuration as ContentTileConfig;\n const styles = useBaseTileStyles();\n\n if (!artworkUrl) return null;\n\n return (\n <View style={baseStyles.imageContainer}>\n <ProgressiveImage\n {...props}\n source={{ uri: artworkUrl }}\n testID=\"tile-media\"\n style={[props.style, baseStyles.media, styles.media]}\n alt={`Content image${title ? ` for ${title}` : ''}`}\n role=\"img\"\n />\n {isLocked && (\n <View style={styles.lockOverlay} testID=\"lock-overlay\">\n <Icon name=\"LockKeyhole\" size={48} color=\"white\" />\n </View>\n )}\n </View>\n );\n};\n","import React from 'react';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { SafeConfig } from '../../../types/helpers';\nimport { ContentTileConfig } from '../../../types/tile';\nimport Icon from '../Icon';\nimport Text from '../Text';\nimport { useTileContext } from './index';\n\ntype SafeTileConfig = SafeConfig<ContentTileConfig, 'title' | 'artworkUrl'>;\n\n/**\n * Renders the title of a BaseTile component.\n *\n * @returns {React.ReactElement|null} The rendered title or null if conditions for display are not met\n */\n\nexport const BaseTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n\n if (!tileContext || !tileContext.configuration || !sdk) return null;\n\n const config = tileContext.configuration as SafeTileConfig;\n\n const { title, ctaLink = '', artworkUrl } = config;\n\n const sizeInfo = useTileSize(tileContext);\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n // Don't show title for half tiles with image\n if ((isHalfSize && artworkUrl) || !title) return null;\n\n return (\n <>\n <Text\n variant=\"title\"\n role=\"heading\"\n accessibilityLabel={title}\n numberOfLines={1}\n testID=\"tile-title\"\n >\n {title}\n </Text>\n {ctaLink && (\n <Icon\n name=\"ChevronRight\"\n color={sdk.theme?.derivedSurfaceText?.[20]}\n accessibilityLabel=\"View details\"\n />\n )}\n </>\n );\n};\n","import React, { createContext, useContext } from 'react';\nimport { FlexStyle, Pressable, View, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useHandleTilePress } from '../../../hooks/useHandleTilePress';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { ContentTileConfig, Tile } from '../../../types/tile';\n\nimport { BaseTileBody } from './base-tile-body';\nimport { BaseTileContent } from './base-tile-content';\nimport { BaseTileHeader } from './base-tile-header';\nimport { BaseTileMedia } from './base-tile-media';\nimport { BaseTileTitle } from './base-tile-title';\n\nimport { WithChildren } from '../../../types/helpers';\nimport { baseStyles, useBaseTileStyles } from './styles';\n\n/**\n * Context to provide the current tile to child components.\n */\nexport const TileContext = createContext<Tile | null>(null);\n\n/**\n * Custom hook to access the TileContext.\n *\n * @returns {Tile} The current tile from context\n * @throws {Error} If used outside of a BaseTile\n */\nexport const useTileContext = (): Tile => {\n const context = useContext(TileContext);\n if (!context) {\n throw new Error('Tile components must be used within a BaseTile');\n }\n return context;\n};\n\ntype BaseTileProps = WithChildren & {\n tile: Tile;\n style?: ViewStyle;\n};\n\ntype BaseTileRootProps = WithChildren & {\n style?: ViewStyle;\n};\n\ntype LayoutProps = FlexStyle & {\n justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between';\n};\n\n/**\n * BaseTileContainer component with dynamic accessibility role based on CTA link\n */\nconst BaseTileContainer = ({\n children,\n style,\n}: BaseTileRootProps): React.ReactElement => {\n const tile = useTileContext();\n const sdk = useWllSdk();\n const sizeInfo = useTileSize(tile);\n\n const isHalfSize = sizeInfo?.isHalfSize || false;\n\n const {\n ctaLink = '',\n ctaLinkTarget,\n title = 'Tile',\n } = tile.configuration as ContentTileConfig;\n\n const theme = sdk?.theme || { surface: '#ffffff' };\n\n const handlePress = useHandleTilePress(tile, ctaLink, ctaLinkTarget);\n\n const isInteractive = Boolean(\n ctaLink ||\n tile.type === 'REWARD' ||\n tile.type === 'REWARD_CATEGORY' ||\n tile.type === 'VENUE'\n );\n\n const layout: LayoutProps = {\n flexDirection: 'column',\n justifyContent: isHalfSize ? 'center' : 'flex-start',\n alignItems: 'stretch',\n };\n\n const dynamicStyles = useBaseTileStyles();\n\n if (isInteractive) {\n return (\n <Pressable\n style={({ pressed }) => [\n baseStyles.container,\n dynamicStyles.container,\n {\n backgroundColor: theme.surface,\n opacity: pressed ? 0.7 : 1,\n },\n layout,\n style,\n ]}\n onPress={handlePress}\n accessible\n role=\"button\"\n accessibilityLabel={`${title} - Click to open`}\n accessibilityState={{ disabled: !ctaLink }}\n >\n {children}\n </Pressable>\n );\n } else {\n return (\n <View\n style={[\n baseStyles.container,\n dynamicStyles.container,\n {\n backgroundColor: theme.surface,\n },\n layout,\n style,\n ]}\n accessible\n role=\"article\"\n accessibilityLabel={title || 'Tile'}\n >\n {children}\n </View>\n );\n }\n};\n\n/**\n * BaseTileRoot component to provide context and render children.\n *\n * @param {BaseTileProps} props - Component props\n * @returns {React.ReactElement|null} The rendered BaseTileRoot or null if no tile is provided\n */\nconst BaseTileRoot = ({\n tile,\n children,\n style,\n}: BaseTileProps): React.ReactElement | null => {\n if (!tile) {\n console.warn('BaseTile: No tile provided');\n return null;\n }\n\n return (\n <TileContext.Provider value={tile}>\n <BaseTile.Container style={style}>{children}</BaseTile.Container>\n </TileContext.Provider>\n );\n};\n\n/**\n * BaseTile component with subcomponents attached.\n */\nexport const BaseTile = Object.assign(BaseTileRoot, {\n Container: BaseTileContainer,\n Media: BaseTileMedia,\n Content: BaseTileContent,\n Header: BaseTileHeader,\n Title: BaseTileTitle,\n Body: BaseTileBody,\n});\n\nexport default BaseTile;\n","import React, { useContext, useRef } from 'react';\nimport {\n Animated,\n ImageSourcePropType,\n StyleProp,\n StyleSheet,\n View,\n} from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { TileHeight } from '../../../types/tile';\nimport { desaturateColor } from '../../../utils/themeHelpers';\nimport { TileContext } from '../BaseTile';\n\ntype ProgressiveImageProps = {\n source: ImageSourcePropType;\n style?: StyleProp<any>;\n isDesaturated?: boolean;\n alt?: string;\n [key: string]: any;\n};\n\nconst ProgressiveImage = ({\n source,\n style,\n isDesaturated = false,\n alt,\n ...props\n}: ProgressiveImageProps): React.ReactElement => {\n const imageAnimated = useRef(new Animated.Value(0)).current;\n const { theme } = useWllSdk();\n const tileContext = useContext(TileContext);\n\n const isHalfHeight = tileContext?.tileHeight === TileHeight.Half;\n\n const onImageLoad = (): void => {\n requestAnimationFrame(() => {\n Animated.timing(imageAnimated, {\n toValue: 1,\n useNativeDriver: true,\n duration: 300,\n }).start();\n });\n };\n\n const baseColor = theme.alphaDerivedPrimary[20];\n const desaturatedColor = desaturateColor(baseColor);\n const backgroundColor = isDesaturated ? desaturatedColor : baseColor;\n\n const baseImage = (\n <Animated.Image\n {...props}\n source={source}\n style={[\n styles.imageOverlay,\n style,\n {\n opacity: imageAnimated,\n ...(IS_WEB && {\n filter: isDesaturated ? 'grayscale(100%)' : undefined,\n }),\n },\n ]}\n onLoad={onImageLoad}\n accessibilityLabel={alt}\n accessible\n role=\"img\"\n />\n );\n\n return (\n <View\n style={[\n styles.container,\n isHalfHeight && { minHeight: 0 },\n style,\n { backgroundColor },\n ]}\n >\n {/* Placeholder that fades out as the main image loads */}\n <Animated.View\n style={[\n styles.imageOverlay,\n {\n backgroundColor,\n opacity: imageAnimated.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n },\n ]}\n />\n\n {/* For web, just use the base image with CSS filter */}\n {IS_WEB ? (\n baseImage\n ) : (\n // For React Native, use the overlay technique\n <>\n {baseImage}\n {isDesaturated && (\n <Animated.Image\n {...props}\n source={source}\n style={[\n styles.imageOverlay,\n style,\n {\n opacity: imageAnimated.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.8],\n }),\n tintColor: 'gray',\n },\n ]}\n />\n )}\n </>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n imageOverlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n },\n container: {\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '100%',\n minHeight: 130,\n },\n});\n\nexport default ProgressiveImage;\n","export const MAX_WIDTH = 1080;\nexport const SLIDE_WIDTH = MAX_WIDTH;\nexport const BUTTON_SIZE = 42;\n","import React, { createContext, useContext } from 'react';\nimport {\n Pressable,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport { MAX_WIDTH } from '../../../constants';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useHandleTilePress } from '../../../hooks/useHandleTilePress';\nimport { BannerTileConfig, Tile } from '../../../types/tile';\n\nconst BannerContext = createContext<Tile | null>(null);\n\nexport const useBannerContext = () => {\n const context = useContext(BannerContext);\n if (!context) {\n throw new Error('Banner components must be used within a BaseBanner');\n }\n return context;\n};\n\ntype BaseBannerProps = {\n tile: Tile;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n onPress?: () => void;\n testID?: string;\n disabled?: boolean;\n accessibilityLabel?: string;\n};\n\nconst BaseBanner: React.FC<BaseBannerProps> = ({\n tile,\n children,\n style,\n testID,\n accessibilityLabel,\n}): React.ReactElement => {\n const { theme } = useWllSdk();\n const { ctaLink, ctaLinkTarget, title, ctaText } =\n tile.configuration as BannerTileConfig;\n\n const handlePress = useHandleTilePress(tile, ctaLink, ctaLinkTarget);\n\n const hasCTA = Boolean(ctaText);\n const isInteractive = Boolean(ctaLink && !hasCTA);\n\n const commonStyles = [\n styles.container,\n style,\n {\n backgroundColor: theme.surface,\n borderRadius: theme.sizes.borderRadiusLg,\n },\n ];\n\n return <BannerContext.Provider value={tile}>\n {isInteractive ? (\n <Pressable\n testID={testID || 'banner-tile'}\n style={({ pressed }) => [\n ...commonStyles,\n { opacity: pressed ? 0.7 : 1 },\n ]}\n onPress={handlePress}\n accessible\n role=\"button\"\n accessibilityLabel={accessibilityLabel || `${title} - Click to open`}\n >\n {children}\n </Pressable>\n ) : (\n <View\n testID={testID || 'banner-tile'}\n style={commonStyles}\n accessible\n role=\"article\"\n accessibilityLabel={accessibilityLabel || title || 'Banner'}\n >\n {children}\n </View>\n )}\n </BannerContext.Provider>\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n maxWidth: MAX_WIDTH,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n overflow: 'hidden',\n },\n});\n\nexport default BaseBanner;\n","/* istanbul ignore file */\nimport React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport { useResponsive } from '../../../hooks/useResponsive';\n\nconst Indicator = (): React.ReactElement => {\n const { isDesktop, isTablet } = useResponsive();\n\n const getCurrentLayout = () => {\n if (isDesktop) return 'Desktop Layout';\n if (isTablet) return 'Tablet Layout';\n return 'Mobile Layout';\n };\n\n return (\n <View style={styles.indicator}>\n <Text style={styles.indicatorText}>{getCurrentLayout()}</Text>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n indicator: {\n position: 'absolute',\n top: 10,\n right: 10,\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 4,\n },\n indicatorText: {\n color: 'white',\n fontSize: 12,\n fontWeight: 'bold',\n },\n});\n\nexport default Indicator;\n","export const GRID_GAP = 16;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport {\n Animated,\n StyleSheet,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { IS_MOBILE } from '../../../constants/device';\n\ntype SkeletonTileProps = {\n style?: ViewStyle;\n};\n\nconst SkeletonTile = ({ style }: SkeletonTileProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const animatedValue = React.useRef(new Animated.Value(0)).current;\n const { width } = useWindowDimensions();\n let tileWidth = 1000 / 4;\n let tileHeight = tileWidth;\n\n if (IS_MOBILE) {\n tileWidth = width / 2 - theme.sizes.lg * 2;\n tileHeight = tileWidth;\n }\n\n React.useEffect(() => {\n const pulseAnimation = Animated.loop(\n Animated.sequence([\n Animated.timing(animatedValue, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: true,\n }),\n Animated.timing(animatedValue, {\n toValue: 0,\n duration: 1000,\n useNativeDriver: true,\n }),\n ])\n );\n\n pulseAnimation.start();\n\n return () => pulseAnimation.stop();\n }, [animatedValue]);\n\n const opacity = animatedValue.interpolate({\n inputRange: [0, 1],\n outputRange: [0.3, 0.7],\n });\n\n return (\n <Animated.View\n style={[\n styles.container,\n {\n opacity,\n backgroundColor: theme.alphaDerivedText[20],\n borderRadius: theme.sizes.borderRadiusLg,\n width: tileWidth,\n height: tileHeight,\n },\n style,\n ]}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n});\n\nexport default SkeletonTile;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { Animated, StyleSheet, View, ViewStyle } from 'react-native';\nimport { MAX_WIDTH } from '../../../constants';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport SkeletonTile from '../SkeletonTile';\n\ntype SkeletonProps = {\n width?: number | `${number}%`;\n height?: number | `${number}%`;\n borderRadius?: number;\n style?: ViewStyle;\n numberOfSquares?: number;\n};\n\nconst Skeleton = ({\n style,\n numberOfSquares = 4,\n}: SkeletonProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const animatedValue = React.useRef(new Animated.Value(0)).current;\n\n React.useEffect(() => {\n const pulseAnimation = Animated.loop(\n Animated.sequence([\n Animated.timing(animatedValue, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: true,\n }),\n Animated.timing(animatedValue, {\n toValue: 0,\n duration: 1000,\n useNativeDriver: true,\n }),\n ])\n );\n\n pulseAnimation.start();\n\n return () => pulseAnimation.stop();\n }, [animatedValue]);\n\n const opacity = animatedValue.interpolate({\n inputRange: [0, 1],\n outputRange: [0.3, 0.7],\n });\n\n return (\n <View testID=\"loading-skeleton\">\n <Animated.View\n style={[\n styles.skeleton,\n styles.title,\n {\n opacity,\n backgroundColor: theme.alphaDerivedText[20],\n borderRadius: 6,\n },\n ]}\n />\n <Animated.View\n style={[\n styles.skeleton,\n styles.body,\n {\n opacity,\n backgroundColor: theme.alphaDerivedText[20],\n borderRadius: 6,\n },\n ]}\n />\n <Animated.View style={[styles.container, style]}>\n {Array.from({ length: numberOfSquares }).map((_, index) => (\n <SkeletonTile key={index} />\n ))}\n </Animated.View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: GRID_GAP,\n justifyContent: 'space-between',\n width: '100%',\n maxWidth: MAX_WIDTH,\n },\n title: {\n height: 40,\n marginBottom: 10,\n width: 300,\n },\n body: {\n height: 25,\n width: '85%',\n marginBottom: 24,\n },\n skeleton: {\n overflow: 'hidden',\n },\n});\n\nexport default Skeleton;\n","/* istanbul ignore file */\nimport React, { useEffect, useState } from 'react';\nimport { Text, View } from 'react-native';\nimport { useWllSdk } from '../../context/WllSdkContext';\nimport { Tile } from '../../types/tile';\nimport { commonStyles } from '../../utils/styling';\nimport SkeletonTile from '../atoms/SkeletonTile';\n\nexport type WithTileFetchingProps = {\n tile?: Tile;\n tileId?: string;\n};\n\nexport function withTileFetching<P extends { tile: Tile }>(\n WrappedComponent: React.ComponentType<P>\n) {\n return function WithTileFetchingComponent(\n props: Omit<P, 'tile'> & WithTileFetchingProps\n ) {\n const { tile, tileId } = props;\n const { getTileByID } = useWllSdk();\n const [tileData, setTileData] = useState<Tile | null>(tile || null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (tile) {\n setTileData(tile);\n } else if (tileId) {\n const fetchTile = async () => {\n setIsLoading(true);\n try {\n const response = await getTileByID(tileId);\n if (response.status === 'success' && response.data) {\n setTileData(response.data);\n } else {\n setError(response.error || 'Failed to fetch tile');\n }\n } catch (err) {\n setError(\n err instanceof Error ? err.message : 'Failed to fetch tile'\n );\n } finally {\n setIsLoading(false);\n }\n };\n fetchTile();\n }\n }, [tile, tileId, getTileByID]);\n\n if (isLoading) {\n return <SkeletonTile style={{ width: '100%' }} />;\n }\n\n if (error || !tileData) {\n return (\n <View style={commonStyles.emptyContainer}>\n <Text>No tile data available</Text>\n </View>\n );\n }\n\n return <WrappedComponent {...(props as P)} tile={tileData} />;\n };\n}\n","import { Tile } from '../types/tile';\n\n/**\n * Sorts tiles by priority (higher priority first) and maintains original order for equal priorities\n * @param tiles Array of tiles to sort\n * @returns Sorted array of tiles\n */\nexport const sortByPriority = <T extends Pick<Tile, 'priority'>>(\n tiles: T[]\n): T[] => {\n return [...tiles].sort((a, b) => {\n // Sort by priority (higher priority first)\n if (a.priority !== b.priority) {\n return b.priority - a.priority;\n }\n // If priorities are equal, maintain original order\n return tiles.indexOf(a) - tiles.indexOf(b);\n });\n};\n\n/**\n * Transforms locale to a locale that is supported by the browser\n * @param locale Two-letter locale code to transform (en, fr, etc.)\n * @returns Full locale string (e.g., en-GB, fr-FR)\n */\nexport const transformLocale = (locale?: string | null): string => {\n const localeMapping: Record<string, string> = {\n en: 'en-GB',\n fr: 'fr-FR',\n es: 'es-ES',\n de: 'de-DE',\n it: 'it-IT',\n pt: 'pt-PT',\n us: 'en-US',\n };\n\n const languageCode = (locale ?? 'en').toLowerCase();\n return localeMapping[languageCode] || 'en-GB';\n};\n\n/**\n * Formats a date string to a localized date string based on user locale\n * @param date Date string to format\n * @param userLocale User's locale (defaults to 'en')\n * @returns Formatted date string or fallback message\n */\nexport const handleLastEarnedDate = (\n date?: string,\n userLocale: string = 'en'\n): string => {\n if (!date) return 'Date not available';\n\n try {\n const formattedLocale = transformLocale(userLocale);\n const dateObj = new Date(date);\n\n if (isNaN(dateObj.getTime())) {\n return 'Invalid Date';\n }\n\n return dateObj.toLocaleDateString(formattedLocale);\n } catch (error) {\n console.error('Error formatting date:', error);\n return 'Invalid Date';\n }\n};\n","import React from 'react';\nimport {\n BadgeTileConfig,\n BadgeTileType,\n StatusVariant,\n} from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { handleLastEarnedDate } from '../../../utils/transforms';\nimport { Chip } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the date earned for a Badge Tile.\n *\n * @returns React.ReactElement or null if badge is not earned or badgeNotEarnedMessage exists\n */\nexport const BadgeTileDateEarned = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) {\n return null;\n }\n\n const {\n count,\n awardedDatePrefix,\n lastEarnedAt,\n badgeNotEarnedMessage,\n type,\n locale,\n } = tileContext.configuration as BadgeTileConfig;\n\n // Don't show for Latest type with count=0\n if (type === BadgeTileType.Latest && count === 0) {\n return null;\n }\n\n // For Specific type, only show if count > 0 or badgeNotEarnedMessage exists\n if (\n type === BadgeTileType.Specific &&\n count === 0 &&\n !badgeNotEarnedMessage\n ) {\n return null;\n }\n\n const formattedDate = handleLastEarnedDate(lastEarnedAt, locale);\n\n const displayText =\n count === 0\n ? badgeNotEarnedMessage\n : `${awardedDatePrefix}${formattedDate}`;\n\n const accessibilityLabel =\n count === 0 ? 'Badge not yet earned' : `Badge earned on ${formattedDate}`;\n\n return (\n <Chip\n label={displayText?.toString() || ''}\n variant={count === 0 ? StatusVariant.GREY : StatusVariant.PRIMARY}\n accessibilityLabel={accessibilityLabel}\n testID=\"badge-tile-date-earned\"\n />\n );\n};\n","import React, { useMemo } from 'react';\nimport { useWindowDimensions, View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\n/**\n * Renders the description for a Badge Tile.\n *\n * @returns React.ReactElement or null if description is not present\n */\n\nexport const BadgeTileDescription = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const width = useWindowDimensions().width;\n const { theme } = useWllSdk();\n\n if (!isContextValid(tileContext)) return null;\n\n const { count, description, type } =\n tileContext.configuration as BadgeTileConfig;\n\n if (!description) return null;\n\n // For Latest type, hide description when count = 0\n // For Specific type, always show description\n if (count === 0 && type === BadgeTileType.Latest) return null;\n\n const numberOfLines = useMemo(() => {\n if (width <= 480) return 2;\n if (width <= 768) return 3;\n if (width <= 1024) return 1;\n return 2;\n }, [width]);\n\n return (\n <View\n accessible\n accessibilityLabel={`Badge description: ${description}`}\n testID=\"badge-tile-description\"\n style={{\n width: '100%',\n overflow: 'hidden',\n paddingBottom: theme.sizes.xxs,\n }}\n >\n <Text\n variant=\"body\"\n numberOfLines={numberOfLines}\n ellipsizeMode=\"tail\"\n accessibilityElementsHidden={true}\n importantForAccessibility=\"no-hide-descendants\"\n >\n {description}\n </Text>\n </View>\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the BadgeTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the BadgeTile component\n */\n\nexport const useBadgeTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n return StyleSheet.create({\n container: {\n flex: 1,\n },\n indicatorContainer: {\n position: 'absolute',\n bottom: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n right: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n backgroundColor: 'rgba(0,0,0,0.6)',\n borderRadius: 40,\n width: 40,\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n },\n countText: {\n color: '#FFF',\n fontSize: 14,\n fontWeight: 'bold',\n },\n header: {\n width: '100%',\n ...(!IS_WEB && { flexBasis: '50%' }),\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n marginBottom: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n image: {\n width: '100%',\n height: '100%',\n },\n titleText: {\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n dateEarnedContainer: {\n alignItems: 'flex-start',\n paddingHorizontal: 8,\n paddingVertical: 4,\n borderRadius: 20,\n },\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { shouldDesaturate } from '../../../utils/themeHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useBadgeTileStyles } from './styles';\n\nexport type BadgeTileMediaProps = {\n children?: React.ReactNode;\n alt?: string;\n} & Omit<React.ComponentProps<typeof ProgressiveImage>, 'source' | 'alt'>;\n/**\n * Renders the media for a Badge Tile.\n *\n * @returns React.ReactElement or null if media is not present\n */\n\nexport const BadgeTileMedia = ({\n children,\n alt,\n ...props\n}: BadgeTileMediaProps): React.ReactElement | null => {\n const styles = useBadgeTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { count, artworkUrl, emptyBadgeArtworkUrl, type, name } =\n tileContext.configuration as BadgeTileConfig;\n\n const displayUrl =\n type === BadgeTileType.Specific\n ? artworkUrl\n : count === 0\n ? emptyBadgeArtworkUrl\n : artworkUrl;\n\n if (!displayUrl) return null;\n\n return (\n <View style={styles.header} testID=\"badge-tile-media\">\n <ProgressiveImage\n {...props}\n source={{ uri: displayUrl }}\n style={styles.image}\n resizeMode=\"contain\"\n isDesaturated={shouldDesaturate(type, count)}\n alt={\n alt ??\n `Badge ${name}${type === BadgeTileType.Latest && count === 0 ? ' (not earned)' : ''}`\n }\n />\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport Icon from '../../atoms/Icon';\nimport { useBadgeTileStyles } from './styles';\n\n/**\n * Renders the status for a Badge Tile.\n *\n * @returns React.ReactElement or null if badge is not earned or badgeNotEarnedMessage exists\n */\n\nexport const BadgeTileStatus = (): React.ReactElement | null => {\n const styles = useBadgeTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) {\n return null;\n }\n\n const { count, type } = tileContext.configuration as BadgeTileConfig;\n\n if (type !== BadgeTileType.Specific || count === 1) {\n return null;\n }\n\n const isLocked = count === 0;\n const statusLabel = isLocked ? 'Badge locked' : `Earned ${count} times`;\n\n return (\n <View\n style={styles.indicatorContainer}\n accessible\n accessibilityLabel={statusLabel}\n testID=\"badge-tile-status\"\n >\n {isLocked ? (\n <Icon\n name=\"LockKeyhole\"\n testID=\"badge-tile-status-locked\"\n color=\"#FFF\"\n size={20}\n accessibilityElementsHidden={true}\n />\n ) : (\n <Text\n style={styles.countText}\n accessibilityElementsHidden={true}\n importantForAccessibility=\"no-hide-descendants\"\n >\n {count}x\n </Text>\n )}\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useBadgeTileStyles } from './styles';\n\n/**\n * Renders the title for a Badge Tile.\n *\n * @returns React.ReactElement or null if name is not present\n */\n\nexport const BadgeTileTitle = (): React.ReactElement | null => {\n const styles = useBadgeTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { count, name, emptyBadgeMessage, type } =\n tileContext.configuration as BadgeTileConfig;\n\n const displayText =\n type === BadgeTileType.Specific\n ? name\n : count === 0\n ? emptyBadgeMessage\n : name;\n\n if (!displayText) return null;\n\n return (\n <View\n accessible\n accessibilityLabel={`Badge title: ${displayText}`}\n testID=\"badge-tile-title\"\n >\n <Text\n variant=\"title\"\n style={styles.titleText}\n numberOfLines={2}\n ellipsizeMode=\"tail\"\n accessibilityElementsHidden={true}\n importantForAccessibility=\"no-hide-descendants\"\n >\n {displayText}\n </Text>\n </View>\n );\n};\n","import React from 'react';\nimport { Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Spacer } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { BadgeTileDateEarned } from './badge-tile-date-earned';\nimport { BadgeTileDescription } from './badge-tile-description';\nimport { BadgeTileMedia } from './badge-tile-media';\nimport { BadgeTileStatus } from './badge-tile-status';\nimport { BadgeTileTitle } from './badge-tile-title';\n\ntype BadgeTileProps = {\n tile: Tile;\n};\n\n/**\n * The main BadgeTile component.\n * @returns React.ReactElement or null if tile is not active or tileHeight is not full.\n * This component renders a badge tile with optional media, status, title, description, and date earned.\n */\n\nconst BadgeTileRoot = ({ tile }: BadgeTileProps): React.ReactElement | null => {\n if (!tile || tile.tileHeight !== TileHeight.Full || !tile.active) return null;\n\n return (\n <BaseTile tile={tile}>\n <BadgeTile.Media>\n <BadgeTile.Status />\n </BadgeTile.Media>\n\n <Layout justify=\"between\" align=\"start\">\n <BadgeTile.Title />\n <BadgeTile.Description />\n <Spacer />\n <BadgeTile.DateEarned />\n </Layout>\n </BaseTile>\n );\n};\n\n/**\n * The BadgeTile component with subcomponents attached.\n */\n\nexport const BadgeTile = Object.assign(BadgeTileRoot, {\n Media: BadgeTileMedia,\n Title: BadgeTileTitle,\n Description: BadgeTileDescription,\n DateEarned: BadgeTileDateEarned,\n Status: BadgeTileStatus,\n});\n\nexport default withTileFetching(BadgeTile);\n","import React from 'react';\nimport { useHandleTilePress } from '../../../hooks/useHandleTilePress';\nimport { BannerTileConfig, CTALinkTarget } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Button } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\n\n/**\n * Renders the call to action of a Banner Tile.\n *\n * @returns React.ReactElement or null if no text or required props are present\n */\n\nexport const BannerTileCTA = (): React.ReactElement | null => {\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const {\n ctaText = '',\n ctaLink = '',\n ctaLinkTarget,\n } = bannerContext.configuration as BannerTileConfig;\n\n if (!ctaText || !ctaLink) return null;\n\n const handlePress = useHandleTilePress(bannerContext, ctaLink, ctaLinkTarget);\n\n const hint = ctaLink\n ? ctaLinkTarget === CTALinkTarget.newWindow\n ? `Opens ${ctaLink} in a new window`\n : `Takes you to ${ctaLink}`\n : '';\n\n return (\n <Button\n testID=\"banner-tile-cta\"\n title={ctaText}\n variant=\"accent\"\n onPress={handlePress}\n accessibilityHint={hint}\n />\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the BannerTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the BannerTile component\n */\n\nexport const useBannerTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n slideContent: {\n flex: 1,\n },\n mediaContainer: {\n aspectRatio: 1,\n position: 'relative',\n overflow: 'hidden',\n marginRight: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n maxHeight: useResponsiveValue(253, 120, isDesktop, isTablet),\n minHeight: 120,\n },\n media: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n title: {\n fontSize: useResponsiveValue(\n theme.sizes.xxxl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n fontWeight: '700',\n },\n description: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.xs,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.xxxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n color: theme.derivedSurfaceText[20],\n },\n });\n};\n","import React from 'react';\nimport { BannerTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\nimport { useBannerTileStyles } from './styles';\n\n/**\n * Renders the description text of a Banner Tile.\n *\n * @returns React.ReactElement or null if no description is present\n */\n\nexport const BannerTileDescription = (): React.ReactElement | null => {\n const styles = useBannerTileStyles();\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const { description } = bannerContext.configuration as BannerTileConfig;\n\n if (!description) return null;\n\n return (\n <Text\n style={styles.description}\n role=\"article\"\n testID=\"banner-tile-description\"\n >\n {description}\n </Text>\n );\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { BannerTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\nimport { useBannerTileStyles } from './styles';\n\ntype BannerTileMediaProps = {\n isArtworkOnly: boolean;\n};\n\n// Extends ViewStyle to support percentage strings for width values, which React Native accepts at runtime but TypeScript doesn't type correctly\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n width?: string | number;\n};\n\n/**\n * Renders the media of a Banner Tile.\n *\n * @returns React.ReactElement or null if no media is present\n */\n\nexport const BannerTileMedia = ({\n isArtworkOnly,\n}: BannerTileMediaProps): React.ReactElement | null => {\n const styles = useBannerTileStyles();\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const { artworkUrl, title } = bannerContext.configuration as BannerTileConfig;\n\n if (!artworkUrl) return null;\n\n const containerStyle: ResponsiveViewStyle = {\n width: isArtworkOnly ? '100%' : '30%',\n };\n\n return (\n <View\n style={[styles.mediaContainer, containerStyle]}\n role=\"img\"\n accessibilityLabel={`Banner image${title ? ` for ${title}` : ''}`}\n testID=\"banner-tile-media\"\n >\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.media}\n alt={`Banner image${title ? ` for ${title}` : ''}`}\n />\n </View>\n );\n};\n","import React from 'react';\nimport { BannerTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\nimport { useBannerTileStyles } from './styles';\n\n/**\n * Renders the title of a Banner Tile.\n *\n * @returns React.ReactElement or null if no title is present\n */\n\nexport const BannerTileTitle = (): React.ReactElement | null => {\n const styles = useBannerTileStyles();\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const { title } = bannerContext.configuration as BannerTileConfig;\n\n if (!title) return null;\n\n return (\n <Text\n variant=\"title\"\n testID=\"banner-tile-title\"\n style={styles.title}\n role=\"heading\"\n accessibilityLabel={title}\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport BaseBanner from '../../../components/atoms/BaseBanner';\nimport { BannerTileConfig, Tile } from '../../../types/tile';\nimport { FullFlex } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { BannerTileCTA } from './banner-tile-cta';\nimport { BannerTileDescription } from './banner-tile-description';\nimport { BannerTileMedia } from './banner-tile-media';\nimport { BannerTileTitle } from './banner-tile-title';\n\ntype BannerTileProps = {\n tile: Tile;\n};\n\n/**\n * Helper function to determine if the tile is artwork-only.\n *\n * @param configuration - The configuration object of the tile.\n * @returns `true` if the tile has no title, description, or CTA text.\n */\n\nconst isArtworkOnly = (configuration?: BannerTileConfig): boolean => {\n if (!configuration) return true;\n\n return (\n !configuration.title && !configuration.description && !configuration.ctaText\n );\n};\n\n/**\n * The main BannerTile component.\n *\n * This component renders a banner tile with optional media, title, description, and CTA.\n *\n * @param {BannerTileProps} props - Component props\n * @returns {React.ReactElement | null} Rendered component or null if tile is inactive\n */\n\nconst BannerTileRoot = ({ tile }: BannerTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const configuration = tile.configuration as BannerTileConfig;\n\n return (\n <BaseBanner tile={tile}>\n <BannerTile.Media isArtworkOnly={isArtworkOnly(configuration)} />\n <FullFlex>\n <BannerTile.Title />\n <BannerTile.Description />\n <BannerTile.CTA />\n </FullFlex>\n </BaseBanner>\n );\n};\n\n/**\n * The BannerTile component with subcomponents attached.\n */\n\nexport const BannerTile = Object.assign(BannerTileRoot, {\n Media: BannerTileMedia,\n Title: BannerTileTitle,\n Description: BannerTileDescription,\n CTA: BannerTileCTA,\n});\n\nexport default withTileFetching(BannerTile);\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\nexport const ContentTileChevron = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n\n if (!isContextValid(tileContext)) return null;\n\n const { ctaLink } = tileContext.configuration as ContentTileConfig;\n\n if (!ctaLink) return null;\n\n return (\n <Icon\n name=\"ChevronRight\"\n size={IS_MOBILE ? 16 : undefined}\n color={sdk.theme?.derivedSurfaceText?.[20]}\n accessibilityLabel=\"View details\"\n testID=\"content-tile-chevron\"\n />\n );\n};\n","import { StyleSheet, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { getDirectionalMargin } from '../../../utils/styling';\n\n/**\n * Custom hook that returns the styles for the ContentTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the ContentTile component\n */\nexport const useContentTileStyles = (\n hasArtwork = false\n): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n const getHeaderStyle = (hasArtwork: boolean): ViewStyle => ({\n width: '100%',\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n ...(hasArtwork && {\n marginTop: useResponsiveValue(\n theme.sizes.xs,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n }),\n });\n\n return StyleSheet.create({\n imageContainer: {\n width: '100%',\n marginBottom: 0,\n overflow: 'hidden',\n },\n image: {\n width: '100%',\n resizeMode: 'cover',\n },\n content: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n flex: 1,\n },\n header: getHeaderStyle(hasArtwork),\n tileTitle: {\n maxWidth: '90%',\n flex: 1,\n ...getDirectionalMargin(8),\n },\n });\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useContentTileStyles } from './styles';\nimport { IS_WEB } from '../../../constants/device';\n\n// We are using percentage values for flexBasis, which is valid in\n// React Native but TypeScript expects a number.\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n flexBasis?: string | number;\n};\n\ntype ContentTileMediaProps = {\n isArtworkOnly: boolean;\n};\n\nexport const ContentTileMedia = ({\n isArtworkOnly,\n}: ContentTileMediaProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = '' } =\n tileContext.configuration as ContentTileConfig;\n\n if (!artworkUrl) return null;\n\n const hasArtwork = Boolean(artworkUrl);\n const styles = useContentTileStyles(hasArtwork);\n\n const containerStyle: ResponsiveViewStyle = {\n flexBasis: isArtworkOnly ? '100%' : '50%',\n ...(isArtworkOnly && IS_WEB && { aspectRatio: 1 }),\n };\n\n return (\n <View\n style={[styles.imageContainer, containerStyle]}\n testID=\"content-tile-media\"\n role=\"img\"\n accessibilityLabel={`Image for ${title}`}\n >\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n alt={`Image for ${title}`}\n />\n </View>\n );\n};\n","import React, { useMemo } from 'react';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\nexport const ContentTileSummary = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sizeInfo = useTileSize(tileContext);\n\n if (!isContextValid(tileContext)) return null;\n\n const { body, title, artworkUrl } =\n tileContext.configuration as ContentTileConfig;\n\n if (!body) return null;\n\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n const numberOfLines = useMemo(() => {\n if (!body) return undefined;\n\n if (isHalfSize) {\n if (!title && body) return 4;\n if (title && body) return 2;\n }\n\n if (artworkUrl) return 3;\n if (!title) return 8;\n\n return 6;\n }, [title, body, artworkUrl, isHalfSize]);\n\n return (\n <Text\n variant=\"body\"\n role=\"article\"\n accessibilityLabel={body}\n numberOfLines={numberOfLines}\n testID=\"content-tile-summary\"\n >\n {body}\n </Text>\n );\n};\n","import React, { useMemo } from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { useContentTileStyles } from './styles';\n\nexport const ContentTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useContentTileStyles();\n const sizeInfo = useTileSize(tileContext);\n\n if (!isContextValid(tileContext)) return null;\n\n const { title, ctaLink, body, artworkUrl } =\n tileContext.configuration as ContentTileConfig;\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n const numberOfLines = useMemo(() => {\n if (!title) return undefined;\n\n if (isHalfSize) {\n if (title && !body) return 3;\n }\n\n if (!body) return 7;\n\n return 2;\n }, [title, body, artworkUrl, isHalfSize]);\n\n if (!title) return null;\n\n const handleTitleWidth = () => {\n if (IS_MOBILE && ctaLink) {\n return styles.titleWithLink;\n }\n };\n\n return (\n <Text\n variant=\"title\"\n role=\"heading\"\n accessibilityLabel={title}\n numberOfLines={numberOfLines}\n style={handleTitleWidth()}\n testID=\"content-tile-title\"\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport { ContentTileConfig, Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { ContentTileChevron } from './content-tile-chevron';\nimport { ContentTileMedia } from './content-tile-media';\nimport { ContentTileSummary } from './content-tile-summary';\nimport { ContentTileTitle } from './content-tile-title';\nimport { useContentTileStyles } from './styles';\n\ntype ContentTileProps = {\n tile: Tile;\n};\n\n/**\n * Helper function to determine if the tile should display artwork only.\n *\n * @param configuration - The configuration object of the tile.\n * @returns `true` if the tile should display artwork only.\n */\nconst isArtworkOnly = (configuration?: ContentTileConfig): boolean => {\n if (!configuration) return false;\n return !configuration.title && !configuration.body;\n};\n\n/**\n * The ContentTile component renders a tile with media, title, summary, and a chevron.\n * This follows the same structure as RewardTile for consistent layout.\n *\n * @param {ContentTileProps} props - Component props\n * @param {Tile} props.tile - The tile data to render\n * @returns React.ReactElement or null if tile is inactive\n */\nconst ContentTileRoot = ({\n tile,\n}: ContentTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const configuration = tile.configuration as ContentTileConfig;\n const hasArtwork = Boolean(configuration.artworkUrl);\n const styles = useContentTileStyles(hasArtwork);\n\n return (\n <BaseTile tile={tile}>\n <ContentTile.Media isArtworkOnly={isArtworkOnly(configuration)} />\n {!isArtworkOnly(configuration) && (\n <Layout\n justify={hasArtwork ? 'start' : 'center'}\n style={{\n ...(!hasArtwork &&\n tile.tileHeight === TileHeight.Full && { aspectRatio: 1 }),\n }}\n >\n <Row justify=\"between\" align=\"center\" style={styles.header}>\n <ContentTile.Title />\n <ContentTile.Chevron />\n </Row>\n <ContentTile.Summary />\n </Layout>\n )}\n </BaseTile>\n );\n};\n\n/**\n * The ContentTile component with subcomponents attached.\n */\nexport const ContentTile = Object.assign(ContentTileRoot, {\n Media: ContentTileMedia,\n Title: ContentTileTitle,\n Summary: ContentTileSummary,\n Chevron: ContentTileChevron,\n});\n\nexport default withTileFetching(ContentTile);\n","import { useEffect } from 'react';\nimport { useWllSdk } from '../context/WllSdkContext';\nimport { TGroup } from '../types/group';\n\ntype UseGroupRefreshProps = {\n id: string;\n enabled?: boolean;\n setGroupData: (g: TGroup) => void;\n};\n\nexport const useGroupRefresh = ({\n id,\n enabled = false,\n setGroupData,\n}: UseGroupRefreshProps) => {\n const sdk = useWllSdk();\n\n useEffect(() => {\n if (!enabled || !sdk?.subscribeToDataChange) {\n return;\n }\n\n const unsubscribe = sdk.subscribeToDataChange(\n 'GROUP_DATA_CHANGED',\n async () => {\n if (!id || !sdk || !sdk.refreshGroup) {\n return;\n }\n\n try {\n const res = await sdk.refreshGroup(id);\n\n if (res?.status === 'success' && res.data) {\n setGroupData(res.data as TGroup);\n }\n } catch (err) {\n console.error('Error during silent refresh:', err);\n }\n }\n );\n\n return () => {\n unsubscribe();\n };\n }, [id, sdk, enabled, setGroupData]);\n};\n","import { useEffect, useState } from 'react';\nimport { APIResponse, useWllSdk } from '../context/WllSdkContext';\nimport type { TGroup } from '../types/group';\n\nconst inFlightRequests = new Map<string, Promise<APIResponse<TGroup>>>();\n\ntype UseInitialGroupFetchProps = {\n id: string;\n setGroupData: (group: TGroup) => void;\n};\n\nexport const useInitialGroupFetch = ({\n id,\n setGroupData,\n}: UseInitialGroupFetchProps): { isLoading: boolean; error: string | null } => {\n const sdk = useWllSdk();\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!id || !sdk?.refreshGroup) {\n setError('Unable to fetch group data: invalid configuration');\n setIsLoading(false);\n return;\n }\n\n let cancelled = false;\n\n const fetch = async (): Promise<void> => {\n setIsLoading(true);\n setError(null);\n\n const existing = inFlightRequests.get(id);\n const request = existing ?? sdk.refreshGroup(id);\n if (!existing) {\n inFlightRequests.set(id, request);\n request.finally(() => {\n if (inFlightRequests.get(id) === request) {\n inFlightRequests.delete(id);\n }\n });\n }\n\n try {\n const res = await request;\n if (cancelled) return;\n if (res?.status === 'success' && res.data) {\n setGroupData(res.data);\n } else {\n setError(res?.error ?? 'Failed to fetch group data');\n }\n } catch {\n if (!cancelled) setError('An unexpected error occurred.');\n } finally {\n if (!cancelled) setIsLoading(false);\n }\n };\n\n fetch();\n return () => {\n cancelled = true;\n };\n }, [id, sdk, setGroupData]);\n\n return { isLoading, error };\n};\n","import { useWllSdk } from '../context/WllSdkContext';\n\n/**\n * Hook to invalidate SDK data\n * @returns Methods to trigger SDK data updates\n */\nexport function useInvalidateData() {\n const sdk = useWllSdk();\n\n return {\n invalidateGroupData: () => {\n if (sdk) {\n sdk.notifyDataChange('GROUP_DATA_CHANGED');\n }\n },\n invalidateSectionData: (sectionId?: string) => {\n if (sdk) {\n sdk.notifyDataChange('SECTION_DATA_CHANGED', { sectionId });\n }\n },\n invalidateTileData: (tileId?: string) => {\n if (sdk) {\n sdk.notifyDataChange('TILE_DATA_CHANGED', { tileId });\n }\n },\n };\n}\n","import React, { useState, useCallback } from 'react';\nimport { RefreshControl } from 'react-native';\nimport { useInvalidateData } from './useInvalidateData';\n\ntype UsePullToRefreshProps = {\n onRefresh?: () => Promise<void>;\n refreshing?: boolean;\n};\n\nexport function usePullToRefresh({\n onRefresh,\n refreshing: externalRefreshing,\n}: UsePullToRefreshProps = {}) {\n const [internalRefreshing, setInternalRefreshing] = useState(false);\n const { invalidateGroupData } = useInvalidateData();\n\n const refreshing = externalRefreshing ?? internalRefreshing;\n\n const handleRefresh = useCallback(async () => {\n if (refreshing) return;\n\n setInternalRefreshing(true);\n\n try {\n if (onRefresh) {\n await onRefresh();\n } else {\n // Default behavior: refresh all group data\n invalidateGroupData();\n // Add a small delay to show the refresh animation\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n } catch (error) {\n console.error('Pull to refresh failed:', error);\n } finally {\n setInternalRefreshing(false);\n }\n }, [refreshing, onRefresh, invalidateGroupData]);\n\n const refreshControl = React.createElement(RefreshControl, {\n refreshing,\n onRefresh: handleRefresh,\n });\n\n return {\n refreshControl,\n refreshing,\n handleRefresh,\n };\n}\n","import { Tile } from './tile';\n\nexport enum SectionType {\n Grid = 'GRID',\n Banner = 'BANNER',\n}\n\nexport type TSection = {\n id: string;\n name: string;\n type: SectionType;\n createdAt: string;\n updatedAt: string;\n title?: string;\n description?: string;\n tiles: Tile[];\n pointsMultiplier?: number;\n pointsPrefix?: string | null;\n pointsSuffix?: string | null;\n priority: number;\n active: boolean;\n details?: [];\n defaultLocale: string;\n locale: string;\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useSectionHeaderStyles = (): ReturnType<\n typeof StyleSheet.create\n> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n sectionHeader: {\n marginBottom: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n sectionTitle: {\n fontSize: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xl,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n fontWeight: '700',\n color: theme.text,\n fontFamily: theme.fontFamily,\n },\n sectionDescription: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n color: theme.alphaDerivedText[80],\n fontFamily: theme.fontFamily,\n },\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport Text from '../../atoms/Text';\nimport { useSectionHeaderStyles } from './styles';\n\ntype SectionHeaderProps = {\n title?: string;\n description?: string;\n};\n\nconst SectionHeader = ({\n title,\n description,\n}: SectionHeaderProps): React.ReactElement | null => {\n const styles = useSectionHeaderStyles();\n const { theme } = useWllSdk();\n\n if (!title) {\n return null;\n }\n\n return (\n <View style={styles.sectionHeader}>\n {title && (\n <Text\n style={[\n styles.sectionTitle,\n {\n fontWeight: '700',\n color: theme.text,\n },\n ]}\n >\n {title}\n </Text>\n )}\n {description && (\n <Text\n style={[\n styles.sectionDescription,\n {\n color: theme.alphaDerivedText[80],\n },\n ]}\n >\n {description}\n </Text>\n )}\n </View>\n );\n};\n\nexport default SectionHeader;\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useCarouselStyles = (\n buttonSize = 42\n): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n container: {\n width: '100%',\n flex: 1,\n },\n sectionTitle: {\n fontSize: 31,\n marginBottom: 10,\n },\n sectionDescription: {\n marginBottom: 21,\n },\n title: {\n marginBottom: 10,\n },\n description: {\n marginBottom: 20,\n },\n carouselContainer: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n },\n carouselContent: {\n width: '100%',\n overflow: 'hidden',\n },\n slideContainer: {\n width: '100%',\n },\n navButton: {\n position: 'absolute',\n top: '50%',\n transform: [{ translateY: -buttonSize / 2 }],\n width: buttonSize,\n height: buttonSize,\n borderRadius: buttonSize / 2,\n backgroundColor: theme.background,\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1,\n },\n navButtonLeft: {\n left: -buttonSize / 2,\n },\n navButtonRight: {\n right: -buttonSize / 2,\n backgroundColor: theme.surface,\n },\n indicators: {\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n },\n indicator: {\n width: 8,\n height: 8,\n borderRadius: 8,\n marginHorizontal: 4,\n backgroundColor: theme.derivedBackground,\n },\n activeIndicator: {\n backgroundColor: theme.primary,\n },\n });\n};\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport {\n Animated,\n NativeScrollEvent,\n NativeSyntheticEvent,\n ScrollView,\n StyleSheet,\n useWindowDimensions,\n View,\n} from 'react-native';\nimport { CarouselNavButton } from '../.';\nimport { BUTTON_SIZE } from '../../../constants';\nimport { useResponsive } from '../../../context/ResponsiveContext';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { TSection } from '../../../types/section';\nimport { Tile, TileType } from '../../../types/tile';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { BannerTile } from '../../organisms';\nimport SectionHeader from '../SectionHeader';\nimport { useCarouselStyles } from './styles';\n\ntype CarouselProps = {\n section?: TSection;\n autoRotateInterval?: number;\n};\n\ntype CarouselState = {\n currentIndex: number;\n containerWidth: number;\n};\n\ntype CarouselAction =\n | { type: 'SET_CONTAINER_WIDTH'; payload: number }\n | { type: 'SET_CURRENT_INDEX'; payload: number }\n | { type: 'PREV_SLIDE' }\n | { type: 'NEXT_SLIDE'; maxIndex: number };\n\nconst initialState: CarouselState = {\n currentIndex: 0,\n containerWidth: 0,\n};\n\nconst carouselReducer = (\n state: CarouselState,\n action: CarouselAction\n): CarouselState => {\n switch (action.type) {\n case 'SET_CONTAINER_WIDTH':\n return { ...state, containerWidth: action.payload };\n case 'SET_CURRENT_INDEX':\n return { ...state, currentIndex: action.payload };\n case 'PREV_SLIDE':\n return { ...state, currentIndex: Math.max(0, state.currentIndex - 1) };\n case 'NEXT_SLIDE':\n return {\n ...state,\n currentIndex: Math.min(action.maxIndex, state.currentIndex + 1),\n };\n default:\n return state;\n }\n};\n\nconst Carousel = ({\n section,\n autoRotateInterval = 5000,\n}: CarouselProps): React.ReactElement | null => {\n if (!section) return null;\n const { width: WINDOW_WIDTH } = useWindowDimensions();\n const containerRef = useRef<View>(null);\n const styles = useCarouselStyles(BUTTON_SIZE);\n const animatedIndex = useRef(new Animated.Value(0)).current;\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n const scrollViewRef = useRef<ScrollView>(null);\n\n const [state, dispatch] = React.useReducer(carouselReducer, {\n ...initialState,\n containerWidth: WINDOW_WIDTH,\n });\n\n const { currentIndex, containerWidth } = state;\n\n const sortedTiles = sortByPriority(\n section.tiles.filter((tile: Tile) => tile.type === TileType.Banner)\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffsetX = event.nativeEvent.contentOffset.x;\n const newIndex = contentOffsetX / containerWidth;\n animatedIndex.setValue(newIndex);\n },\n [containerWidth, animatedIndex]\n );\n\n const handleScrollEnd = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffsetX = event.nativeEvent.contentOffset.x;\n const newIndex = Math.round(contentOffsetX / containerWidth);\n dispatch({ type: 'SET_CURRENT_INDEX', payload: newIndex });\n },\n [containerWidth]\n );\n\n const handlePrev = () => {\n dispatch({ type: 'PREV_SLIDE' });\n scrollViewRef.current?.scrollTo({\n x: (currentIndex - 1) * containerWidth,\n animated: true,\n });\n };\n\n const handleNext = () => {\n const nextIndex = Math.min(sortedTiles.length - 1, currentIndex + 1);\n dispatch({ type: 'NEXT_SLIDE', maxIndex: sortedTiles.length - 1 });\n scrollViewRef.current?.scrollTo({\n x: nextIndex * containerWidth,\n animated: true,\n });\n };\n\n const rotateToNextSlide = useCallback(() => {\n if (currentIndex >= sortedTiles.length - 1) {\n dispatch({ type: 'SET_CURRENT_INDEX', payload: 0 });\n scrollViewRef.current?.scrollTo({\n x: 0,\n animated: true,\n });\n } else {\n handleNext();\n }\n }, [currentIndex, containerWidth, sortedTiles.length]);\n\n useEffect(() => {\n if (sortedTiles.length <= 1) return;\n\n const rotationTimer = setInterval(() => {\n rotateToNextSlide();\n }, autoRotateInterval);\n\n return () => clearInterval(rotationTimer);\n }, [rotateToNextSlide, autoRotateInterval, sortedTiles.length]);\n\n const displayControls = sortedTiles.length > 1;\n const showPrevButton = displayControls && currentIndex > 0;\n const showNextButton =\n displayControls && currentIndex < sortedTiles.length - 1;\n\n const dynamicStyles = StyleSheet.create({\n indicators: {\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n },\n });\n\n return (\n <>\n <SectionHeader title={section.title} description={section.description} />\n <View\n ref={containerRef}\n style={[styles.container, { direction: 'ltr' }]}\n onLayout={(event) => {\n const { width } = event.nativeEvent.layout;\n dispatch({ type: 'SET_CONTAINER_WIDTH', payload: width });\n }}\n >\n <View style={styles.carouselContainer}>\n {showPrevButton && (\n <CarouselNavButton direction=\"left\" onPress={handlePrev} />\n )}\n <ScrollView\n ref={scrollViewRef}\n horizontal\n pagingEnabled\n showsHorizontalScrollIndicator={false}\n onScroll={handleScroll}\n onMomentumScrollEnd={handleScrollEnd}\n scrollEventThrottle={16}\n style={styles.carouselContent}\n contentContainerStyle={{\n width: containerWidth * sortedTiles.length,\n }}\n decelerationRate=\"fast\"\n snapToInterval={containerWidth}\n snapToAlignment=\"start\"\n >\n {sortedTiles.map((tile: Tile, index: number) => (\n <View\n key={index}\n style={[\n styles.slideContainer,\n {\n width: containerWidth,\n },\n ]}\n >\n <BannerTile tile={tile} />\n </View>\n ))}\n </ScrollView>\n {showNextButton && (\n <CarouselNavButton direction=\"right\" onPress={handleNext} />\n )}\n </View>\n {displayControls && (\n <View style={dynamicStyles.indicators}>\n {sortedTiles.map((_, index) => {\n const width = animatedIndex.interpolate({\n inputRange: [index - 1, index, index + 1],\n outputRange: [8, 30, 8],\n extrapolate: 'clamp',\n });\n return (\n <Animated.View\n key={index}\n style={[\n styles.indicator,\n { backgroundColor: theme.derivedBackground, width },\n index === currentIndex && {\n backgroundColor: theme.primary,\n },\n ]}\n />\n );\n })}\n </View>\n )}\n </View>\n </>\n );\n};\n\nexport default Carousel;\n","import { StyleSheet } from 'react-native';\nimport { BUTTON_SIZE } from '../../../constants';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\nexport const useNavButtonStyles = () => {\n const { theme } = useWllSdk();\n const buttonSize = IS_MOBILE ? BUTTON_SIZE * 0.75 : BUTTON_SIZE;\n\n return StyleSheet.create({\n navButton: {\n position: 'absolute',\n top: '50%',\n transform: [{ translateY: -buttonSize / 2 }],\n width: buttonSize,\n height: buttonSize,\n borderRadius: buttonSize / 2,\n backgroundColor: theme.background,\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1,\n },\n navButtonLeft: {\n left: -buttonSize / 2,\n },\n navButtonRight: {\n right: -buttonSize / 2,\n },\n });\n};\n","import React from 'react';\nimport { Pressable } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Icon } from '../../atoms';\nimport { useNavButtonStyles } from './styles';\n\ntype CarouselNavButtonProps = {\n direction: 'left' | 'right';\n onPress: () => void;\n};\n\nexport const CarouselNavButton = ({\n direction,\n onPress,\n}: CarouselNavButtonProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const isRight = direction === 'right';\n const styles = useNavButtonStyles();\n\n return (\n <Pressable\n style={[\n styles.navButton,\n isRight ? styles.navButtonRight : styles.navButtonLeft,\n { backgroundColor: theme.background },\n ]}\n onPress={onPress}\n accessibilityLabel={`${isRight ? 'Next' : 'Previous'} slide`}\n role=\"button\"\n >\n <Icon\n name={isRight ? 'ArrowRight' : 'ArrowLeft'}\n size={20}\n color={theme.primary}\n />\n </Pressable>\n );\n};\n\nexport default CarouselNavButton;\n","import React, { useCallback, useMemo } from 'react';\nimport { StyleSheet, View, ViewStyle } from 'react-native';\nimport { IS_WEB, SCREEN_WIDTH } from '../../../constants/device';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { getDirectionalMargin } from '../../../utils/styling';\nimport { useResponsive } from '../../../context/ResponsiveContext';\nimport { SectionType, TSection } from '../../../types/section';\nimport { Tile, TileHeight, TileType } from '../../../types/tile';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { TileContainer } from '../../atoms';\nimport { SectionHeader } from '../../molecules';\n\ntype GridProps = {\n section: TSection;\n};\n\nconst Grid = ({ section }: GridProps) => {\n if (section.type !== SectionType.Grid) {\n return null;\n }\n\n const { isDesktop } = useResponsive();\n const columnsPerRow = isDesktop ? 4 : 2;\n\n const gridTiles = useMemo(() => {\n return sortByPriority(\n section.tiles.filter((tile) => tile.type !== TileType.Banner)\n );\n }, [section.tiles]);\n\n const getTileWidth = useCallback((columns: number) => {\n if (IS_WEB) {\n return {\n width: `calc(${100 / columns}% - ${((columns - 1) * GRID_GAP) / columns}px)`,\n marginBottom: GRID_GAP,\n };\n } else {\n const availableWidth = SCREEN_WIDTH - GRID_GAP * 2;\n const gapSpace = (columns - 1) * GRID_GAP;\n\n const tileWidth = Math.floor((availableWidth - gapSpace) / columns);\n return {\n width: tileWidth,\n marginBottom: GRID_GAP,\n };\n }\n }, []);\n\n const renderTileContainers = useCallback(() => {\n const tileContainers: React.ReactElement[] = [];\n let currentTiles: Tile[] = [];\n\n const sortedTiles = sortByPriority(gridTiles);\n\n sortedTiles.forEach((tile, index) => {\n currentTiles.push(tile);\n const nextTile = sortedTiles[index + 1];\n\n const shouldStartNewContainer = (\n currentTiles: Tile[],\n currentTile: Tile,\n nextTile?: Tile\n ) => {\n if (currentTiles.length === 2) return true;\n if (currentTile.tileHeight === TileHeight.Full) return true;\n if (currentTile.tileHeight === TileHeight.Half) {\n if (!nextTile) return true;\n if (nextTile.tileHeight === TileHeight.Full) return true;\n if (currentTiles.length === 0) return false;\n if (\n currentTiles.length === 1 &&\n currentTiles[0].tileHeight === TileHeight.Half &&\n nextTile.tileHeight === TileHeight.Half\n ) {\n return false;\n }\n }\n return true;\n };\n\n if (shouldStartNewContainer(currentTiles, tile, nextTile)) {\n const isLastInRow = (tileContainers.length + 1) % columnsPerRow === 0;\n tileContainers.push(\n <View\n key={`container-${index}`}\n style={[\n // @ts-ignore Web uses CSS calc strings for responsive layouts, while ViewStyle expects numbers\n getTileWidth(columnsPerRow) as ViewStyle,\n !isLastInRow && getDirectionalMargin(GRID_GAP),\n ]}\n >\n <TileContainer tiles={currentTiles} />\n </View>\n );\n currentTiles = [];\n }\n });\n\n return tileContainers;\n }, [gridTiles, columnsPerRow, getTileWidth]);\n\n return (\n <View>\n <SectionHeader title={section.title} description={section.description} />\n <View style={styles.grid}>{renderTileContainers()}</View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n grid: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n width: '100%',\n },\n});\n\nexport default Grid;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Size, Variant } from '../../../types/theme';\nimport { Icon, ProgressBar } from '../../atoms';\n\nexport type ProgressIndicatorProps = {\n currentPoints: number;\n maxPoints: number;\n variant?: Variant;\n height?: Size;\n attained?: boolean;\n};\n\nexport const ProgressIndicator = ({\n currentPoints,\n maxPoints,\n variant = 'primary',\n height = 'sm',\n attained = false,\n}: ProgressIndicatorProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const percentage = attained ? 100 : (currentPoints / maxPoints) * 100;\n const isComplete = percentage >= 100 || attained;\n let progressVariant: Variant = variant;\n\n if (isComplete) {\n progressVariant = 'primary';\n } else if (percentage < 50) {\n progressVariant = 'accent';\n }\n\n return (\n <View style={styles.container}>\n <ProgressBar\n percentage={percentage}\n variant={progressVariant}\n height={height}\n />\n <View style={[styles.circleContainer]}>\n <View\n style={[\n styles.circle,\n {\n borderColor: theme.derivedSurface[20],\n backgroundColor: isComplete ? theme.primary : theme.surface,\n borderWidth: isComplete ? 0 : 4,\n },\n ]}\n >\n {isComplete && (\n <Icon name=\"Check\" size={12} color={theme.primaryText} />\n )}\n </View>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n circleContainer: {\n position: 'absolute',\n right: 0,\n },\n circle: {\n width: 21,\n height: 21,\n borderRadius: 9999,\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default ProgressIndicator;\n","import { StyleSheet } from 'react-native';\nimport { MAX_WIDTH } from '../../../constants';\nimport { IS_WEB } from '../../../constants/device';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the Section component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the Section component\n */\n\nexport const useSectionStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n return StyleSheet.create({\n section: {\n width: '100%',\n maxWidth: IS_WEB ? MAX_WIDTH : MAX_WIDTH - GRID_GAP * 2,\n marginHorizontal: 'auto',\n marginBottom: useResponsiveValue(\n theme.sizes.xxxxxl,\n theme.sizes.xxxxl,\n isDesktop,\n isTablet\n ),\n ...(IS_WEB ? {} : { paddingHorizontal: GRID_GAP }),\n },\n });\n};\n","import React, { createContext, useContext, useEffect, useState } from 'react';\nimport { Text, View } from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { SectionType, TSection } from '../../../types/section';\nimport { commonStyles } from '../../../utils/styling';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { Skeleton } from '../../atoms';\nimport { Carousel, Grid } from '../../molecules';\nimport { useSectionStyles } from './styles';\n\ntype SectionContextType = {\n sectionData: TSection;\n};\n\ntype SectionProps = {\n section?: TSection;\n sectionId?: string;\n};\n\n/**\n * SectionContext provides the current section data to child components.\n */\n\nexport const SectionContext = createContext<SectionContextType | undefined>(\n undefined\n);\n\n/**\n * Custom hook to access the SectionContext.\n *\n * @returns {SectionContextType} The section context value\n * @throws {Error} If used outside of a SectionProvider\n */\n\nexport const useSectionContext = (): SectionContextType => {\n const context = useContext(SectionContext);\n if (!context) {\n throw new Error('useSectionContext must be used within a SectionProvider');\n }\n return context;\n};\n\n/**\n * Custom hook to fetch section data.\n *\n * @param {TSection} [section] - The section data if provided directly\n * @param {string} [sectionId] - The ID of the section to fetch\n * @returns {Object} Object containing section data, loading state, and any error\n */\n\nconst useSectionData = (\n section?: TSection,\n sectionId?: string\n): {\n sectionData: TSection | null;\n isLoading: boolean;\n error: string | null;\n} => {\n const sdk = useWllSdk();\n const [sectionData, setSectionData] = useState<TSection | null>(\n section || null\n );\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (section) {\n setSectionData(section);\n } else if (sectionId && sdk && sdk.getSectionByID) {\n const fetchSection = async () => {\n setIsLoading(true);\n try {\n const response = await sdk.getSectionByID(sectionId);\n if (response && response.status === 'success' && response.data) {\n setSectionData(response.data);\n } else {\n setError(\n (response && response.error) || 'Failed to fetch section data.'\n );\n }\n } catch (err) {\n setError(\n err instanceof Error ? err.message : 'Failed to fetch section data.'\n );\n } finally {\n setIsLoading(false);\n }\n };\n fetchSection();\n }\n }, [section, sectionId, sdk]);\n\n return { sectionData, isLoading, error };\n};\n\n/**\n * Component to display an empty state with a message.\n *\n * @param {Object} props - Component props\n * @param {string} props.message - Message to display in the empty state\n * @returns {React.ReactElement} The empty state component\n */\n\nconst EmptyState = ({ message }: { message: string }): React.ReactElement => (\n <View\n style={commonStyles.emptyContainer}\n role=\"article\"\n accessibilityLabel={`Empty state: ${message}`}\n >\n <Text>{message}</Text>\n </View>\n);\n\n/**\n * The Section component renders a section based on its type (e.g., Banner, Grid).\n *\n * @param {SectionProps} props - Component props\n * @param {TSection} [props.section] - The section data\n * @param {string} [props.sectionId] - The ID of the section to fetch\n * @returns {React.ReactElement|null} The rendered section or null if invalid props\n */\n\n\n\nconst Section: React.FC<SectionProps> = ({ section, sectionId }) => {\n const styles = useSectionStyles();\n const { sectionData, isLoading, error } = useSectionData(section, sectionId);\n\n if (!section && !sectionId) {\n console.warn(\n 'Section component requires either section or sectionId prop.'\n );\n return null;\n }\n\n const renderSectionContent = (): React.ReactElement | null => {\n if (isLoading) {\n return (\n <Skeleton\n aria-label=\"Loading section content\"\n numberOfSquares={IS_WEB ? 4 : 2}\n />\n );\n }\n\n if (error || !sectionData) {\n return <EmptyState message={error || 'No section data available.'} />;\n }\n\n // Filter out inactive tiles before passing to child components\n const activeTiles =\n sectionData.tiles &&\n sortByPriority(sectionData.tiles.filter((tile) => tile && tile.active));\n\n if (!activeTiles || activeTiles.length === 0) {\n return <EmptyState message=\"No active tiles available.\" />;\n }\n\n const sectionWithActiveTiles = { ...sectionData, tiles: activeTiles };\n\n if (!sectionData.type) {\n console.warn('Section is missing a type');\n return <EmptyState message=\"Invalid section configuration.\" />;\n }\n\n switch (sectionData.type) {\n case SectionType.Banner:\n return <Carousel section={sectionWithActiveTiles} />;\n case SectionType.Grid:\n return <Grid section={sectionWithActiveTiles} />;\n default:\n console.warn(`Unknown section type: ${sectionData.type}`);\n return <EmptyState message=\"Unknown section type.\" />;\n }\n };\n\n return sectionData ? (\n <SectionContext.Provider value={{ sectionData }}>\n <View\n style={styles.section}\n accessible\n accessibilityLabel={`Section: ${sectionData.title || 'Untitled section'}`}\n accessibilityHint={sectionData.description || undefined}\n role=\"region\"\n >\n {renderSectionContent()}\n </View>\n </SectionContext.Provider>\n ) : null;\n};\n\nexport default Section;\n","import React, { createContext, useContext, useState } from 'react';\nimport { ScrollView, View } from 'react-native';\nimport { IS_MOBILE, IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useGroupRefresh } from '../../../hooks/useGroupRefresh';\nimport { useInitialGroupFetch } from '../../../hooks/useInitialGroupFetch';\nimport { usePullToRefresh } from '../../../hooks/usePullToRefresh';\nimport { TGroup } from '../../../types/group';\nimport { commonStyles } from '../../../utils/styling';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { Skeleton, Text } from '../../atoms';\nimport Section from '../Section';\n\ntype GroupProps = {\n id: string;\n enablePullToRefresh?: boolean;\n onRefresh?: () => Promise<void>;\n};\n\ntype GroupContextType = {\n groupData: TGroup;\n};\n\ntype GroupEmptyStateProps = {\n message: string;\n};\n\n/**\n * Context for providing group data to child components\n */\nexport const GroupContext = createContext<GroupContextType | undefined>(\n undefined\n);\n\n/**\n * Custom hook to access the GroupContext\n *\n * @returns {GroupContextType} The group context data\n * @throws {Error} If used outside of a GroupProvider\n */\nexport const useGroupContext = (): GroupContextType => {\n const context = useContext(GroupContext);\n if (!context) {\n throw new Error('useGroupContext must be used within a GroupProvider');\n }\n return context;\n};\n\n/**\n * Custom hook to fetch and manage group data\n *\n * This hook handles two distinct data fetching scenarios:\n * 1. Initial fetch: Shows loading state while first loading data\n * 2. Background refresh: Updates data silently without loading states\n *\n * The hook subscribes to GROUP_DATA_CHANGED events to refresh data\n * when notified by the host application, ensuring UI remains responsive\n * without showing loading indicators during refreshes.\n *\n * @param {string} id - The ID of the group to fetch\n * @returns {Object} Object containing group data, loading state, and any error\n */\n\nconst useGroupData = (id: string) => {\n const [groupData, setGroupData] = useState<TGroup | null>(null);\n\n const { isLoading, error } = useInitialGroupFetch({ id, setGroupData });\n useGroupRefresh({\n id,\n enabled: Boolean(groupData),\n setGroupData,\n });\n\n return { groupData, isLoading, error };\n};\n\n/**\n * Component to display an empty state with a message\n *\n * @param {GroupEmptyStateProps} props - Component props\n * @param {string} props.message - Message to display\n * @returns {React.ReactElement} The empty state component\n */\n\nexport const GroupEmptyState = ({\n message,\n}: GroupEmptyStateProps): React.ReactElement => (\n <View\n style={commonStyles.emptyContainer}\n accessible\n accessibilityLabel={`Empty state: ${message}`}\n >\n <Text variant=\"body\">{message}</Text>\n </View>\n);\n\n/**\n * Component to render all sections in a group\n *\n * @returns {React.ReactElement} The sections component\n */\n\nexport const GroupSections = (): React.ReactElement => {\n const { groupData } = useGroupContext();\n\n if (!groupData || !groupData.sections || groupData.sections.length === 0) {\n return <GroupEmptyState message=\"This group doesn't have any sections\" />;\n }\n\n // Filter out inactive sections and null/undefined values before sorting\n const activeSections = groupData.sections.filter(\n (section) => section && section.active\n );\n\n if (activeSections.length === 0) {\n return (\n <GroupEmptyState message=\"This group doesn't have any active sections\" />\n );\n }\n\n const sortedSections = sortByPriority(activeSections);\n\n const Container = IS_WEB ? View : ScrollView;\n\n return (\n <Container\n accessible\n accessibilityLabel={`Group: ${groupData.name || 'Unnamed group'}`}\n role=\"region\"\n >\n {sortedSections.map((section) => (\n <Section key={section.id} section={section} />\n ))}\n </Container>\n );\n};\n\n/**\n * A page-level component that represents a Group view in the application.\n *\n * This component serves as a container page that manages the fetching and display\n * of a group's data and its associated sections. It handles various states including\n * loading, errors, and empty states, providing a complete page experience for\n * viewing group content.\n *\n * @param {GroupProps} props - Component props\n * @param {string} props.id - The unique identifier of the group to fetch and display\n * @returns {React.ReactElement|null} The rendered group or null if invalid ID\n */\n\nconst Group = ({\n id,\n enablePullToRefresh = true,\n onRefresh\n}: GroupProps): React.ReactElement | null => {\n if (!id) {\n console.warn('Group component requires id prop');\n return null;\n }\n\n const { groupData, isLoading, error } = useGroupData(id);\n const { theme } = useWllSdk();\n const { refreshControl, refreshing } = usePullToRefresh({\n onRefresh,\n refreshing: isLoading && !groupData\n });\n\n if (isLoading && !groupData) {\n return (\n <View\n style={{\n flex: 1,\n padding: IS_MOBILE ? theme.sizes.lg : undefined,\n }}\n accessible\n accessibilityLabel=\"Loading group data\"\n >\n <Skeleton numberOfSquares={IS_WEB ? 4 : 2} />\n </View>\n );\n }\n\n if (error || !groupData) {\n return <GroupEmptyState message={error || 'No group data available'} />;\n }\n\n const Container = IS_WEB ? View : ScrollView;\n const containerProps = IS_WEB\n ? {}\n : {\n refreshControl: enablePullToRefresh ? refreshControl : undefined,\n showsVerticalScrollIndicator: true,\n };\n\n return (\n <GroupContext.Provider value={{ groupData }}>\n <View testID=\"group-container\">\n <Container {...containerProps}>\n <GroupSections />\n </Container>\n </View>\n </GroupContext.Provider>\n );\n};\n\nexport default Group;\n","/**\n * Cleans up a number by removing any whitespace and ensuring it's a valid number\n * @param value The number to clean up\n * @returns A cleaned up number as a number\n */\nexport const cleanNumber = (value: number): number => {\n return Number(\n Number(value.toString().trim().replace(/\\s+/g, '')).toFixed(2)\n );\n};\n\n/**\n * Applies a multiplier to a base value. Handles string multipliers by converting them to numbers.\n * If the multiplier is invalid (NaN, null, undefined), defaults to 1.\n *\n * @param baseValue The base value to multiply\n * @param pointsMultiplier Optional multiplier value (defaults to 1)\n * @returns The calculated points value\n */\nexport const applyMultiplier = (\n baseValue: number,\n pointsMultiplier?: string | number | null\n): number => {\n if (typeof baseValue !== 'number' || isNaN(baseValue)) {\n return 0;\n }\n const multiplier = Number(pointsMultiplier ?? 1);\n const result = baseValue * (isNaN(multiplier) ? 1 : multiplier);\n return cleanNumber(result);\n};\n\n/**\n * Formats a points label by combining the label, points value, and optional prefix/suffix.\n * Only includes non-empty values in the final string.\n * Returns empty string if points is 0.\n *\n * @param label The main label text (e.g., \"Reward points:\"). Defaults to \"Reward points:\"\n * @param points The points value to display. Defaults to 0\n * @param prefix Optional prefix to display before the points value\n * @param suffix Optional suffix to display after the points value\n * @returns A formatted string containing only the non-empty parts joined together, or empty string if points is 0\n */\nexport const getPointsLabel = (\n label: string | undefined = 'Reward points:',\n points: number = 0,\n prefix?: string | null,\n suffix?: string | null\n) => {\n if (typeof points !== 'number' || isNaN(points) || points === 0) {\n return '';\n }\n return [label, prefix, points, suffix]\n .filter((item) => item !== null && item !== undefined && item !== '')\n .join(' ');\n};\n","import { ImageProps, ViewStyle } from 'react-native';\n\nexport type ImagePropsNoSource = Omit<ImageProps, 'source'>;\n\nexport type FlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\nexport type Justify =\n | 'start'\n | 'end'\n | 'center'\n | 'between'\n | 'around'\n | 'evenly';\n\nexport type Align = 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n\nexport type LayoutProps = {\n children: React.ReactNode;\n justify?: Justify;\n align?: Align;\n direction?: FlexDirection;\n style?: ViewStyle;\n};\n\nexport const justifyMap: Record<Justify, ViewStyle['justifyContent']> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n} as const;\n\nexport const alignMap: Record<Align, ViewStyle['alignItems']> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n stretch: 'stretch',\n baseline: 'baseline',\n} as const;\n","import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { Align, alignMap, Justify, justifyMap } from '../../../types/common';\n\ntype ColumnProps = {\n children: React.ReactNode;\n justify?: Justify;\n align?: Align;\n reverse?: boolean;\n flex?: number;\n style?: ViewProps['style'];\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A primitive Column component that extends Layout with vertical direction.\n * Provides a cleaner API for creating vertically aligned layouts.\n * @param reverse - When true, reverses the direction of the column (column-reverse)\n * @param justify - The justify content of the column\n * @param align - The align items of the column\n * @param flex - Optional flex number to control the column's flex behavior\n * @param style - Additional styles to apply to the column\n */\nexport const Column = ({\n children,\n justify = 'start',\n align = 'start',\n reverse = false,\n flex,\n style,\n ...rest\n}: ColumnProps): React.ReactElement => {\n const styles = StyleSheet.create({\n container: {\n justifyContent: justifyMap[justify],\n alignItems: alignMap[align],\n flexDirection: reverse ? 'column-reverse' : 'column',\n ...(flex !== undefined && { flex }),\n },\n });\n return (\n <View style={[styles.container, style]} {...rest}>\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { View, ViewProps, ViewStyle } from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\n/**\n * Props for the FullFlex component.\n *\n * @param children - The child components to render inside the flex container.\n * @param style - Optional custom styles to apply to the container.\n */\ntype FullFlexProps = {\n children: React.ReactNode;\n style?: ViewStyle;\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A FullFlex component that provides a flexible container with `flex: 1`.\n *\n * This component is commonly used to create a full-flex container that expands\n * to fill available space in a layout.\n */\nexport const FullFlex = ({\n children,\n style,\n ...rest\n}: FullFlexProps): React.ReactElement => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n const isRTL =\n IS_WEB &&\n typeof document !== 'undefined' &&\n document.documentElement.dir === 'rtl';\n\n return (\n <View\n style={[\n {\n flex: 1,\n // If the language is Arabic (RTL), use 'rtl', otherwise 'ltr'.\n direction: isRTL ? 'rtl' : 'ltr',\n ...(isRTL && {\n marginRight: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n }),\n },\n style,\n ]}\n {...rest}\n >\n {children}\n </View>\n );\n};\n","import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport {\n Align,\n alignMap,\n FlexDirection,\n Justify,\n justifyMap,\n} from '../../../types/common';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\ntype LayoutProps = {\n children: React.ReactNode;\n direction?: FlexDirection;\n justify?: Justify;\n align?: Align;\n style?: ViewProps['style'];\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A primitive Layout component that provides flexible layout options.\n * @param direction - The direction of the layout (column or row)\n * @param justify - The justify content of the layout\n * @param align - The align items of the layout\n * @param style - Additional styles to apply to the layout\n * @param children - The child components to render inside the layout\n * @returns The rendered Layout component with special paddings\n */\nexport const Layout = ({\n children,\n direction = 'column',\n justify = 'start',\n align = 'start',\n style = {},\n ...rest\n}: LayoutProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n const dynamicStyles = StyleSheet.create({\n container: {\n flexGrow: 1,\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n paddingBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n justifyContent: justifyMap[justify],\n alignItems: alignMap[align],\n flexDirection: direction,\n },\n });\n return (\n <View style={[dynamicStyles.container, style]} {...rest}>\n {children}\n </View>\n );\n};\n","import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { Align, alignMap, Justify, justifyMap } from '../../../types/common';\n\ntype RowProps = {\n children: React.ReactNode;\n justify?: Justify;\n align?: Align;\n reverse?: boolean;\n flex?: number;\n style?: ViewProps['style'];\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A primitive Row component that extends Layout with horizontal direction.\n * Provides a cleaner API for creating horizontally aligned layouts.\n * @param reverse - When true, reverses the direction of the row (row-reverse)\n * @param justify - The justify content of the row\n * @param align - The align items of the row\n * @param flex - Optional flex number to control the row's flex behavior\n * @param style - Additional styles to apply to the row\n */\nexport const Row = ({\n children,\n justify = 'start',\n align = 'center',\n reverse = false,\n flex,\n style,\n ...rest\n}: RowProps): React.ReactElement => {\n const styles = StyleSheet.create({\n container: {\n justifyContent: justifyMap[justify],\n alignItems: alignMap[align],\n flexDirection: reverse ? 'row-reverse' : 'row',\n ...(flex !== undefined && { flex }),\n },\n });\n return (\n <View style={[styles.container, style]} {...rest}>\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { View, ViewProps, ViewStyle } from 'react-native';\n\n/**\n * Props for the Spacer component.\n *\n * @param style - Optional custom styles to apply to the spacer.\n */\ntype SpacerProps = {\n style?: ViewStyle;\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A simple Spacer component that creates flexible space in layouts.\n *\n * The Spacer is commonly used in flexbox layouts to create adjustable empty space\n * between child elements, avoiding the need for explicit margins or padding.\n */\nexport const Spacer = ({ style, ...rest }: SpacerProps): React.ReactElement => {\n return <View style={[{ flex: 1 }, style]} {...rest} />;\n};\n","import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the PointsTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the PointsTile component\n */\n\nexport const usePointsTileStyles = (\n isFullSize?: boolean\n): {\n container: ViewStyle;\n contentContainer: ViewStyle;\n contentColumn: ViewStyle;\n mediaColumn: ViewStyle;\n chevronContainer: ViewStyle;\n suffix: TextStyle;\n pointsWithSuffix: ViewStyle;\n imageContainer: ViewStyle;\n image: ImageStyle;\n} => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n container: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n width: '100%',\n flexDirection: isFullSize ? 'row' : 'row-reverse',\n alignItems: isFullSize ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n },\n contentContainer: {\n width: '100%',\n },\n contentColumn: {\n flexGrow: 1,\n paddingBottom: theme.sizes.xxs,\n },\n mediaColumn: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n suffix: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n color: theme.primary,\n },\n pointsWithSuffix: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n chevronContainer: {\n marginLeft: !isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n },\n imageContainer: {\n width: isFullSize ? '100%' : isDesktop ? 57 : 40,\n marginBottom: isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n backgroundColor: isFullSize\n ? theme.alphaDerivedPrimary[20]\n : theme.surface,\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n } as ViewStyle,\n image: {\n minHeight: 130,\n width: '100%',\n height: '100%',\n resizeMode: 'contain',\n } as ImageStyle,\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { applyMultiplier } from '../../../utils/pointsHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { Row } from '../../atoms/Primatives';\nimport { usePointsTileStyles } from './styles';\n\n/**\n * Renders formatted points value for a Points Tile.\n *\n * @returns React.ReactElement or null if points are undefined or zero\n */\n\nexport const PointsTileFormattedPoints = (): React.ReactElement | null => {\n const styles = usePointsTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n pointsMultiplier = 1,\n pointsPrefix = '',\n pointsSuffix = 'pts',\n points = 0,\n } = tileContext.configuration as PointsTileConfig;\n\n if (points === undefined) return null;\n\n const calculatedPoints = applyMultiplier(points, pointsMultiplier);\n const fullPointsText =\n `${pointsPrefix}${calculatedPoints} ${pointsSuffix}`.trim();\n\n return (\n <View\n testID=\"points-tile-points\"\n role=\"article\"\n accessibilityLabel={`Points value: ${fullPointsText}`}\n >\n <Row align=\"center\" justify=\"start\">\n {pointsPrefix ? (\n <Text variant=\"caption\" testID=\"points-tile-prefix\">\n {pointsPrefix}\n </Text>\n ) : null}\n <Text variant=\"caption\" testID=\"points-tile-value\">\n {calculatedPoints}\n </Text>\n {pointsSuffix ? (\n <Text\n variant=\"caption\"\n style={styles.suffix}\n testID=\"points-tile-suffix\"\n >\n {pointsSuffix}\n </Text>\n ) : null}\n </Row>\n </View>\n );\n};\n","import React from 'react';\nimport { Image, View } from 'react-native';\n\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { usePointsTileStyles } from './styles';\n\ntype PointsTileMediaProps = {\n isFullSize: boolean;\n};\n\n/**\n * Renders the media of a Points Tile.\n *\n * @returns React.ReactElement or null if media is not present\n */\n\nexport const PointsTileMedia = ({\n isFullSize,\n}: PointsTileMediaProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = 'Points' } =\n tileContext.configuration as PointsTileConfig;\n const styles = usePointsTileStyles(isFullSize);\n\n if (!artworkUrl) return null;\n\n return (\n <View\n testID=\"points-tile-media\"\n style={styles.imageContainer}\n role=\"img\"\n accessibilityLabel={`Points tile image for ${title}`}\n >\n <Image\n source={{ uri: artworkUrl }}\n style={styles.image}\n resizeMode={isFullSize ? 'cover' : 'contain'}\n />\n </View>\n );\n};\n","import React from 'react';\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the title of a Points Tile.\n *\n * @returns React.ReactElement or null if no title is present\n */\n\nexport const PointsTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { title } = tileContext.configuration as PointsTileConfig;\n\n if (!title) return null;\n\n return (\n <Text\n variant=\"eyebrow\"\n testID=\"points-tile-title\"\n role=\"heading\"\n accessibilityLabel={title}\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { View } from 'react-native';\nimport { usePointsTileStyles } from './styles';\n/**\n * Renders a chevron icon for a Roundup Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const PointsTileChevron = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n const styles = usePointsTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { ctaLink } = tileContext.configuration as PointsTileConfig;\n\n if (!ctaLink) return null;\n\n return (\n <View style={styles.chevronContainer}>\n <Icon\n name=\"ChevronRight\"\n size={16}\n color={sdk.theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View balance\"\n />\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { PointsTileConfig, Tile } from '../../../types/tile';\nimport { BaseTile, Column, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { PointsTileFormattedPoints } from './points-tile-formatted-points';\nimport { PointsTileMedia } from './points-tile-media';\nimport { PointsTileTitle } from './points-tile-title';\nimport { usePointsTileStyles } from './styles';\nimport { PointsTileChevron } from './points-tile-chevron';\ntype PointsTileProps = {\n tile: Tile;\n};\n\n/**\n * The PointsTile component renders a tile with media, title, and formatted points.\n *\n * @param props - Component props\n * @returns React.ReactElement or null if tile is inactive or missing required props\n */\n\nconst PointsTileRoot = ({ tile }: PointsTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const config = tile.configuration as PointsTileConfig;\n if (!config) return null;\n\n const { isFullSize } = useTileSize(tile);\n const styles = usePointsTileStyles(isFullSize);\n\n return (\n <BaseTile tile={tile}>\n {isFullSize && <PointsTile.Media isFullSize />}\n <View style={styles.container}>\n <Row style={styles.contentContainer}>\n <Column style={styles.contentColumn}>\n <PointsTile.Title />\n <PointsTile.Points />\n </Column>\n <Column style={styles.mediaColumn}>\n {!isFullSize && <PointsTile.Media isFullSize={false} />}\n <PointsTile.Chevron />\n </Column>\n </Row>\n </View>\n </BaseTile>\n );\n};\n\n/**\n * The PointsTile component with subcomponents attached.\n */\n\nexport const PointsTile = Object.assign(PointsTileRoot, {\n Title: PointsTileTitle,\n Points: PointsTileFormattedPoints,\n Media: PointsTileMedia,\n Chevron: PointsTileChevron,\n});\n\nexport default withTileFetching(PointsTile);\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the RewardCategory component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the RewardCategory component\n */\n\nexport const useRewardCategoryTileStyles = (): ReturnType<\n typeof StyleSheet.create\n> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n zIndex: 10,\n height: 35,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.primary,\n },\n headerText: {\n fontSize: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n paddingHorizontal: useResponsiveValue(\n theme.sizes.xxxxl,\n 20,\n isDesktop,\n isTablet\n ),\n color: theme.primaryText,\n },\n background: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { RewardCategoryTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardCategoryTileStyles } from './styles';\n\n/**\n * Renders the header for a Reward Category Tile.\n *\n * @returns React.ReactElement or null if showName is false or name is not present\n */\n\nexport const RewardCategoryHeader = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useRewardCategoryTileStyles();\n const { theme } = useWllSdk();\n\n if (!isContextValid(tileContext)) return null;\n\n const { showName = true, name = '' } =\n tileContext.configuration as RewardCategoryTileConfig;\n\n if (!showName || !name) return null;\n\n return (\n <View\n style={[styles.header, { backgroundColor: theme.primary }]}\n testID=\"reward-category-header\"\n role=\"heading\"\n accessibilityLabel={`Reward category: ${name}`}\n >\n <Text\n style={[styles.headerText, { color: theme.primaryText }]}\n ellipsizeMode=\"tail\"\n numberOfLines={1}\n >\n {name}\n </Text>\n </View>\n );\n};\n","import React from 'react';\nimport { RewardCategoryTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardCategoryTileStyles } from './styles';\n\n/**\n * Renders the background media for a Reward Category Tile.\n *\n * @returns React.ReactElement or null if no artwork URL is present\n */\n\nexport const RewardCategoryMedia = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n const styles = useRewardCategoryTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, name = 'Reward' } =\n tileContext.configuration as RewardCategoryTileConfig;\n\n if (!artworkUrl) return null;\n\n return (\n <ProgressiveImage\n testID=\"reward-category-media\"\n source={{ uri: artworkUrl }}\n style={styles.background}\n alt={`Reward category image for ${name}`}\n role=\"img\"\n />\n );\n};\n","import React from 'react';\nimport { Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { RewardCategoryHeader } from './reward-category-header';\nimport { RewardCategoryMedia } from './reward-category-media';\nimport { View } from 'react-native';\n\ntype RewardCategoryTileProps = {\n tile: Tile;\n};\n\n/**\n * The RewardCategoryTile component renders a tile with a header and media.\n *\n * @param {RewardCategoryTileProps} props - The component props\n * @param {Tile} props.tile - The tile data to render\n * @returns {React.ReactElement|null} Rendered component or null if tile is inactive or missing configuration\n */\n\nconst RewardCategoryTileRoot = ({\n tile,\n}: RewardCategoryTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n return (\n <BaseTile tile={tile}>\n <View\n style={{ aspectRatio: tile.tileHeight === TileHeight.Half ? 2 : 1 }}\n >\n <RewardCategoryTile.Header />\n <RewardCategoryTile.Media />\n </View>\n </BaseTile>\n );\n};\n\n/**\n * The RewardCategoryTile component with subcomponents attached.\n */\nexport const RewardCategoryTile = Object.assign(RewardCategoryTileRoot, {\n Header: RewardCategoryHeader,\n Media: RewardCategoryMedia,\n});\n\nexport default withTileFetching(RewardCategoryTile);\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Icon } from '../../atoms';\n\n/**\n * Renders a chevron icon for a Reward Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const RewardTileChevron = (): React.ReactElement => {\n const { theme } = useWllSdk();\n\n return (\n <Icon\n name=\"ChevronRight\"\n size={IS_MOBILE ? 16 : undefined}\n color={theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View reward details\"\n />\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { getDirectionalMargin } from '../../../utils/styling';\n\n/**\n * Custom hook that returns the styles for the RewardTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the RewardTile component\n */\n\nexport const useRewardTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n imageContainer: {\n width: '100%',\n minHeight: 130,\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n image: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n lockIcon: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: '100%',\n height: '100%',\n },\n content: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n footer: {\n marginTop: 8,\n },\n pointsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n suffix: {\n color: theme.primary,\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n },\n header: {\n width: '100%',\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n tileTitle: {\n maxWidth: '90%',\n flex: 1,\n ...getDirectionalMargin(8),\n },\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n });\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { RewardTileConfig, TileHeight } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon, ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardTileStyles } from './styles';\n\ntype RewardTileMediaProps = {\n isArtworkOnly: boolean;\n};\n\n// We are using percentage values for flexBasis, which is valid in\n// React Native but TypeScript expects a number.\n\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n flexBasis?: string | number;\n};\n\n/**\n * Renders the media for a Reward Tile.\n *\n * @param props {RewardTileMediaProps} - Component props\n * @param props.isArtworkOnly {boolean} - Whether the media should be rendered as an artwork only component\n * @returns React.ReactElement or null if no artwork URL is present or artwork should not be shown\n */\n\nexport const RewardTileMedia = ({\n isArtworkOnly,\n}: RewardTileMediaProps): React.ReactElement | null => {\n const styles = useRewardTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n artworkUrl,\n showArtwork = true,\n name = 'Reward',\n isLocked = false,\n } = tileContext.configuration as RewardTileConfig;\n\n if (!artworkUrl || !showArtwork) return null;\n\n // When artwork-only, the media should occupy the full tile height and compensate\n // for any content layout that might be hidden. We therefore force the media\n // container to flex and take the entire available height, removing default\n // bottom margins and min-heights coming from styles.\n const containerStyle: ResponsiveViewStyle = isArtworkOnly\n ? {\n flexBasis: '100%',\n flex: 1,\n height: '100%',\n marginBottom: 0,\n minHeight: 0,\n aspectRatio: tileContext.tileHeight === TileHeight.Half ? 2 : 1,\n }\n : {\n flexBasis: '50%',\n ...(tileContext.tileHeight === TileHeight.Half && { minHeight: 0 }),\n };\n\n return (\n <View\n style={[styles.imageContainer, containerStyle]}\n testID=\"reward-tile-media\"\n role=\"img\"\n accessibilityLabel={`Reward image for ${name}`}\n >\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n alt={`Reward image for ${name}`}\n />\n {isLocked && (\n <View style={styles.lockOverlay} testID=\"lock-overlay\">\n <Icon name=\"LockKeyhole\" size={48} color=\"white\" />\n </View>\n )}\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { RewardTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { applyMultiplier, getPointsLabel } from '../../../utils/pointsHelpers';\nimport { Row, Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardTileStyles } from './styles';\n\n/**\n * Renders the points value of a Reward Tile.\n *\n * @returns React.ReactElement or null if price should not be shown or is zero/undefined\n */\n\nexport const RewardTilePoints = (): React.ReactElement | null => {\n const styles = useRewardTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n showPrice = true,\n price = 0,\n pointsMultiplier = 1,\n pointsPrefix = '',\n pointsSuffix = 'pts',\n } = tileContext.configuration as RewardTileConfig;\n\n if (!showPrice || price === undefined || price === 0) return null;\n\n const calculatedPoints = applyMultiplier(price, pointsMultiplier);\n\n const accessibilityLabel = getPointsLabel(\n 'Reward points:',\n calculatedPoints,\n pointsPrefix,\n pointsSuffix\n );\n\n return (\n <View\n style={{ marginTop: 'auto' }}\n testID=\"reward-tile-points\"\n role=\"article\"\n accessibilityLabel={accessibilityLabel}\n >\n <Row align=\"center\" justify=\"start\">\n {pointsPrefix ? <Text variant=\"caption\">{pointsPrefix}</Text> : null}\n <Text variant=\"caption\" testID=\"reward-tile-points-value\">\n {calculatedPoints}\n </Text>\n {pointsSuffix ? (\n <Text variant=\"caption\" style={styles.suffix}>\n {pointsSuffix}\n </Text>\n ) : null}\n </Row>\n </View>\n );\n};\n","import React from 'react';\nimport { RewardTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the summary of a Reward Tile.\n *\n * @returns React.ReactElement or null if no summary is present\n */\n\nexport const RewardTileSummary = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n summary,\n showPrice = true,\n price,\n } = tileContext.configuration as RewardTileConfig;\n\n const shouldShowPrice =\n showPrice && price !== undefined && price !== null && price !== 0;\n\n const numberOfLines = shouldShowPrice ? 2 : 3;\n\n if (!summary) return null;\n\n return (\n <Text\n variant=\"body\"\n role=\"article\"\n accessibilityLabel={summary}\n testID=\"reward-tile-summary\"\n numberOfLines={numberOfLines}\n ellipsizeMode=\"tail\"\n >\n {summary}\n </Text>\n );\n};\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { RewardTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardTileStyles } from './styles';\n\n/**\n * Renders the title of a Reward Tile.\n *\n * @returns React.ReactElement or null if no name is present\n */\n\nexport const RewardTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useRewardTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { name } = tileContext.configuration as RewardTileConfig;\n\n if (!name) return null;\n\n const handleTitleWidth = () => {\n if (IS_MOBILE) {\n return styles.titleWithLink;\n }\n };\n\n return (\n <Text\n variant=\"title\"\n ellipsizeMode=\"tail\"\n numberOfLines={1}\n role=\"heading\"\n accessibilityLabel={`Reward title: ${name}`}\n testID=\"reward-tile-title\"\n style={handleTitleWidth()}\n >\n {name}\n </Text>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { RewardTileConfig, Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\n\nimport { RewardTileChevron } from './reward-tile-chevron';\nimport { RewardTileMedia } from './reward-tile-media';\nimport { RewardTilePoints } from './reward-tile-points';\nimport { RewardTileSummary } from './reward-tile-summary';\nimport { RewardTileTitle } from './reward-tile-title';\nimport { useRewardTileStyles } from './styles';\n\ntype RewardTileProps = {\n tile: Tile;\n};\n\n/**\n * Helper function to determine if the tile should display artwork only.\n *\n * @param configuration - The configuration object of the tile.\n * @returns `true` if the tile should display artwork only.\n */\n\nconst isArtworkOnly = (configuration?: RewardTileConfig): boolean => {\n if (!configuration) return false;\n return !configuration.showDetails;\n};\n\n/**\n * The RewardTile component renders a tile with media, title, summary, points, and a chevron.\n *\n * @param {RewardTileProps} props - Component props\n * @param {Tile} props.tile - The tile data to render\n * @returns React.ReactElement or null if tile is inactive or not a full-height tile\n */\n\nconst RewardTileRoot = ({\n tile,\n}: RewardTileProps): React.ReactElement | null => {\n const styles = useRewardTileStyles();\n\n if (\n !tile ||\n tile.tileHeight !== TileHeight.Full ||\n !tile.active ||\n !tile.configuration\n )\n return null;\n\n const configuration = tile.configuration as RewardTileConfig;\n const artworkOnly = isArtworkOnly(configuration);\n return (\n <BaseTile tile={tile}>\n <RewardTile.Media isArtworkOnly={artworkOnly} />\n {!artworkOnly && (\n <Layout>\n <Row justify=\"between\" align=\"center\" style={styles.header}>\n <RewardTile.Title />\n <RewardTile.Chevron />\n </Row>\n {/**\n * Ensure text wrapping works in constrained layouts (e.g., 50% width tiles on mobile).\n * React Native Web requires minWidth: 0 on flex children to allow shrink/wrap.\n */}\n <View style={{ width: '100%', maxWidth: '100%', minWidth: 0 }}>\n <RewardTile.Summary />\n </View>\n <RewardTile.Points />\n </Layout>\n )}\n </BaseTile>\n );\n};\n\n/**\n * The RewardTile component with subcomponents attached.\n */\n\nexport const RewardTile = Object.assign(RewardTileRoot, {\n Media: RewardTileMedia,\n Title: RewardTileTitle,\n Summary: RewardTileSummary,\n Points: RewardTilePoints,\n Chevron: RewardTileChevron,\n});\n\nexport default withTileFetching(RewardTile);\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useTierTileStyles = () => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n return StyleSheet.create({\n header: {\n width: '100%',\n overflow: 'hidden',\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n title: {\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n smallImageContainer: {\n width: 48,\n height: 48,\n position: 'relative',\n },\n smallImage: {\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n image: {\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n },\n name: {\n marginBottom: 0,\n },\n });\n};\n","import * as React from 'react';\nimport { Image, View } from 'react-native';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { TierTileConfig, Tile } from '../../../types/tile';\nimport {\n BaseTile,\n FullFlex,\n Layout,\n ProgressiveImage,\n Text,\n} from '../../atoms';\nimport { useTierTileStyles } from './styles';\n\ntype TierTileProps = {\n tile: Tile;\n};\n\ntype TierTileComponent = React.FC<TierTileProps> & {\n Full: typeof TierTileFull;\n Half: typeof TierTileHalf;\n Empty: typeof TierTileEmpty;\n};\n\nconst TierTileInner: React.FC<TierTileProps> = ({ tile }) => {\n if (!tile) return null;\n\n const { configuration } = tile as { configuration: TierTileConfig };\n const { tier } = configuration;\n const { isHalfSize } = useTileSize(tile);\n\n if (!tier || Array.isArray(tier)) {\n return <TierTile.Empty tile={tile} />;\n }\n\n return isHalfSize ? (\n <TierTile.Half tile={tile} />\n ) : (\n <TierTile.Full tile={tile} />\n );\n};\n\nconst TierTileFull: React.FC<TierTileProps> = ({ tile }) => {\n const styles = useTierTileStyles();\n\n const { configuration } = tile as { configuration: TierTileConfig };\n const { tier, title } = configuration;\n const { artworkUrl, name, description } = tier ?? {};\n\n return (\n <BaseTile tile={tile}>\n {artworkUrl && (\n <View style={styles.header}>\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n resizeMode=\"center\"\n />\n </View>\n )}\n <Layout align=\"stretch\" justify={artworkUrl ? 'start' : 'center'}>\n <View>\n {title && (\n <Text variant=\"eyebrow\" style={styles.title}>\n {title}\n </Text>\n )}\n {name && (\n <Text variant=\"title\" style={styles.title}>\n {name}\n </Text>\n )}\n {description && <Text variant=\"body\">{description}</Text>}\n </View>\n </Layout>\n </BaseTile>\n );\n};\n\nconst TierTileHalf: React.FC<TierTileProps> = ({ tile }) => {\n const styles = useTierTileStyles();\n\n const { configuration } = tile as { configuration: TierTileConfig };\n const { tier, title } = configuration as TierTileConfig;\n const { artworkUrl, name } = tier || {};\n\n return (\n <BaseTile tile={tile}>\n <Layout\n align=\"center\"\n justify=\"between\"\n direction=\"row\"\n style={{ paddingTop: 16 }}\n >\n <View style={{ flex: 1, flexShrink: 1 }}>\n {title && (\n <Text variant=\"eyebrow\" style={styles.title}>\n {title}\n </Text>\n )}\n {name && (\n <Text variant=\"title\" style={styles.name} numberOfLines={2}>\n {name}\n </Text>\n )}\n </View>\n {artworkUrl && (\n <View style={styles.smallImageContainer}>\n <Image\n source={{ uri: artworkUrl }}\n style={styles.smallImage}\n resizeMode=\"contain\"\n />\n </View>\n )}\n </Layout>\n </BaseTile>\n );\n};\n\n// Empty state tile\nconst TierTileEmpty: React.FC<TierTileProps> = ({ tile }) => {\n const styles = useTierTileStyles();\n const { configuration } = tile as { configuration: TierTileConfig };\n const { title, emptyDescription, emptyArtworkUrl } = configuration;\n const { isHalfSize } = useTileSize(tile);\n\n if (isHalfSize) {\n return (\n <BaseTile tile={tile}>\n <Layout\n align=\"center\"\n justify=\"between\"\n direction=\"row\"\n style={{ paddingTop: 16 }}\n >\n <FullFlex>\n {title && (\n <Text variant=\"title\" style={styles.title}>\n {title}\n </Text>\n )}\n {emptyDescription && <Text variant=\"body\">{emptyDescription}</Text>}\n </FullFlex>\n {emptyArtworkUrl && (\n <View style={styles.smallImageContainer}>\n <Image\n source={{ uri: emptyArtworkUrl }}\n style={styles.smallImage}\n resizeMode=\"contain\"\n />\n </View>\n )}\n </Layout>\n </BaseTile>\n );\n }\n\n return (\n <BaseTile tile={tile}>\n {emptyArtworkUrl && (\n <View style={styles.header}>\n <ProgressiveImage\n source={{ uri: emptyArtworkUrl }}\n style={styles.image}\n resizeMode=\"center\"\n />\n </View>\n )}\n <Layout align=\"stretch\" justify=\"center\">\n <Layout>\n {title && (\n <Text variant=\"title\" style={styles.title}>\n {title}\n </Text>\n )}\n {emptyDescription && <Text variant=\"body\">{emptyDescription}</Text>}\n </Layout>\n </Layout>\n </BaseTile>\n );\n};\n\nexport const TierTile = TierTileInner as TierTileComponent;\n\nTierTile.Full = TierTileFull;\nTierTile.Half = TierTileHalf;\nTierTile.Empty = TierTileEmpty;\n\nexport default TierTile;\n","import React from 'react';\nimport { View } from 'react-native';\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { Row } from '../../atoms/Primatives';\nimport { cleanNumber } from '../../../utils/pointsHelpers';\n/**\n * Renders formatted points value for a Roundup Tile.\n *\n * @returns React.ReactElement or null if points are undefined or zero\n */\n\nexport const RoundupTileFormattedPoints = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n balance = 0,\n amountPrefix = '',\n amountSuffix = '',\n } = tileContext.configuration as RoundupTileConfig;\n\n if (balance === undefined) return null;\n\n const fullPointsText = `${amountPrefix}${cleanNumber(balance)}${amountSuffix}`.trim();\n\n return (\n <View\n testID=\"roundup-tile-amount\"\n role=\"article\"\n accessibilityLabel={`Amount: ${fullPointsText}`}\n >\n <Row align=\"center\" justify=\"start\">\n <Text variant=\"caption\" testID=\"roundup-tile-value\">\n {fullPointsText}\n </Text>\n </Row>\n </View>\n );\n};\n","import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the RoundupTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the RoundupTile component\n */\n\nexport const useRoundupTileStyles = (\n isFullSize?: boolean\n): {\n container: ViewStyle;\n contentContainer: ViewStyle;\n contentColumn: ViewStyle;\n mediaColumn: ViewStyle;\n chevronContainer: ViewStyle;\n suffix: TextStyle;\n pointsWithSuffix: ViewStyle;\n imageContainer: ViewStyle;\n image: ImageStyle;\n} => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n container: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n width: '100%',\n flexDirection: isFullSize ? 'row' : 'row-reverse',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n contentContainer: {\n width: '100%',\n },\n contentColumn: {\n flexGrow: 1,\n },\n mediaColumn: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n suffix: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n color: theme.primary,\n },\n pointsWithSuffix: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n chevronContainer: {\n marginLeft: !isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n },\n imageContainer: {\n width: isFullSize ? '100%' : isDesktop ? 57 : 40,\n height: isFullSize ? '50%' : isDesktop ? 57 : 40,\n marginBottom: isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n backgroundColor: isFullSize\n ? theme.alphaDerivedPrimary[20]\n : theme.surface,\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n } as ViewStyle,\n image: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n resizeMode: 'contain',\n } as ImageStyle,\n });\n};\n","import React from 'react';\nimport { Image, View } from 'react-native';\n\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRoundupTileStyles } from './styles';\n\ntype RoundupTileMediaProps = {\n isFullSize: boolean;\n};\n\n/**\n * Renders the media of a Points Tile.\n *\n * @returns React.ReactElement or null if media is not present\n */\n\nexport const RoundupTileMedia = ({\n isFullSize,\n}: RoundupTileMediaProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = 'Balance' } =\n tileContext.configuration as RoundupTileConfig;\n const styles = useRoundupTileStyles(isFullSize);\n\n if (!artworkUrl) return null;\n\n return (\n <View\n testID=\"roundup-tile-media\"\n style={styles.imageContainer}\n role=\"img\"\n accessibilityLabel={`Roundup tile image for ${title}`}\n >\n <Image\n source={{ uri: artworkUrl }}\n style={styles.image}\n resizeMode={isFullSize ? 'cover' : 'contain'}\n />\n </View>\n );\n};\n","import React from 'react';\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the title of a Roundup Tile.\n *\n * @returns React.ReactElement or null if no title is present\n */\n\nexport const RoundupTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { title } = tileContext.configuration as RoundupTileConfig;\n\n if (!title) return null;\n\n return (\n <Text\n variant=\"eyebrow\"\n testID=\"roundup-tile-title\"\n role=\"heading\"\n accessibilityLabel={title}\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { View } from 'react-native';\nimport { useRoundupTileStyles } from './styles';\n\n/**\n * Renders a chevron icon for a Roundup Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const RoundupTileChevron = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n const styles = useRoundupTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { ctaLink } = tileContext.configuration as RoundupTileConfig;\n\n if (!ctaLink) return null;\n\n return (\n <View style={styles.chevronContainer}>\n <Icon\n name=\"ChevronRight\"\n size={16}\n color={sdk.theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View balance\"\n />\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { RoundupTileConfig, Tile } from '../../../types/tile';\nimport { BaseTile, Column, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { RoundupTileFormattedPoints } from './roundup-tile-formatted-points';\nimport { RoundupTileMedia } from './roundup-tile-media';\nimport { RoundupTileTitle } from './roundup-tile-title';\nimport { useRoundupTileStyles } from './styles';\nimport { RoundupTileChevron } from './roundup-tile-chevron';\ntype RoundupTileProps = {\n tile: Tile;\n};\n\n/**\n * The PointsTile component renders a tile with media, title, and formatted points.\n *\n * @param props - Component props\n * @returns React.ReactElement or null if tile is inactive or missing required props\n */\n\nconst RoundupTileRoot = ({ tile }: RoundupTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const config = tile.configuration as RoundupTileConfig;\n if (!config) return null;\n\n const { isFullSize } = useTileSize(tile);\n const styles = useRoundupTileStyles(isFullSize);\n\n return (\n <BaseTile tile={tile}>\n {isFullSize && <RoundupTile.Media isFullSize />}\n <View style={styles.container}>\n <Row style={styles.contentContainer}>\n <Column style={styles.contentColumn}>\n <RoundupTile.Title />\n <RoundupTile.Points />\n </Column>\n <Column style={styles.mediaColumn}>\n {!isFullSize && <RoundupTile.Media isFullSize={false} />}\n <RoundupTile.Chevron />\n </Column>\n </Row>\n </View>\n </BaseTile>\n );\n};\n\n/**\n * The PointsTile component with subcomponents attached.\n */\n\nexport const RoundupTile = Object.assign(RoundupTileRoot, {\n Title: RoundupTileTitle,\n Points: RoundupTileFormattedPoints,\n Media: RoundupTileMedia,\n Chevron: RoundupTileChevron,\n});\n\nexport default withTileFetching(RoundupTile);\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Icon } from '../../atoms';\n\n/**\n * Renders a chevron icon for a Venue Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const VenueTileChevron = (): React.ReactElement => {\n const { theme } = useWllSdk();\n\n return (\n <Icon\n name=\"ChevronRight\"\n size={IS_MOBILE ? 16 : undefined}\n color={theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View venue details\"\n />\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { getDirectionalMargin } from '../../../utils/styling';\n\n/**\n * Custom hook that returns the styles for the VenueTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the VenueTile component\n */\n\nexport const useVenueTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n imageContainer: {\n width: '100%',\n minHeight: 130,\n overflow: 'hidden',\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n image: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n },\n content: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n flex: 1,\n },\n footer: {\n marginTop: 8,\n },\n pointsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n suffix: {\n color: theme.primary,\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n },\n header: {\n width: '100%',\n paddingTop: theme.sizes.xxxs,\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n tileTitle: {\n maxWidth: '90%',\n flex: 1,\n ...getDirectionalMargin(8),\n },\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n pinOverlay: {\n position: 'absolute',\n top: 8,\n right: 8,\n zIndex: 20,\n },\n });\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { TileHeight, VenueTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon, ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useVenueTileStyles } from './styles';\n\n// We are using percentage values for flexBasis, which is valid in\n// React Native but TypeScript expects a number.\n\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n flexBasis?: string | number;\n};\n\n/**\n * Renders the media for a Venue Tile.\n *\n * @returns React.ReactElement or null if no artwork URL is present or artwork should not be shown\n */\n\nexport const VenueTileMedia = (): React.ReactElement | null => {\n const styles = useVenueTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n artworkUrl,\n name = 'Venue',\n isLocked = false,\n } = tileContext.configuration as VenueTileConfig;\n\n const containerStyle: ResponsiveViewStyle = {\n flexBasis: '50%',\n ...(tileContext.tileHeight === TileHeight.Half && { minHeight: 0 }),\n };\n\n const showCenteredPin = !artworkUrl && !isLocked;\n\n return (\n <View\n style={[styles.imageContainer, containerStyle]}\n testID=\"venue-tile-media\"\n role=\"img\"\n accessibilityLabel={`Venue image for ${name}`}\n >\n {artworkUrl && (\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n alt={`Venue image for ${name}`}\n />\n )}\n <View style={styles.lockOverlay} testID=\"lock-overlay\">\n {isLocked && <Icon name=\"LockKeyhole\" size={48} color=\"white\" />}\n {showCenteredPin ? (\n <Icon name=\"MapPin\" size={48} color=\"white\" />\n ) : (\n <View style={styles.pinOverlay} testID=\"pin-overlay\">\n <Icon name=\"MapPin\" size={24} color=\"white\" />\n </View>\n )}\n </View>\n </View>\n );\n};\n","import React from 'react';\nimport { VenueTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the summary of a Venue Tile.\n *\n * @returns React.ReactElement or null if no summary is present\n */\n\nexport const VenueTileDescription = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n description,\n } = tileContext.configuration as VenueTileConfig;\n\n if (!description) return null;\n\n return (\n <Text\n variant=\"body\"\n role=\"article\"\n accessibilityLabel={description}\n testID=\"venue-tile-description\"\n numberOfLines={3}\n ellipsizeMode=\"tail\"\n >\n {description}\n </Text>\n );\n};","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { VenueTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useVenueTileStyles } from './styles';\n\n/**\n * Renders the title of a Venue Tile.\n *\n * @returns React.ReactElement or null if no name is present\n */\n\nexport const VenueTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useVenueTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { name } = tileContext.configuration as VenueTileConfig;\n\n if (!name) return null;\n\n const handleTitleWidth = () => {\n if (IS_MOBILE) {\n return styles.tileTitle;\n }\n };\n\n return (\n <Text\n variant=\"title\"\n ellipsizeMode=\"tail\"\n numberOfLines={1}\n role=\"heading\"\n accessibilityLabel={`Venue title: ${name}`}\n testID=\"venue-tile-title\"\n style={handleTitleWidth()}\n >\n {name}\n </Text>\n );\n};\n","import React from 'react';\nimport { Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\n\nimport { VenueTileChevron } from './venue-tile-chevron';\nimport { VenueTileMedia } from './venue-tile-media';\nimport { VenueTileDescription } from './venue-tile-description';\nimport { VenueTileTitle } from './venue-tile-title';\nimport { useVenueTileStyles } from './styles';\n\ntype VenueTileProps = {\n tile: Tile;\n};\n\n/**\n * The VenueTile component renders a tile with media, title, description, and a chevron.\n *\n * @param {VenueTileProps} props - Component props\n * @param {Tile} props.tile - The tile data to render\n */\n\nconst VenueTileRoot = ({ tile }: VenueTileProps): React.ReactElement | null => {\n const styles = useVenueTileStyles();\n\n if (\n !tile ||\n tile.tileHeight !== TileHeight.Full ||\n !tile.active ||\n !tile.configuration\n )\n return null;\n\n return (\n <BaseTile tile={tile}>\n <VenueTile.Media />\n <Layout>\n <Row justify=\"between\" align=\"center\" style={styles.header}>\n <VenueTile.Title />\n <VenueTile.Chevron />\n </Row>\n <VenueTile.Description />\n </Layout>\n </BaseTile>\n );\n};\n\n/**\n * The VenueTile component with subcomponents attached.\n */\n\nexport const VenueTile = Object.assign(VenueTileRoot, {\n Media: VenueTileMedia,\n Title: VenueTileTitle,\n Description: VenueTileDescription,\n Chevron: VenueTileChevron,\n});\n\nexport default withTileFetching(VenueTile);\n","import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { Tile, TileHeight, TileType } from '../../../types/tile';\nimport {\n BadgeTile,\n BannerTile,\n PointsTile,\n RewardCategoryTile,\n RewardTile,\n TierTileUpdated,\n RoundupTile,\n ContentTile,\n} from '../../organisms';\nimport VenueTile from '../../organisms/VenueTile';\n\ntype TileContainerProps = {\n tiles: Tile[];\n};\n\nconst TILE_COMPONENTS: Record<TileType, React.ComponentType<{ tile: Tile }>> = {\n [TileType.Content]: ContentTile,\n [TileType.Badge]: BadgeTile,\n [TileType.Tier]: TierTileUpdated,\n [TileType.Points]: PointsTile,\n [TileType.Reward]: RewardTile,\n [TileType.RewardCategory]: RewardCategoryTile,\n [TileType.Banner]: BannerTile,\n [TileType.Roundup]: RoundupTile,\n [TileType.Venue]: VenueTile,\n};\n\n/**\n * TileContainer component to render a list of tiles with proper layout and spacing.\n */\nconst TileContainer = ({ tiles }: TileContainerProps): React.ReactElement => {\n const allHalfHeight =\n tiles.length > 0 &&\n tiles.every((tile) => tile.tileHeight === TileHeight.Half);\n\n const halfHeightGap = allHalfHeight ? GRID_GAP / 2 : GRID_GAP;\n\n return (\n <View\n style={[styles.container, allHalfHeight && { aspectRatio: 1 }]}\n testID=\"tile-container\"\n >\n {tiles.map((tile, index) => {\n const TileComponent = TILE_COMPONENTS[tile.type!];\n const isHalfHeight = tile.tileHeight === TileHeight.Half;\n\n return (\n <View\n key={tile.id}\n style={[\n styles.tileWrapper,\n isHalfHeight && styles.halfHeightTile,\n index > 0 && {\n marginTop: allHalfHeight ? halfHeightGap : GRID_GAP,\n },\n ]}\n >\n {TileComponent ? <TileComponent tile={tile} /> : null}\n </View>\n );\n })}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n },\n tileWrapper: {\n flex: 1,\n width: '100%',\n },\n halfHeightTile: {\n flex: 0.5,\n },\n});\n\nexport default TileContainer;\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useChipStyles = () => {\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n\n const paddingHorizontal = useResponsiveValue(12, 8, isDesktop, isTablet);\n const paddingVertical = useResponsiveValue(6, 3, isDesktop, isTablet);\n const fontSize = useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xs,\n isDesktop,\n isTablet\n );\n const lineHeight = Math.max(fontSize, Math.round(fontSize * 1.3));\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n paddingHorizontal,\n paddingVertical,\n borderRadius: theme.sizes.borderRadiusRounded,\n overflow: 'hidden',\n flexShrink: 1,\n },\n label: {\n fontFamily: theme.fontFamily,\n fontSize,\n lineHeight,\n fontWeight: '400',\n flexShrink: 1,\n },\n });\n};\n","import React from 'react';\nimport {\n AccessibilityRole,\n StyleProp,\n Text as RNText,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { StatusVariant } from '../../../types/tile';\nimport { useChipStyles } from './styles';\n\ntype AriaLive = 'polite' | 'assertive' | 'off';\n\ntype LiveRegionMapping = {\n native: 'none' | 'polite' | 'assertive';\n web: 'off' | 'polite' | 'assertive';\n};\n\nexport type ChipProps = {\n label: string;\n variant?: StatusVariant;\n role?: AccessibilityRole | 'status';\n ariaLive?: AriaLive;\n accessibilityLabel?: string;\n testID?: string;\n style?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n};\n\nconst mapLiveRegion = (ariaLive: AriaLive = 'polite'): LiveRegionMapping => {\n switch (ariaLive) {\n case 'assertive':\n return { native: 'assertive', web: 'assertive' };\n case 'off':\n return { native: 'none', web: 'off' };\n case 'polite':\n default:\n return { native: 'polite', web: 'polite' };\n }\n};\n\nconst Chip = ({\n label,\n variant = StatusVariant.PRIMARY,\n role = 'text',\n ariaLive = 'polite',\n accessibilityLabel,\n testID,\n style,\n labelStyle,\n}: ChipProps): React.ReactElement => {\n const styles = useChipStyles();\n const { theme } = useWllSdk();\n\n const variantStyles = React.useMemo(() => {\n switch (variant) {\n case StatusVariant.GREEN:\n return {\n container: { backgroundColor: '#d1f0e1' },\n label: { color: '#128e55' },\n };\n case StatusVariant.GREY:\n return {\n container: { backgroundColor: '#dadde0' },\n label: { color: '#666666' },\n };\n case StatusVariant.PRIMARY:\n default:\n return {\n container: {\n backgroundColor: theme.alphaDerivedPrimary?.[10] ?? theme.primary,\n },\n label: { color: theme.primary },\n };\n }\n }, [theme, variant]);\n\n const computedAccessibilityLabel =\n accessibilityLabel ?? (typeof label === 'string' ? label : undefined);\n const { native: accessibilityLiveRegion, web: ariaLiveValue } =\n mapLiveRegion(ariaLive);\n const isIndividuallyAccessible = computedAccessibilityLabel !== undefined;\n\n return (\n <View\n style={[styles.container, variantStyles.container, style]}\n accessible={isIndividuallyAccessible}\n accessibilityRole={role as AccessibilityRole}\n accessibilityLiveRegion={accessibilityLiveRegion}\n accessibilityLabel={computedAccessibilityLabel}\n aria-live={ariaLiveValue}\n testID={testID}\n >\n <RNText\n style={[styles.label, variantStyles.label, labelStyle]}\n numberOfLines={1}\n ellipsizeMode=\"tail\"\n accessible={false}\n importantForAccessibility=\"no\"\n >\n {label}\n </RNText>\n </View>\n );\n};\n\nexport default Chip;\n","export type Badge = {\n id: string;\n name: string;\n description: string;\n artworkUrl: string;\n createdAt: string;\n updatedAt: string;\n};\n\nexport class Reward {\n id?: string;\n createdAt?: string;\n updatedAt?: string;\n name?: string;\n pictureUrl?: string;\n description?: string;\n price?: number;\n value?: number;\n priority?: number;\n availability?: Availability;\n purchasable?: boolean;\n tier?: string;\n summary?: string;\n redemptionMessage?: string;\n visibilityCriteria?: string;\n isLocked?: boolean;\n}\n\nexport type RewardCategory = {\n name: string;\n priority: number;\n type: string;\n id: string;\n createdAt: string;\n updatedAt: string;\n description: string | null;\n metadata: any | null;\n pictureUrl: string;\n};\n\nexport type Availability = {\n start: string;\n end: string;\n};\n\ntype Effectivity = {\n start: string;\n end: string;\n};\n\nexport type TierType = {\n id: string;\n name: string;\n description?: string | null;\n artworkUrl?: string | null;\n priority: number;\n pointsRequirement?: number;\n calculation?: string;\n accumulationPeriod?: string;\n effectivity?: Effectivity;\n createdAt?: string;\n updatedAt?: string;\n earnedPoints?: number;\n attained?: boolean;\n};\n"],"names":["React","require$$0","jsxRuntimeModule","require$$1","useCallback","Platform","_a","Dimensions","StyleSheet","useResponsive","useState","useEffect","createContext","useMemo","_jsx","useContext","CoreApiUrl","_jsxs","Pressable","Text","LucideReactIcons","View","styles","ActivityIndicator","Animated","CTALinkTarget","TierTileType","ProgressType","TileType","TileHeight","StatusVariant","BadgeTileType","RNText","_Fragment","useRef","useWindowDimensions","isArtworkOnly","RefreshControl","SectionType","ScrollView","BannerTile","Image","ContentTile","BadgeTile","TierTileUpdated","PointsTile","RewardTile","RewardCategoryTile","RoundupTile","VenueTile"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
1
+ {"version":3,"file":"native.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../node_modules/tslib/tslib.es6.js","../lib/utils/navigationHelpers.ts","../lib/hooks/useNavigationHandler.ts","../lib/utils/apiHelpers.ts","../lib/utils/eventEmitter.ts","../lib/constants/device.ts","../lib/utils/styling.ts","../lib/constants/theme.ts","../lib/utils/storybookThemes.ts","../lib/utils/themeHelpers.ts","../lib/constants/responsive.ts","../lib/hooks/useResponsive.ts","../lib/context/ResponsiveContext.tsx","../lib/context/WllSdkContext.tsx","../lib/utils/variant.ts","../lib/utils/responsiveHelper.ts","../lib/components/atoms/Button/styles.ts","../lib/components/atoms/Button/index.tsx","../lib/components/atoms/Icon/index.tsx","../lib/components/atoms/LoadingIndicator/index.tsx","../lib/components/atoms/ProgressBar/index.tsx","../lib/types/tile.ts","../lib/hooks/useHandleTilePress.ts","../lib/hooks/useTileSize.ts","../lib/components/atoms/Text/index.tsx","../lib/components/atoms/BaseTile/base-tile-body.tsx","../lib/utils/contextHelpers.ts","../lib/components/atoms/BaseTile/styles.ts","../lib/components/atoms/BaseTile/base-tile-content.tsx","../lib/components/atoms/BaseTile/base-tile-header.tsx","../lib/components/atoms/BaseTile/base-tile-media.tsx","../lib/components/atoms/BaseTile/base-tile-title.tsx","../lib/components/atoms/BaseTile/index.tsx","../lib/components/atoms/ProgressiveImage/index.tsx","../lib/constants/index.ts","../lib/components/atoms/BaseBanner/index.tsx","../lib/components/atoms/Indicator/index.tsx","../lib/constants/grid.ts","../lib/components/atoms/SkeletonTile/index.tsx","../lib/components/atoms/Skeleton/index.tsx","../lib/components/hoc/withTileFetching.tsx","../lib/utils/transforms.ts","../lib/components/organisms/BadgeTile/badge-tile-date-earned.tsx","../lib/components/organisms/BadgeTile/badge-tile-description.tsx","../lib/components/organisms/BadgeTile/styles.tsx","../lib/components/organisms/BadgeTile/badge-tile-media.tsx","../lib/components/organisms/BadgeTile/badge-tile-status.tsx","../lib/components/organisms/BadgeTile/badge-tile-title.tsx","../lib/components/organisms/BadgeTile/index.tsx","../lib/components/organisms/BannerTile/banner-tile-cta.tsx","../lib/components/organisms/BannerTile/styles.ts","../lib/components/organisms/BannerTile/banner-tile-description.tsx","../lib/components/organisms/BannerTile/banner-tile-media.tsx","../lib/components/organisms/BannerTile/banner-tile-title.tsx","../lib/components/organisms/BannerTile/index.tsx","../lib/components/organisms/ContentTile/content-tile-chevron.tsx","../lib/components/organisms/ContentTile/styles.ts","../lib/components/organisms/ContentTile/content-tile-media.tsx","../lib/components/organisms/ContentTile/content-tile-summary.tsx","../lib/components/organisms/ContentTile/content-tile-title.tsx","../lib/components/organisms/ContentTile/index.tsx","../lib/hooks/useGroupRefresh.tsx","../lib/hooks/useInitialGroupFetch.tsx","../lib/hooks/useInvalidateData.ts","../lib/hooks/usePullToRefresh.ts","../lib/types/section.ts","../lib/components/molecules/SectionHeader/styles.ts","../lib/components/molecules/SectionHeader/index.tsx","../lib/components/molecules/Carousel/styles.ts","../lib/components/molecules/Carousel/index.tsx","../lib/components/molecules/CarouselNavButton/styles.ts","../lib/components/molecules/CarouselNavButton/index.tsx","../lib/components/molecules/Grid/index.tsx","../lib/components/molecules/ProgressIndicator/index.tsx","../lib/components/organisms/Section/styles.ts","../lib/components/organisms/Section/index.tsx","../lib/components/organisms/Group/index.tsx","../lib/utils/pointsHelpers.ts","../lib/types/common.ts","../lib/components/atoms/Primatives/Column.tsx","../lib/components/atoms/Primatives/FullFlex.tsx","../lib/components/atoms/Primatives/Layout.tsx","../lib/components/atoms/Primatives/Row.tsx","../lib/components/atoms/Primatives/Spacer.tsx","../lib/components/organisms/PointsTile/styles.ts","../lib/components/organisms/PointsTile/points-tile-formatted-points.tsx","../lib/components/organisms/PointsTile/points-tile-media.tsx","../lib/components/organisms/PointsTile/points-tile-title.tsx","../lib/components/organisms/PointsTile/points-tile-chevron.tsx","../lib/components/organisms/PointsTile/index.tsx","../lib/components/organisms/RewardCategoryTile/styles.ts","../lib/components/organisms/RewardCategoryTile/reward-category-header.tsx","../lib/components/organisms/RewardCategoryTile/reward-category-media.tsx","../lib/components/organisms/RewardCategoryTile/index.tsx","../lib/components/organisms/RewardTile/reward-tile-chevron.tsx","../lib/components/organisms/RewardTile/styles.ts","../lib/components/organisms/RewardTile/reward-tile-media.tsx","../lib/components/organisms/RewardTile/reward-tile-points.tsx","../lib/components/organisms/RewardTile/reward-tile-status.tsx","../lib/components/organisms/RewardTile/reward-tile-summary.tsx","../lib/components/organisms/RewardTile/reward-tile-title.tsx","../lib/components/organisms/RewardTile/index.tsx","../lib/components/organisms/TierTileUpdated/styles.ts","../lib/components/organisms/TierTileUpdated/index.tsx","../lib/components/organisms/RoundupTile/roundup-tile-formatted-points.tsx","../lib/components/organisms/RoundupTile/styles.ts","../lib/components/organisms/RoundupTile/roundup-tile-media.tsx","../lib/components/organisms/RoundupTile/roundup-tile-title.tsx","../lib/components/organisms/RoundupTile/roundup-tile-chevron.tsx","../lib/components/organisms/RoundupTile/index.tsx","../lib/components/organisms/VenueTile/venue-tile-chevron.tsx","../lib/components/organisms/VenueTile/styles.ts","../lib/components/organisms/VenueTile/venue-tile-media.tsx","../lib/components/organisms/VenueTile/venue-tile-description.tsx","../lib/components/organisms/VenueTile/venue-tile-title.tsx","../lib/components/organisms/VenueTile/index.tsx","../lib/components/atoms/TileContainer/index.tsx","../lib/components/atoms/Chip/styles.ts","../lib/components/atoms/Chip/index.tsx","../lib/types/wll.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { NavigationType } from '../types/navigation';\n\nexport const parseNavigationLink = (\n link: string\n): { type: NavigationType; target: string } => {\n let result: { type: NavigationType; target: string };\n if (\n link.startsWith('http://') ||\n link.startsWith('https://') ||\n link.startsWith('mailto:')\n ) {\n result = { type: 'external', target: link };\n } else if (link.startsWith('#')) {\n result = { type: 'modal', target: link.slice(1) };\n } else {\n result = { type: 'internal', target: link };\n }\n return result;\n};\n","import { useCallback } from 'react';\nimport { NavigationConfig } from '../types/navigation';\nimport { CTALinkTarget } from '../types/tile';\nimport { parseNavigationLink } from '../utils/navigationHelpers';\n\nexport const useNavigation = (config: NavigationConfig) => {\n const handleNavigation = useCallback(\n async (link: string, ctaTarget: CTALinkTarget): Promise<void> => {\n const { type, target } = parseNavigationLink(link);\n const windowTarget = ctaTarget === 'SAME_FRAME' ? '_self' : '_blank';\n\n if (config.navigationHandlers?.[type]) {\n return Promise.resolve(config.navigationHandlers[type]({ target, windowTarget }));\n }\n return Promise.resolve();\n },\n [config]\n );\n\n return handleNavigation;\n};\n","import { useCallback } from 'react';\nimport { SDKConfig } from '../context/WllSdkContext';\n\ntype APIResponse<T> = {\n status: 'success' | 'fail' | 'error';\n data: T | null;\n error?: string;\n};\n\nexport const useCreateRequestOptions = (config: SDKConfig) => {\n return useCallback(\n (options: RequestInit = {}) => {\n // Only create headers if we're not using a custom fetcher\n if (!config.fetcher) {\n const headers = new Headers(options.headers);\n headers.set('x-api-key', config.apiKey);\n headers.set('Authorization', `Bearer ${config.userToken}`);\n\n return {\n ...options,\n headers,\n };\n }\n },\n [config.apiKey, config.userToken, config.fetcher]\n );\n};\n\nexport const useMakeRequest = (config: SDKConfig) => {\n const createRequestOptions = useCreateRequestOptions(config);\n\n return useCallback(\n async <T>(url: string): Promise<APIResponse<T>> => {\n try {\n if (config.fetcher) {\n return await config.fetcher(url, createRequestOptions());\n }\n\n const response = await fetch(url, createRequestOptions());\n const json = await response.json();\n if (json.status === 'fail') {\n return {\n status: 'fail',\n data: null,\n error: json.message || 'API returned non-success status',\n };\n }\n\n return json;\n } catch (error) {\n return {\n status: 'error',\n data: null,\n error:\n error instanceof Error\n ? error.message\n : 'An unknown error occurred',\n };\n }\n },\n [createRequestOptions, config.fetcher]\n );\n};\n\nexport const createResourceGetter = (\n resource: string,\n includeHydrate = false\n) => {\n return (config: SDKConfig) => {\n const makeRequest = useMakeRequest(config);\n\n return useCallback(\n (id: string) => {\n const params = new URLSearchParams();\n\n if (includeHydrate) {\n params.append('hydrate', 'true');\n }\n\n // Always append locale=en\n params.append('locale', config.locale || 'en');\n\n const baseUrl = config.coreApiUrl;\n const queryString = params.toString();\n\n return makeRequest(\n `${baseUrl}/tiles-management/${resource}/${id}${queryString ? `?${queryString}` : ''}`\n );\n },\n [makeRequest, resource, includeHydrate, config.coreApiUrl, config.locale]\n );\n };\n};\n\nexport const useGetGroupByID = createResourceGetter('groups', true);\nexport const useGetSectionByID = createResourceGetter('sections');\nexport const useGetTileByID = createResourceGetter('tiles');\n","/**\n * Type definition for event callback functions\n * @typedef {function} EventCallback\n * @param {any} [data] - Optional data passed with the event\n */\nexport type EventCallback = (data?: any) => void;\n\n/**\n * Supported event types for the SDK event system\n * @typedef {string} EventTypes\n */\nexport type EventTypes =\n | 'GROUP_DATA_CHANGED'\n | 'SECTION_DATA_CHANGED'\n | 'TILE_DATA_CHANGED'\n | string;\n\n/**\n * A simple event emitter for handling SDK events\n * Provides a pub-sub mechanism for components to communicate\n */\nexport class EventEmitter {\n /**\n * Map of event types to arrays of callback functions\n * @private\n */\n private events: Map<EventTypes, EventCallback[]> = new Map();\n\n /**\n * Subscribe to an event\n * @param {EventTypes} event - The event type to subscribe to\n * @param {EventCallback} callback - The callback function to execute when the event is emitted\n * @returns {Function} An unsubscribe function that removes this callback when called\n */\n on(event: EventTypes, callback: EventCallback): () => void {\n if (!this.events.has(event)) {\n this.events.set(event, []);\n }\n\n this.events.get(event)?.push(callback);\n\n return () => {\n const callbacks = this.events.get(event);\n if (callbacks) {\n const index = callbacks.indexOf(callback);\n if (index !== -1) {\n callbacks.splice(index, 1);\n }\n }\n };\n }\n\n /**\n * Emit an event with optional data\n * @param {EventTypes} event - The event type to emit\n * @param {any} [data] - Optional data to pass to the event callbacks\n */\n emit(event: EventTypes, data?: any): void {\n const callbacks = this.events.get(event);\n if (callbacks) {\n callbacks.forEach((callback) => callback(data));\n }\n }\n\n /**\n * Remove all event listeners\n * Use this method to clean up when the event emitter is no longer needed\n */\n clear(): void {\n this.events.clear();\n }\n}\n\n/**\n * Singleton instance of the EventEmitter for use throughout the SDK\n */\nexport const sdkEventEmitter = new EventEmitter();\n","import { Dimensions, Platform } from \"react-native\";\n\nexport const IS_WEB = Platform.OS === \"web\";\nexport const IS_IOS = Platform.OS === \"ios\";\nexport const IS_ANDROID = Platform.OS === \"android\";\nexport const IS_MOBILE = IS_IOS || IS_ANDROID;\nexport const IS_DESKTOP = !IS_MOBILE;\n\nconst { width, height } = Dimensions.get(\"window\");\n\nexport const SCREEN_WIDTH = width;\nexport const SCREEN_HEIGHT = height;\n","import { StyleSheet } from 'react-native';\nimport { IS_WEB } from '../constants/device';\nimport { BaseThemeObject } from '../types/theme';\n\nexport const sizes = {\n borderRadiusSm: 15,\n borderRadiusLg: 20,\n borderRadiusButton: 9,\n borderRadiusRounded: 9999,\n xxxs: 4,\n xxs: 8,\n xs: 10,\n sm: 12,\n md: 14,\n lg: 16,\n xl: 20,\n xxl: 24,\n xxxl: 32,\n xxxxl: 40,\n xxxxxl: 60,\n} as const;\n\nexport const commonStyles = StyleSheet.create({\n emptyContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport const defaultTheme: BaseThemeObject = {\n fontFamily:\n '-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Ubuntu, Cantarell, Helvetica Neue, sans-serif',\n background: '#F0F0F0',\n text: '#000000',\n primary: '#392ed7',\n accent: '#ff6a3d',\n surface: '#f8f7fc',\n surfaceText: '#000000',\n pageButtonBackground: '#392ed7',\n pageButtonText: '#ffffff',\n errorPrimary: '#000000',\n positive: '#008000',\n negative: '#ff0000',\n};\n\n/**\n * Creates appropriate directional margin styles for both web and native platforms.\n * Handles RTL layouts correctly across platforms by using the I18nManager.\n *\n * @param value - The margin value to apply\n * @returns An object with the appropriate margin style property\n */\nexport const getDirectionalMargin = (value: number) => {\n if (IS_WEB) {\n // Check document direction for web\n // We need to use this because React Native Web does not support I18nManager\n // and marginStart/marginEnd resolves to margin-left/margin-right and not margin-inline-start/end\n const isRTL =\n typeof document !== 'undefined' && document.documentElement.dir === 'rtl';\n\n return isRTL ? { marginLeft: value } : { marginRight: value };\n }\n\n // For native platforms, use marginEnd which automatically handles RTL\n return { marginEnd: value };\n};\n","import { IS_WEB } from './device';\n\nexport const COLOR_CONSTANTS = {\n MINIMUM_CONTRAST_RATIO: 2,\n DEFAULT_LIGHTNESS_ADJUSTMENT: 0.2,\n DESATURATION_LIGHTEN_AMOUNT: IS_WEB ? 0.8 : 0.2,\n DEFAULT_COLOR: '#FFFFFF',\n} as const;\n","import { BaseThemeObject } from '../types/theme';\nimport { defaultTheme } from './styling';\n\n// Storybook Themes\nexport const storyBookThemes = {\n modern: {\n ...defaultTheme,\n primary: '#f72585',\n accent: '#ffc300',\n background: '#e5e5e5',\n surface: '#f4f3ee',\n surfaceText: '#f72585',\n },\n warm: {\n ...defaultTheme,\n primary: '#014F5C',\n accent: '#F38A51',\n background: '#BE9C80',\n surface: '#F1CFB3',\n surfaceText: '#014F5C',\n },\n dark: {\n ...defaultTheme,\n background: '#1e1e1e',\n text: '#ffffff',\n primary: '#ffbe0b',\n accent: '#d00000',\n surface: '#2f3037',\n surfaceText: '#ffffff',\n },\n forest: {\n ...defaultTheme,\n primary: '#354f52',\n accent: '#84a98c',\n background: '#f0f4f0',\n surface: '#cad2c5',\n surfaceText: '#2d3436',\n },\n sunset: {\n ...defaultTheme,\n primary: '#c32f27',\n accent: '#db7c26',\n background: '#f9edcc',\n surface: '#f0dfad',\n surfaceText: '#2d3436',\n },\n};\n\n// Define the theme type\nexport type ThemeName =\n | 'default'\n | 'dark'\n | 'modern'\n | 'warm'\n | 'forest'\n | 'sunset';\n\n// Create the themes object\nexport const themes: Record<ThemeName, BaseThemeObject> = {\n default: defaultTheme,\n dark: storyBookThemes.dark,\n modern: storyBookThemes.modern,\n warm: storyBookThemes.warm,\n forest: storyBookThemes.forest,\n sunset: storyBookThemes.sunset,\n};\n\n// Theme selector items\nexport const themeItems: Array<{ value: ThemeName; title: string }> = [\n { value: 'default', title: 'Default' },\n { value: 'dark', title: 'Dark' },\n { value: 'modern', title: 'Modern' },\n { value: 'warm', title: 'Warm' },\n { value: 'forest', title: 'Forest' },\n { value: 'sunset', title: 'Sunset' },\n];\n","import Color from 'color';\nimport { COLOR_CONSTANTS } from '../constants/theme';\nimport {\n BaseThemeObject,\n DerivedColors,\n DesaturationType,\n PercentageKey,\n} from '../types/theme';\nimport { themeItems, ThemeName, themes } from './storybookThemes';\n\nconst isValidColor = (color: string): boolean => {\n try {\n Color(color);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Validates a theme object to ensure all required colors are present and valid\n * @param theme - Partial theme object to validate\n * @returns Boolean indicating if theme is valid\n */\nexport const validateTheme = (theme: Partial<BaseThemeObject>): boolean => {\n const requiredColors = [\n 'accent',\n 'background',\n 'primary',\n 'surface',\n 'surfaceText',\n 'text',\n ] as const;\n\n const missingOrInvalidColors = requiredColors.filter(\n (color) => !theme[color] || !isValidColor(theme[color]!)\n );\n\n if (missingOrInvalidColors.length > 0) {\n console.warn(\n 'Theme validation failed. Missing or invalid colors:',\n missingOrInvalidColors.map((color) => ({\n color,\n value: theme[color],\n exists: !!theme[color],\n isValid: theme[color] ? isValidColor(theme[color]!) : false,\n }))\n );\n }\n\n return missingOrInvalidColors.length === 0;\n};\n\n/**\n * Safely creates a Color instance with error handling\n * @param color - Color string to process\n * @returns Color instance or null if invalid\n */\nconst createSafeColor = (color: string): Color | null => {\n try {\n const colorInstance = Color(color);\n return colorInstance;\n } catch (error) {\n console.error(`Invalid color value: ${color}`, error);\n return null;\n }\n};\n\n/**\n * Returns a derived color based on the background darkness\n * @param color - Base color to derive from\n * @returns Derived color string or default color if invalid\n */\nexport const getDerivedColor = (color: string): string => {\n const backgroundColor = createSafeColor(color);\n if (!backgroundColor) return COLOR_CONSTANTS.DEFAULT_COLOR;\n\n return backgroundColor.isDark()\n ? backgroundColor\n .lighten(COLOR_CONSTANTS.DEFAULT_LIGHTNESS_ADJUSTMENT)\n .string()\n : backgroundColor\n .darken(COLOR_CONSTANTS.DEFAULT_LIGHTNESS_ADJUSTMENT)\n .string();\n};\n\n/**\n * Determines the most readable text color (black or white) for a given background\n * @param backgroundColor - Background color to check against\n * @returns Hex color string for text\n */\nexport const getReadableTextColor = (backgroundColor: string): string => {\n const bgColor = createSafeColor(backgroundColor);\n if (!bgColor) return COLOR_CONSTANTS.DEFAULT_COLOR;\n\n const white = Color('#fff');\n const black = Color('#000');\n\n const contrastWithWhite = bgColor.contrast(white);\n return contrastWithWhite >= COLOR_CONSTANTS.MINIMUM_CONTRAST_RATIO\n ? white.hex()\n : black.hex();\n};\n\nconst percentages: PercentageKey[] = [\n 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95,\n];\n\n/**\n * Generates a set of derived colors based on a base color and derivation function\n * @param color - Base color to derive from\n * @param derivationFunction - Function to generate variations\n * @returns Object containing derived colors at different percentages\n */\nconst generateDerivedColors = (\n color: string,\n derivationFunction: (baseColor: Color, percentage: PercentageKey) => Color\n): DerivedColors => {\n const baseColor = createSafeColor(color);\n if (!baseColor) {\n return percentages.reduce((acc, percentage) => {\n acc[percentage] = COLOR_CONSTANTS.DEFAULT_COLOR;\n return acc;\n }, {} as DerivedColors);\n }\n\n const result = {} as DerivedColors;\n percentages.forEach((percentage) => {\n try {\n const derivedColor = derivationFunction(baseColor, percentage);\n result[percentage] = derivedColor.toString();\n } catch (error) {\n console.error(`Error generating derived color for ${percentage}%`, error);\n result[percentage] = COLOR_CONSTANTS.DEFAULT_COLOR;\n }\n });\n return result;\n};\n\n/**\n * Generates a set of colors with varying lightness based on the base color\n * @param color - Base color to derive from\n * @returns Object containing derived colors at different lightness levels\n */\nexport const getDerivedColorPercentages = (color: string): DerivedColors => {\n const baseColor = createSafeColor(color);\n if (!baseColor)\n return generateDerivedColors(\n COLOR_CONSTANTS.DEFAULT_COLOR,\n (color) => color\n );\n\n const isDark = baseColor.isDark();\n return generateDerivedColors(color, (baseColor, percentage) =>\n isDark\n ? baseColor.lightness(percentage)\n : baseColor.lightness(100 - percentage)\n );\n};\n\n/**\n * Generates a set of colors with varying alpha values\n * @param color - Base color to derive from\n * @returns Object containing derived colors at different alpha levels\n */\nexport const getAlphaDerivedColors = (color: string): DerivedColors => {\n return generateDerivedColors(color, (baseColor, percentage) =>\n baseColor.alpha(percentage / 100)\n );\n};\n\n/**\n * Determines if a color should be desaturated based on type and count\n * @param type - Type of desaturation to apply\n * @param count - Count value affecting desaturation\n * @returns Boolean indicating if color should be desaturated\n */\nexport const shouldDesaturate = (\n type: DesaturationType,\n count: number\n): boolean => {\n switch (type) {\n case 'SPECIFIC':\n return count === 0;\n default:\n return false;\n }\n};\n\n/**\n * Desaturates a color and lightens it\n * @param color - Color to desaturate\n * @returns Desaturated color string or default color if invalid\n */\nexport const desaturateColor = (color: string): string => {\n const baseColor = createSafeColor(color);\n if (!baseColor) return COLOR_CONSTANTS.DEFAULT_COLOR;\n\n return baseColor\n .grayscale()\n .lighten(COLOR_CONSTANTS.DESATURATION_LIGHTEN_AMOUNT)\n .toString();\n};\n\n/**\n * Gets the appropriate state color based on type and count\n * @param baseColor - Base color to process\n * @param type - Type of state\n * @param count - Count affecting the state\n * @returns Processed color string\n */\nexport const getStateColor = (\n baseColor: string,\n type: DesaturationType,\n count: number\n): string => {\n return shouldDesaturate(type, count) ? desaturateColor(baseColor) : baseColor;\n};\n\n// Export theme-related items\nexport { themeItems, ThemeName, themes };\n","export const DIMENSION_MODES = {\n DESKTOP: 'desktop' as const,\n TABLET: 'tablet' as const,\n MOBILE: 'mobile' as const,\n};\n\nexport const TABLET_SCREEN_WIDTH = 768;\nexport const SMALL_SCREEN_WIDTH = 480;\n","import { useEffect, useState } from 'react';\nimport { Dimensions, Platform } from 'react-native';\nimport {\n DIMENSION_MODES,\n SMALL_SCREEN_WIDTH,\n TABLET_SCREEN_WIDTH,\n} from '../constants/responsive';\nimport { DimensionMode, WindowDimensions } from '../types/responsive';\n\nconst isWeb = Platform.OS === 'web';\n\nexport function getDimensionMode(window: WindowDimensions): DimensionMode {\n if (!window || !window.width) {\n return DIMENSION_MODES.MOBILE;\n }\n\n const { width: screenWidth } = window;\n\n if (screenWidth >= TABLET_SCREEN_WIDTH) {\n return DIMENSION_MODES.DESKTOP;\n }\n if (screenWidth >= SMALL_SCREEN_WIDTH) {\n return DIMENSION_MODES.TABLET;\n }\n return DIMENSION_MODES.MOBILE;\n}\n\nexport function useResponsive() {\n const deviceWindow = Dimensions.get('window');\n const [dimensionMode, setDimensionMode] = useState<DimensionMode>(\n getDimensionMode(deviceWindow)\n );\n\n useEffect(() => {\n if (!isWeb) return;\n\n const subscription = Dimensions.addEventListener('change', ({ window }) => {\n if (window) {\n const mode = getDimensionMode(window);\n setDimensionMode(mode);\n }\n });\n\n return () => {\n if (subscription) {\n subscription.remove();\n }\n };\n }, []);\n\n return {\n dimensionMode,\n isDesktop: dimensionMode === DIMENSION_MODES.DESKTOP,\n isTablet: dimensionMode === DIMENSION_MODES.TABLET,\n isMobile: dimensionMode === DIMENSION_MODES.MOBILE,\n };\n}\n","import React, {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { Dimensions } from 'react-native';\nimport { DIMENSION_MODES } from '../constants/responsive';\nimport { getDimensionMode } from '../hooks/useResponsive';\nimport { ResponsiveContextType } from '../types/responsive';\n\nconst ResponsiveContext = createContext<ResponsiveContextType | undefined>(\n undefined\n);\n\nexport function ResponsiveProvider({ children }: PropsWithChildren) {\n const getDerivedState = useCallback((window: any) => {\n const dimensionMode = getDimensionMode(window);\n return {\n dimensionMode,\n isDesktop: dimensionMode === DIMENSION_MODES.DESKTOP,\n isTablet: dimensionMode === DIMENSION_MODES.TABLET,\n isMobile: dimensionMode === DIMENSION_MODES.MOBILE,\n };\n }, []);\n\n const [state, setState] = useState(() => {\n const window = Dimensions.get('window');\n return getDerivedState(window);\n });\n\n const value = useMemo(() => state, [state]);\n\n useEffect(() => {\n const subscription = Dimensions.addEventListener('change', ({ window }) => {\n if (window) {\n setState(getDerivedState(window));\n }\n });\n\n return () => {\n if (subscription) {\n subscription.remove();\n }\n };\n }, [getDerivedState]);\n\n return (\n <ResponsiveContext.Provider value={value}>\n {children}\n </ResponsiveContext.Provider>\n );\n}\n\nexport function useResponsive(): ResponsiveContextType {\n const context = useContext(ResponsiveContext);\n if (context === undefined) {\n throw new Error('useResponsive must be used within a ResponsiveProvider');\n }\n return context;\n}\n","import React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { useNavigation } from '../hooks/useNavigationHandler';\nimport { TGroup } from '../types/group';\nimport { WithChildren } from '../types/helpers';\nimport { NavigationConfig } from '../types/navigation';\nimport { TSection } from '../types/section';\nimport { BaseThemeObject, ThemeContextType, ThemeObject } from '../types/theme';\nimport { CTALinkTarget, Tile } from '../types/tile';\nimport {\n useGetGroupByID,\n useGetSectionByID,\n useGetTileByID,\n} from '../utils/apiHelpers';\nimport { EventTypes, sdkEventEmitter } from '../utils/eventEmitter';\nimport { defaultTheme, sizes } from '../utils/styling';\nimport {\n getAlphaDerivedColors,\n getDerivedColor,\n getDerivedColorPercentages,\n getReadableTextColor,\n validateTheme,\n} from '../utils/themeHelpers';\nimport { ResponsiveProvider } from './ResponsiveContext';\n\nexport enum CoreApiUrl {\n PRODUCTION_EU = 'https://api.core.wlloyalty.net/v1',\n PRODUCTION_US = 'https://api.core.us.wlloyalty.net/v1',\n STAGING_EU = 'https://api.staging.core.wlloyalty.net/v1',\n STAGING_US = 'https://api.staging.core.us.wlloyalty.net/v1',\n DEVELOPMENT = 'https://localhost:8080/v1',\n}\n\nexport type AllowedCoreApiUrl = `${CoreApiUrl}`;\n\nexport type SDKConfig = {\n apiKey: string;\n userToken?: string;\n fetcher?: Fetcher;\n locale?: string;\n coreApiUrl: AllowedCoreApiUrl;\n};\n\ntype Fetcher = <T>(\n endpoint: string,\n options?: RequestInit\n) => Promise<APIResponse<T>>;\n\nexport type APIResponse<T> = {\n status: 'success' | 'error';\n data: T | null;\n error?: string;\n};\n\ntype WllSdkContextType = ThemeContextType & {\n getGroupByID: (id: string) => Promise<APIResponse<TGroup>>;\n getSectionByID: (id: string) => Promise<APIResponse<TSection>>;\n getTileByID: (id: string) => Promise<APIResponse<Tile>>;\n handleNavigation: (link: string, target: CTALinkTarget) => Promise<void>;\n refreshGroup: (id: string) => Promise<APIResponse<TGroup>>;\n notifyDataChange: (eventType: EventTypes, data?: any) => void;\n subscribeToDataChange: (\n eventType: EventTypes,\n callback: (data?: any) => void\n ) => () => void;\n} & Readonly<{\n readonly config: SDKConfig;\n}>;\n\ntype WllSdkProviderProps = WithChildren & {\n theme?: Partial<BaseThemeObject>;\n config: SDKConfig;\n navigationConfig?: NavigationConfig;\n};\n\nconst createTheme = (baseTheme: Partial<BaseThemeObject> = {}): ThemeObject => {\n const { sizes: userSizes, ...restBaseTheme } = baseTheme;\n const mergedTheme = {\n ...defaultTheme,\n ...restBaseTheme,\n } as BaseThemeObject;\n\n return {\n ...mergedTheme,\n sizes: {\n ...sizes,\n ...userSizes,\n },\n derivedBackground: getDerivedColor(mergedTheme.background),\n primaryText: getReadableTextColor(mergedTheme.primary),\n accentText: getReadableTextColor(mergedTheme.accent),\n positiveText: getReadableTextColor(mergedTheme.positive),\n negativeText: getReadableTextColor(mergedTheme.negative),\n derivedSurface: getDerivedColorPercentages(mergedTheme.surface),\n derivedSurfaceText: getDerivedColorPercentages(mergedTheme.surfaceText),\n alphaDerivedPrimary: getAlphaDerivedColors(mergedTheme.primary),\n alphaDerivedText: getAlphaDerivedColors(mergedTheme.text),\n };\n};\n\nconst WllSdkContext = createContext<WllSdkContextType | undefined>(undefined);\n\nexport const WllSdkProvider = ({\n children,\n theme: providedTheme,\n config,\n navigationConfig = {},\n}: WllSdkProviderProps): React.ReactElement => {\n validateConfig(config);\n\n const [theme, setThemeState] = useState(() => {\n const themeToUse = providedTheme || {};\n if (!validateTheme(themeToUse)) {\n console.warn(\n 'Invalid theme provided. Some required colors are missing or invalid.'\n );\n }\n return createTheme(themeToUse);\n });\n\n useEffect(() => {\n const themeToUse = providedTheme || {};\n if (!validateTheme(themeToUse)) {\n console.warn(\n 'Invalid theme provided. Some required colors are missing or invalid.'\n );\n }\n\n setThemeState(createTheme(themeToUse));\n }, [providedTheme]);\n\n const setTheme = useCallback((newTheme: Partial<BaseThemeObject>) => {\n if (!validateTheme(newTheme)) {\n console.warn(\n 'Invalid theme provided. Some required colors are missing or invalid.'\n );\n }\n setThemeState((prevTheme) => createTheme({ ...prevTheme, ...newTheme }));\n }, []);\n\n const getGroupByID = useGetGroupByID(config) as (\n id: string\n ) => Promise<APIResponse<TGroup>>;\n const getSectionByID = useGetSectionByID(config) as (\n id: string\n ) => Promise<APIResponse<TSection>>;\n const getTileByID = useGetTileByID(config) as (\n id: string\n ) => Promise<APIResponse<Tile>>;\n\n const handleNavigation = useNavigation(navigationConfig);\n\n const refreshGroup = useCallback(\n async (id: string) => {\n return getGroupByID(id);\n },\n [getGroupByID]\n );\n\n const notifyDataChange = useCallback((eventType: EventTypes, data?: any) => {\n sdkEventEmitter.emit(eventType, data);\n }, []);\n\n const subscribeToDataChange = useCallback(\n (eventType: EventTypes, callback: (data?: any) => void) => {\n return sdkEventEmitter.on(eventType, callback);\n },\n []\n );\n\n const contextValue = useMemo(\n () => ({\n theme,\n setTheme,\n getGroupByID,\n getSectionByID,\n getTileByID,\n handleNavigation,\n refreshGroup,\n notifyDataChange,\n subscribeToDataChange,\n config,\n }),\n [\n theme,\n setTheme,\n getGroupByID,\n getSectionByID,\n getTileByID,\n handleNavigation,\n refreshGroup,\n notifyDataChange,\n subscribeToDataChange,\n config,\n ]\n );\n return (\n <WllSdkContext.Provider value={contextValue}>\n <ResponsiveProvider>{children}</ResponsiveProvider>\n </WllSdkContext.Provider>\n );\n};\n\nexport const useWllSdk = (): WllSdkContextType => {\n const context = useContext(WllSdkContext);\n if (context === undefined) {\n throw new Error('useWllSdk must be used within a WllSdkProvider');\n }\n return context;\n};\n\n/**\n * Validates the SDK configuration object\n * @param config - The configuration object to validate\n * @throws {Error} If apiKey is missing\n * @throws {Error} If locale is provided but not in ISO 639-1 format (e.g. 'en')\n */\nconst validateConfig = (config: SDKConfig): void => {\n if (!config.apiKey) {\n throw new Error('API key is required');\n }\n\n if (config.locale && !/^[a-z]{2}$/.test(config.locale)) {\n throw new Error(\n 'Invalid locale format. Expected ISO 639-1 language code (e.g. \"en\")'\n );\n }\n};\n","import { TextStyle, ViewStyle } from \"react-native\";\nimport { ThemeObject } from \"../types/theme\";\n\ntype StyleVariants<V extends string> = Record<V, ViewStyle | TextStyle>;\n\nexport function createVariantSystem<V extends string>(\n baseStyle: ViewStyle | TextStyle,\n variantStyles: (theme: ThemeObject) => StyleVariants<V>\n) {\n return (theme: ThemeObject, variant: V) => {\n const styles = variantStyles(theme);\n return [baseStyle, styles[variant]];\n };\n}\n","import { useEffect, useState } from 'react';\nimport { Dimensions, Platform } from 'react-native';\nimport {\n SMALL_SCREEN_WIDTH,\n TABLET_SCREEN_WIDTH,\n} from '../constants/responsive';\n\nconst clamp = (value: number, min: number, max: number) =>\n Math.min(Math.max(value, min), max);\n\nconst lerp = (start: number, end: number, t: number) =>\n start + (end - start) * t;\n\nconst getWindowWidth = () => {\n if (Platform.OS === 'web') {\n return window.innerWidth;\n }\n return Dimensions.get('window').width;\n};\n\nexport const getResponsiveValue = (\n desktopValue: number,\n mobileValue: number,\n isDesktop: boolean,\n isTablet: boolean\n) => {\n const width = getWindowWidth();\n const tabletValue = (desktopValue + mobileValue) / 2;\n\n // Desktop to Tablet scaling\n if (width >= TABLET_SCREEN_WIDTH) {\n const t = clamp((width - TABLET_SCREEN_WIDTH) / 300, 0, 1); // 300px scaling range\n return Math.round(lerp(tabletValue, desktopValue, t));\n }\n\n // Tablet to Mobile scaling\n if (width > SMALL_SCREEN_WIDTH) {\n const t = clamp(\n (width - SMALL_SCREEN_WIDTH) / (TABLET_SCREEN_WIDTH - SMALL_SCREEN_WIDTH),\n 0,\n 1\n );\n return Math.round(lerp(mobileValue, tabletValue, t));\n }\n\n return mobileValue;\n};\n\nexport const useResponsiveValue = (\n desktopValue: number,\n mobileValue: number,\n isDesktop: boolean,\n isTablet: boolean\n) => {\n const [value, setValue] = useState(() =>\n getResponsiveValue(desktopValue, mobileValue, isDesktop, isTablet)\n );\n\n useEffect(() => {\n if (Platform.OS !== 'web') return;\n\n const handleResize = () => {\n setValue(\n getResponsiveValue(desktopValue, mobileValue, isDesktop, isTablet)\n );\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [desktopValue, mobileValue, isDesktop, isTablet]);\n\n return value;\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useButtonDynamicStyles = (): ReturnType<\n typeof StyleSheet.create\n> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n button: {\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n paddingVertical: theme.sizes.sm,\n alignSelf: 'flex-start',\n },\n text: {\n textAlign: 'center',\n textTransform: 'uppercase',\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n fontWeight: '700',\n },\n });\n};\n","import * as React from 'react';\nimport { Pressable, Text } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Variant } from '../../../types/theme';\nimport { createVariantSystem } from '../../../utils/variant';\nimport { useButtonDynamicStyles } from './styles';\n\ntype ButtonProps = {\n title: string;\n onPress: () => void;\n variant: Variant;\n disabled?: boolean;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n icon?: React.ReactNode;\n testID?: string;\n};\n\nconst useButtonStyles = createVariantSystem({}, (theme) => ({\n primary: {\n backgroundColor: theme.primary,\n },\n accent: {\n backgroundColor: theme.accent,\n },\n positive: {\n backgroundColor: theme.positive,\n },\n negative: {\n backgroundColor: theme.negative,\n },\n}));\n\nconst useTextStyles = createVariantSystem({}, (theme) => ({\n primary: {\n color: theme.primaryText,\n },\n accent: {\n color: theme.accentText,\n },\n positive: {\n color: theme.positiveText,\n },\n negative: {\n color: theme.negativeText,\n },\n}));\n\nconst Button = ({\n title,\n onPress,\n variant,\n disabled = false,\n accessibilityLabel,\n accessibilityHint,\n icon,\n testID,\n}: ButtonProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const buttonStyle = useButtonStyles(theme, variant);\n const textStyle = useTextStyles(theme, variant);\n const styles = useButtonDynamicStyles();\n\n return (\n <Pressable\n style={({ pressed }) => [\n styles.button,\n buttonStyle,\n { borderRadius: theme.sizes.borderRadiusButton },\n disabled && { opacity: 0.5 },\n pressed && { opacity: 0.7 },\n ]}\n onPress={onPress}\n disabled={disabled}\n accessible={true}\n role=\"button\"\n accessibilityLabel={accessibilityLabel || title}\n accessibilityHint={accessibilityHint}\n accessibilityState={{ disabled }}\n testID={testID}\n >\n {icon && icon}\n {title && <Text style={[styles.text, textStyle]}>{title}</Text>}\n </Pressable>\n );\n};\n\nexport default Button;\n","/* istanbul ignore file */\nimport * as LucideReactIcons from 'lucide-react';\nimport * as React from 'react';\nimport { Platform, View, ViewProps } from 'react-native';\n\nlet LucideReactNativeIcons: any;\nif (Platform.OS !== 'web') {\n // This dynamic import pattern helps with tree-shaking for web builds\n try {\n LucideReactNativeIcons = require('lucide-react-native');\n } catch (e) {\n console.warn(\n 'lucide-react-native is not installed. Icons may not render correctly on native platforms.'\n );\n }\n}\n\ntype IconName = keyof typeof LucideReactIcons;\n\ntype IconProps = {\n name: IconName;\n color?: string;\n size?: number;\n strokeWidth?: number;\n} & Omit<ViewProps, 'style'>;\n\nconst Icon = ({\n name,\n color = 'black',\n size = 24,\n strokeWidth = 2,\n ...props\n}: IconProps): React.ReactElement | null => {\n // Choose the appropriate icon library based on platform\n const iconLib =\n Platform.OS === 'web' ? LucideReactIcons : LucideReactNativeIcons;\n\n if (!iconLib) {\n console.warn('Icon library not available for this platform');\n return null;\n }\n\n const LucideIcon = iconLib[name] as React.ElementType;\n\n if (!LucideIcon) {\n console.warn(`Icon \"${name}\" not found in Lucide icons`);\n return null;\n }\n\n if (Platform.OS === 'web') {\n return (\n <View {...props}>\n <LucideIcon color={color} size={size} strokeWidth={strokeWidth} />\n </View>\n );\n } else {\n return (\n <View {...props}>\n <LucideIcon color={color} size={size} strokeWidth={strokeWidth} />\n </View>\n );\n }\n};\n\nexport default Icon;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { ActivityIndicator, StyleSheet, View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\nconst LoadingIndicator = (): React.ReactElement => {\n const { theme } = useWllSdk();\n\n return (\n <View\n style={[\n styles.container,\n {\n borderRadius: theme.sizes.borderRadiusSm,\n padding: theme.sizes.md,\n },\n ]}\n >\n <ActivityIndicator size=\"small\" color={theme.primary} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n },\n});\n\nexport default LoadingIndicator;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { Animated, StyleSheet, View, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Size, ThemeObject, Variant } from '../../../types/theme';\nimport { createVariantSystem } from '../../../utils/variant';\n\nexport type ProgressBarProps = {\n percentage: number;\n variant?: Variant;\n height?: Size;\n animationDuration?: number;\n};\n\nconst useStyles = (theme: ThemeObject) => {\n return StyleSheet.create({\n container: {\n width: '100%',\n borderRadius: theme.sizes.borderRadiusRounded,\n overflow: 'hidden',\n },\n progress: {\n borderRadius: theme.sizes.borderRadiusRounded,\n height: '100%',\n },\n });\n};\n\nconst useContainerStyles = (theme: ThemeObject) => ({\n sm: { height: theme.sizes.xxs },\n md: { height: theme.sizes.xs },\n lg: { height: theme.sizes.sm },\n});\n\nconst useProgressStyles = createVariantSystem(\n // @ts-ignore\n (theme: ThemeObject) => ({ borderRadius: theme.sizes.borderRadiusSmRounded }),\n (theme: ThemeObject) => ({\n primary: { backgroundColor: theme.primary },\n accent: { backgroundColor: theme.accent },\n positive: { backgroundColor: theme.positive },\n negative: { backgroundColor: theme.negative },\n })\n);\n\nconst ProgressBar = ({\n percentage,\n variant = 'primary',\n height = 'sm',\n animationDuration = 300,\n}: ProgressBarProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const styles = useStyles(theme);\n const containerStyles = useContainerStyles(theme);\n const progressStyles = useProgressStyles(theme, variant);\n\n const animatedWidth = React.useRef(new Animated.Value(0)).current;\n\n const containerStyle = [\n styles.container,\n containerStyles[height],\n { backgroundColor: theme.derivedSurface[20] },\n ];\n\n React.useEffect(() => {\n Animated.timing(animatedWidth, {\n toValue: Math.min(Math.max(percentage, 0), 100),\n duration: animationDuration,\n useNativeDriver: false,\n }).start();\n }, [percentage, animationDuration]);\n\n const progressWidth: ViewStyle = {\n width: animatedWidth.interpolate({\n inputRange: [0, 100],\n outputRange: ['0%', '100%'],\n }),\n };\n\n return (\n <View style={containerStyle}>\n <Animated.View style={[styles.progress, progressStyles, progressWidth]} />\n </View>\n );\n};\n\nexport default ProgressBar;\n","import { Availability, RewardCategory, TierType } from './wll';\n\nexport enum CTALinkTarget {\n sameWindow = 'SAME_FRAME',\n newWindow = 'NEW_WINDOW',\n}\n\nexport enum TierTileType {\n currentTier = 'CURRENT',\n specificTier = 'SPECIFIC',\n}\n\nexport enum ProgressType {\n Name = 'NAME',\n Points = 'POINTS',\n}\n\nexport enum TileType {\n Banner = 'BANNER',\n Points = 'POINTS',\n Content = 'CONTENT',\n Reward = 'REWARD',\n Badge = 'BADGE',\n RewardCategory = 'REWARD_CATEGORY',\n Tier = 'TIER',\n Roundup = 'ROUND_UP_BALANCE',\n Venue = 'VENUE',\n}\n\nexport enum TileHeight {\n Half = 'HALF',\n Full = 'FULL',\n}\n\nexport type ProgessType = 'NAME' | 'POINTS';\n\nexport enum StatusVariant {\n PRIMARY = 'primary',\n GREEN = 'green',\n GREY = 'grey',\n}\n\nexport class BannerTileConfig {\n artworkUrl?: string | null;\n title?: string | null;\n description?: string | null;\n ctaText?: string | null;\n ctaLink?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n}\n\nexport class PointsTileConfig {\n title?: string | null;\n pointsMultiplier?: number;\n pointsPrefix?: string | null;\n pointsSuffix?: string | null;\n artworkUrl?: string | null;\n points?: number;\n ctaLink?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n}\n\nexport class RoundupTileConfig {\n title?: string | null;\n amountPrefix?: string | null;\n amountSuffix?: string | null;\n artworkUrl?: string | null;\n balance?: number;\n ctaLink?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n}\n\nexport class ContentTileConfig {\n title?: string | null;\n body?: string | null;\n artworkUrl?: string | null;\n ctaLinkTarget?: CTALinkTarget;\n ctaLink?: string | null;\n isLocked?: boolean;\n}\n\nexport class RewardTileConfig {\n rewardId: string = '';\n defaultLocale: string = 'en';\n showPrice: boolean = false;\n showArtwork?: boolean;\n showDetails?: boolean;\n isLocked?: boolean;\n id: string = '';\n createdAt: string = '';\n updatedAt: string = '';\n name: string = '';\n pictureUrl: string = '';\n value: number = 0;\n price: number = 0;\n priority: number = 0;\n availability: Availability = {\n start: '',\n end: '',\n };\n purchasable: boolean = false;\n stockCapacity?: number;\n stockConsumed?: number;\n outOfStockMessage?: string;\n stockRemainingMessage?: string;\n tier: string | null = null;\n category: RewardCategory = {\n name: '',\n priority: 0,\n type: '',\n id: '',\n createdAt: '',\n updatedAt: '',\n description: null,\n metadata: null,\n pictureUrl: '',\n };\n discounts: any[] = [];\n summary: string | null = null;\n redemptionMessage: string | null = null;\n visibilityCriteria: string | null = null;\n type: 'VOUCHER' = 'VOUCHER';\n codeType: 'HUMAN' | 'OTP' = 'HUMAN';\n code: string | null = null;\n purchaseExpiration: string | null = null;\n hideCode: boolean = false;\n notificationConfig: any | null = null;\n artworkUrl: string | undefined = undefined;\n pointsMultiplier: number = 1;\n pointsPrefix: string | null = null;\n pointsSuffix: string | null = null;\n}\n\nexport class VenueTileConfig {\n venueId: string = '';\n name: string = '';\n artworkUrl: string = '';\n description: string = '';\n isLocked?: boolean;\n}\n\nexport enum BadgeTileType {\n Specific = 'SPECIFIC',\n Latest = 'LATEST_EARNED',\n}\n\nexport class BadgeTileConfig {\n type: BadgeTileType = BadgeTileType.Specific;\n badgeId: string = '';\n internalName?: string;\n defaultLocale: string = 'en';\n priority: number = 0;\n internalDescription?: string | null;\n status?: string;\n id: string = '';\n createdAt: string = '';\n updatedAt: string = '';\n details?: BadgeDetail[] = [];\n count: number = 0;\n name: string = '';\n locale: string = 'en';\n description: string = '';\n artworkUrl: string = '';\n emptyBadgeMessage?: string;\n emptyBadgeArtworkUrl?: string;\n awardedDatePrefix?: string;\n badgeNotEarnedMessage?: string;\n lastEarnedAt?: string;\n}\n\nexport type BadgeDetail = {\n name: string;\n locale: string;\n description: string;\n artworkUrl: string;\n id: string;\n createdAt: string;\n updatedAt: string;\n emptyBadgeMessage?: string;\n emptyBadgeArtworkUrl?: string;\n awardedDatePrefix?: string;\n badgeNotEarnedMessage?: string;\n};\n\nexport class RewardCategoryTileConfig {\n showName: boolean = true;\n rewardCategoryId: string = '';\n artworkUrl: string = '';\n name: string = '';\n}\n\nexport class TierTileConfig {\n progressType: ProgressType = ProgressType.Name;\n pointsMultiplier?: number;\n pointsPrefix?: string;\n pointsSuffix?: string;\n tier?: TierType;\n tierId?: string;\n targetTier?: TierType | undefined;\n type?: TierTileType;\n targetTierAttainingPeriod?: Date | null;\n title: string = '';\n emptyDescription?: string = '';\n emptyArtworkUrl?: string = '';\n pointsToTierPrefix?: string = '';\n pointsToTierSuffix?: string = '';\n locale: string = 'en';\n}\n\nexport type Tile = {\n id: string | null;\n type?: TileType;\n active: boolean;\n createdAt: string | null;\n updatedAt: string | null;\n tileHeight: TileHeight;\n configuration: TileConfig;\n priority: number;\n};\n\nconst getConfigForTileType = (tileType: TileType) => {\n switch (tileType) {\n case TileType.Banner:\n return BannerTileConfig;\n case TileType.Points:\n return PointsTileConfig;\n case TileType.Content:\n return ContentTileConfig;\n case TileType.Reward:\n return RewardTileConfig;\n case TileType.Venue:\n return VenueTileConfig;\n case TileType.Badge:\n return BadgeTileConfig;\n case TileType.RewardCategory:\n return RewardCategoryTileConfig;\n case TileType.Tier:\n return TierTileConfig;\n default:\n throw new Error(`Tile type ${tileType} is not supported`);\n }\n};\n\nexport type TileConfig = InstanceType<ReturnType<typeof getConfigForTileType>>;\n\nexport type TileSizeInfo = {\n isFullSize: boolean;\n isHalfSize: boolean;\n};\n","import { useCallback } from 'react';\nimport { useWllSdk } from '../context/WllSdkContext';\nimport {\n CTALinkTarget,\n RewardCategoryTileConfig,\n RewardTileConfig,\n VenueTileConfig,\n Tile,\n TileType,\n} from '../types/tile';\n\nexport const useHandleTilePress = (\n tile: Tile,\n ctaLink?: string | null,\n ctaLinkTarget?: string\n) => {\n const { handleNavigation } = useWllSdk();\n\n return useCallback(() => {\n if (tile?.type === TileType.Reward) {\n const config = tile.configuration as RewardTileConfig;\n if (config?.rewardId) {\n const url = `/reward?id=${config.rewardId}`;\n return handleNavigation(url, CTALinkTarget.sameWindow);\n }\n }\n\n if (tile?.type === TileType.Venue) {\n const config = tile.configuration as VenueTileConfig;\n if (config?.venueId) {\n const url = `/venue?id=${config.venueId}`;\n return handleNavigation(url, CTALinkTarget.sameWindow);\n }\n }\n\n if (tile?.type === TileType.RewardCategory) {\n const config = tile.configuration as RewardCategoryTileConfig;\n const url = `/category?id=${config.rewardCategoryId}`;\n if (config?.rewardCategoryId) {\n return handleNavigation(url, CTALinkTarget.sameWindow);\n }\n }\n\n if (ctaLink) {\n const target =\n (ctaLinkTarget as CTALinkTarget) || CTALinkTarget.sameWindow;\n return handleNavigation(ctaLink, target);\n }\n }, [tile, ctaLink, ctaLinkTarget, handleNavigation]);\n};\n","import { useMemo } from 'react';\nimport { Tile, TileHeight } from '../types/tile';\n\nexport const useTileSize = (tile: Tile) => {\n return useMemo(\n () => ({\n isFullSize: tile.tileHeight === TileHeight.Full,\n isHalfSize: tile.tileHeight === TileHeight.Half,\n }),\n [tile.tileHeight]\n );\n};\n","import * as React from 'react';\nimport {\n Text as RNText,\n TextProps as RNTextProps,\n Role,\n StyleProp,\n StyleSheet,\n TextStyle,\n} from 'react-native';\nimport { IS_MOBILE, IS_WEB } from '../../../constants/device';\nimport { useResponsive } from '../../../context/ResponsiveContext';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\ntype TextVariant =\n | 'eyebrow'\n | 'title'\n | 'description'\n | 'body'\n | 'caption'\n | 'label'\n | 'tier-requirement'\n | 'tier-earned';\n\ntype TextProps = RNTextProps & {\n variant?: TextVariant;\n style?: StyleProp<TextStyle>;\n isSurface?: boolean;\n};\n\nexport const Text = ({\n variant = 'body',\n style,\n isSurface = false,\n ...props\n}: TextProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n\n const getVariantStyle = (variant: TextVariant): TextStyle => {\n const baseStyle = {\n color: theme.surfaceText,\n };\n\n switch (variant) {\n case 'eyebrow':\n return {\n ...baseStyle,\n fontSize: useResponsiveValue(\n theme.sizes.md,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n };\n case 'title':\n return {\n ...baseStyle,\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n fontWeight: 'bold',\n };\n case 'body':\n return {\n color: theme.derivedSurfaceText[20],\n fontSize: useResponsiveValue(\n theme.sizes.md,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n };\n case 'caption':\n return {\n ...baseStyle,\n fontWeight: 'bold',\n fontSize: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xl,\n isDesktop,\n isTablet\n ),\n color: theme.primary,\n };\n case 'description':\n case 'label':\n default:\n return {\n ...baseStyle,\n fontSize: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n };\n }\n };\n\n const variantStyle = getVariantStyle(variant);\n\n // NOTE: React Native Web has different style resolution rules compared to CSS.\n // 1. We create styles using StyleSheet.create for better performance\n // 2. Base styles set the initial fontFamily\n // 3. variantStyle contains responsive fontSize and other variant-specific styles\n // 4. webOverrides ensures fontFamily is correctly applied on web platform\n // (prevents system font stack from being incorrectly applied)\n // 5. custom style prop has highest precedence\n // The order matters because RN Web resolves styles by specific properties\n // rather than last-declaration-wins like in CSS\n // https://necolas.github.io/react-native-web/docs/styling/#how-it-works\n\n const styles = StyleSheet.create({\n base: {\n fontFamily: theme.fontFamily,\n },\n webOverrides: IS_WEB\n ? {\n fontFamily: theme.fontFamily,\n }\n : {},\n });\n\n // Determine appropriate accessibility role based on variant\n // This helps screen readers understand the semantic meaning\n let accessibilityRole;\n\n switch (variant) {\n case 'title':\n accessibilityRole = IS_MOBILE ? 'heading' : 'header';\n break;\n case 'caption':\n accessibilityRole = IS_MOBILE ? 'contentinfo' : 'text';\n break;\n case 'eyebrow':\n accessibilityRole = IS_MOBILE ? 'contentinfo' : 'text';\n break;\n case 'description':\n accessibilityRole = IS_MOBILE ? 'article' : 'paragraph';\n break;\n case 'label':\n accessibilityRole = IS_MOBILE ? 'option' : 'text';\n break;\n default:\n accessibilityRole = IS_MOBILE ? 'contentinfo' : 'text';\n }\n\n const combinedStyles = [\n styles.base,\n variantStyle,\n styles.webOverrides,\n style,\n ];\n\n return (\n <RNText\n style={combinedStyles}\n {...props}\n accessible\n role={accessibilityRole as Role}\n />\n );\n};\n\nexport default Text;\n","import React from 'react';\nimport { TextProps, TextStyle } from 'react-native';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { ContentTileConfig } from '../../../types/tile';\nimport Text from '../Text';\nimport { useTileContext } from './index';\n\ntype BaseTileBodyProps = Omit<TextProps, 'style'> & {\n variant?:\n | 'eyebrow'\n | 'title'\n | 'description'\n | 'body'\n | 'caption'\n | 'label'\n | 'tier-requirement'\n | 'tier-earned';\n isSurface?: boolean;\n style?: TextStyle;\n};\n\n/**\n * Renders the body text of a BaseTile component.\n *\n * @param {BaseTileBodyProps} props - Component props including text styling options\n * @returns {React.ReactElement|null} The rendered body text or null if conditions for display are not met\n */\nexport const BaseTileBody = (props: BaseTileBodyProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n const responsive = useResponsive();\n\n if (!tileContext || !tileContext.configuration || !responsive) return null;\n\n const { isDesktop, isTablet } = responsive;\n const { body, artworkUrl } = tileContext.configuration as ContentTileConfig;\n\n const sizeInfo = useTileSize(tileContext);\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n // Don't show body for half tiles with image\n if ((isHalfSize && artworkUrl) || !body) return null;\n\n const getNumberOfLines = (): number | undefined => {\n if (!isHalfSize && !artworkUrl) return undefined;\n return isDesktop ? 3 : isTablet ? 4 : 3;\n };\n\n return (\n <Text\n variant=\"body\"\n {...props}\n role=\"article\"\n accessibilityLabel={body}\n numberOfLines={getNumberOfLines()}\n testID=\"tile-body\"\n >\n {body}\n </Text>\n );\n};\n","import { TileSizeInfo } from '../types/tile';\n\n/**\n * Utility function that checks if a component context and its configuration exist.\n * Works for both tile contexts and banner contexts.\n *\n * @param context - The component context to validate (tileContext or bannerContext)\n * @returns `true` if both the context and its configuration exist, otherwise `false`\n */\nexport function isContextValid(context: any): boolean {\n return (\n context !== null &&\n context !== undefined &&\n context.configuration !== null &&\n context.configuration !== undefined\n );\n}\n\n/**\n * Checks if a tile's content should be hidden based on its size and artwork configuration.\n *\n * @param {TileSizeInfo | null} sizeInfo - The size information for the tile\n * @param {string | null | undefined} artworkUrl - The URL of the tile's artwork\n * @returns {boolean} True if the content should be hidden, false otherwise\n */\n\nexport const shouldHideContentForHalfTile = (\n sizeInfo: TileSizeInfo | null,\n artworkUrl?: string | null\n): boolean => {\n if (!sizeInfo) return false;\n return sizeInfo.isHalfSize && !!artworkUrl;\n};\n","import { StyleSheet } from 'react-native';\nimport { useTileContext } from '.';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const baseStyles = StyleSheet.create({\n imageContainer: {\n width: '100%',\n position: 'relative',\n },\n container: {\n flex: 1,\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n },\n content: {\n display: 'flex',\n },\n media: {\n width: '100%',\n objectFit: 'cover',\n },\n});\n\n/**\n * Custom hook that returns the styles for the BaseTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the BaseTile component\n */\nexport const useBaseTileStyles = () => {\n const tileContext = useTileContext();\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n\n if (!tileContext || !tileContext.configuration) {\n return StyleSheet.create({\n container: baseStyles.container,\n content: baseStyles.content,\n header: {\n marginBottom: 0,\n marginTop: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n media: baseStyles.media,\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n });\n }\n\n const sizeInfo = useTileSize(tileContext);\n const isHalfSize = sizeInfo?.isHalfSize || false;\n const { artworkUrl, title, body } =\n tileContext.configuration as ContentTileConfig;\n // Access showDetails safely only for Reward tiles to avoid type errors on ContentTileConfig\n const rewardShowDetails: boolean | undefined =\n tileContext.type === 'REWARD'\n ? (tileContext.configuration as unknown as { showDetails?: boolean })\n .showDetails\n : undefined;\n\n // In Reward tiles that show details (title, summary, points), the content height\n // can exceed a square aspect ratio. To prevent clipping (e.g., points cut off in\n // TwoPerRow), allow the container to naturally size and do not enforce aspectRatio.\n const isRewardWithDetails =\n tileContext.type === 'REWARD' && rewardShowDetails !== false;\n\n return StyleSheet.create({\n container: {\n ...baseStyles.container,\n backgroundColor: theme.surface,\n // Allow natural height for reward tiles with details; keep the aspect ratio otherwise\n ...(isRewardWithDetails\n ? { height: undefined }\n : { height: '100%' as const }),\n\n borderRadius: useResponsiveValue(\n theme.sizes.borderRadiusLg,\n theme.sizes.borderRadiusSm,\n isDesktop,\n isTablet\n ),\n justifyContent: 'center',\n alignItems: 'center',\n },\n content: {\n ...baseStyles.content,\n justifyContent: 'center',\n height: !artworkUrl ? '100%' : undefined,\n },\n header: {\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n marginTop:\n !isHalfSize && artworkUrl\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : undefined,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n textAlign: isHalfSize ? 'center' : undefined,\n },\n media: {\n ...baseStyles.media,\n flexBasis: !isHalfSize && title && body ? '50%' : '100%',\n height: isHalfSize ? '100%' : undefined,\n },\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n });\n};\n","import React, { ReactNode } from 'react';\nimport { View } from 'react-native';\n\nimport { useTileContext } from '.';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { WithChildren } from '../../../types/helpers';\nimport { ContentTileConfig } from '../../../types/tile';\nimport {\n isContextValid,\n shouldHideContentForHalfTile,\n} from '../../../utils/contextHelpers';\nimport { baseStyles } from './styles';\n\ntype BaseTileContentProps = WithChildren;\n\n/**\n * Renders the content section of a BaseTile component.\n *\n * @param {BaseTileContentProps} props - Component props\n * @param {ReactNode} props.children - Child elements to render within the content area\n * @returns {React.ReactElement|null} The rendered content or null if conditions for display are not met\n */\n\nexport const BaseTileContent = ({\n children,\n}: BaseTileContentProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl } = tileContext.configuration as ContentTileConfig;\n\n const sizeInfo = useTileSize(tileContext);\n\n if (!sizeInfo) return null;\n\n if (shouldHideContentForHalfTile(sizeInfo, artworkUrl)) return null;\n\n return (\n <View\n testID=\"tile-content\"\n style={[\n baseStyles.content,\n {\n justifyContent: 'center',\n height: !artworkUrl ? '100%' : undefined,\n },\n ]}\n role=\"none\"\n >\n {children}\n </View>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { View, ViewStyle } from 'react-native';\nimport { useTileContext } from '.';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { WithChildren } from '../../../types/helpers';\nimport { ContentTileConfig } from '../../../types/tile';\nimport {\n isContextValid,\n shouldHideContentForHalfTile,\n} from '../../../utils/contextHelpers';\nimport { useBaseTileStyles } from './styles';\n\ntype BaseTileHeaderProps = WithChildren;\n\n/**\n * Renders the header section of a BaseTile component.\n *\n * @param {BaseTileHeaderProps} props - Component props\n * @param {ReactNode} props.children - Child elements to render within the header\n * @returns {React.ReactElement|null} The rendered header or null if conditions for display are not met\n */\nexport const BaseTileHeader = ({\n children,\n}: BaseTileHeaderProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl } = tileContext.configuration as ContentTileConfig;\n\n const sizeInfo = useTileSize(tileContext);\n if (!sizeInfo) return null;\n\n if (shouldHideContentForHalfTile(sizeInfo, artworkUrl)) return null;\n\n const dynamicStyles = useBaseTileStyles();\n\n const combinedStyle: ViewStyle = {\n ...dynamicStyles.header,\n marginTop: sizeInfo.isHalfSize ? 0 : dynamicStyles.header.marginTop,\n ...(sizeInfo.isHalfSize ? { alignItems: 'center' } : {}),\n };\n\n return (\n <View style={combinedStyle} testID=\"tile-header\" role=\"heading\">\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { ImagePropsNoSource } from '../../../types/common';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport Icon from '../Icon';\nimport ProgressiveImage from '../ProgressiveImage';\nimport { useTileContext } from './index';\nimport { baseStyles, useBaseTileStyles } from './styles';\n\n/**\n * Renders the media (image) for a BaseTile component.\n *\n * @param {ImagePropsNoSource} props - The image props excluding source\n * @returns {React.ReactElement|null} The rendered image or null if no artwork URL is present\n */\nexport const BaseTileMedia = (\n props: ImagePropsNoSource\n): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = '', isLocked = false } =\n tileContext.configuration as ContentTileConfig;\n const styles = useBaseTileStyles();\n\n if (!artworkUrl) return null;\n\n return (\n <View style={baseStyles.imageContainer}>\n <ProgressiveImage\n {...props}\n source={{ uri: artworkUrl }}\n testID=\"tile-media\"\n style={[props.style, baseStyles.media, styles.media]}\n alt={`Content image${title ? ` for ${title}` : ''}`}\n role=\"img\"\n />\n {isLocked && (\n <View style={styles.lockOverlay} testID=\"lock-overlay\">\n <Icon name=\"LockKeyhole\" size={48} color=\"white\" />\n </View>\n )}\n </View>\n );\n};\n","import React from 'react';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { SafeConfig } from '../../../types/helpers';\nimport { ContentTileConfig } from '../../../types/tile';\nimport Icon from '../Icon';\nimport Text from '../Text';\nimport { useTileContext } from './index';\n\ntype SafeTileConfig = SafeConfig<ContentTileConfig, 'title' | 'artworkUrl'>;\n\n/**\n * Renders the title of a BaseTile component.\n *\n * @returns {React.ReactElement|null} The rendered title or null if conditions for display are not met\n */\n\nexport const BaseTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n\n if (!tileContext || !tileContext.configuration || !sdk) return null;\n\n const config = tileContext.configuration as SafeTileConfig;\n\n const { title, ctaLink = '', artworkUrl } = config;\n\n const sizeInfo = useTileSize(tileContext);\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n // Don't show title for half tiles with image\n if ((isHalfSize && artworkUrl) || !title) return null;\n\n return (\n <>\n <Text\n variant=\"title\"\n role=\"heading\"\n accessibilityLabel={title}\n numberOfLines={1}\n testID=\"tile-title\"\n >\n {title}\n </Text>\n {ctaLink && (\n <Icon\n name=\"ChevronRight\"\n color={sdk.theme?.derivedSurfaceText?.[20]}\n accessibilityLabel=\"View details\"\n />\n )}\n </>\n );\n};\n","import React, { createContext, useContext } from 'react';\nimport { FlexStyle, Pressable, View, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useHandleTilePress } from '../../../hooks/useHandleTilePress';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { ContentTileConfig, Tile } from '../../../types/tile';\n\nimport { BaseTileBody } from './base-tile-body';\nimport { BaseTileContent } from './base-tile-content';\nimport { BaseTileHeader } from './base-tile-header';\nimport { BaseTileMedia } from './base-tile-media';\nimport { BaseTileTitle } from './base-tile-title';\n\nimport { WithChildren } from '../../../types/helpers';\nimport { baseStyles, useBaseTileStyles } from './styles';\n\n/**\n * Context to provide the current tile to child components.\n */\nexport const TileContext = createContext<Tile | null>(null);\n\n/**\n * Custom hook to access the TileContext.\n *\n * @returns {Tile} The current tile from context\n * @throws {Error} If used outside of a BaseTile\n */\nexport const useTileContext = (): Tile => {\n const context = useContext(TileContext);\n if (!context) {\n throw new Error('Tile components must be used within a BaseTile');\n }\n return context;\n};\n\ntype BaseTileProps = WithChildren & {\n tile: Tile;\n style?: ViewStyle;\n};\n\ntype BaseTileRootProps = WithChildren & {\n style?: ViewStyle;\n};\n\ntype LayoutProps = FlexStyle & {\n justifyContent?: 'flex-start' | 'center' | 'flex-end' | 'space-between';\n};\n\n/**\n * BaseTileContainer component with dynamic accessibility role based on CTA link\n */\nconst BaseTileContainer = ({\n children,\n style,\n}: BaseTileRootProps): React.ReactElement => {\n const tile = useTileContext();\n const sdk = useWllSdk();\n const sizeInfo = useTileSize(tile);\n\n const isHalfSize = sizeInfo?.isHalfSize || false;\n\n const {\n ctaLink = '',\n ctaLinkTarget,\n title = 'Tile',\n } = tile.configuration as ContentTileConfig;\n\n const theme = sdk?.theme || { surface: '#ffffff' };\n\n const handlePress = useHandleTilePress(tile, ctaLink, ctaLinkTarget);\n\n const isInteractive = Boolean(\n ctaLink ||\n tile.type === 'REWARD' ||\n tile.type === 'REWARD_CATEGORY' ||\n tile.type === 'VENUE'\n );\n\n const layout: LayoutProps = {\n flexDirection: 'column',\n justifyContent: isHalfSize ? 'center' : 'flex-start',\n alignItems: 'stretch',\n };\n\n const dynamicStyles = useBaseTileStyles();\n\n if (isInteractive) {\n return (\n <Pressable\n style={({ pressed }) => [\n baseStyles.container,\n dynamicStyles.container,\n {\n backgroundColor: theme.surface,\n opacity: pressed ? 0.7 : 1,\n },\n layout,\n style,\n ]}\n onPress={handlePress}\n accessible\n role=\"button\"\n accessibilityLabel={`${title} - Click to open`}\n accessibilityState={{ disabled: !ctaLink }}\n >\n {children}\n </Pressable>\n );\n } else {\n return (\n <View\n style={[\n baseStyles.container,\n dynamicStyles.container,\n {\n backgroundColor: theme.surface,\n },\n layout,\n style,\n ]}\n accessible\n role=\"article\"\n accessibilityLabel={title || 'Tile'}\n >\n {children}\n </View>\n );\n }\n};\n\n/**\n * BaseTileRoot component to provide context and render children.\n *\n * @param {BaseTileProps} props - Component props\n * @returns {React.ReactElement|null} The rendered BaseTileRoot or null if no tile is provided\n */\nconst BaseTileRoot = ({\n tile,\n children,\n style,\n}: BaseTileProps): React.ReactElement | null => {\n if (!tile) {\n console.warn('BaseTile: No tile provided');\n return null;\n }\n\n return (\n <TileContext.Provider value={tile}>\n <BaseTile.Container style={style}>{children}</BaseTile.Container>\n </TileContext.Provider>\n );\n};\n\n/**\n * BaseTile component with subcomponents attached.\n */\nexport const BaseTile = Object.assign(BaseTileRoot, {\n Container: BaseTileContainer,\n Media: BaseTileMedia,\n Content: BaseTileContent,\n Header: BaseTileHeader,\n Title: BaseTileTitle,\n Body: BaseTileBody,\n});\n\nexport default BaseTile;\n","import React, { useContext, useRef } from 'react';\nimport {\n Animated,\n ImageSourcePropType,\n StyleProp,\n StyleSheet,\n View,\n} from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { TileHeight } from '../../../types/tile';\nimport { desaturateColor } from '../../../utils/themeHelpers';\nimport { TileContext } from '../BaseTile';\n\ntype ProgressiveImageProps = {\n source: ImageSourcePropType;\n style?: StyleProp<any>;\n isDesaturated?: boolean;\n alt?: string;\n [key: string]: any;\n};\n\nconst ProgressiveImage = ({\n source,\n style,\n isDesaturated = false,\n alt,\n ...props\n}: ProgressiveImageProps): React.ReactElement => {\n const imageAnimated = useRef(new Animated.Value(0)).current;\n const { theme } = useWllSdk();\n const tileContext = useContext(TileContext);\n\n const isHalfHeight = tileContext?.tileHeight === TileHeight.Half;\n\n const onImageLoad = (): void => {\n requestAnimationFrame(() => {\n Animated.timing(imageAnimated, {\n toValue: 1,\n useNativeDriver: true,\n duration: 300,\n }).start();\n });\n };\n\n const baseColor = theme.alphaDerivedPrimary[20];\n const desaturatedColor = desaturateColor(baseColor);\n const backgroundColor = isDesaturated ? desaturatedColor : baseColor;\n\n const baseImage = (\n <Animated.Image\n {...props}\n source={source}\n style={[\n styles.imageOverlay,\n style,\n {\n opacity: imageAnimated,\n ...(IS_WEB && {\n filter: isDesaturated ? 'grayscale(100%)' : undefined,\n }),\n },\n ]}\n onLoad={onImageLoad}\n accessibilityLabel={alt}\n accessible\n role=\"img\"\n />\n );\n\n return (\n <View\n style={[\n styles.container,\n isHalfHeight && { minHeight: 0 },\n style,\n { backgroundColor },\n ]}\n >\n {/* Placeholder that fades out as the main image loads */}\n <Animated.View\n style={[\n styles.imageOverlay,\n {\n backgroundColor,\n opacity: imageAnimated.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 0],\n }),\n },\n ]}\n />\n\n {/* For web, just use the base image with CSS filter */}\n {IS_WEB ? (\n baseImage\n ) : (\n // For React Native, use the overlay technique\n <>\n {baseImage}\n {isDesaturated && (\n <Animated.Image\n {...props}\n source={source}\n style={[\n styles.imageOverlay,\n style,\n {\n opacity: imageAnimated.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 0.8],\n }),\n tintColor: 'gray',\n },\n ]}\n />\n )}\n </>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n imageOverlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n },\n container: {\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '100%',\n minHeight: 130,\n },\n});\n\nexport default ProgressiveImage;\n","export const MAX_WIDTH = 1080;\nexport const SLIDE_WIDTH = MAX_WIDTH;\nexport const BUTTON_SIZE = 42;\n","import React, { createContext, useContext } from 'react';\nimport {\n Pressable,\n StyleProp,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\nimport { MAX_WIDTH } from '../../../constants';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useHandleTilePress } from '../../../hooks/useHandleTilePress';\nimport { BannerTileConfig, Tile } from '../../../types/tile';\n\nconst BannerContext = createContext<Tile | null>(null);\n\nexport const useBannerContext = () => {\n const context = useContext(BannerContext);\n if (!context) {\n throw new Error('Banner components must be used within a BaseBanner');\n }\n return context;\n};\n\ntype BaseBannerProps = {\n tile: Tile;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n onPress?: () => void;\n testID?: string;\n disabled?: boolean;\n accessibilityLabel?: string;\n};\n\nconst BaseBanner: React.FC<BaseBannerProps> = ({\n tile,\n children,\n style,\n testID,\n accessibilityLabel,\n}): React.ReactElement => {\n const { theme } = useWllSdk();\n const { ctaLink, ctaLinkTarget, title, ctaText } =\n tile.configuration as BannerTileConfig;\n\n const handlePress = useHandleTilePress(tile, ctaLink, ctaLinkTarget);\n\n const hasCTA = Boolean(ctaText);\n const isInteractive = Boolean(ctaLink && !hasCTA);\n\n const commonStyles = [\n styles.container,\n style,\n {\n backgroundColor: theme.surface,\n borderRadius: theme.sizes.borderRadiusLg,\n },\n ];\n\n return <BannerContext.Provider value={tile}>\n {isInteractive ? (\n <Pressable\n testID={testID || 'banner-tile'}\n style={({ pressed }) => [\n ...commonStyles,\n { opacity: pressed ? 0.7 : 1 },\n ]}\n onPress={handlePress}\n accessible\n role=\"button\"\n accessibilityLabel={accessibilityLabel || `${title} - Click to open`}\n >\n {children}\n </Pressable>\n ) : (\n <View\n testID={testID || 'banner-tile'}\n style={commonStyles}\n accessible\n role=\"article\"\n accessibilityLabel={accessibilityLabel || title || 'Banner'}\n >\n {children}\n </View>\n )}\n </BannerContext.Provider>\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n maxWidth: MAX_WIDTH,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n overflow: 'hidden',\n },\n});\n\nexport default BaseBanner;\n","/* istanbul ignore file */\nimport React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport { useResponsive } from '../../../hooks/useResponsive';\n\nconst Indicator = (): React.ReactElement => {\n const { isDesktop, isTablet } = useResponsive();\n\n const getCurrentLayout = () => {\n if (isDesktop) return 'Desktop Layout';\n if (isTablet) return 'Tablet Layout';\n return 'Mobile Layout';\n };\n\n return (\n <View style={styles.indicator}>\n <Text style={styles.indicatorText}>{getCurrentLayout()}</Text>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n indicator: {\n position: 'absolute',\n top: 10,\n right: 10,\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 4,\n },\n indicatorText: {\n color: 'white',\n fontSize: 12,\n fontWeight: 'bold',\n },\n});\n\nexport default Indicator;\n","export const GRID_GAP = 16;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport {\n Animated,\n StyleSheet,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { IS_MOBILE } from '../../../constants/device';\n\ntype SkeletonTileProps = {\n style?: ViewStyle;\n};\n\nconst SkeletonTile = ({ style }: SkeletonTileProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const animatedValue = React.useRef(new Animated.Value(0)).current;\n const { width } = useWindowDimensions();\n let tileWidth = 1000 / 4;\n let tileHeight = tileWidth;\n\n if (IS_MOBILE) {\n tileWidth = width / 2 - theme.sizes.lg * 2;\n tileHeight = tileWidth;\n }\n\n React.useEffect(() => {\n const pulseAnimation = Animated.loop(\n Animated.sequence([\n Animated.timing(animatedValue, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: true,\n }),\n Animated.timing(animatedValue, {\n toValue: 0,\n duration: 1000,\n useNativeDriver: true,\n }),\n ])\n );\n\n pulseAnimation.start();\n\n return () => pulseAnimation.stop();\n }, [animatedValue]);\n\n const opacity = animatedValue.interpolate({\n inputRange: [0, 1],\n outputRange: [0.3, 0.7],\n });\n\n return (\n <Animated.View\n style={[\n styles.container,\n {\n opacity,\n backgroundColor: theme.alphaDerivedText[20],\n borderRadius: theme.sizes.borderRadiusLg,\n width: tileWidth,\n height: tileHeight,\n },\n style,\n ]}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n overflow: 'hidden',\n },\n});\n\nexport default SkeletonTile;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { Animated, StyleSheet, View, ViewStyle } from 'react-native';\nimport { MAX_WIDTH } from '../../../constants';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport SkeletonTile from '../SkeletonTile';\n\ntype SkeletonProps = {\n width?: number | `${number}%`;\n height?: number | `${number}%`;\n borderRadius?: number;\n style?: ViewStyle;\n numberOfSquares?: number;\n};\n\nconst Skeleton = ({\n style,\n numberOfSquares = 4,\n}: SkeletonProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const animatedValue = React.useRef(new Animated.Value(0)).current;\n\n React.useEffect(() => {\n const pulseAnimation = Animated.loop(\n Animated.sequence([\n Animated.timing(animatedValue, {\n toValue: 1,\n duration: 1000,\n useNativeDriver: true,\n }),\n Animated.timing(animatedValue, {\n toValue: 0,\n duration: 1000,\n useNativeDriver: true,\n }),\n ])\n );\n\n pulseAnimation.start();\n\n return () => pulseAnimation.stop();\n }, [animatedValue]);\n\n const opacity = animatedValue.interpolate({\n inputRange: [0, 1],\n outputRange: [0.3, 0.7],\n });\n\n return (\n <View testID=\"loading-skeleton\">\n <Animated.View\n style={[\n styles.skeleton,\n styles.title,\n {\n opacity,\n backgroundColor: theme.alphaDerivedText[20],\n borderRadius: 6,\n },\n ]}\n />\n <Animated.View\n style={[\n styles.skeleton,\n styles.body,\n {\n opacity,\n backgroundColor: theme.alphaDerivedText[20],\n borderRadius: 6,\n },\n ]}\n />\n <Animated.View style={[styles.container, style]}>\n {Array.from({ length: numberOfSquares }).map((_, index) => (\n <SkeletonTile key={index} />\n ))}\n </Animated.View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: GRID_GAP,\n justifyContent: 'space-between',\n width: '100%',\n maxWidth: MAX_WIDTH,\n },\n title: {\n height: 40,\n marginBottom: 10,\n width: 300,\n },\n body: {\n height: 25,\n width: '85%',\n marginBottom: 24,\n },\n skeleton: {\n overflow: 'hidden',\n },\n});\n\nexport default Skeleton;\n","/* istanbul ignore file */\nimport React, { useEffect, useState } from 'react';\nimport { Text, View } from 'react-native';\nimport { useWllSdk } from '../../context/WllSdkContext';\nimport { Tile } from '../../types/tile';\nimport { commonStyles } from '../../utils/styling';\nimport SkeletonTile from '../atoms/SkeletonTile';\n\nexport type WithTileFetchingProps = {\n tile?: Tile;\n tileId?: string;\n};\n\nexport function withTileFetching<P extends { tile: Tile }>(\n WrappedComponent: React.ComponentType<P>\n) {\n return function WithTileFetchingComponent(\n props: Omit<P, 'tile'> & WithTileFetchingProps\n ) {\n const { tile, tileId } = props;\n const { getTileByID } = useWllSdk();\n const [tileData, setTileData] = useState<Tile | null>(tile || null);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (tile) {\n setTileData(tile);\n } else if (tileId) {\n const fetchTile = async () => {\n setIsLoading(true);\n try {\n const response = await getTileByID(tileId);\n if (response.status === 'success' && response.data) {\n setTileData(response.data);\n } else {\n setError(response.error || 'Failed to fetch tile');\n }\n } catch (err) {\n setError(\n err instanceof Error ? err.message : 'Failed to fetch tile'\n );\n } finally {\n setIsLoading(false);\n }\n };\n fetchTile();\n }\n }, [tile, tileId, getTileByID]);\n\n if (isLoading) {\n return <SkeletonTile style={{ width: '100%' }} />;\n }\n\n if (error || !tileData) {\n return (\n <View style={commonStyles.emptyContainer}>\n <Text>No tile data available</Text>\n </View>\n );\n }\n\n return <WrappedComponent {...(props as P)} tile={tileData} />;\n };\n}\n","import { Tile } from '../types/tile';\n\n/**\n * Sorts tiles by priority (higher priority first) and maintains original order for equal priorities\n * @param tiles Array of tiles to sort\n * @returns Sorted array of tiles\n */\nexport const sortByPriority = <T extends Pick<Tile, 'priority'>>(\n tiles: T[]\n): T[] => {\n return [...tiles].sort((a, b) => {\n // Sort by priority (higher priority first)\n if (a.priority !== b.priority) {\n return b.priority - a.priority;\n }\n // If priorities are equal, maintain original order\n return tiles.indexOf(a) - tiles.indexOf(b);\n });\n};\n\n/**\n * Transforms locale to a locale that is supported by the browser\n * @param locale Two-letter locale code to transform (en, fr, etc.)\n * @returns Full locale string (e.g., en-GB, fr-FR)\n */\nexport const transformLocale = (locale?: string | null): string => {\n const localeMapping: Record<string, string> = {\n en: 'en-GB',\n fr: 'fr-FR',\n es: 'es-ES',\n de: 'de-DE',\n it: 'it-IT',\n pt: 'pt-PT',\n us: 'en-US',\n };\n\n const languageCode = (locale ?? 'en').toLowerCase();\n return localeMapping[languageCode] || 'en-GB';\n};\n\n/**\n * Formats a date string to a localized date string based on user locale\n * @param date Date string to format\n * @param userLocale User's locale (defaults to 'en')\n * @returns Formatted date string or fallback message\n */\nexport const handleLastEarnedDate = (\n date?: string,\n userLocale: string = 'en'\n): string => {\n if (!date) return 'Date not available';\n\n try {\n const formattedLocale = transformLocale(userLocale);\n const dateObj = new Date(date);\n\n if (isNaN(dateObj.getTime())) {\n return 'Invalid Date';\n }\n\n return dateObj.toLocaleDateString(formattedLocale);\n } catch (error) {\n console.error('Error formatting date:', error);\n return 'Invalid Date';\n }\n};\n","import React from 'react';\nimport {\n BadgeTileConfig,\n BadgeTileType,\n StatusVariant,\n} from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { handleLastEarnedDate } from '../../../utils/transforms';\nimport { Chip } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the date earned for a Badge Tile.\n *\n * @returns React.ReactElement or null if badge is not earned or badgeNotEarnedMessage exists\n */\nexport const BadgeTileDateEarned = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) {\n return null;\n }\n\n const {\n count,\n awardedDatePrefix,\n lastEarnedAt,\n badgeNotEarnedMessage,\n type,\n locale,\n } = tileContext.configuration as BadgeTileConfig;\n\n // Don't show for Latest type with count=0\n if (type === BadgeTileType.Latest && count === 0) {\n return null;\n }\n\n // For Specific type, only show if count > 0 or badgeNotEarnedMessage exists\n if (\n type === BadgeTileType.Specific &&\n count === 0 &&\n !badgeNotEarnedMessage\n ) {\n return null;\n }\n\n const formattedDate = handleLastEarnedDate(lastEarnedAt, locale);\n\n const displayText =\n count === 0\n ? badgeNotEarnedMessage\n : `${awardedDatePrefix}${formattedDate}`;\n\n const accessibilityLabel =\n count === 0 ? 'Badge not yet earned' : `Badge earned on ${formattedDate}`;\n\n return (\n <Chip\n label={displayText?.toString() || ''}\n variant={count === 0 ? StatusVariant.GREY : StatusVariant.PRIMARY}\n accessibilityLabel={accessibilityLabel}\n testID=\"badge-tile-date-earned\"\n />\n );\n};\n","import React, { useMemo } from 'react';\nimport { useWindowDimensions, View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\n/**\n * Renders the description for a Badge Tile.\n *\n * @returns React.ReactElement or null if description is not present\n */\n\nexport const BadgeTileDescription = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const width = useWindowDimensions().width;\n const { theme } = useWllSdk();\n\n if (!isContextValid(tileContext)) return null;\n\n const { count, description, type } =\n tileContext.configuration as BadgeTileConfig;\n\n if (!description) return null;\n\n // For Latest type, hide description when count = 0\n // For Specific type, always show description\n if (count === 0 && type === BadgeTileType.Latest) return null;\n\n const numberOfLines = useMemo(() => {\n if (width <= 480) return 2;\n if (width <= 768) return 3;\n if (width <= 1024) return 1;\n return 2;\n }, [width]);\n\n return (\n <View\n accessible\n accessibilityLabel={`Badge description: ${description}`}\n testID=\"badge-tile-description\"\n style={{\n width: '100%',\n overflow: 'hidden',\n paddingBottom: theme.sizes.xxs,\n }}\n >\n <Text\n variant=\"body\"\n numberOfLines={numberOfLines}\n ellipsizeMode=\"tail\"\n accessibilityElementsHidden={true}\n importantForAccessibility=\"no-hide-descendants\"\n >\n {description}\n </Text>\n </View>\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the BadgeTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the BadgeTile component\n */\n\nexport const useBadgeTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n return StyleSheet.create({\n container: {\n flex: 1,\n },\n indicatorContainer: {\n position: 'absolute',\n bottom: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n right: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n backgroundColor: 'rgba(0,0,0,0.6)',\n borderRadius: 40,\n width: 40,\n alignItems: 'center',\n justifyContent: 'center',\n height: 40,\n },\n countText: {\n color: '#FFF',\n fontSize: 14,\n fontWeight: 'bold',\n },\n header: {\n width: '100%',\n ...(!IS_WEB && { flexBasis: '50%' }),\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n marginBottom: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n image: {\n width: '100%',\n height: '100%',\n },\n titleText: {\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n dateEarnedContainer: {\n alignItems: 'flex-start',\n paddingHorizontal: 8,\n paddingVertical: 4,\n borderRadius: 20,\n },\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { shouldDesaturate } from '../../../utils/themeHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useBadgeTileStyles } from './styles';\n\nexport type BadgeTileMediaProps = {\n children?: React.ReactNode;\n alt?: string;\n} & Omit<React.ComponentProps<typeof ProgressiveImage>, 'source' | 'alt'>;\n/**\n * Renders the media for a Badge Tile.\n *\n * @returns React.ReactElement or null if media is not present\n */\n\nexport const BadgeTileMedia = ({\n children,\n alt,\n ...props\n}: BadgeTileMediaProps): React.ReactElement | null => {\n const styles = useBadgeTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { count, artworkUrl, emptyBadgeArtworkUrl, type, name } =\n tileContext.configuration as BadgeTileConfig;\n\n const displayUrl =\n type === BadgeTileType.Specific\n ? artworkUrl\n : count === 0\n ? emptyBadgeArtworkUrl\n : artworkUrl;\n\n if (!displayUrl) return null;\n\n return (\n <View style={styles.header} testID=\"badge-tile-media\">\n <ProgressiveImage\n {...props}\n source={{ uri: displayUrl }}\n style={styles.image}\n resizeMode=\"contain\"\n isDesaturated={shouldDesaturate(type, count)}\n alt={\n alt ??\n `Badge ${name}${type === BadgeTileType.Latest && count === 0 ? ' (not earned)' : ''}`\n }\n />\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport Icon from '../../atoms/Icon';\nimport { useBadgeTileStyles } from './styles';\n\n/**\n * Renders the status for a Badge Tile.\n *\n * @returns React.ReactElement or null if badge is not earned or badgeNotEarnedMessage exists\n */\n\nexport const BadgeTileStatus = (): React.ReactElement | null => {\n const styles = useBadgeTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) {\n return null;\n }\n\n const { count, type } = tileContext.configuration as BadgeTileConfig;\n\n if (type !== BadgeTileType.Specific || count === 1) {\n return null;\n }\n\n const isLocked = count === 0;\n const statusLabel = isLocked ? 'Badge locked' : `Earned ${count} times`;\n\n return (\n <View\n style={styles.indicatorContainer}\n accessible\n accessibilityLabel={statusLabel}\n testID=\"badge-tile-status\"\n >\n {isLocked ? (\n <Icon\n name=\"LockKeyhole\"\n testID=\"badge-tile-status-locked\"\n color=\"#FFF\"\n size={20}\n accessibilityElementsHidden={true}\n />\n ) : (\n <Text\n style={styles.countText}\n accessibilityElementsHidden={true}\n importantForAccessibility=\"no-hide-descendants\"\n >\n {count}x\n </Text>\n )}\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { BadgeTileConfig, BadgeTileType } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useBadgeTileStyles } from './styles';\n\n/**\n * Renders the title for a Badge Tile.\n *\n * @returns React.ReactElement or null if name is not present\n */\n\nexport const BadgeTileTitle = (): React.ReactElement | null => {\n const styles = useBadgeTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { count, name, emptyBadgeMessage, type } =\n tileContext.configuration as BadgeTileConfig;\n\n const displayText =\n type === BadgeTileType.Specific\n ? name\n : count === 0\n ? emptyBadgeMessage\n : name;\n\n if (!displayText) return null;\n\n return (\n <View\n accessible\n accessibilityLabel={`Badge title: ${displayText}`}\n testID=\"badge-tile-title\"\n >\n <Text\n variant=\"title\"\n style={styles.titleText}\n numberOfLines={2}\n ellipsizeMode=\"tail\"\n accessibilityElementsHidden={true}\n importantForAccessibility=\"no-hide-descendants\"\n >\n {displayText}\n </Text>\n </View>\n );\n};\n","import React from 'react';\nimport { Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Spacer } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { BadgeTileDateEarned } from './badge-tile-date-earned';\nimport { BadgeTileDescription } from './badge-tile-description';\nimport { BadgeTileMedia } from './badge-tile-media';\nimport { BadgeTileStatus } from './badge-tile-status';\nimport { BadgeTileTitle } from './badge-tile-title';\n\ntype BadgeTileProps = {\n tile: Tile;\n};\n\n/**\n * The main BadgeTile component.\n * @returns React.ReactElement or null if tile is not active or tileHeight is not full.\n * This component renders a badge tile with optional media, status, title, description, and date earned.\n */\n\nconst BadgeTileRoot = ({ tile }: BadgeTileProps): React.ReactElement | null => {\n if (!tile || tile.tileHeight !== TileHeight.Full || !tile.active) return null;\n\n return (\n <BaseTile tile={tile}>\n <BadgeTile.Media>\n <BadgeTile.Status />\n </BadgeTile.Media>\n\n <Layout justify=\"between\" align=\"start\">\n <BadgeTile.Title />\n <BadgeTile.Description />\n <Spacer />\n <BadgeTile.DateEarned />\n </Layout>\n </BaseTile>\n );\n};\n\n/**\n * The BadgeTile component with subcomponents attached.\n */\n\nexport const BadgeTile = Object.assign(BadgeTileRoot, {\n Media: BadgeTileMedia,\n Title: BadgeTileTitle,\n Description: BadgeTileDescription,\n DateEarned: BadgeTileDateEarned,\n Status: BadgeTileStatus,\n});\n\nexport default withTileFetching(BadgeTile);\n","import React from 'react';\nimport { useHandleTilePress } from '../../../hooks/useHandleTilePress';\nimport { BannerTileConfig, CTALinkTarget } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Button } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\n\n/**\n * Renders the call to action of a Banner Tile.\n *\n * @returns React.ReactElement or null if no text or required props are present\n */\n\nexport const BannerTileCTA = (): React.ReactElement | null => {\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const {\n ctaText = '',\n ctaLink = '',\n ctaLinkTarget,\n } = bannerContext.configuration as BannerTileConfig;\n\n if (!ctaText || !ctaLink) return null;\n\n const handlePress = useHandleTilePress(bannerContext, ctaLink, ctaLinkTarget);\n\n const hint = ctaLink\n ? ctaLinkTarget === CTALinkTarget.newWindow\n ? `Opens ${ctaLink} in a new window`\n : `Takes you to ${ctaLink}`\n : '';\n\n return (\n <Button\n testID=\"banner-tile-cta\"\n title={ctaText}\n variant=\"accent\"\n onPress={handlePress}\n accessibilityHint={hint}\n />\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the BannerTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the BannerTile component\n */\n\nexport const useBannerTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n slideContent: {\n flex: 1,\n },\n mediaContainer: {\n aspectRatio: 1,\n position: 'relative',\n overflow: 'hidden',\n marginRight: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n maxHeight: useResponsiveValue(253, 120, isDesktop, isTablet),\n minHeight: 120,\n },\n media: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n title: {\n fontSize: useResponsiveValue(\n theme.sizes.xxxl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n fontWeight: '700',\n },\n description: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.xs,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.xxxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n color: theme.derivedSurfaceText[20],\n },\n });\n};\n","import React from 'react';\nimport { BannerTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\nimport { useBannerTileStyles } from './styles';\n\n/**\n * Renders the description text of a Banner Tile.\n *\n * @returns React.ReactElement or null if no description is present\n */\n\nexport const BannerTileDescription = (): React.ReactElement | null => {\n const styles = useBannerTileStyles();\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const { description } = bannerContext.configuration as BannerTileConfig;\n\n if (!description) return null;\n\n return (\n <Text\n style={styles.description}\n role=\"article\"\n testID=\"banner-tile-description\"\n >\n {description}\n </Text>\n );\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { BannerTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\nimport { useBannerTileStyles } from './styles';\n\ntype BannerTileMediaProps = {\n isArtworkOnly: boolean;\n};\n\n// Extends ViewStyle to support percentage strings for width values, which React Native accepts at runtime but TypeScript doesn't type correctly\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n width?: string | number;\n};\n\n/**\n * Renders the media of a Banner Tile.\n *\n * @returns React.ReactElement or null if no media is present\n */\n\nexport const BannerTileMedia = ({\n isArtworkOnly,\n}: BannerTileMediaProps): React.ReactElement | null => {\n const styles = useBannerTileStyles();\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const { artworkUrl, title } = bannerContext.configuration as BannerTileConfig;\n\n if (!artworkUrl) return null;\n\n const containerStyle: ResponsiveViewStyle = {\n width: isArtworkOnly ? '100%' : '30%',\n };\n\n return (\n <View\n style={[styles.mediaContainer, containerStyle]}\n role=\"img\"\n accessibilityLabel={`Banner image${title ? ` for ${title}` : ''}`}\n testID=\"banner-tile-media\"\n >\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.media}\n alt={`Banner image${title ? ` for ${title}` : ''}`}\n />\n </View>\n );\n};\n","import React from 'react';\nimport { BannerTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useBannerContext } from '../../atoms/BaseBanner';\nimport { useBannerTileStyles } from './styles';\n\n/**\n * Renders the title of a Banner Tile.\n *\n * @returns React.ReactElement or null if no title is present\n */\n\nexport const BannerTileTitle = (): React.ReactElement | null => {\n const styles = useBannerTileStyles();\n const bannerContext = useBannerContext();\n\n if (!isContextValid(bannerContext)) return null;\n\n const { title } = bannerContext.configuration as BannerTileConfig;\n\n if (!title) return null;\n\n return (\n <Text\n variant=\"title\"\n testID=\"banner-tile-title\"\n style={styles.title}\n role=\"heading\"\n accessibilityLabel={title}\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport BaseBanner from '../../../components/atoms/BaseBanner';\nimport { BannerTileConfig, Tile } from '../../../types/tile';\nimport { FullFlex } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { BannerTileCTA } from './banner-tile-cta';\nimport { BannerTileDescription } from './banner-tile-description';\nimport { BannerTileMedia } from './banner-tile-media';\nimport { BannerTileTitle } from './banner-tile-title';\n\ntype BannerTileProps = {\n tile: Tile;\n};\n\n/**\n * Helper function to determine if the tile is artwork-only.\n *\n * @param configuration - The configuration object of the tile.\n * @returns `true` if the tile has no title, description, or CTA text.\n */\n\nconst isArtworkOnly = (configuration?: BannerTileConfig): boolean => {\n if (!configuration) return true;\n\n return (\n !configuration.title && !configuration.description && !configuration.ctaText\n );\n};\n\n/**\n * The main BannerTile component.\n *\n * This component renders a banner tile with optional media, title, description, and CTA.\n *\n * @param {BannerTileProps} props - Component props\n * @returns {React.ReactElement | null} Rendered component or null if tile is inactive\n */\n\nconst BannerTileRoot = ({ tile }: BannerTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const configuration = tile.configuration as BannerTileConfig;\n\n return (\n <BaseBanner tile={tile}>\n <BannerTile.Media isArtworkOnly={isArtworkOnly(configuration)} />\n <FullFlex>\n <BannerTile.Title />\n <BannerTile.Description />\n <BannerTile.CTA />\n </FullFlex>\n </BaseBanner>\n );\n};\n\n/**\n * The BannerTile component with subcomponents attached.\n */\n\nexport const BannerTile = Object.assign(BannerTileRoot, {\n Media: BannerTileMedia,\n Title: BannerTileTitle,\n Description: BannerTileDescription,\n CTA: BannerTileCTA,\n});\n\nexport default withTileFetching(BannerTile);\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\nexport const ContentTileChevron = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n\n if (!isContextValid(tileContext)) return null;\n\n const { ctaLink } = tileContext.configuration as ContentTileConfig;\n\n if (!ctaLink) return null;\n\n return (\n <Icon\n name=\"ChevronRight\"\n size={IS_MOBILE ? 16 : undefined}\n color={sdk.theme?.derivedSurfaceText?.[20]}\n accessibilityLabel=\"View details\"\n testID=\"content-tile-chevron\"\n />\n );\n};\n","import { StyleSheet, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { getDirectionalMargin } from '../../../utils/styling';\n\n/**\n * Custom hook that returns the styles for the ContentTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the ContentTile component\n */\nexport const useContentTileStyles = (\n hasArtwork = false\n): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n const getHeaderStyle = (hasArtwork: boolean): ViewStyle => ({\n width: '100%',\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n ...(hasArtwork && {\n marginTop: useResponsiveValue(\n theme.sizes.xs,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n }),\n });\n\n return StyleSheet.create({\n imageContainer: {\n width: '100%',\n marginBottom: 0,\n overflow: 'hidden',\n },\n image: {\n width: '100%',\n resizeMode: 'cover',\n },\n content: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n flex: 1,\n },\n header: getHeaderStyle(hasArtwork),\n tileTitle: {\n maxWidth: '90%',\n flex: 1,\n ...getDirectionalMargin(8),\n },\n });\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useContentTileStyles } from './styles';\nimport { IS_WEB } from '../../../constants/device';\n\n// We are using percentage values for flexBasis, which is valid in\n// React Native but TypeScript expects a number.\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n flexBasis?: string | number;\n};\n\ntype ContentTileMediaProps = {\n isArtworkOnly: boolean;\n};\n\nexport const ContentTileMedia = ({\n isArtworkOnly,\n}: ContentTileMediaProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = '' } =\n tileContext.configuration as ContentTileConfig;\n\n if (!artworkUrl) return null;\n\n const hasArtwork = Boolean(artworkUrl);\n const styles = useContentTileStyles(hasArtwork);\n\n const containerStyle: ResponsiveViewStyle = {\n flexBasis: isArtworkOnly ? '100%' : '50%',\n ...(isArtworkOnly && IS_WEB && { aspectRatio: 1 }),\n };\n\n return (\n <View\n style={[styles.imageContainer, containerStyle]}\n testID=\"content-tile-media\"\n role=\"img\"\n accessibilityLabel={`Image for ${title}`}\n >\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n alt={`Image for ${title}`}\n />\n </View>\n );\n};\n","import React, { useMemo } from 'react';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\nexport const ContentTileSummary = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sizeInfo = useTileSize(tileContext);\n\n if (!isContextValid(tileContext)) return null;\n\n const { body, title, artworkUrl } =\n tileContext.configuration as ContentTileConfig;\n\n if (!body) return null;\n\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n const numberOfLines = useMemo(() => {\n if (!body) return undefined;\n\n if (isHalfSize) {\n if (!title && body) return 4;\n if (title && body) return 2;\n }\n\n if (artworkUrl) return 3;\n if (!title) return 8;\n\n return 6;\n }, [title, body, artworkUrl, isHalfSize]);\n\n return (\n <Text\n variant=\"body\"\n role=\"article\"\n accessibilityLabel={body}\n numberOfLines={numberOfLines}\n testID=\"content-tile-summary\"\n >\n {body}\n </Text>\n );\n};\n","import React, { useMemo } from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { ContentTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { useContentTileStyles } from './styles';\n\nexport const ContentTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useContentTileStyles();\n const sizeInfo = useTileSize(tileContext);\n\n if (!isContextValid(tileContext)) return null;\n\n const { title, ctaLink, body, artworkUrl } =\n tileContext.configuration as ContentTileConfig;\n if (!sizeInfo) return null;\n\n const { isHalfSize } = sizeInfo;\n\n const numberOfLines = useMemo(() => {\n if (!title) return undefined;\n\n if (isHalfSize) {\n if (title && !body) return 3;\n }\n\n if (!body) return 7;\n\n return 2;\n }, [title, body, artworkUrl, isHalfSize]);\n\n if (!title) return null;\n\n const handleTitleWidth = () => {\n if (IS_MOBILE && ctaLink) {\n return styles.titleWithLink;\n }\n };\n\n return (\n <Text\n variant=\"title\"\n role=\"heading\"\n accessibilityLabel={title}\n numberOfLines={numberOfLines}\n style={handleTitleWidth()}\n testID=\"content-tile-title\"\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport { ContentTileConfig, Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { ContentTileChevron } from './content-tile-chevron';\nimport { ContentTileMedia } from './content-tile-media';\nimport { ContentTileSummary } from './content-tile-summary';\nimport { ContentTileTitle } from './content-tile-title';\nimport { useContentTileStyles } from './styles';\n\ntype ContentTileProps = {\n tile: Tile;\n};\n\n/**\n * Helper function to determine if the tile should display artwork only.\n *\n * @param configuration - The configuration object of the tile.\n * @returns `true` if the tile should display artwork only.\n */\nconst isArtworkOnly = (configuration?: ContentTileConfig): boolean => {\n if (!configuration) return false;\n return !configuration.title && !configuration.body;\n};\n\n/**\n * The ContentTile component renders a tile with media, title, summary, and a chevron.\n * This follows the same structure as RewardTile for consistent layout.\n *\n * @param {ContentTileProps} props - Component props\n * @param {Tile} props.tile - The tile data to render\n * @returns React.ReactElement or null if tile is inactive\n */\nconst ContentTileRoot = ({\n tile,\n}: ContentTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const configuration = tile.configuration as ContentTileConfig;\n const hasArtwork = Boolean(configuration.artworkUrl);\n const styles = useContentTileStyles(hasArtwork);\n\n return (\n <BaseTile tile={tile}>\n <ContentTile.Media isArtworkOnly={isArtworkOnly(configuration)} />\n {!isArtworkOnly(configuration) && (\n <Layout\n justify={hasArtwork ? 'start' : 'center'}\n style={{\n ...(!hasArtwork &&\n tile.tileHeight === TileHeight.Full && { aspectRatio: 1 }),\n }}\n >\n <Row justify=\"between\" align=\"center\" style={styles.header}>\n <ContentTile.Title />\n <ContentTile.Chevron />\n </Row>\n <ContentTile.Summary />\n </Layout>\n )}\n </BaseTile>\n );\n};\n\n/**\n * The ContentTile component with subcomponents attached.\n */\nexport const ContentTile = Object.assign(ContentTileRoot, {\n Media: ContentTileMedia,\n Title: ContentTileTitle,\n Summary: ContentTileSummary,\n Chevron: ContentTileChevron,\n});\n\nexport default withTileFetching(ContentTile);\n","import { useEffect } from 'react';\nimport { useWllSdk } from '../context/WllSdkContext';\nimport { TGroup } from '../types/group';\n\ntype UseGroupRefreshProps = {\n id: string;\n enabled?: boolean;\n setGroupData: (g: TGroup) => void;\n};\n\nexport const useGroupRefresh = ({\n id,\n enabled = false,\n setGroupData,\n}: UseGroupRefreshProps) => {\n const sdk = useWllSdk();\n\n useEffect(() => {\n if (!enabled || !sdk?.subscribeToDataChange) {\n return;\n }\n\n const unsubscribe = sdk.subscribeToDataChange(\n 'GROUP_DATA_CHANGED',\n async () => {\n if (!id || !sdk || !sdk.refreshGroup) {\n return;\n }\n\n try {\n const res = await sdk.refreshGroup(id);\n\n if (res?.status === 'success' && res.data) {\n setGroupData(res.data as TGroup);\n }\n } catch (err) {\n console.error('Error during silent refresh:', err);\n }\n }\n );\n\n return () => {\n unsubscribe();\n };\n }, [id, sdk, enabled, setGroupData]);\n};\n","import { useEffect, useState } from 'react';\nimport { APIResponse, useWllSdk } from '../context/WllSdkContext';\nimport type { TGroup } from '../types/group';\n\nconst inFlightRequests = new Map<string, Promise<APIResponse<TGroup>>>();\n\ntype UseInitialGroupFetchProps = {\n id: string;\n setGroupData: (group: TGroup) => void;\n};\n\nexport const useInitialGroupFetch = ({\n id,\n setGroupData,\n}: UseInitialGroupFetchProps): { isLoading: boolean; error: string | null } => {\n const sdk = useWllSdk();\n const [isLoading, setIsLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!id || !sdk?.refreshGroup) {\n setError('Unable to fetch group data: invalid configuration');\n setIsLoading(false);\n return;\n }\n\n let cancelled = false;\n\n const fetch = async (): Promise<void> => {\n setIsLoading(true);\n setError(null);\n\n const existing = inFlightRequests.get(id);\n const request = existing ?? sdk.refreshGroup(id);\n if (!existing) {\n inFlightRequests.set(id, request);\n request.finally(() => {\n if (inFlightRequests.get(id) === request) {\n inFlightRequests.delete(id);\n }\n });\n }\n\n try {\n const res = await request;\n if (cancelled) return;\n if (res?.status === 'success' && res.data) {\n setGroupData(res.data);\n } else {\n setError(res?.error ?? 'Failed to fetch group data');\n }\n } catch {\n if (!cancelled) setError('An unexpected error occurred.');\n } finally {\n if (!cancelled) setIsLoading(false);\n }\n };\n\n fetch();\n return () => {\n cancelled = true;\n };\n }, [id, sdk, setGroupData]);\n\n return { isLoading, error };\n};\n","import { useWllSdk } from '../context/WllSdkContext';\n\n/**\n * Hook to invalidate SDK data\n * @returns Methods to trigger SDK data updates\n */\nexport function useInvalidateData() {\n const sdk = useWllSdk();\n\n return {\n invalidateGroupData: () => {\n if (sdk) {\n sdk.notifyDataChange('GROUP_DATA_CHANGED');\n }\n },\n invalidateSectionData: (sectionId?: string) => {\n if (sdk) {\n sdk.notifyDataChange('SECTION_DATA_CHANGED', { sectionId });\n }\n },\n invalidateTileData: (tileId?: string) => {\n if (sdk) {\n sdk.notifyDataChange('TILE_DATA_CHANGED', { tileId });\n }\n },\n };\n}\n","import React, { useState, useCallback } from 'react';\nimport { RefreshControl } from 'react-native';\nimport { useInvalidateData } from './useInvalidateData';\n\ntype UsePullToRefreshProps = {\n onRefresh?: () => Promise<void>;\n refreshing?: boolean;\n};\n\nexport function usePullToRefresh({\n onRefresh,\n refreshing: externalRefreshing,\n}: UsePullToRefreshProps = {}) {\n const [internalRefreshing, setInternalRefreshing] = useState(false);\n const { invalidateGroupData } = useInvalidateData();\n\n const refreshing = externalRefreshing ?? internalRefreshing;\n\n const handleRefresh = useCallback(async () => {\n if (refreshing) return;\n\n setInternalRefreshing(true);\n\n try {\n if (onRefresh) {\n await onRefresh();\n } else {\n // Default behavior: refresh all group data\n invalidateGroupData();\n // Add a small delay to show the refresh animation\n await new Promise((resolve) => setTimeout(resolve, 1000));\n }\n } catch (error) {\n console.error('Pull to refresh failed:', error);\n } finally {\n setInternalRefreshing(false);\n }\n }, [refreshing, onRefresh, invalidateGroupData]);\n\n const refreshControl = React.createElement(RefreshControl, {\n refreshing,\n onRefresh: handleRefresh,\n });\n\n return {\n refreshControl,\n refreshing,\n handleRefresh,\n };\n}\n","import { Tile } from './tile';\n\nexport enum SectionType {\n Grid = 'GRID',\n Banner = 'BANNER',\n}\n\nexport type TSection = {\n id: string;\n name: string;\n type: SectionType;\n createdAt: string;\n updatedAt: string;\n title?: string;\n description?: string;\n tiles: Tile[];\n pointsMultiplier?: number;\n pointsPrefix?: string | null;\n pointsSuffix?: string | null;\n priority: number;\n active: boolean;\n details?: [];\n defaultLocale: string;\n locale: string;\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useSectionHeaderStyles = (): ReturnType<\n typeof StyleSheet.create\n> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n sectionHeader: {\n marginBottom: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n sectionTitle: {\n fontSize: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xl,\n isDesktop,\n isTablet\n ),\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n fontWeight: '700',\n color: theme.text,\n fontFamily: theme.fontFamily,\n },\n sectionDescription: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n color: theme.alphaDerivedText[80],\n fontFamily: theme.fontFamily,\n },\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport Text from '../../atoms/Text';\nimport { useSectionHeaderStyles } from './styles';\n\ntype SectionHeaderProps = {\n title?: string;\n description?: string;\n};\n\nconst SectionHeader = ({\n title,\n description,\n}: SectionHeaderProps): React.ReactElement | null => {\n const styles = useSectionHeaderStyles();\n const { theme } = useWllSdk();\n\n if (!title) {\n return null;\n }\n\n return (\n <View style={styles.sectionHeader}>\n {title && (\n <Text\n style={[\n styles.sectionTitle,\n {\n fontWeight: '700',\n color: theme.text,\n },\n ]}\n >\n {title}\n </Text>\n )}\n {description && (\n <Text\n style={[\n styles.sectionDescription,\n {\n color: theme.alphaDerivedText[80],\n },\n ]}\n >\n {description}\n </Text>\n )}\n </View>\n );\n};\n\nexport default SectionHeader;\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useCarouselStyles = (\n buttonSize = 42\n): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n container: {\n width: '100%',\n flex: 1,\n },\n sectionTitle: {\n fontSize: 31,\n marginBottom: 10,\n },\n sectionDescription: {\n marginBottom: 21,\n },\n title: {\n marginBottom: 10,\n },\n description: {\n marginBottom: 20,\n },\n carouselContainer: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n },\n carouselContent: {\n width: '100%',\n overflow: 'hidden',\n },\n slideContainer: {\n width: '100%',\n },\n navButton: {\n position: 'absolute',\n top: '50%',\n transform: [{ translateY: -buttonSize / 2 }],\n width: buttonSize,\n height: buttonSize,\n borderRadius: buttonSize / 2,\n backgroundColor: theme.background,\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1,\n },\n navButtonLeft: {\n left: -buttonSize / 2,\n },\n navButtonRight: {\n right: -buttonSize / 2,\n backgroundColor: theme.surface,\n },\n indicators: {\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n },\n indicator: {\n width: 8,\n height: 8,\n borderRadius: 8,\n marginHorizontal: 4,\n backgroundColor: theme.derivedBackground,\n },\n activeIndicator: {\n backgroundColor: theme.primary,\n },\n });\n};\n","import React, { useCallback, useEffect, useRef } from 'react';\nimport {\n Animated,\n NativeScrollEvent,\n NativeSyntheticEvent,\n ScrollView,\n StyleSheet,\n useWindowDimensions,\n View,\n} from 'react-native';\nimport { CarouselNavButton } from '../.';\nimport { BUTTON_SIZE } from '../../../constants';\nimport { useResponsive } from '../../../context/ResponsiveContext';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { TSection } from '../../../types/section';\nimport { Tile, TileType } from '../../../types/tile';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { BannerTile } from '../../organisms';\nimport SectionHeader from '../SectionHeader';\nimport { useCarouselStyles } from './styles';\n\ntype CarouselProps = {\n section?: TSection;\n autoRotateInterval?: number;\n};\n\ntype CarouselState = {\n currentIndex: number;\n containerWidth: number;\n};\n\ntype CarouselAction =\n | { type: 'SET_CONTAINER_WIDTH'; payload: number }\n | { type: 'SET_CURRENT_INDEX'; payload: number }\n | { type: 'PREV_SLIDE' }\n | { type: 'NEXT_SLIDE'; maxIndex: number };\n\nconst initialState: CarouselState = {\n currentIndex: 0,\n containerWidth: 0,\n};\n\nconst carouselReducer = (\n state: CarouselState,\n action: CarouselAction\n): CarouselState => {\n switch (action.type) {\n case 'SET_CONTAINER_WIDTH':\n return { ...state, containerWidth: action.payload };\n case 'SET_CURRENT_INDEX':\n return { ...state, currentIndex: action.payload };\n case 'PREV_SLIDE':\n return { ...state, currentIndex: Math.max(0, state.currentIndex - 1) };\n case 'NEXT_SLIDE':\n return {\n ...state,\n currentIndex: Math.min(action.maxIndex, state.currentIndex + 1),\n };\n default:\n return state;\n }\n};\n\nconst Carousel = ({\n section,\n autoRotateInterval = 5000,\n}: CarouselProps): React.ReactElement | null => {\n if (!section) return null;\n const { width: WINDOW_WIDTH } = useWindowDimensions();\n const containerRef = useRef<View>(null);\n const styles = useCarouselStyles(BUTTON_SIZE);\n const animatedIndex = useRef(new Animated.Value(0)).current;\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n const scrollViewRef = useRef<ScrollView>(null);\n\n const [state, dispatch] = React.useReducer(carouselReducer, {\n ...initialState,\n containerWidth: WINDOW_WIDTH,\n });\n\n const { currentIndex, containerWidth } = state;\n\n const sortedTiles = sortByPriority(\n section.tiles.filter((tile: Tile) => tile.type === TileType.Banner)\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffsetX = event.nativeEvent.contentOffset.x;\n const newIndex = contentOffsetX / containerWidth;\n animatedIndex.setValue(newIndex);\n },\n [containerWidth, animatedIndex]\n );\n\n const handleScrollEnd = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const contentOffsetX = event.nativeEvent.contentOffset.x;\n const newIndex = Math.round(contentOffsetX / containerWidth);\n dispatch({ type: 'SET_CURRENT_INDEX', payload: newIndex });\n },\n [containerWidth]\n );\n\n const handlePrev = () => {\n dispatch({ type: 'PREV_SLIDE' });\n scrollViewRef.current?.scrollTo({\n x: (currentIndex - 1) * containerWidth,\n animated: true,\n });\n };\n\n const handleNext = () => {\n const nextIndex = Math.min(sortedTiles.length - 1, currentIndex + 1);\n dispatch({ type: 'NEXT_SLIDE', maxIndex: sortedTiles.length - 1 });\n scrollViewRef.current?.scrollTo({\n x: nextIndex * containerWidth,\n animated: true,\n });\n };\n\n const rotateToNextSlide = useCallback(() => {\n if (currentIndex >= sortedTiles.length - 1) {\n dispatch({ type: 'SET_CURRENT_INDEX', payload: 0 });\n scrollViewRef.current?.scrollTo({\n x: 0,\n animated: true,\n });\n } else {\n handleNext();\n }\n }, [currentIndex, containerWidth, sortedTiles.length]);\n\n useEffect(() => {\n if (sortedTiles.length <= 1) return;\n\n const rotationTimer = setInterval(() => {\n rotateToNextSlide();\n }, autoRotateInterval);\n\n return () => clearInterval(rotationTimer);\n }, [rotateToNextSlide, autoRotateInterval, sortedTiles.length]);\n\n const displayControls = sortedTiles.length > 1;\n const showPrevButton = displayControls && currentIndex > 0;\n const showNextButton =\n displayControls && currentIndex < sortedTiles.length - 1;\n\n const dynamicStyles = StyleSheet.create({\n indicators: {\n flexDirection: 'row',\n justifyContent: 'center',\n marginTop: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n },\n });\n\n return (\n <>\n <SectionHeader title={section.title} description={section.description} />\n <View\n ref={containerRef}\n style={[styles.container, { direction: 'ltr' }]}\n onLayout={(event) => {\n const { width } = event.nativeEvent.layout;\n dispatch({ type: 'SET_CONTAINER_WIDTH', payload: width });\n }}\n >\n <View style={styles.carouselContainer}>\n {showPrevButton && (\n <CarouselNavButton direction=\"left\" onPress={handlePrev} />\n )}\n <ScrollView\n ref={scrollViewRef}\n horizontal\n pagingEnabled\n showsHorizontalScrollIndicator={false}\n onScroll={handleScroll}\n onMomentumScrollEnd={handleScrollEnd}\n scrollEventThrottle={16}\n style={styles.carouselContent}\n contentContainerStyle={{\n width: containerWidth * sortedTiles.length,\n }}\n decelerationRate=\"fast\"\n snapToInterval={containerWidth}\n snapToAlignment=\"start\"\n >\n {sortedTiles.map((tile: Tile, index: number) => (\n <View\n key={index}\n style={[\n styles.slideContainer,\n {\n width: containerWidth,\n },\n ]}\n >\n <BannerTile tile={tile} />\n </View>\n ))}\n </ScrollView>\n {showNextButton && (\n <CarouselNavButton direction=\"right\" onPress={handleNext} />\n )}\n </View>\n {displayControls && (\n <View style={dynamicStyles.indicators}>\n {sortedTiles.map((_, index) => {\n const width = animatedIndex.interpolate({\n inputRange: [index - 1, index, index + 1],\n outputRange: [8, 30, 8],\n extrapolate: 'clamp',\n });\n return (\n <Animated.View\n key={index}\n style={[\n styles.indicator,\n { backgroundColor: theme.derivedBackground, width },\n index === currentIndex && {\n backgroundColor: theme.primary,\n },\n ]}\n />\n );\n })}\n </View>\n )}\n </View>\n </>\n );\n};\n\nexport default Carousel;\n","import { StyleSheet } from 'react-native';\nimport { BUTTON_SIZE } from '../../../constants';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\nexport const useNavButtonStyles = () => {\n const { theme } = useWllSdk();\n const buttonSize = IS_MOBILE ? BUTTON_SIZE * 0.75 : BUTTON_SIZE;\n\n return StyleSheet.create({\n navButton: {\n position: 'absolute',\n top: '50%',\n transform: [{ translateY: -buttonSize / 2 }],\n width: buttonSize,\n height: buttonSize,\n borderRadius: buttonSize / 2,\n backgroundColor: theme.background,\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1,\n },\n navButtonLeft: {\n left: -buttonSize / 2,\n },\n navButtonRight: {\n right: -buttonSize / 2,\n },\n });\n};\n","import React from 'react';\nimport { Pressable } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Icon } from '../../atoms';\nimport { useNavButtonStyles } from './styles';\n\ntype CarouselNavButtonProps = {\n direction: 'left' | 'right';\n onPress: () => void;\n};\n\nexport const CarouselNavButton = ({\n direction,\n onPress,\n}: CarouselNavButtonProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const isRight = direction === 'right';\n const styles = useNavButtonStyles();\n\n return (\n <Pressable\n style={[\n styles.navButton,\n isRight ? styles.navButtonRight : styles.navButtonLeft,\n { backgroundColor: theme.background },\n ]}\n onPress={onPress}\n accessibilityLabel={`${isRight ? 'Next' : 'Previous'} slide`}\n role=\"button\"\n >\n <Icon\n name={isRight ? 'ArrowRight' : 'ArrowLeft'}\n size={20}\n color={theme.primary}\n />\n </Pressable>\n );\n};\n\nexport default CarouselNavButton;\n","import React, { useCallback, useMemo } from 'react';\nimport { StyleSheet, View, ViewStyle } from 'react-native';\nimport { IS_WEB, SCREEN_WIDTH } from '../../../constants/device';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { getDirectionalMargin } from '../../../utils/styling';\nimport { useResponsive } from '../../../context/ResponsiveContext';\nimport { SectionType, TSection } from '../../../types/section';\nimport { Tile, TileHeight, TileType } from '../../../types/tile';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { TileContainer } from '../../atoms';\nimport { SectionHeader } from '../../molecules';\n\ntype GridProps = {\n section: TSection;\n};\n\nconst Grid = ({ section }: GridProps) => {\n if (section.type !== SectionType.Grid) {\n return null;\n }\n\n const { isDesktop } = useResponsive();\n const columnsPerRow = isDesktop ? 4 : 2;\n\n const gridTiles = useMemo(() => {\n return sortByPriority(\n section.tiles.filter((tile) => tile.type !== TileType.Banner)\n );\n }, [section.tiles]);\n\n const getTileWidth = useCallback((columns: number) => {\n if (IS_WEB) {\n return {\n width: `calc(${100 / columns}% - ${((columns - 1) * GRID_GAP) / columns}px)`,\n marginBottom: GRID_GAP,\n };\n } else {\n const availableWidth = SCREEN_WIDTH - GRID_GAP * 2;\n const gapSpace = (columns - 1) * GRID_GAP;\n\n const tileWidth = Math.floor((availableWidth - gapSpace) / columns);\n return {\n width: tileWidth,\n marginBottom: GRID_GAP,\n };\n }\n }, []);\n\n const renderTileContainers = useCallback(() => {\n const tileContainers: React.ReactElement[] = [];\n let currentTiles: Tile[] = [];\n\n const sortedTiles = sortByPriority(gridTiles);\n\n sortedTiles.forEach((tile, index) => {\n currentTiles.push(tile);\n const nextTile = sortedTiles[index + 1];\n\n const shouldStartNewContainer = (\n currentTiles: Tile[],\n currentTile: Tile,\n nextTile?: Tile\n ) => {\n if (currentTiles.length === 2) return true;\n if (currentTile.tileHeight === TileHeight.Full) return true;\n if (currentTile.tileHeight === TileHeight.Half) {\n if (!nextTile) return true;\n if (nextTile.tileHeight === TileHeight.Full) return true;\n if (currentTiles.length === 0) return false;\n if (\n currentTiles.length === 1 &&\n currentTiles[0].tileHeight === TileHeight.Half &&\n nextTile.tileHeight === TileHeight.Half\n ) {\n return false;\n }\n }\n return true;\n };\n\n if (shouldStartNewContainer(currentTiles, tile, nextTile)) {\n const isLastInRow = (tileContainers.length + 1) % columnsPerRow === 0;\n tileContainers.push(\n <View\n key={`container-${index}`}\n style={[\n // @ts-ignore Web uses CSS calc strings for responsive layouts, while ViewStyle expects numbers\n getTileWidth(columnsPerRow) as ViewStyle,\n !isLastInRow && getDirectionalMargin(GRID_GAP),\n ]}\n >\n <TileContainer tiles={currentTiles} />\n </View>\n );\n currentTiles = [];\n }\n });\n\n return tileContainers;\n }, [gridTiles, columnsPerRow, getTileWidth]);\n\n return (\n <View>\n <SectionHeader title={section.title} description={section.description} />\n <View style={styles.grid}>{renderTileContainers()}</View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n grid: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n width: '100%',\n },\n});\n\nexport default Grid;\n","/* istanbul ignore file */\nimport * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Size, Variant } from '../../../types/theme';\nimport { Icon, ProgressBar } from '../../atoms';\n\nexport type ProgressIndicatorProps = {\n currentPoints: number;\n maxPoints: number;\n variant?: Variant;\n height?: Size;\n attained?: boolean;\n};\n\nexport const ProgressIndicator = ({\n currentPoints,\n maxPoints,\n variant = 'primary',\n height = 'sm',\n attained = false,\n}: ProgressIndicatorProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const percentage = attained ? 100 : (currentPoints / maxPoints) * 100;\n const isComplete = percentage >= 100 || attained;\n let progressVariant: Variant = variant;\n\n if (isComplete) {\n progressVariant = 'primary';\n } else if (percentage < 50) {\n progressVariant = 'accent';\n }\n\n return (\n <View style={styles.container}>\n <ProgressBar\n percentage={percentage}\n variant={progressVariant}\n height={height}\n />\n <View style={[styles.circleContainer]}>\n <View\n style={[\n styles.circle,\n {\n borderColor: theme.derivedSurface[20],\n backgroundColor: isComplete ? theme.primary : theme.surface,\n borderWidth: isComplete ? 0 : 4,\n },\n ]}\n >\n {isComplete && (\n <Icon name=\"Check\" size={12} color={theme.primaryText} />\n )}\n </View>\n </View>\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n circleContainer: {\n position: 'absolute',\n right: 0,\n },\n circle: {\n width: 21,\n height: 21,\n borderRadius: 9999,\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nexport default ProgressIndicator;\n","import { StyleSheet } from 'react-native';\nimport { MAX_WIDTH } from '../../../constants';\nimport { IS_WEB } from '../../../constants/device';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the Section component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the Section component\n */\n\nexport const useSectionStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n return StyleSheet.create({\n section: {\n width: '100%',\n maxWidth: IS_WEB ? MAX_WIDTH : MAX_WIDTH - GRID_GAP * 2,\n marginHorizontal: 'auto',\n marginBottom: useResponsiveValue(\n theme.sizes.xxxxxl,\n theme.sizes.xxxxl,\n isDesktop,\n isTablet\n ),\n ...(IS_WEB ? {} : { paddingHorizontal: GRID_GAP }),\n },\n });\n};\n","import React, { createContext, useContext, useEffect, useState } from 'react';\nimport { Text, View } from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { SectionType, TSection } from '../../../types/section';\nimport { commonStyles } from '../../../utils/styling';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { Skeleton } from '../../atoms';\nimport { Carousel, Grid } from '../../molecules';\nimport { useSectionStyles } from './styles';\n\ntype SectionContextType = {\n sectionData: TSection;\n};\n\ntype SectionProps = {\n section?: TSection;\n sectionId?: string;\n};\n\n/**\n * SectionContext provides the current section data to child components.\n */\n\nexport const SectionContext = createContext<SectionContextType | undefined>(\n undefined\n);\n\n/**\n * Custom hook to access the SectionContext.\n *\n * @returns {SectionContextType} The section context value\n * @throws {Error} If used outside of a SectionProvider\n */\n\nexport const useSectionContext = (): SectionContextType => {\n const context = useContext(SectionContext);\n if (!context) {\n throw new Error('useSectionContext must be used within a SectionProvider');\n }\n return context;\n};\n\n/**\n * Custom hook to fetch section data.\n *\n * @param {TSection} [section] - The section data if provided directly\n * @param {string} [sectionId] - The ID of the section to fetch\n * @returns {Object} Object containing section data, loading state, and any error\n */\n\nconst useSectionData = (\n section?: TSection,\n sectionId?: string\n): {\n sectionData: TSection | null;\n isLoading: boolean;\n error: string | null;\n} => {\n const sdk = useWllSdk();\n const [sectionData, setSectionData] = useState<TSection | null>(\n section || null\n );\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (section) {\n setSectionData(section);\n } else if (sectionId && sdk && sdk.getSectionByID) {\n const fetchSection = async () => {\n setIsLoading(true);\n try {\n const response = await sdk.getSectionByID(sectionId);\n if (response && response.status === 'success' && response.data) {\n setSectionData(response.data);\n } else {\n setError(\n (response && response.error) || 'Failed to fetch section data.'\n );\n }\n } catch (err) {\n setError(\n err instanceof Error ? err.message : 'Failed to fetch section data.'\n );\n } finally {\n setIsLoading(false);\n }\n };\n fetchSection();\n }\n }, [section, sectionId, sdk]);\n\n return { sectionData, isLoading, error };\n};\n\n/**\n * Component to display an empty state with a message.\n *\n * @param {Object} props - Component props\n * @param {string} props.message - Message to display in the empty state\n * @returns {React.ReactElement} The empty state component\n */\n\nconst EmptyState = ({ message }: { message: string }): React.ReactElement => (\n <View\n style={commonStyles.emptyContainer}\n role=\"article\"\n accessibilityLabel={`Empty state: ${message}`}\n >\n <Text>{message}</Text>\n </View>\n);\n\n/**\n * The Section component renders a section based on its type (e.g., Banner, Grid).\n *\n * @param {SectionProps} props - Component props\n * @param {TSection} [props.section] - The section data\n * @param {string} [props.sectionId] - The ID of the section to fetch\n * @returns {React.ReactElement|null} The rendered section or null if invalid props\n */\n\n\n\nconst Section: React.FC<SectionProps> = ({ section, sectionId }) => {\n const styles = useSectionStyles();\n const { sectionData, isLoading, error } = useSectionData(section, sectionId);\n\n if (!section && !sectionId) {\n console.warn(\n 'Section component requires either section or sectionId prop.'\n );\n return null;\n }\n\n const renderSectionContent = (): React.ReactElement | null => {\n if (isLoading) {\n return (\n <Skeleton\n aria-label=\"Loading section content\"\n numberOfSquares={IS_WEB ? 4 : 2}\n />\n );\n }\n\n if (error || !sectionData) {\n return <EmptyState message={error || 'No section data available.'} />;\n }\n\n // Filter out inactive tiles before passing to child components\n const activeTiles =\n sectionData.tiles &&\n sortByPriority(sectionData.tiles.filter((tile) => tile && tile.active));\n\n if (!activeTiles || activeTiles.length === 0) {\n return <EmptyState message=\"No active tiles available.\" />;\n }\n\n const sectionWithActiveTiles = { ...sectionData, tiles: activeTiles };\n\n if (!sectionData.type) {\n console.warn('Section is missing a type');\n return <EmptyState message=\"Invalid section configuration.\" />;\n }\n\n switch (sectionData.type) {\n case SectionType.Banner:\n return <Carousel section={sectionWithActiveTiles} />;\n case SectionType.Grid:\n return <Grid section={sectionWithActiveTiles} />;\n default:\n console.warn(`Unknown section type: ${sectionData.type}`);\n return <EmptyState message=\"Unknown section type.\" />;\n }\n };\n\n return sectionData ? (\n <SectionContext.Provider value={{ sectionData }}>\n <View\n style={styles.section}\n accessible\n accessibilityLabel={`Section: ${sectionData.title || 'Untitled section'}`}\n accessibilityHint={sectionData.description || undefined}\n role=\"region\"\n >\n {renderSectionContent()}\n </View>\n </SectionContext.Provider>\n ) : null;\n};\n\nexport default Section;\n","import React, { createContext, useContext, useState } from 'react';\nimport { ScrollView, View } from 'react-native';\nimport { IS_MOBILE, IS_WEB } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useGroupRefresh } from '../../../hooks/useGroupRefresh';\nimport { useInitialGroupFetch } from '../../../hooks/useInitialGroupFetch';\nimport { usePullToRefresh } from '../../../hooks/usePullToRefresh';\nimport { TGroup } from '../../../types/group';\nimport { commonStyles } from '../../../utils/styling';\nimport { sortByPriority } from '../../../utils/transforms';\nimport { Skeleton, Text } from '../../atoms';\nimport Section from '../Section';\n\ntype GroupProps = {\n id: string;\n enablePullToRefresh?: boolean;\n onRefresh?: () => Promise<void>;\n};\n\ntype GroupContextType = {\n groupData: TGroup;\n};\n\ntype GroupEmptyStateProps = {\n message: string;\n};\n\n/**\n * Context for providing group data to child components\n */\nexport const GroupContext = createContext<GroupContextType | undefined>(\n undefined\n);\n\n/**\n * Custom hook to access the GroupContext\n *\n * @returns {GroupContextType} The group context data\n * @throws {Error} If used outside of a GroupProvider\n */\nexport const useGroupContext = (): GroupContextType => {\n const context = useContext(GroupContext);\n if (!context) {\n throw new Error('useGroupContext must be used within a GroupProvider');\n }\n return context;\n};\n\n/**\n * Custom hook to fetch and manage group data\n *\n * This hook handles two distinct data fetching scenarios:\n * 1. Initial fetch: Shows loading state while first loading data\n * 2. Background refresh: Updates data silently without loading states\n *\n * The hook subscribes to GROUP_DATA_CHANGED events to refresh data\n * when notified by the host application, ensuring UI remains responsive\n * without showing loading indicators during refreshes.\n *\n * @param {string} id - The ID of the group to fetch\n * @returns {Object} Object containing group data, loading state, and any error\n */\n\nconst useGroupData = (id: string) => {\n const [groupData, setGroupData] = useState<TGroup | null>(null);\n\n const { isLoading, error } = useInitialGroupFetch({ id, setGroupData });\n useGroupRefresh({\n id,\n enabled: Boolean(groupData),\n setGroupData,\n });\n\n return { groupData, isLoading, error };\n};\n\n/**\n * Component to display an empty state with a message\n *\n * @param {GroupEmptyStateProps} props - Component props\n * @param {string} props.message - Message to display\n * @returns {React.ReactElement} The empty state component\n */\n\nexport const GroupEmptyState = ({\n message,\n}: GroupEmptyStateProps): React.ReactElement => (\n <View\n style={commonStyles.emptyContainer}\n accessible\n accessibilityLabel={`Empty state: ${message}`}\n >\n <Text variant=\"body\">{message}</Text>\n </View>\n);\n\n/**\n * Component to render all sections in a group\n *\n * @returns {React.ReactElement} The sections component\n */\n\nexport const GroupSections = (): React.ReactElement => {\n const { groupData } = useGroupContext();\n\n if (!groupData || !groupData.sections || groupData.sections.length === 0) {\n return <GroupEmptyState message=\"This group doesn't have any sections\" />;\n }\n\n // Filter out inactive sections and null/undefined values before sorting\n const activeSections = groupData.sections.filter(\n (section) => section && section.active\n );\n\n if (activeSections.length === 0) {\n return (\n <GroupEmptyState message=\"This group doesn't have any active sections\" />\n );\n }\n\n const sortedSections = sortByPriority(activeSections);\n\n const Container = IS_WEB ? View : ScrollView;\n\n return (\n <Container\n accessible\n accessibilityLabel={`Group: ${groupData.name || 'Unnamed group'}`}\n role=\"region\"\n >\n {sortedSections.map((section) => (\n <Section key={section.id} section={section} />\n ))}\n </Container>\n );\n};\n\n/**\n * A page-level component that represents a Group view in the application.\n *\n * This component serves as a container page that manages the fetching and display\n * of a group's data and its associated sections. It handles various states including\n * loading, errors, and empty states, providing a complete page experience for\n * viewing group content.\n *\n * @param {GroupProps} props - Component props\n * @param {string} props.id - The unique identifier of the group to fetch and display\n * @returns {React.ReactElement|null} The rendered group or null if invalid ID\n */\n\nconst Group = ({\n id,\n enablePullToRefresh = true,\n onRefresh\n}: GroupProps): React.ReactElement | null => {\n if (!id) {\n console.warn('Group component requires id prop');\n return null;\n }\n\n const { groupData, isLoading, error } = useGroupData(id);\n const { theme } = useWllSdk();\n const { refreshControl, refreshing } = usePullToRefresh({\n onRefresh,\n refreshing: isLoading && !groupData\n });\n\n if (isLoading && !groupData) {\n return (\n <View\n style={{\n flex: 1,\n padding: IS_MOBILE ? theme.sizes.lg : undefined,\n }}\n accessible\n accessibilityLabel=\"Loading group data\"\n >\n <Skeleton numberOfSquares={IS_WEB ? 4 : 2} />\n </View>\n );\n }\n\n if (error || !groupData) {\n return <GroupEmptyState message={error || 'No group data available'} />;\n }\n\n const Container = IS_WEB ? View : ScrollView;\n const containerProps = IS_WEB\n ? {}\n : {\n refreshControl: enablePullToRefresh ? refreshControl : undefined,\n showsVerticalScrollIndicator: true,\n };\n\n return (\n <GroupContext.Provider value={{ groupData }}>\n <View testID=\"group-container\">\n <Container {...containerProps}>\n <GroupSections />\n </Container>\n </View>\n </GroupContext.Provider>\n );\n};\n\nexport default Group;\n","/**\n * Cleans up a number by removing any whitespace and ensuring it's a valid number\n * @param value The number to clean up\n * @returns A cleaned up number as a number\n */\nexport const cleanNumber = (value: number): number => {\n return Number(\n Number(value.toString().trim().replace(/\\s+/g, '')).toFixed(2)\n );\n};\n\n/**\n * Applies a multiplier to a base value. Handles string multipliers by converting them to numbers.\n * If the multiplier is invalid (NaN, null, undefined), defaults to 1.\n *\n * @param baseValue The base value to multiply\n * @param pointsMultiplier Optional multiplier value (defaults to 1)\n * @returns The calculated points value\n */\nexport const applyMultiplier = (\n baseValue: number,\n pointsMultiplier?: string | number | null\n): number => {\n if (typeof baseValue !== 'number' || isNaN(baseValue)) {\n return 0;\n }\n const multiplier = Number(pointsMultiplier ?? 1);\n const result = baseValue * (isNaN(multiplier) ? 1 : multiplier);\n return cleanNumber(result);\n};\n\n/**\n * Formats a points label by combining the label, points value, and optional prefix/suffix.\n * Only includes non-empty values in the final string.\n * Returns empty string if points is 0.\n *\n * @param label The main label text (e.g., \"Reward points:\"). Defaults to \"Reward points:\"\n * @param points The points value to display. Defaults to 0\n * @param prefix Optional prefix to display before the points value\n * @param suffix Optional suffix to display after the points value\n * @returns A formatted string containing only the non-empty parts joined together, or empty string if points is 0\n */\nexport const getPointsLabel = (\n label: string | undefined = 'Reward points:',\n points: number = 0,\n prefix?: string | null,\n suffix?: string | null\n) => {\n if (typeof points !== 'number' || isNaN(points) || points === 0) {\n return '';\n }\n return [label, prefix, points, suffix]\n .filter((item) => item !== null && item !== undefined && item !== '')\n .join(' ');\n};\n","import { ImageProps, ViewStyle } from 'react-native';\n\nexport type ImagePropsNoSource = Omit<ImageProps, 'source'>;\n\nexport type FlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\nexport type Justify =\n | 'start'\n | 'end'\n | 'center'\n | 'between'\n | 'around'\n | 'evenly';\n\nexport type Align = 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n\nexport type LayoutProps = {\n children: React.ReactNode;\n justify?: Justify;\n align?: Align;\n direction?: FlexDirection;\n style?: ViewStyle;\n};\n\nexport const justifyMap: Record<Justify, ViewStyle['justifyContent']> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n} as const;\n\nexport const alignMap: Record<Align, ViewStyle['alignItems']> = {\n start: 'flex-start',\n end: 'flex-end',\n center: 'center',\n stretch: 'stretch',\n baseline: 'baseline',\n} as const;\n","import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { Align, alignMap, Justify, justifyMap } from '../../../types/common';\n\ntype ColumnProps = {\n children: React.ReactNode;\n justify?: Justify;\n align?: Align;\n reverse?: boolean;\n flex?: number;\n style?: ViewProps['style'];\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A primitive Column component that extends Layout with vertical direction.\n * Provides a cleaner API for creating vertically aligned layouts.\n * @param reverse - When true, reverses the direction of the column (column-reverse)\n * @param justify - The justify content of the column\n * @param align - The align items of the column\n * @param flex - Optional flex number to control the column's flex behavior\n * @param style - Additional styles to apply to the column\n */\nexport const Column = ({\n children,\n justify = 'start',\n align = 'start',\n reverse = false,\n flex,\n style,\n ...rest\n}: ColumnProps): React.ReactElement => {\n const styles = StyleSheet.create({\n container: {\n justifyContent: justifyMap[justify],\n alignItems: alignMap[align],\n flexDirection: reverse ? 'column-reverse' : 'column',\n ...(flex !== undefined && { flex }),\n },\n });\n return (\n <View style={[styles.container, style]} {...rest}>\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { View, ViewProps, ViewStyle } from 'react-native';\nimport { IS_WEB } from '../../../constants/device';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useWllSdk } from '../../../context/WllSdkContext';\n\n/**\n * Props for the FullFlex component.\n *\n * @param children - The child components to render inside the flex container.\n * @param style - Optional custom styles to apply to the container.\n */\ntype FullFlexProps = {\n children: React.ReactNode;\n style?: ViewStyle;\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A FullFlex component that provides a flexible container with `flex: 1`.\n *\n * This component is commonly used to create a full-flex container that expands\n * to fill available space in a layout.\n */\nexport const FullFlex = ({\n children,\n style,\n ...rest\n}: FullFlexProps): React.ReactElement => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n const isRTL =\n IS_WEB &&\n typeof document !== 'undefined' &&\n document.documentElement.dir === 'rtl';\n\n return (\n <View\n style={[\n {\n flex: 1,\n // If the language is Arabic (RTL), use 'rtl', otherwise 'ltr'.\n direction: isRTL ? 'rtl' : 'ltr',\n ...(isRTL && {\n marginRight: useResponsiveValue(\n theme.sizes.xxl,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n }),\n },\n style,\n ]}\n {...rest}\n >\n {children}\n </View>\n );\n};\n","import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport {\n Align,\n alignMap,\n FlexDirection,\n Justify,\n justifyMap,\n} from '../../../types/common';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\ntype LayoutProps = {\n children: React.ReactNode;\n direction?: FlexDirection;\n justify?: Justify;\n align?: Align;\n style?: ViewProps['style'];\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A primitive Layout component that provides flexible layout options.\n * @param direction - The direction of the layout (column or row)\n * @param justify - The justify content of the layout\n * @param align - The align items of the layout\n * @param style - Additional styles to apply to the layout\n * @param children - The child components to render inside the layout\n * @returns The rendered Layout component with special paddings\n */\nexport const Layout = ({\n children,\n direction = 'column',\n justify = 'start',\n align = 'start',\n style = {},\n ...rest\n}: LayoutProps): React.ReactElement => {\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n const dynamicStyles = StyleSheet.create({\n container: {\n flexGrow: 1,\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n paddingBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n justifyContent: justifyMap[justify],\n alignItems: alignMap[align],\n flexDirection: direction,\n },\n });\n return (\n <View style={[dynamicStyles.container, style]} {...rest}>\n {children}\n </View>\n );\n};\n","import * as React from 'react';\nimport { StyleSheet, View, ViewProps } from 'react-native';\nimport { Align, alignMap, Justify, justifyMap } from '../../../types/common';\n\ntype RowProps = {\n children: React.ReactNode;\n justify?: Justify;\n align?: Align;\n reverse?: boolean;\n flex?: number;\n style?: ViewProps['style'];\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A primitive Row component that extends Layout with horizontal direction.\n * Provides a cleaner API for creating horizontally aligned layouts.\n * @param reverse - When true, reverses the direction of the row (row-reverse)\n * @param justify - The justify content of the row\n * @param align - The align items of the row\n * @param flex - Optional flex number to control the row's flex behavior\n * @param style - Additional styles to apply to the row\n */\nexport const Row = ({\n children,\n justify = 'start',\n align = 'center',\n reverse = false,\n flex,\n style,\n ...rest\n}: RowProps): React.ReactElement => {\n const styles = StyleSheet.create({\n container: {\n justifyContent: justifyMap[justify],\n alignItems: alignMap[align],\n flexDirection: reverse ? 'row-reverse' : 'row',\n ...(flex !== undefined && { flex }),\n },\n });\n return (\n <View style={[styles.container, style]} {...rest}>\n {children}\n </View>\n );\n};\n","import React from 'react';\nimport { View, ViewProps, ViewStyle } from 'react-native';\n\n/**\n * Props for the Spacer component.\n *\n * @param style - Optional custom styles to apply to the spacer.\n */\ntype SpacerProps = {\n style?: ViewStyle;\n} & Omit<ViewProps, 'style'>;\n\n/**\n * A simple Spacer component that creates flexible space in layouts.\n *\n * The Spacer is commonly used in flexbox layouts to create adjustable empty space\n * between child elements, avoiding the need for explicit margins or padding.\n */\nexport const Spacer = ({ style, ...rest }: SpacerProps): React.ReactElement => {\n return <View style={[{ flex: 1 }, style]} {...rest} />;\n};\n","import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the PointsTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the PointsTile component\n */\n\nexport const usePointsTileStyles = (\n isFullSize?: boolean\n): {\n container: ViewStyle;\n contentContainer: ViewStyle;\n contentColumn: ViewStyle;\n mediaColumn: ViewStyle;\n chevronContainer: ViewStyle;\n suffix: TextStyle;\n pointsWithSuffix: ViewStyle;\n imageContainer: ViewStyle;\n image: ImageStyle;\n} => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n container: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n width: '100%',\n flexDirection: isFullSize ? 'row' : 'row-reverse',\n alignItems: isFullSize ? 'flex-start' : 'center',\n justifyContent: 'space-between',\n },\n contentContainer: {\n width: '100%',\n },\n contentColumn: {\n flexGrow: 1,\n paddingBottom: theme.sizes.xxs,\n },\n mediaColumn: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n suffix: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n color: theme.primary,\n },\n pointsWithSuffix: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n chevronContainer: {\n marginLeft: !isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n },\n imageContainer: {\n width: isFullSize ? '100%' : isDesktop ? 57 : 40,\n marginBottom: isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n backgroundColor: isFullSize\n ? theme.alphaDerivedPrimary[20]\n : theme.surface,\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n } as ViewStyle,\n image: {\n minHeight: 130,\n width: '100%',\n height: '100%',\n resizeMode: 'contain',\n } as ImageStyle,\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { applyMultiplier } from '../../../utils/pointsHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { Row } from '../../atoms/Primatives';\nimport { usePointsTileStyles } from './styles';\n\n/**\n * Renders formatted points value for a Points Tile.\n *\n * @returns React.ReactElement or null if points are undefined or zero\n */\n\nexport const PointsTileFormattedPoints = (): React.ReactElement | null => {\n const styles = usePointsTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n pointsMultiplier = 1,\n pointsPrefix = '',\n pointsSuffix = 'pts',\n points = 0,\n } = tileContext.configuration as PointsTileConfig;\n\n if (points === undefined) return null;\n\n const calculatedPoints = applyMultiplier(points, pointsMultiplier);\n const fullPointsText =\n `${pointsPrefix}${calculatedPoints} ${pointsSuffix}`.trim();\n\n return (\n <View\n testID=\"points-tile-points\"\n role=\"article\"\n accessibilityLabel={`Points value: ${fullPointsText}`}\n >\n <Row align=\"center\" justify=\"start\">\n {pointsPrefix ? (\n <Text variant=\"caption\" testID=\"points-tile-prefix\">\n {pointsPrefix}\n </Text>\n ) : null}\n <Text variant=\"caption\" testID=\"points-tile-value\">\n {calculatedPoints}\n </Text>\n {pointsSuffix ? (\n <Text\n variant=\"caption\"\n style={styles.suffix}\n testID=\"points-tile-suffix\"\n >\n {pointsSuffix}\n </Text>\n ) : null}\n </Row>\n </View>\n );\n};\n","import React from 'react';\nimport { Image, View } from 'react-native';\n\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { usePointsTileStyles } from './styles';\n\ntype PointsTileMediaProps = {\n isFullSize: boolean;\n};\n\n/**\n * Renders the media of a Points Tile.\n *\n * @returns React.ReactElement or null if media is not present\n */\n\nexport const PointsTileMedia = ({\n isFullSize,\n}: PointsTileMediaProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = 'Points' } =\n tileContext.configuration as PointsTileConfig;\n const styles = usePointsTileStyles(isFullSize);\n\n if (!artworkUrl) return null;\n\n return (\n <View\n testID=\"points-tile-media\"\n style={styles.imageContainer}\n role=\"img\"\n accessibilityLabel={`Points tile image for ${title}`}\n >\n <Image\n source={{ uri: artworkUrl }}\n style={styles.image}\n resizeMode={isFullSize ? 'cover' : 'contain'}\n />\n </View>\n );\n};\n","import React from 'react';\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the title of a Points Tile.\n *\n * @returns React.ReactElement or null if no title is present\n */\n\nexport const PointsTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { title } = tileContext.configuration as PointsTileConfig;\n\n if (!title) return null;\n\n return (\n <Text\n variant=\"eyebrow\"\n testID=\"points-tile-title\"\n role=\"heading\"\n accessibilityLabel={title}\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { PointsTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { View } from 'react-native';\nimport { usePointsTileStyles } from './styles';\n/**\n * Renders a chevron icon for a Roundup Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const PointsTileChevron = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n const styles = usePointsTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { ctaLink } = tileContext.configuration as PointsTileConfig;\n\n if (!ctaLink) return null;\n\n return (\n <View style={styles.chevronContainer}>\n <Icon\n name=\"ChevronRight\"\n size={16}\n color={sdk.theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View balance\"\n />\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { PointsTileConfig, Tile } from '../../../types/tile';\nimport { BaseTile, Column, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { PointsTileFormattedPoints } from './points-tile-formatted-points';\nimport { PointsTileMedia } from './points-tile-media';\nimport { PointsTileTitle } from './points-tile-title';\nimport { usePointsTileStyles } from './styles';\nimport { PointsTileChevron } from './points-tile-chevron';\ntype PointsTileProps = {\n tile: Tile;\n};\n\n/**\n * The PointsTile component renders a tile with media, title, and formatted points.\n *\n * @param props - Component props\n * @returns React.ReactElement or null if tile is inactive or missing required props\n */\n\nconst PointsTileRoot = ({ tile }: PointsTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const config = tile.configuration as PointsTileConfig;\n if (!config) return null;\n\n const { isFullSize } = useTileSize(tile);\n const styles = usePointsTileStyles(isFullSize);\n\n return (\n <BaseTile tile={tile}>\n {isFullSize && <PointsTile.Media isFullSize />}\n <View style={styles.container}>\n <Row style={styles.contentContainer}>\n <Column style={styles.contentColumn}>\n <PointsTile.Title />\n <PointsTile.Points />\n </Column>\n <Column style={styles.mediaColumn}>\n {!isFullSize && <PointsTile.Media isFullSize={false} />}\n <PointsTile.Chevron />\n </Column>\n </Row>\n </View>\n </BaseTile>\n );\n};\n\n/**\n * The PointsTile component with subcomponents attached.\n */\n\nexport const PointsTile = Object.assign(PointsTileRoot, {\n Title: PointsTileTitle,\n Points: PointsTileFormattedPoints,\n Media: PointsTileMedia,\n Chevron: PointsTileChevron,\n});\n\nexport default withTileFetching(PointsTile);\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the RewardCategory component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the RewardCategory component\n */\n\nexport const useRewardCategoryTileStyles = (): ReturnType<\n typeof StyleSheet.create\n> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n header: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n zIndex: 10,\n height: 35,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.primary,\n },\n headerText: {\n fontSize: useResponsiveValue(\n theme.sizes.lg,\n theme.sizes.sm,\n isDesktop,\n isTablet\n ),\n paddingHorizontal: useResponsiveValue(\n theme.sizes.xxxxl,\n 20,\n isDesktop,\n isTablet\n ),\n color: theme.primaryText,\n },\n background: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n });\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { RewardCategoryTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardCategoryTileStyles } from './styles';\n\n/**\n * Renders the header for a Reward Category Tile.\n *\n * @returns React.ReactElement or null if showName is false or name is not present\n */\n\nexport const RewardCategoryHeader = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useRewardCategoryTileStyles();\n const { theme } = useWllSdk();\n\n if (!isContextValid(tileContext)) return null;\n\n const { showName = true, name = '' } =\n tileContext.configuration as RewardCategoryTileConfig;\n\n if (!showName || !name) return null;\n\n return (\n <View\n style={[styles.header, { backgroundColor: theme.primary }]}\n testID=\"reward-category-header\"\n role=\"heading\"\n accessibilityLabel={`Reward category: ${name}`}\n >\n <Text\n style={[styles.headerText, { color: theme.primaryText }]}\n ellipsizeMode=\"tail\"\n numberOfLines={1}\n >\n {name}\n </Text>\n </View>\n );\n};\n","import React from 'react';\nimport { RewardCategoryTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardCategoryTileStyles } from './styles';\n\n/**\n * Renders the background media for a Reward Category Tile.\n *\n * @returns React.ReactElement or null if no artwork URL is present\n */\n\nexport const RewardCategoryMedia = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n const styles = useRewardCategoryTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, name = 'Reward' } =\n tileContext.configuration as RewardCategoryTileConfig;\n\n if (!artworkUrl) return null;\n\n return (\n <ProgressiveImage\n testID=\"reward-category-media\"\n source={{ uri: artworkUrl }}\n style={styles.background}\n alt={`Reward category image for ${name}`}\n role=\"img\"\n />\n );\n};\n","import React from 'react';\nimport { Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { RewardCategoryHeader } from './reward-category-header';\nimport { RewardCategoryMedia } from './reward-category-media';\nimport { View } from 'react-native';\n\ntype RewardCategoryTileProps = {\n tile: Tile;\n};\n\n/**\n * The RewardCategoryTile component renders a tile with a header and media.\n *\n * @param {RewardCategoryTileProps} props - The component props\n * @param {Tile} props.tile - The tile data to render\n * @returns {React.ReactElement|null} Rendered component or null if tile is inactive or missing configuration\n */\n\nconst RewardCategoryTileRoot = ({\n tile,\n}: RewardCategoryTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n return (\n <BaseTile tile={tile}>\n <View\n style={{ aspectRatio: tile.tileHeight === TileHeight.Half ? 2 : 1 }}\n >\n <RewardCategoryTile.Header />\n <RewardCategoryTile.Media />\n </View>\n </BaseTile>\n );\n};\n\n/**\n * The RewardCategoryTile component with subcomponents attached.\n */\nexport const RewardCategoryTile = Object.assign(RewardCategoryTileRoot, {\n Header: RewardCategoryHeader,\n Media: RewardCategoryMedia,\n});\n\nexport default withTileFetching(RewardCategoryTile);\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Icon } from '../../atoms';\n\n/**\n * Renders a chevron icon for a Reward Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const RewardTileChevron = (): React.ReactElement => {\n const { theme } = useWllSdk();\n\n return (\n <Icon\n name=\"ChevronRight\"\n size={IS_MOBILE ? 16 : undefined}\n color={theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View reward details\"\n />\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { getDirectionalMargin } from '../../../utils/styling';\n\n/**\n * Custom hook that returns the styles for the RewardTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the RewardTile component\n */\n\nexport const useRewardTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n imageContainer: {\n width: '100%',\n minHeight: 130,\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n image: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n },\n lockIcon: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: '100%',\n height: '100%',\n },\n content: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n footer: {\n width: '100%',\n marginTop: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n pointsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n suffix: {\n color: theme.primary,\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n },\n header: {\n width: '100%',\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n tileTitle: {\n maxWidth: '90%',\n flex: 1,\n ...getDirectionalMargin(8),\n },\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n statusChip: {\n flexShrink: 1,\n marginLeft: 'auto',\n },\n });\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { RewardTileConfig, TileHeight } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon, ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardTileStyles } from './styles';\n\ntype RewardTileMediaProps = {\n isArtworkOnly: boolean;\n};\n\n// We are using percentage values for flexBasis, which is valid in\n// React Native but TypeScript expects a number.\n\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n flexBasis?: string | number;\n};\n\n/**\n * Renders the media for a Reward Tile.\n *\n * @param props {RewardTileMediaProps} - Component props\n * @param props.isArtworkOnly {boolean} - Whether the media should be rendered as an artwork only component\n * @returns React.ReactElement or null if no artwork URL is present or artwork should not be shown\n */\n\nexport const RewardTileMedia = ({\n isArtworkOnly,\n}: RewardTileMediaProps): React.ReactElement | null => {\n const styles = useRewardTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n artworkUrl,\n showArtwork = true,\n name = 'Reward',\n isLocked = false,\n } = tileContext.configuration as RewardTileConfig;\n\n if (!artworkUrl || !showArtwork) return null;\n\n // When artwork-only, the media should occupy the full tile height and compensate\n // for any content layout that might be hidden. We therefore force the media\n // container to flex and take the entire available height, removing default\n // bottom margins and min-heights coming from styles.\n const containerStyle: ResponsiveViewStyle = isArtworkOnly\n ? {\n flexBasis: '100%',\n flex: 1,\n height: '100%',\n marginBottom: 0,\n minHeight: 0,\n aspectRatio: tileContext.tileHeight === TileHeight.Half ? 2 : 1,\n }\n : {\n flexBasis: '50%',\n ...(tileContext.tileHeight === TileHeight.Half && { minHeight: 0 }),\n };\n\n return (\n <View\n style={[styles.imageContainer, containerStyle]}\n testID=\"reward-tile-media\"\n role=\"img\"\n accessibilityLabel={`Reward image for ${name}`}\n >\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n alt={`Reward image for ${name}`}\n />\n {isLocked && (\n <View style={styles.lockOverlay} testID=\"lock-overlay\">\n <Icon name=\"LockKeyhole\" size={48} color=\"white\" />\n </View>\n )}\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { RewardTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { applyMultiplier, getPointsLabel } from '../../../utils/pointsHelpers';\nimport { Row, Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardTileStyles } from './styles';\n\n/**\n * Renders the points value of a Reward Tile.\n *\n * @returns React.ReactElement or null if price should not be shown or is zero/undefined\n */\n\nexport const RewardTilePoints = (): React.ReactElement | null => {\n const styles = useRewardTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n showPrice = true,\n price = 0,\n pointsMultiplier = 1,\n pointsPrefix = '',\n pointsSuffix = 'pts',\n } = tileContext.configuration as RewardTileConfig;\n\n if (!showPrice || price === undefined || price === 0) return null;\n\n const calculatedPoints = applyMultiplier(price, pointsMultiplier);\n\n const accessibilityLabel = getPointsLabel(\n 'Reward points:',\n calculatedPoints,\n pointsPrefix,\n pointsSuffix\n );\n\n return (\n <View\n testID=\"reward-tile-points\"\n role=\"article\"\n accessibilityLabel={accessibilityLabel}\n >\n <Row align=\"center\" justify=\"start\">\n {pointsPrefix ? <Text variant=\"caption\">{pointsPrefix}</Text> : null}\n <Text variant=\"caption\" testID=\"reward-tile-points-value\">\n {calculatedPoints}\n </Text>\n {pointsSuffix ? (\n <Text variant=\"caption\" style={styles.suffix}>\n {pointsSuffix}\n </Text>\n ) : null}\n </Row>\n </View>\n );\n};\n","import React from 'react';\nimport { RewardTileConfig, StatusVariant } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Chip } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardTileStyles } from './styles';\n\n/**\n * Renders availability status for a Reward Tile.\n *\n * @returns React.ReactElement or null if the reward is purchasable\n */\n\nexport const RewardTileStatus = (): React.ReactElement | null => {\n const styles = useRewardTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n stockCapacity,\n stockConsumed,\n outOfStockMessage,\n stockRemainingMessage,\n } = tileContext.configuration as RewardTileConfig;\n\n const isOutOfStock =\n stockCapacity !== undefined &&\n stockConsumed !== undefined &&\n stockCapacity <= stockConsumed;\n\n const label = isOutOfStock ? outOfStockMessage : stockRemainingMessage;\n\n if (!label) return null;\n\n return (\n <Chip\n label={label}\n role=\"status\"\n ariaLive=\"off\"\n accessibilityLabel={label}\n testID=\"reward-tile-status\"\n variant={StatusVariant.GREY}\n style={styles.statusChip}\n />\n );\n};\n","import React from 'react';\nimport { RewardTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the summary of a Reward Tile.\n *\n * @returns React.ReactElement or null if no summary is present\n */\n\nexport const RewardTileSummary = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n summary,\n showPrice = true,\n price,\n } = tileContext.configuration as RewardTileConfig;\n\n const shouldShowPrice =\n showPrice && price !== undefined && price !== null && price !== 0;\n\n const numberOfLines = shouldShowPrice ? 2 : 3;\n\n if (!summary) return null;\n\n return (\n <Text\n variant=\"body\"\n role=\"article\"\n accessibilityLabel={summary}\n testID=\"reward-tile-summary\"\n numberOfLines={numberOfLines}\n ellipsizeMode=\"tail\"\n >\n {summary}\n </Text>\n );\n};\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { RewardTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRewardTileStyles } from './styles';\n\n/**\n * Renders the title of a Reward Tile.\n *\n * @returns React.ReactElement or null if no name is present\n */\n\nexport const RewardTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useRewardTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { name } = tileContext.configuration as RewardTileConfig;\n\n if (!name) return null;\n\n const handleTitleWidth = () => {\n if (IS_MOBILE) {\n return styles.titleWithLink;\n }\n };\n\n return (\n <Text\n variant=\"title\"\n ellipsizeMode=\"tail\"\n numberOfLines={1}\n role=\"heading\"\n accessibilityLabel={`Reward title: ${name}`}\n testID=\"reward-tile-title\"\n style={handleTitleWidth()}\n >\n {name}\n </Text>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { RewardTileConfig, Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\n\nimport { RewardTileChevron } from './reward-tile-chevron';\nimport { RewardTileMedia } from './reward-tile-media';\nimport { RewardTilePoints } from './reward-tile-points';\nimport { RewardTileStatus } from './reward-tile-status';\nimport { RewardTileSummary } from './reward-tile-summary';\nimport { RewardTileTitle } from './reward-tile-title';\nimport { useRewardTileStyles } from './styles';\n\ntype RewardTileProps = {\n tile: Tile;\n};\n\n/**\n * Helper function to determine if the tile should display artwork only.\n *\n * @param configuration - The configuration object of the tile.\n * @returns `true` if the tile should display artwork only.\n */\n\nconst isArtworkOnly = (configuration?: RewardTileConfig): boolean => {\n if (!configuration) return false;\n return !configuration.showDetails;\n};\n\n/**\n * The RewardTile component renders a tile with media, title, summary, points, and a chevron.\n *\n * @param {RewardTileProps} props - Component props\n * @param {Tile} props.tile - The tile data to render\n * @returns React.ReactElement or null if tile is inactive or not a full-height tile\n */\n\nconst RewardTileRoot = ({\n tile,\n}: RewardTileProps): React.ReactElement | null => {\n const styles = useRewardTileStyles();\n\n if (\n !tile ||\n tile.tileHeight !== TileHeight.Full ||\n !tile.active ||\n !tile.configuration\n )\n return null;\n\n const configuration = tile.configuration as RewardTileConfig;\n const artworkOnly = isArtworkOnly(configuration);\n const hasPoints =\n configuration.showPrice !== false &&\n configuration.price !== undefined &&\n configuration.price !== 0;\n const isOutOfStock =\n configuration.stockCapacity !== undefined &&\n configuration.stockConsumed !== undefined &&\n configuration.stockCapacity <= configuration.stockConsumed;\n const hasStatus = isOutOfStock\n ? !!configuration.outOfStockMessage\n : !!configuration.stockRemainingMessage;\n const hasFooter = hasPoints || hasStatus;\n\n return (\n <BaseTile tile={tile}>\n <RewardTile.Media isArtworkOnly={artworkOnly} />\n {!artworkOnly && (\n <Layout>\n <Row justify=\"between\" align=\"center\" style={styles.header}>\n <RewardTile.Title />\n <RewardTile.Chevron />\n </Row>\n {/**\n * Ensure text wrapping works in constrained layouts (e.g., 50% width tiles on mobile).\n * React Native Web requires minWidth: 0 on flex children to allow shrink/wrap.\n */}\n <View style={{ width: '100%', maxWidth: '100%', minWidth: 0 }}>\n <RewardTile.Summary />\n </View>\n {hasFooter && (\n <Row justify=\"between\" align=\"center\" style={styles.footer}>\n <RewardTile.Points />\n <RewardTile.Status />\n </Row>\n )}\n </Layout>\n )}\n </BaseTile>\n );\n};\n\n/**\n * The RewardTile component with subcomponents attached.\n */\n\nexport const RewardTile = Object.assign(RewardTileRoot, {\n Media: RewardTileMedia,\n Title: RewardTileTitle,\n Summary: RewardTileSummary,\n Points: RewardTilePoints,\n Chevron: RewardTileChevron,\n Status: RewardTileStatus,\n});\n\nexport default withTileFetching(RewardTile);\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useTierTileStyles = () => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n return StyleSheet.create({\n header: {\n width: '100%',\n overflow: 'hidden',\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n title: {\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n smallImageContainer: {\n width: 48,\n height: 48,\n position: 'relative',\n },\n smallImage: {\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n image: {\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n },\n name: {\n marginBottom: 0,\n },\n });\n};\n","import * as React from 'react';\nimport { Image, View } from 'react-native';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { TierTileConfig, Tile } from '../../../types/tile';\nimport {\n BaseTile,\n FullFlex,\n Layout,\n ProgressiveImage,\n Text,\n} from '../../atoms';\nimport { useTierTileStyles } from './styles';\n\ntype TierTileProps = {\n tile: Tile;\n};\n\ntype TierTileComponent = React.FC<TierTileProps> & {\n Full: typeof TierTileFull;\n Half: typeof TierTileHalf;\n Empty: typeof TierTileEmpty;\n};\n\nconst TierTileInner: React.FC<TierTileProps> = ({ tile }) => {\n if (!tile) return null;\n\n const { configuration } = tile as { configuration: TierTileConfig };\n const { tier } = configuration;\n const { isHalfSize } = useTileSize(tile);\n\n if (!tier || Array.isArray(tier)) {\n return <TierTile.Empty tile={tile} />;\n }\n\n return isHalfSize ? (\n <TierTile.Half tile={tile} />\n ) : (\n <TierTile.Full tile={tile} />\n );\n};\n\nconst TierTileFull: React.FC<TierTileProps> = ({ tile }) => {\n const styles = useTierTileStyles();\n\n const { configuration } = tile as { configuration: TierTileConfig };\n const { tier, title } = configuration;\n const { artworkUrl, name, description } = tier ?? {};\n\n return (\n <BaseTile tile={tile}>\n {artworkUrl && (\n <View style={styles.header}>\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n resizeMode=\"center\"\n />\n </View>\n )}\n <Layout align=\"stretch\" justify={artworkUrl ? 'start' : 'center'}>\n <View>\n {title && (\n <Text variant=\"eyebrow\" style={styles.title}>\n {title}\n </Text>\n )}\n {name && (\n <Text variant=\"title\" style={styles.title}>\n {name}\n </Text>\n )}\n {description && <Text variant=\"body\">{description}</Text>}\n </View>\n </Layout>\n </BaseTile>\n );\n};\n\nconst TierTileHalf: React.FC<TierTileProps> = ({ tile }) => {\n const styles = useTierTileStyles();\n\n const { configuration } = tile as { configuration: TierTileConfig };\n const { tier, title } = configuration as TierTileConfig;\n const { artworkUrl, name } = tier || {};\n\n return (\n <BaseTile tile={tile}>\n <Layout\n align=\"center\"\n justify=\"between\"\n direction=\"row\"\n style={{ paddingTop: 16 }}\n >\n <View style={{ flex: 1, flexShrink: 1 }}>\n {title && (\n <Text variant=\"eyebrow\" style={styles.title}>\n {title}\n </Text>\n )}\n {name && (\n <Text variant=\"title\" style={styles.name} numberOfLines={2}>\n {name}\n </Text>\n )}\n </View>\n {artworkUrl && (\n <View style={styles.smallImageContainer}>\n <Image\n source={{ uri: artworkUrl }}\n style={styles.smallImage}\n resizeMode=\"contain\"\n />\n </View>\n )}\n </Layout>\n </BaseTile>\n );\n};\n\n// Empty state tile\nconst TierTileEmpty: React.FC<TierTileProps> = ({ tile }) => {\n const styles = useTierTileStyles();\n const { configuration } = tile as { configuration: TierTileConfig };\n const { title, emptyDescription, emptyArtworkUrl } = configuration;\n const { isHalfSize } = useTileSize(tile);\n\n if (isHalfSize) {\n return (\n <BaseTile tile={tile}>\n <Layout\n align=\"center\"\n justify=\"between\"\n direction=\"row\"\n style={{ paddingTop: 16 }}\n >\n <FullFlex>\n {title && (\n <Text variant=\"title\" style={styles.title}>\n {title}\n </Text>\n )}\n {emptyDescription && <Text variant=\"body\">{emptyDescription}</Text>}\n </FullFlex>\n {emptyArtworkUrl && (\n <View style={styles.smallImageContainer}>\n <Image\n source={{ uri: emptyArtworkUrl }}\n style={styles.smallImage}\n resizeMode=\"contain\"\n />\n </View>\n )}\n </Layout>\n </BaseTile>\n );\n }\n\n return (\n <BaseTile tile={tile}>\n {emptyArtworkUrl && (\n <View style={styles.header}>\n <ProgressiveImage\n source={{ uri: emptyArtworkUrl }}\n style={styles.image}\n resizeMode=\"center\"\n />\n </View>\n )}\n <Layout align=\"stretch\" justify=\"center\">\n <Layout>\n {title && (\n <Text variant=\"title\" style={styles.title}>\n {title}\n </Text>\n )}\n {emptyDescription && <Text variant=\"body\">{emptyDescription}</Text>}\n </Layout>\n </Layout>\n </BaseTile>\n );\n};\n\nexport const TierTile = TierTileInner as TierTileComponent;\n\nTierTile.Full = TierTileFull;\nTierTile.Half = TierTileHalf;\nTierTile.Empty = TierTileEmpty;\n\nexport default TierTile;\n","import React from 'react';\nimport { View } from 'react-native';\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { Row } from '../../atoms/Primatives';\nimport { cleanNumber } from '../../../utils/pointsHelpers';\n/**\n * Renders formatted points value for a Roundup Tile.\n *\n * @returns React.ReactElement or null if points are undefined or zero\n */\n\nexport const RoundupTileFormattedPoints = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n balance = 0,\n amountPrefix = '',\n amountSuffix = '',\n } = tileContext.configuration as RoundupTileConfig;\n\n if (balance === undefined) return null;\n\n const fullPointsText = `${amountPrefix}${cleanNumber(balance)}${amountSuffix}`.trim();\n\n return (\n <View\n testID=\"roundup-tile-amount\"\n role=\"article\"\n accessibilityLabel={`Amount: ${fullPointsText}`}\n >\n <Row align=\"center\" justify=\"start\">\n <Text variant=\"caption\" testID=\"roundup-tile-value\">\n {fullPointsText}\n </Text>\n </Row>\n </View>\n );\n};\n","import { ImageStyle, StyleSheet, TextStyle, ViewStyle } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\n/**\n * Custom hook that returns the styles for the RoundupTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the RoundupTile component\n */\n\nexport const useRoundupTileStyles = (\n isFullSize?: boolean\n): {\n container: ViewStyle;\n contentContainer: ViewStyle;\n contentColumn: ViewStyle;\n mediaColumn: ViewStyle;\n chevronContainer: ViewStyle;\n suffix: TextStyle;\n pointsWithSuffix: ViewStyle;\n imageContainer: ViewStyle;\n image: ImageStyle;\n} => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n container: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n width: '100%',\n flexDirection: isFullSize ? 'row' : 'row-reverse',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n contentContainer: {\n width: '100%',\n },\n contentColumn: {\n flexGrow: 1,\n },\n mediaColumn: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n suffix: {\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n color: theme.primary,\n },\n pointsWithSuffix: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n chevronContainer: {\n marginLeft: !isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n },\n imageContainer: {\n width: isFullSize ? '100%' : isDesktop ? 57 : 40,\n height: isFullSize ? '50%' : isDesktop ? 57 : 40,\n marginBottom: isFullSize\n ? useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n )\n : 0,\n backgroundColor: isFullSize\n ? theme.alphaDerivedPrimary[20]\n : theme.surface,\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'hidden',\n } as ViewStyle,\n image: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n resizeMode: 'contain',\n } as ImageStyle,\n });\n};\n","import React from 'react';\nimport { Image, View } from 'react-native';\n\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useRoundupTileStyles } from './styles';\n\ntype RoundupTileMediaProps = {\n isFullSize: boolean;\n};\n\n/**\n * Renders the media of a Points Tile.\n *\n * @returns React.ReactElement or null if media is not present\n */\n\nexport const RoundupTileMedia = ({\n isFullSize,\n}: RoundupTileMediaProps): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { artworkUrl, title = 'Balance' } =\n tileContext.configuration as RoundupTileConfig;\n const styles = useRoundupTileStyles(isFullSize);\n\n if (!artworkUrl) return null;\n\n return (\n <View\n testID=\"roundup-tile-media\"\n style={styles.imageContainer}\n role=\"img\"\n accessibilityLabel={`Roundup tile image for ${title}`}\n >\n <Image\n source={{ uri: artworkUrl }}\n style={styles.image}\n resizeMode={isFullSize ? 'cover' : 'contain'}\n />\n </View>\n );\n};\n","import React from 'react';\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the title of a Roundup Tile.\n *\n * @returns React.ReactElement or null if no title is present\n */\n\nexport const RoundupTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const { title } = tileContext.configuration as RoundupTileConfig;\n\n if (!title) return null;\n\n return (\n <Text\n variant=\"eyebrow\"\n testID=\"roundup-tile-title\"\n role=\"heading\"\n accessibilityLabel={title}\n >\n {title}\n </Text>\n );\n};\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { RoundupTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { View } from 'react-native';\nimport { useRoundupTileStyles } from './styles';\n\n/**\n * Renders a chevron icon for a Roundup Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const RoundupTileChevron = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const sdk = useWllSdk();\n const styles = useRoundupTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { ctaLink } = tileContext.configuration as RoundupTileConfig;\n\n if (!ctaLink) return null;\n\n return (\n <View style={styles.chevronContainer}>\n <Icon\n name=\"ChevronRight\"\n size={16}\n color={sdk.theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View balance\"\n />\n </View>\n );\n};\n","import React from 'react';\nimport { View } from 'react-native';\nimport { useTileSize } from '../../../hooks/useTileSize';\nimport { RoundupTileConfig, Tile } from '../../../types/tile';\nimport { BaseTile, Column, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\nimport { RoundupTileFormattedPoints } from './roundup-tile-formatted-points';\nimport { RoundupTileMedia } from './roundup-tile-media';\nimport { RoundupTileTitle } from './roundup-tile-title';\nimport { useRoundupTileStyles } from './styles';\nimport { RoundupTileChevron } from './roundup-tile-chevron';\ntype RoundupTileProps = {\n tile: Tile;\n};\n\n/**\n * The PointsTile component renders a tile with media, title, and formatted points.\n *\n * @param props - Component props\n * @returns React.ReactElement or null if tile is inactive or missing required props\n */\n\nconst RoundupTileRoot = ({ tile }: RoundupTileProps): React.ReactElement | null => {\n if (!tile || !tile.active || !tile.configuration) return null;\n\n const config = tile.configuration as RoundupTileConfig;\n if (!config) return null;\n\n const { isFullSize } = useTileSize(tile);\n const styles = useRoundupTileStyles(isFullSize);\n\n return (\n <BaseTile tile={tile}>\n {isFullSize && <RoundupTile.Media isFullSize />}\n <View style={styles.container}>\n <Row style={styles.contentContainer}>\n <Column style={styles.contentColumn}>\n <RoundupTile.Title />\n <RoundupTile.Points />\n </Column>\n <Column style={styles.mediaColumn}>\n {!isFullSize && <RoundupTile.Media isFullSize={false} />}\n <RoundupTile.Chevron />\n </Column>\n </Row>\n </View>\n </BaseTile>\n );\n};\n\n/**\n * The PointsTile component with subcomponents attached.\n */\n\nexport const RoundupTile = Object.assign(RoundupTileRoot, {\n Title: RoundupTileTitle,\n Points: RoundupTileFormattedPoints,\n Media: RoundupTileMedia,\n Chevron: RoundupTileChevron,\n});\n\nexport default withTileFetching(RoundupTile);\n","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { Icon } from '../../atoms';\n\n/**\n * Renders a chevron icon for a Venue Tile.\n *\n * @returns React.ReactElement\n */\n\nexport const VenueTileChevron = (): React.ReactElement => {\n const { theme } = useWllSdk();\n\n return (\n <Icon\n name=\"ChevronRight\"\n size={IS_MOBILE ? 16 : undefined}\n color={theme?.derivedSurfaceText?.[20] || '#000000'}\n role=\"img\"\n accessibilityLabel=\"View venue details\"\n />\n );\n};\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\nimport { getDirectionalMargin } from '../../../utils/styling';\n\n/**\n * Custom hook that returns the styles for the VenueTile component.\n * Applies responsive styling based on the current device.\n *\n * @returns StyleSheet styles for the VenueTile component\n */\n\nexport const useVenueTileStyles = (): ReturnType<typeof StyleSheet.create> => {\n const { isDesktop, isTablet } = useResponsive();\n const { theme } = useWllSdk();\n\n return StyleSheet.create({\n imageContainer: {\n width: '100%',\n minHeight: 130,\n overflow: 'hidden',\n marginBottom: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n },\n image: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: '100%',\n height: '100%',\n resizeMode: 'cover',\n },\n content: {\n paddingHorizontal: useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xxs,\n isDesktop,\n isTablet\n ),\n flex: 1,\n },\n footer: {\n marginTop: 8,\n },\n pointsContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n suffix: {\n color: theme.primary,\n fontSize: useResponsiveValue(\n theme.sizes.xl,\n theme.sizes.md,\n isDesktop,\n isTablet\n ),\n },\n header: {\n width: '100%',\n paddingTop: theme.sizes.xxxs,\n marginBottom: useResponsiveValue(\n theme.sizes.xxs,\n theme.sizes.xxxs,\n isDesktop,\n isTablet\n ),\n },\n tileTitle: {\n maxWidth: '90%',\n flex: 1,\n ...getDirectionalMargin(8),\n },\n lockOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 10,\n },\n pinOverlay: {\n position: 'absolute',\n top: 8,\n right: 8,\n zIndex: 20,\n },\n });\n};\n","import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\nimport { TileHeight, VenueTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Icon, ProgressiveImage } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useVenueTileStyles } from './styles';\n\n// We are using percentage values for flexBasis, which is valid in\n// React Native but TypeScript expects a number.\n\ntype ResponsiveViewStyle = StyleProp<ViewStyle> & {\n flexBasis?: string | number;\n};\n\n/**\n * Renders the media for a Venue Tile.\n *\n * @returns React.ReactElement or null if no artwork URL is present or artwork should not be shown\n */\n\nexport const VenueTileMedia = (): React.ReactElement | null => {\n const styles = useVenueTileStyles();\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n artworkUrl,\n name = 'Venue',\n isLocked = false,\n } = tileContext.configuration as VenueTileConfig;\n\n const containerStyle: ResponsiveViewStyle = {\n flexBasis: '50%',\n ...(tileContext.tileHeight === TileHeight.Half && { minHeight: 0 }),\n };\n\n const showCenteredPin = !artworkUrl && !isLocked;\n\n return (\n <View\n style={[styles.imageContainer, containerStyle]}\n testID=\"venue-tile-media\"\n role=\"img\"\n accessibilityLabel={`Venue image for ${name}`}\n >\n {artworkUrl && (\n <ProgressiveImage\n source={{ uri: artworkUrl }}\n style={styles.image}\n alt={`Venue image for ${name}`}\n />\n )}\n <View style={styles.lockOverlay} testID=\"lock-overlay\">\n {isLocked && <Icon name=\"LockKeyhole\" size={48} color=\"white\" />}\n {showCenteredPin ? (\n <Icon name=\"MapPin\" size={48} color=\"white\" />\n ) : (\n <View style={styles.pinOverlay} testID=\"pin-overlay\">\n <Icon name=\"MapPin\" size={24} color=\"white\" />\n </View>\n )}\n </View>\n </View>\n );\n};\n","import React from 'react';\nimport { VenueTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\n\n/**\n * Renders the summary of a Venue Tile.\n *\n * @returns React.ReactElement or null if no summary is present\n */\n\nexport const VenueTileDescription = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n\n if (!isContextValid(tileContext)) return null;\n\n const {\n description,\n } = tileContext.configuration as VenueTileConfig;\n\n if (!description) return null;\n\n return (\n <Text\n variant=\"body\"\n role=\"article\"\n accessibilityLabel={description}\n testID=\"venue-tile-description\"\n numberOfLines={3}\n ellipsizeMode=\"tail\"\n >\n {description}\n </Text>\n );\n};","import React from 'react';\nimport { IS_MOBILE } from '../../../constants/device';\nimport { VenueTileConfig } from '../../../types/tile';\nimport { isContextValid } from '../../../utils/contextHelpers';\nimport { Text } from '../../atoms';\nimport { useTileContext } from '../../atoms/BaseTile';\nimport { useVenueTileStyles } from './styles';\n\n/**\n * Renders the title of a Venue Tile.\n *\n * @returns React.ReactElement or null if no name is present\n */\n\nexport const VenueTileTitle = (): React.ReactElement | null => {\n const tileContext = useTileContext();\n const styles = useVenueTileStyles();\n\n if (!isContextValid(tileContext)) return null;\n\n const { name } = tileContext.configuration as VenueTileConfig;\n\n if (!name) return null;\n\n const handleTitleWidth = () => {\n if (IS_MOBILE) {\n return styles.tileTitle;\n }\n };\n\n return (\n <Text\n variant=\"title\"\n ellipsizeMode=\"tail\"\n numberOfLines={1}\n role=\"heading\"\n accessibilityLabel={`Venue title: ${name}`}\n testID=\"venue-tile-title\"\n style={handleTitleWidth()}\n >\n {name}\n </Text>\n );\n};\n","import React from 'react';\nimport { Tile, TileHeight } from '../../../types/tile';\nimport { BaseTile, Layout, Row } from '../../atoms';\nimport { withTileFetching } from '../../hoc/withTileFetching';\n\nimport { VenueTileChevron } from './venue-tile-chevron';\nimport { VenueTileMedia } from './venue-tile-media';\nimport { VenueTileDescription } from './venue-tile-description';\nimport { VenueTileTitle } from './venue-tile-title';\nimport { useVenueTileStyles } from './styles';\n\ntype VenueTileProps = {\n tile: Tile;\n};\n\n/**\n * The VenueTile component renders a tile with media, title, description, and a chevron.\n *\n * @param {VenueTileProps} props - Component props\n * @param {Tile} props.tile - The tile data to render\n */\n\nconst VenueTileRoot = ({ tile }: VenueTileProps): React.ReactElement | null => {\n const styles = useVenueTileStyles();\n\n if (\n !tile ||\n tile.tileHeight !== TileHeight.Full ||\n !tile.active ||\n !tile.configuration\n )\n return null;\n\n return (\n <BaseTile tile={tile}>\n <VenueTile.Media />\n <Layout>\n <Row justify=\"between\" align=\"center\" style={styles.header}>\n <VenueTile.Title />\n <VenueTile.Chevron />\n </Row>\n <VenueTile.Description />\n </Layout>\n </BaseTile>\n );\n};\n\n/**\n * The VenueTile component with subcomponents attached.\n */\n\nexport const VenueTile = Object.assign(VenueTileRoot, {\n Media: VenueTileMedia,\n Title: VenueTileTitle,\n Description: VenueTileDescription,\n Chevron: VenueTileChevron,\n});\n\nexport default withTileFetching(VenueTile);\n","import React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { GRID_GAP } from '../../../constants/grid';\nimport { Tile, TileHeight, TileType } from '../../../types/tile';\nimport {\n BadgeTile,\n BannerTile,\n PointsTile,\n RewardCategoryTile,\n RewardTile,\n TierTileUpdated,\n RoundupTile,\n ContentTile,\n} from '../../organisms';\nimport VenueTile from '../../organisms/VenueTile';\n\ntype TileContainerProps = {\n tiles: Tile[];\n};\n\nconst TILE_COMPONENTS: Record<TileType, React.ComponentType<{ tile: Tile }>> = {\n [TileType.Content]: ContentTile,\n [TileType.Badge]: BadgeTile,\n [TileType.Tier]: TierTileUpdated,\n [TileType.Points]: PointsTile,\n [TileType.Reward]: RewardTile,\n [TileType.RewardCategory]: RewardCategoryTile,\n [TileType.Banner]: BannerTile,\n [TileType.Roundup]: RoundupTile,\n [TileType.Venue]: VenueTile,\n};\n\n/**\n * TileContainer component to render a list of tiles with proper layout and spacing.\n */\nconst TileContainer = ({ tiles }: TileContainerProps): React.ReactElement => {\n const allHalfHeight =\n tiles.length > 0 &&\n tiles.every((tile) => tile.tileHeight === TileHeight.Half);\n\n const halfHeightGap = allHalfHeight ? GRID_GAP / 2 : GRID_GAP;\n\n return (\n <View\n style={[styles.container, allHalfHeight && { aspectRatio: 1 }]}\n testID=\"tile-container\"\n >\n {tiles.map((tile, index) => {\n const TileComponent = TILE_COMPONENTS[tile.type!];\n const isHalfHeight = tile.tileHeight === TileHeight.Half;\n\n return (\n <View\n key={tile.id}\n style={[\n styles.tileWrapper,\n isHalfHeight && styles.halfHeightTile,\n index > 0 && {\n marginTop: allHalfHeight ? halfHeightGap : GRID_GAP,\n },\n ]}\n >\n {TileComponent ? <TileComponent tile={tile} /> : null}\n </View>\n );\n })}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n width: '100%',\n },\n tileWrapper: {\n flex: 1,\n width: '100%',\n },\n halfHeightTile: {\n flex: 0.5,\n },\n});\n\nexport default TileContainer;\n","import { StyleSheet } from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { useResponsive } from '../../../hooks/useResponsive';\nimport { useResponsiveValue } from '../../../utils/responsiveHelper';\n\nexport const useChipStyles = () => {\n const { theme } = useWllSdk();\n const { isDesktop, isTablet } = useResponsive();\n\n const paddingHorizontal = useResponsiveValue(12, 8, isDesktop, isTablet);\n const paddingVertical = useResponsiveValue(6, 3, isDesktop, isTablet);\n const fontSize = useResponsiveValue(\n theme.sizes.sm,\n theme.sizes.xs,\n isDesktop,\n isTablet\n );\n const lineHeight = Math.max(fontSize, Math.round(fontSize * 1.3));\n\n return StyleSheet.create({\n container: {\n alignSelf: 'flex-start',\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n paddingHorizontal,\n paddingVertical,\n borderRadius: theme.sizes.borderRadiusRounded,\n overflow: 'hidden',\n flexShrink: 1,\n },\n label: {\n fontFamily: theme.fontFamily,\n fontSize,\n lineHeight,\n fontWeight: '400',\n flexShrink: 1,\n },\n });\n};\n","import React from 'react';\nimport {\n AccessibilityRole,\n StyleProp,\n Text as RNText,\n TextStyle,\n View,\n ViewStyle,\n} from 'react-native';\nimport { useWllSdk } from '../../../context/WllSdkContext';\nimport { StatusVariant } from '../../../types/tile';\nimport { useChipStyles } from './styles';\n\ntype AriaLive = 'polite' | 'assertive' | 'off';\n\ntype LiveRegionMapping = {\n native: 'none' | 'polite' | 'assertive';\n web: 'off' | 'polite' | 'assertive';\n};\n\nexport type ChipProps = {\n label: string;\n variant?: StatusVariant;\n role?: AccessibilityRole | 'status';\n ariaLive?: AriaLive;\n accessibilityLabel?: string;\n testID?: string;\n style?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n};\n\nconst mapLiveRegion = (ariaLive: AriaLive = 'polite'): LiveRegionMapping => {\n switch (ariaLive) {\n case 'assertive':\n return { native: 'assertive', web: 'assertive' };\n case 'off':\n return { native: 'none', web: 'off' };\n case 'polite':\n default:\n return { native: 'polite', web: 'polite' };\n }\n};\n\nconst Chip = ({\n label,\n variant = StatusVariant.PRIMARY,\n role = 'text',\n ariaLive = 'polite',\n accessibilityLabel,\n testID,\n style,\n labelStyle,\n}: ChipProps): React.ReactElement => {\n const styles = useChipStyles();\n const { theme } = useWllSdk();\n\n const variantStyles = React.useMemo(() => {\n switch (variant) {\n case StatusVariant.GREEN:\n return {\n container: { backgroundColor: '#d1f0e1' },\n label: { color: '#128e55' },\n };\n case StatusVariant.GREY:\n return {\n container: { backgroundColor: '#dadde0' },\n label: { color: '#666666' },\n };\n case StatusVariant.PRIMARY:\n default:\n return {\n container: {\n backgroundColor: theme.alphaDerivedPrimary?.[10] ?? theme.primary,\n },\n label: { color: theme.primary },\n };\n }\n }, [theme, variant]);\n\n const computedAccessibilityLabel =\n accessibilityLabel ?? (typeof label === 'string' ? label : undefined);\n const { native: accessibilityLiveRegion, web: ariaLiveValue } =\n mapLiveRegion(ariaLive);\n const isIndividuallyAccessible = computedAccessibilityLabel !== undefined;\n\n return (\n <View\n style={[styles.container, variantStyles.container, style]}\n accessible={isIndividuallyAccessible}\n accessibilityRole={role as AccessibilityRole}\n accessibilityLiveRegion={accessibilityLiveRegion}\n accessibilityLabel={computedAccessibilityLabel}\n aria-live={ariaLiveValue}\n testID={testID}\n >\n <RNText\n style={[styles.label, variantStyles.label, labelStyle]}\n numberOfLines={1}\n ellipsizeMode=\"tail\"\n accessible={false}\n importantForAccessibility=\"no\"\n >\n {label}\n </RNText>\n </View>\n );\n};\n\nexport default Chip;\n","export type Badge = {\n id: string;\n name: string;\n description: string;\n artworkUrl: string;\n createdAt: string;\n updatedAt: string;\n};\n\nexport class Reward {\n id?: string;\n createdAt?: string;\n updatedAt?: string;\n name?: string;\n pictureUrl?: string;\n description?: string;\n price?: number;\n value?: number;\n priority?: number;\n availability?: Availability;\n purchasable?: boolean;\n tier?: string;\n summary?: string;\n redemptionMessage?: string;\n visibilityCriteria?: string;\n isLocked?: boolean;\n}\n\nexport type RewardCategory = {\n name: string;\n priority: number;\n type: string;\n id: string;\n createdAt: string;\n updatedAt: string;\n description: string | null;\n metadata: any | null;\n pictureUrl: string;\n};\n\nexport type Availability = {\n start: string;\n end: string;\n};\n\ntype Effectivity = {\n start: string;\n end: string;\n};\n\nexport type TierType = {\n id: string;\n name: string;\n description?: string | null;\n artworkUrl?: string | null;\n priority: number;\n pointsRequirement?: number;\n calculation?: string;\n accumulationPeriod?: string;\n effectivity?: Effectivity;\n createdAt?: string;\n updatedAt?: string;\n earnedPoints?: number;\n attained?: boolean;\n};\n"],"names":["React","require$$0","jsxRuntimeModule","require$$1","useCallback","Platform","_a","Dimensions","StyleSheet","useResponsive","useState","useEffect","createContext","useMemo","_jsx","useContext","CoreApiUrl","_jsxs","Pressable","Text","LucideReactIcons","View","styles","ActivityIndicator","Animated","CTALinkTarget","TierTileType","ProgressType","TileType","TileHeight","StatusVariant","BadgeTileType","RNText","_Fragment","useRef","useWindowDimensions","isArtworkOnly","RefreshControl","SectionType","ScrollView","BannerTile","Image","ContentTile","BadgeTile","TierTileUpdated","PointsTile","RewardTile","RewardCategoryTile","RoundupTile","VenueTile"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}